From jvanek at redhat.com Wed Jan 2 07:20:35 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 02 Jan 2013 16:20:35 +0100 Subject: [rfc] [icedtea-web] desktop icon is pointing to cache instead to real url Message-ID: <50E45043.6070607@redhat.com> Hi! During digging in desktop subsystem of ITW i found that desktop icon is pointing to cache instead to url. HAve anybody idea why??? Eg it will not survive -Xclearcache,.. This simple patch should fix it to point to real url instead of cached version: diff -r a16da8b96a0f netx/net/sourceforge/jnlp/util/XDesktopEntry.java --- a/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Mon Dec 24 13:58:31 2012 +0100 +++ b/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Wed Jan 02 16:17:53 2013 +0100 @@ -93,7 +93,7 @@ } //Shortcut executes the jnlp from cache and system preferred java.. - fileContents += "Exec=" + "javaws" + " \"" + cacheFile.getAbsolutePath() + "\"\n"; + fileContents += "Exec=" + "javaws" + " \"" + file.getSourceLocation() + "\"\n"; return new StringReader(fileContents); From jvanek at redhat.com Wed Jan 2 07:28:26 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 02 Jan 2013 16:28:26 +0100 Subject: [rfc][icedtea-web] fixinf of desktop icon behaviour In-Reply-To: <50E19E5C.1010103@redhat.com> References: <50D488DC.4000507@redhat.com> <50D49071.80107@redhat.com> <50DC8D90.8000207@redhat.com> <50DF3747.9090202@redhat.com> <50E19E5C.1010103@redhat.com> Message-ID: <50E4521A.8020008@redhat.com> On 12/31/2012 03:17 PM, Omair Majid wrote: > On 12/29/2012 01:32 PM, Jiri Vanek wrote: >> On 12/27/2012 07:04 PM, Omair Majid wrote: >>> On 12/21/2012 11:38 AM, Adam Domurad wrote: >>>> On 12/21/2012 11:05 AM, Jiri Vanek wrote: >>>>> Hi! This is fix for >>>>> http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 - JNLP >>>>> applications will prompt for creating desktop shortcuts every time >>>>> they are run >>>>> >>>>> When I have seen Omairs original patch it was too much complicated, So >>>>> I want at least to try this one. >>>> >>>> Do you know why Omair used explicit locking? I couldn't quite figure >>>> it out >>>> >>> >>> My first patch kept a record of all desktop entries that icedtea-web >>> created in a file. This meant that if a user deleted the desktop icon, >>> icedtea-web wouldn't prompt for the creation of that icon again. >>> >> >> I was thinking about it in vice-versa. If he had already created icon, >> and then he delted it. And some time later he launch application again, >> I would expect he would like to be asked again. > > I don't have strong feelings about this either way. Some user testing > might prove insightful. > >> However, when he will refuse to create an desktop icon then he should >> not be asked again.. that is *probably* true, but I'm not so sure... And >> to achieve this something like your previous approach is needed. > > This sounds sensible to me too. > >> So what do you think about combination of my and yours approach? > > Sounds fine to me. > > I think it would be best to get the behaviour that we are sure is needed > (what your initial patch does) into icedtea-web, and then we can try and Ok. So I will continue in patch Adam is reviewing. There is more and more ticks rising up: please see the substitution of environment variables[1] and pointing to cachedFile/url[2] > figure out what to do with the corner cases where the right thing to do > is not as obvious. Ok. My initial ideas are: * enhance "allow desktop icon" dialogue with always and never buttons (right now there is just allow/no) - for allow the icon will be created - after [1] patch the user will not be asked again so long as desktop icon exists. - for no - icon will not be created, but user will be asked if he launches the url again. - no more actions for allow/no. The behaviour will be then as in [1] patch - always - the icon will be created and in ITW properties will be url marked as "create an icon if it do not exists", user will be no longer bothered.and icon will be always recreated. - never - the icon will NOT be created and in ITW properties will be url marked as "do not ever create an icon". user will be never prompted again, and url desktop icon will never be recreated. Items recorded by never/always however should be accessible via ITW-settings, But I will be to lazy to do so O:) J. [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-December/021265.html [2] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-January/021277.html From adomurad at redhat.com Wed Jan 2 07:34:07 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 02 Jan 2013 10:34:07 -0500 Subject: [rfc] [icedtea-web] desktop icon is pointing to cache instead to real url In-Reply-To: <50E45043.6070607@redhat.com> References: <50E45043.6070607@redhat.com> Message-ID: <50E4536F.5030803@redhat.com> On 01/02/2013 10:20 AM, Jiri Vanek wrote: > Hi! > During digging in desktop subsystem of ITW i found that desktop icon > is pointing to cache instead to url. HAve anybody idea why??? Eg it > will not survive -Xclearcache,.. I think this is the correct behaviour -- AFAICS this would allow it to work offline while pointing to the URL would not. > > This simple patch should fix it to point to real url instead of cached > version: > > diff -r a16da8b96a0f netx/net/sourceforge/jnlp/util/XDesktopEntry.java > --- a/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Mon Dec 24 > 13:58:31 2012 +0100 > +++ b/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Wed Jan 02 > 16:17:53 2013 +0100 > @@ -93,7 +93,7 @@ > } > > //Shortcut executes the jnlp from cache and system preferred > java.. Just a note that this comment would need updating too > - fileContents += "Exec=" + "javaws" + " \"" + > cacheFile.getAbsolutePath() + "\"\n"; > + fileContents += "Exec=" + "javaws" + " \"" + > file.getSourceLocation() + "\"\n"; > > return new StringReader(fileContents); Happy hacking, -Adam From jvanek at redhat.com Wed Jan 2 07:52:03 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 02 Jan 2013 16:52:03 +0100 Subject: [rfc] [icedtea-web] desktop icon is pointing to cache instead to real url In-Reply-To: <50E45293.9040708@redhat.com> References: <50E45043.6070607@redhat.com> <50E45293.9040708@redhat.com> Message-ID: <50E457A3.4080801@redhat.com> On 01/02/2013 04:30 PM, Omair Majid wrote: > On 01/02/2013 10:20 AM, Jiri Vanek wrote: >> Hi! >> During digging in desktop subsystem of ITW i found that desktop icon is >> pointing to cache instead to url. HAve anybody idea why??? Eg it will >> not survive -Xclearcache,.. > > IIRC, I did this to keep the desktop entry working if the network is > inaccessible. I must disagree with this approach. Netx should work in offline mode without such a hacks.... J. > > Cheers, > Omair > From omajid at redhat.com Wed Jan 2 07:30:27 2013 From: omajid at redhat.com (Omair Majid) Date: Wed, 02 Jan 2013 10:30:27 -0500 Subject: [rfc] [icedtea-web] desktop icon is pointing to cache instead to real url In-Reply-To: <50E45043.6070607@redhat.com> References: <50E45043.6070607@redhat.com> Message-ID: <50E45293.9040708@redhat.com> On 01/02/2013 10:20 AM, Jiri Vanek wrote: > Hi! > During digging in desktop subsystem of ITW i found that desktop icon is > pointing to cache instead to url. HAve anybody idea why??? Eg it will > not survive -Xclearcache,.. IIRC, I did this to keep the desktop entry working if the network is inaccessible. Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From bugzilla-daemon at icedtea.classpath.org Wed Jan 2 08:45:35 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 02 Jan 2013 16:45:35 +0000 Subject: [Bug 906] icedtea always redownloads web start application In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=906 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|omajid at redhat.com |adomurad at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130102/9d2045f6/attachment.html From jvanek at redhat.com Wed Jan 2 09:14:28 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 02 Jan 2013 18:14:28 +0100 Subject: [rfc][icedtea-web] fixinf of desktop icon behaviour In-Reply-To: <50DDD3B8.2080606@redhat.com> References: <50D488DC.4000507@redhat.com> <50D49692.7050007@zafena.se> <50D4B0AD.2030309@redhat.com> <50D8615D.5080708@redhat.com> <50D8C05C.80501@redhat.com> <50DDD3B8.2080606@redhat.com> Message-ID: <50E46AF4.10702@redhat.com> On 12/28/2012 06:15 PM, Adam Domurad wrote: > On 12/24/2012 03:51 PM, Jiri Vanek wrote: >> On 12/24/2012 03:06 PM, Jiri Vanek wrote: >>> On 12/21/2012 07:55 PM, Jiri Vanek wrote: >>>> On 12/21/2012 06:04 PM, Xerxes R?nby wrote: >>>>> 2012-12-21 17:05, Jiri Vanek skrev: >>>>>> Hi! This is fix for http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 - JNLP >>>>>> applications will prompt for creating desktop shortcuts every time they are run >>>>>> >>>>>> When I have seen Omairs original patch it was too much complicated, So I want at least to try >>>>>> this one. >>>>>> It is pretty simple. The disadvantage however is: >>>>>> + public File getFinalLinuxDesktopIconFile() { >>>>>> + return new >>>>>> File(System.getProperty("user.home")+"/Desktop/"+getDesktopIconFinalName()+".desktop"); >>>>>> + } >>>>>> >>>>>> to be dependent on System.getProperty("user.home")+"/Desktop/" and .desktop suffix. >>>>>> >>>>>> However .. can it be enough? >>>>>> >>>>>> The second patch is for testing purposes of this case which I would like to push forward as >>>>>> soon as possible. >>>>>> >>>>>> J. >>>>> >>>>> This will be broken on non-english systems. >>>>> >>>>> The name of the Desktop folder gets localized on many distributions. >>>>> For example the Desktop folder is called Skrivbord on Swedish user systems. >>>>> The configuration of the user desktop folder location is set in the >>>>> ~/.config/user-dirs.dirs >>>>> >>>>> On my system this file contains: >>>>> xranby at xranby-ESPRIMO-P7935:~/.config$ cat user-dirs.dirs >>>>> # This file is written by xdg-user-dirs-update >>>>> # If you want to change or add directories, just edit the line you're >>>>> # interested in. All local changes will be retained on the next run >>>>> # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped >>>>> # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an >>>>> # absolute path. No other format is supported. >>>>> # >>>>> XDG_DESKTOP_DIR="$HOME/Skrivbord" >>>>> XDG_DOWNLOAD_DIR="$HOME/H?mtningar" >>>>> XDG_TEMPLATES_DIR="$HOME/Mallar" >>>>> XDG_PUBLICSHARE_DIR="$HOME/Publikt" >>>>> XDG_DOCUMENTS_DIR="$HOME/Dokument" >>>>> XDG_MUSIC_DIR="$HOME/Musik" >>>>> XDG_PICTURES_DIR="$HOME/Bilder" >>>>> XDG_VIDEOS_DIR="$HOME/Video" >>>>> >>>> >>>> I see.. This is very valid point and I have hoped to hear something like this. >>>> Do you think it is correct to get this information from ~/.config/user-dirs.dirs ? >>>> It sound good enough to me to parse it... As it is standartized in freedesktop.org. >>>> >>>> Thanx for reply, >>>> >>>> J. >>> >>> So here is improved version which is parsing fro ~/.config/user-dirs.dirs. >>> >>> J. >> >> >> This is little bit better and is taking care for all possible variables. Instead all this parsing >> and substitutions simple exec of echo $(xdg-user-dir DESKTOP) is possible. And it maybe more >> bullet proof. However I would like avoid Sytem.exec wheres possible. >> >> J. >> > > thanks, comments inline > >> diff -r a16da8b96a0f netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java ... >> return iconSize; >> } >> >> + public File getShortcutTmpFile() { >> + File shortcutFile = new >> File(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) + >> File.separator + FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); > > bit of a mouthful, a temporary variable here for the user directory would be good. as you wish > >> + return shortcutFile; >> + } >> + >> /** >> * Set the icon size to use for the desktop shortcut >> * >> @@ -148,9 +162,7 @@ >> * Install this XDesktopEntry into the user's desktop as a launcher >> */ >> private void installDesktopLauncher() { >> - File shortcutFile = new File(JNLPRuntime.getConfiguration() >> - .getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) >> - + File.separator + FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); >> + File shortcutFile = getShortcutTmpFile(); >> try { >> >> if (!shortcutFile.getParentFile().isDirectory() && >> !shortcutFile.getParentFile().mkdirs()) { >> @@ -234,4 +246,80 @@ >> } >> } >> >> + public String getDesktopIconFinalName() { > as you wish :) > I don't understand what is 'final' about it ? Why can it simply not be called the icon name? > >> + return sanitize(file.getTitle()); >> + } >> + >> + public File getFinalLinuxDesktopIconFile() { > > Similarly I don't understand what makes this the final linux desktop icon file, vs > 'getLinuxDesktopIconFile' similarly O:) > >> + return new File(findFreedesktopOrgDesktopPathCatch() + getDesktopIconFinalName() + >> ".desktop"); >> + } >> + >> + public static String findFreedesktopOrgDesktopPathCatch() { > > I'm all for splitting into many small methods, but I don't know how I feel about > findFreedesktopOrgDesktopPathCatch, findFreedesktopOrgDesktopPath, getFreedesktopOrgDesktopPathFrom > all being public, separate methods. I think just inlining all the logic into one > findFreedesktopOrgDesktopPath() method suffices, also the name 'findFreedesktopOrgDesktopPathCatch' > says too much about the implementation IMO. > >> + try { >> + return findFreedesktopOrgDesktopPath(); >> + } catch (Exception ex) { > > I think catching Exception is (almost) always a bad idea, it can silence even array-out-of-bounds. I > think IOException suffices. I really would like to have this cas safe block. However I have added printStackTrace. > >> + return System.getProperty("user.home") + "/Desktop/"; >> + } >> + } >> + >> + public static String findFreedesktopOrgDesktopPath() throws IOException { >> + File userDirs = new File(System.getProperty("user.home") + "/.config/user-dirs.dirs"); >> + if (!userDirs.exists()) { >> + return System.getProperty("user.home") + "/Desktop/"; >> + } >> + return getFreedesktopOrgDesktopPathFrom(userDirs); >> + } >> + >> + public static String getFreedesktopOrgDesktopPathFrom(File userDirs) throws IOException { >> + BufferedReader r = new BufferedReader(new FileReader(userDirs)); >> + try { >> + return getFreedesktopOrgDesktopPathFrom(r); >> + } finally { >> + r.close(); >> + } >> + >> + } >> + >> + public static final String XDG_DESKTOP_DIR = "XDG_DESKTOP_DIR"; >> + >> + public static String getFreedesktopOrgDesktopPathFrom(BufferedReader r) throws IOException { > > This is a helper method and shouldn't be public IMO. As much of this methods as possible have been made private. Except this one :) To keep it testable I let it package private. > >> + while (true) { >> + String s = r.readLine(); >> + if (s == null) { >> + throw new IOException("End of user-dirs found, but no " + XDG_DESKTOP_DIR + " key >> found"); >> + } >> + s = s.trim(); >> + if (s.startsWith(XDG_DESKTOP_DIR)) { >> + if (!s.contains("=")) { >> + throw new IOException(XDG_DESKTOP_DIR + " have no value"); > > s/have/has/ thanks. > >> + } >> + String[] ss = s.split("="); > > rename 'ss' to 'keyvalue' or something, and the reason ss[1] is used will be clearer IMO. done. To keyAndvalue > >> + ss[1] = ss[1].trim(); >> + return evaluateVariables(ss[1]); >> + } >> + } >> + } >> + >> + private static String evaluateVariables(String orig) { >> + >> + Set> env = System.getenv().entrySet(); >> + List> envVariables = new ArrayList> (env); >> + Collections.sort(envVariables, new Comparator>(){ >> + >> + @Override >> + public int compare(Entry o1, Entry o2) { >> + return o2.getKey().length()-o1.getKey().length(); >> + } >> + }); >> + while (true) { >> + String before = orig; >> + for (Entry entry : envVariables) { >> + orig=orig.replaceAll("\\$"+entry.getKey(), entry.getValue()); >> + } >> + if (before.equals(orig)) { >> + return orig; >> + } >> + } >> + >> + } >> } >> diff -r a16da8b96a0f tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java Mon Dec 24 21:38:14 2012 >> +0100 >> @@ -0,0 +1,59 @@ >> +/* >> + * To change this template, choose Tools | Templates >> + * and open the template in the editor. >> + */ > > Netbeans user are you ? Anyway this should be gone. Argh... Added correct header. > >> +package net.sourceforge.jnlp.util; >> + >> +import java.io.BufferedReader; >> +import java.io.IOException; >> +import java.io.StringReader; >> +import org.junit.Assert; >> +import org.junit.Test; >> + >> +public class XDesktopEntryTest { >> + >> + private String des1 = "/my/little/Desktop"; >> + private String des2name = "Plocha"; >> + private String des2Res = System.getProperty("user.home") + "/" + des2name; >> + private String des2 = "$HOME" + "/" + des2name; >> + private String src1 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des1; >> + private String src2 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des1; >> + private String src3 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des1; >> + private String src4 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des2; >> + private String src5 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des2; >> + private String src6 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des2; >> + >> + @Test >> + public void getFreedesktopOrgDesktopPathFromtestSimple() throws IOException { >> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >> StringReader(src1))); >> + Assert.assertEquals(s, des1); >> + } >> + >> + @Test >> + public void getFreedesktopOrgDesktopPathFromtestSpaced() throws IOException { >> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >> StringReader(src2))); >> + Assert.assertEquals(s, des1); >> + } >> + >> + @Test(expected = IOException.class) >> + public void getFreedesktopOrgDesktopPathFromtestCommented() throws IOException { >> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >> StringReader(src3))); >> + } >> + >> + @Test >> + public void getFreedesktopOrgDesktopPathFromtestSimpleWithHome() throws IOException { >> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >> StringReader(src4))); >> + Assert.assertEquals(s, des2Res); >> + } >> + >> + @Test >> + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHome() throws IOException { >> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >> StringReader(src5))); >> + Assert.assertEquals(s, des2Res); >> + } >> + >> + @Test(expected = IOException.class) >> + public void getFreedesktopOrgDesktopPathFromtestCommentedWithHome() throws IOException { >> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >> StringReader(src6))); >> + } >> +} > > Test looks OK of course :) > > Just one additional comment, as Omair pointed out his patch had nice functionality when a desktop > icon was deleted (it did not prompt again for desktop icon to be created). It is worth considering. See the separate sub-thread oook? Especially last record - http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-January/021278.html (Unless Omair will somehow negate it. Thank you very much for review! J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedRecreationOfDesktopIcon-0004.patch Type: text/x-patch Size: 10990 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130102/6cc08f35/fixedRecreationOfDesktopIcon-0004.patch From jvanek at icedtea.classpath.org Wed Jan 2 10:45:52 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 02 Jan 2013 18:45:52 +0000 Subject: /hg/icedtea-web: Fixed unittest for InformationElement Message-ID: changeset c638a94822e0 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c638a94822e0 author: Jiri Vanek date: Wed Jan 02 19:46:16 2013 +0100 Fixed unittest for InformationElement diffstat: ChangeLog | 7 +++++++ tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java | 2 +- 2 files changed, 8 insertions(+), 1 deletions(-) diffs (26 lines): diff -r a16da8b96a0f -r c638a94822e0 ChangeLog --- a/ChangeLog Mon Dec 24 13:58:31 2012 +0100 +++ b/ChangeLog Wed Jan 02 19:46:16 2013 +0100 @@ -1,3 +1,10 @@ +2013-01-02 Jiri Vanek + + Fixed unittest for InformationElement. + * tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java: + (createFromJNLP) now asserts NotNull instead of IsNull as result of + "Minor fix for possible NPE (non fatal) during splashscreen creation" + 2012-12-21 Adam Domurad * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove need for 'goto' in diff -r a16da8b96a0f -r c638a94822e0 tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java Mon Dec 24 13:58:31 2012 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java Wed Jan 02 19:46:16 2013 +0100 @@ -221,7 +221,7 @@ public void createFromJNLP() throws UnsupportedEncodingException, ParseException { JNLPFile jnlpFile0 = null; InformationElement ie0 = InformationElement.createFromJNLP(jnlpFile0); - Assert.assertNull(ie0); + Assert.assertNotNull(ie0); String exJnlp1 = "this is invalid jnlp"; Exception ex = null; JNLPFile jnlpFile1 = null; From omajid at redhat.com Wed Jan 2 14:36:09 2013 From: omajid at redhat.com (Omair Majid) Date: Wed, 02 Jan 2013 17:36:09 -0500 Subject: [rfc][icedtea-web] Reproducer of BeansStatement behaviour In-Reply-To: <50D04D10.70402@redhat.com> References: <50CA03C5.7080500@redhat.com> <50CB9307.5030801@redhat.com> <50CF4FCD.30103@redhat.com> <50D04D10.70402@redhat.com> Message-ID: <50E4B659.1080609@redhat.com> On 12/18/2012 06:01 AM, Jiri Vanek wrote: > On 12/17/2012 06:01 PM, Omair Majid wrote: >> On 12/14/2012 03:58 PM, Adam Domurad wrote: >>> On 12/13/2012 11:35 AM, Jiri Vanek wrote: >>> Looks OK, although this seems like something that is better placed in a >>> JRE's test suite, not ITWs. >> >> Agreed. While it is nice to have another test to check a security >> property, I am not sure how sensible it is to add this test to >> icedtea-web. The test is, after all, testing that the JRE enforces a >> security check when a certain operation is performed. We do have a >> number of tests that check that the code in icedtea-web is running in a >> sandbox, but nothing that is as specific as this. >> >> I would like to know what's the motivation for adding this specific test >> to icedtea-web. >> > > Motivation is simple, this was once safe and working. Due to several > changes in jdk this become penetrable. I don't see why this means this bug should be tested in icedtea-web, though. Surely there have been hundreds of vulnerabilities in the JRE. Are we planning to test for all of them in icedtea-web? Should we also test vulnerabilities in other parts of the stack? (Some libraries that we use for graphics and audio have had vulnerabilities in the past) > ITW is the way via which it can be misused. IcedTea-Web is the vector, but there is nothing that we can do to avoid/fix the security problem here. We are doing everything correctly, and other code is behaving incorrectly. It's not likely that we can introduce this bug in IcedTea-Web in the future if we make a mistake either - there are already existing tests that ensure that a SecurityManager is installed, which is all that JRE should need to secure BeansStatement. > I think that having such a > reproducer run periodically can speed up discovery and so fix in case > that some changes will lead to penetrability again. I agree that a reproduce would be good to have, but I think it belongs in OpenJDK (where the problem actually is) rather than in IcedTea-Web. Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From jvanek at icedtea.classpath.org Thu Jan 3 00:53:53 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 03 Jan 2013 08:53:53 +0000 Subject: /hg/icedtea-web: Fixed unittest for InformationElement Message-ID: changeset 9549226afa8f in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=9549226afa8f author: Jiri Vanek date: Thu Jan 03 09:54:16 2013 +0100 Fixed unittest for InformationElement diffstat: tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diffs (12 lines): diff -r c638a94822e0 -r 9549226afa8f tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java Wed Jan 02 19:46:16 2013 +0100 +++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/InformationElementTest.java Thu Jan 03 09:54:16 2013 +0100 @@ -232,7 +232,7 @@ } Assert.assertNotNull(ex); InformationElement ie1 = InformationElement.createFromJNLP(jnlpFile1); - Assert.assertNull(ie1); + Assert.assertNotNull(ie1); //title, vendor and homepage are obligatory.. not so much to test String exJnlp2 = testJnlpheader + title.toXml() + "\n" + homepage.toXml() + "\n" + vendor.toXml() + "\n" + testJnlpFooter; From jvanek at redhat.com Thu Jan 3 05:12:22 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 03 Jan 2013 14:12:22 +0100 Subject: [rfc] [icedtea-web] desktop icon is pointing to cache instead to real url In-Reply-To: <50E4536F.5030803@redhat.com> References: <50E45043.6070607@redhat.com> <50E4536F.5030803@redhat.com> Message-ID: <50E583B6.8060203@redhat.com> On 01/02/2013 04:34 PM, Adam Domurad wrote: > On 01/02/2013 10:20 AM, Jiri Vanek wrote: >> Hi! >> During digging in desktop subsystem of ITW i found that desktop icon is pointing to cache instead >> to url. HAve anybody idea why??? Eg it will not survive -Xclearcache,.. > > I think this is the correct behaviour -- AFAICS this would allow it to work offline while pointing > to the URL would not. I don't think so. To clarify myself: My idea is that javaws should find the cached version by itself. To deduct it from url. And do not have the execution destination pointing to cahce itself :) But ok, As Omair said, this is for now to allow offline launching. So unless you two disagree somehow, I will postpone this patch until offline launching is fixed and working as expected. > >> >> This simple patch should fix it to point to real url instead of cached version: >> >> diff -r a16da8b96a0f netx/net/sourceforge/jnlp/util/XDesktopEntry.java >> --- a/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Mon Dec 24 13:58:31 2012 +0100 >> +++ b/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Wed Jan 02 16:17:53 2013 +0100 >> @@ -93,7 +93,7 @@ >> } >> >> //Shortcut executes the jnlp from cache and system preferred java.. > > Just a note that this comment would need updating too sure. Sorry. > >> - fileContents += "Exec=" + "javaws" + " \"" + cacheFile.getAbsolutePath() + "\"\n"; >> + fileContents += "Exec=" + "javaws" + " \"" + file.getSourceLocation() + "\"\n"; >> >> return new StringReader(fileContents); > J. From bugzilla-daemon at icedtea.classpath.org Thu Jan 3 05:25:10 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Jan 2013 13:25:10 +0000 Subject: [Bug 1246] New: when running sweethome3d, icedtea crashed Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1246 Bug ID: 1246 Summary: when running sweethome3d, icedtea crashed Classification: Unclassified Product: IcedTea Version: unspecified Hardware: all OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: rodseth at gmail.com CC: unassigned at icedtea.classpath.org Created attachment 811 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=811&action=edit core dump Console output: Java 3D: implicit antialiasing enabled # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007f99c6518988, pid=9909, tid=140298424895232 # # JRE version: 7.0_09-b30 # Java VM: OpenJDK 64-Bit Server VM (23.2-b09 mixed mode linux-amd64 compressed oops) # Problematic frame: # C [libGL.so.1+0x84988] glXCreateNewContext+0x64b8 # # Core dump written. Default location: /home/alexander/core or core.9909 # # An error report file with more information is saved as: # /home/alexander/hs_err_pid9909.log # # If you would like to submit a bug report, please include # instructions on how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # /usr/bin/sweethome3d: line 33: 9909 Avbrutt (SIGABRT) (core dumped) $JAVA_HOME/bin/java -Xmx1024m -cp $CP com.eteks.sweethome3d.SweetHome3D -open "$1" Attaching core and hs_err_pid9909.log This is on x86_64. jdk7-openjdk 7.u9_2.3.3-1 /usr/lib/libGL.so is owned by nvidia-utils 310.19-1 Steps to reproduce: * Start sweethome3d (is in AUR) * Create a little room with some furniture (not sure if needed) * Select 3D view -> Create video... * Move around in the 3D window and press the red recording button for each position * Create several positions (at least 3-4) * Click create to create the video * While the video is being created, select 3D view -> Aerial view and move around * Make sure the video is long enough, so that there is time to move around while it is being created * Specifically, zoom out by scrolling the mouse wheel towards you in the aerial view * Crash! See also Arch Linux bug report here: https://bugs.archlinux.org/task/32943 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/2a83606b/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 3 05:25:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Jan 2013 13:25:33 +0000 Subject: [Bug 1246] when running sweethome3d, icedtea crashed In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1246 --- Comment #1 from Alexander R?dseth --- Created attachment 812 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=812&action=edit log -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/8e6d7f17/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 3 05:26:38 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Jan 2013 13:26:38 +0000 Subject: [Bug 1246] when running sweethome3d, icedtea crashed In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1246 Alexander R?dseth changed: What |Removed |Added ---------------------------------------------------------------------------- Hardware|all |64-bit -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/bafda182/attachment.html From jvanek at redhat.com Thu Jan 3 08:07:59 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 03 Jan 2013 17:07:59 +0100 Subject: [rfc][icedtea-web] make download indicator more compact Message-ID: <50E5ACDF.7080609@redhat.com> Hi! This patch is adding "show details" to download indicator. For One jar jnlp files it behaviour is unaffected. For Multiple jars there is just one progress bar, but can be shown "old stile" detailed one via clicking to "Show details". Then can be minimalised by "hide details". Button is localised. The button is nasty not nice.. Any better idea? but still this is better then previous approach. Looking forward to have this inside! Best rigards J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedDownloadIndicatorDialog.patch Type: text/x-patch Size: 10706 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/b10a5556/fixedDownloadIndicatorDialog.patch From omajid at redhat.com Thu Jan 3 08:11:11 2013 From: omajid at redhat.com (Omair Majid) Date: Thu, 03 Jan 2013 11:11:11 -0500 Subject: Regression in icedtea-web - parent classsloader have been stopped to be invoked In-Reply-To: <50CF81E5.4030603@redhat.com> References: <50CF3042.1060908@redhat.com> <50CF81E5.4030603@redhat.com> Message-ID: <50E5AD9F.7070506@redhat.com> On 12/17/2012 03:34 PM, Adam Domurad wrote: > On 12/17/2012 09:46 AM, Jiri Vanek wrote: >> There is regression that parent class loader is never used for >> searching in classes. I blame also review a lot (me:-/) because >> unittest was broken by this commit. >> > Thanks for pointing this out (or rather forcing me to accept this wasn't > a bad-test, quite good one in fact :), easy fix: Fix looks okay to me. Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From bugzilla-daemon at icedtea.classpath.org Thu Jan 3 08:36:52 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Jan 2013 16:36:52 +0000 Subject: [Bug 906] icedtea always redownloads web start application In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=906 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC|unassigned at icedtea.classpat |gnu.andrew at redhat.com |h.org | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/aa4b21cd/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 3 08:47:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Jan 2013 16:47:12 +0000 Subject: [Bug 1246] when running sweethome3d, icedtea crashed In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1246 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #812|application/octet-stream |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/7a41c8a0/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 3 09:31:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 03 Jan 2013 17:31:16 +0000 Subject: [Bug 1246] when running sweethome3d, icedtea crashed In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1246 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Hardware|64-bit |x86_64 Resolution|--- |INVALID --- Comment #2 from Andrew John Hughes --- This is a bug either in your GL library or Java3D, neither of which is part of IcedTea. Please file a bug with the appropriate provider. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130103/824be65d/attachment.html From adomurad at icedtea.classpath.org Thu Jan 3 10:17:40 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Thu, 03 Jan 2013 18:17:40 +0000 Subject: /hg/icedtea-web: Fix CodeBaseClassLoaderTest.testParentClassLoad... Message-ID: changeset b758667cc17c in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=b758667cc17c author: Adam Domurad date: Thu Jan 03 13:17:37 2013 -0500 Fix CodeBaseClassLoaderTest.testParentClassLoaderIsAskedForClassesApplication diffstat: ChangeLog | 13 ++++++++++ netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java | 11 ++++++-- tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java | 3 +- tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java | 3 +- 4 files changed, 25 insertions(+), 5 deletions(-) diffs (87 lines): diff -r 9549226afa8f -r b758667cc17c ChangeLog --- a/ChangeLog Thu Jan 03 09:54:16 2013 +0100 +++ b/ChangeLog Thu Jan 03 13:17:37 2013 -0500 @@ -1,3 +1,16 @@ +2013-01-03 Adam Domurad + + Fix breakage in unit test CodeBaseClassLoaderTest.testParentClassLoaderIsAskedForClassesApplication + * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java + (CodeBaseClassLoader#findClassNonRecursive): New, call into + URLClassLoader#findClass + (CodeBaseClassLoader#findClass): Delegate JNLPClassLoader#findClass + (JNLPClassLoader#findClass): Call CodeBaseClassLoader#findClassNonRecursive + * tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java + (init): Add applet finish message. + * tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java + (testClassInAppletFolder): Close quickly on applet finish message. + 2013-01-02 Jiri Vanek Fixed unittest for InformationElement. diff -r 9549226afa8f -r b758667cc17c netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jan 03 09:54:16 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java Thu Jan 03 13:17:37 2013 -0500 @@ -1704,7 +1704,7 @@ // Try codebase loader if (codeBaseLoader != null) - return codeBaseLoader.findClass(name); + return codeBaseLoader.findClassNonRecursive(name); // All else failed. Throw CNFE throw new ClassNotFoundException(name); @@ -2287,8 +2287,7 @@ super.addURL(url); } - @Override - public Class findClass(String name) throws ClassNotFoundException { + Class findClassNonRecursive(String name) throws ClassNotFoundException { // If we have searched this path before, don't try again if (Arrays.equals(super.getURLs(), notFoundResources.get(name))) throw new ClassNotFoundException(name); @@ -2310,6 +2309,12 @@ } } + @Override + public Class findClass(String name) throws ClassNotFoundException { + // Calls JNLPClassLoader#findClass which may call into this.findClassNonRecursive + return getParentJNLPClassLoader().findClass(name); + } + /** * Returns the output of super.findLoadedClass(). * diff -r 9549226afa8f -r b758667cc17c tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java --- a/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java Thu Jan 03 09:54:16 2013 +0100 +++ b/tests/reproducers/custom/AppletExtendsFromOutsideJar/srcs/AppletReferenceOutOfJar.java Thu Jan 03 13:17:37 2013 -0500 @@ -42,6 +42,7 @@ Referenced outOfJarReference = new Referenced(); public void init() { - System.out.println("My simple applet is running."); + System.out.println("My simple applet is running."); + System.out.println("*** APPLET FINISHED ***"); } } diff -r 9549226afa8f -r b758667cc17c tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java --- a/tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java Thu Jan 03 09:54:16 2013 +0100 +++ b/tests/reproducers/custom/AppletExtendsFromOutsideJar/testcases/AppletExtendsFromOutsideJarTests.java Thu Jan 03 13:17:37 2013 -0500 @@ -36,6 +36,7 @@ */ import net.sourceforge.jnlp.ProcessResult; +import net.sourceforge.jnlp.ServerAccess.AutoClose; import net.sourceforge.jnlp.annotations.Bug; import net.sourceforge.jnlp.annotations.NeedsDisplay; import net.sourceforge.jnlp.annotations.TestInBrowsers; @@ -55,7 +56,7 @@ @TestInBrowsers(testIn = { Browsers.one }) @Bug(id = "PR920") public void testClassInAppletFolder() throws Exception { - ProcessResult pr = server.executeBrowser("/AppletExtendsFromOutsideJar.html"); + ProcessResult pr = server.executeBrowser("/AppletExtendsFromOutsideJar.html", AutoClose.CLOSE_ON_BOTH); Assert.assertFalse("Linkage error should not occur but did!", pr.stderr.contains(LINKAGE_ERROR_OCCURRENCE)); Assert.assertTrue("Expected '" + APPLET_RUNNING + "', stdout was: " + pr.stdout, pr.stdout.contains(APPLET_RUNNING)); From adomurad at redhat.com Thu Jan 3 11:06:06 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 03 Jan 2013 14:06:06 -0500 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50BCF77F.2020808@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> Message-ID: <50E5D69E.1090807@redhat.com> On 12/03/2012 02:03 PM, Adam Domurad wrote: > On 11/30/2012 04:08 PM, Adam Domurad wrote: >> Hi all. Attached is a fix for PR1198. >> >> I still plan to write unit tests for at least the new method >> PluginAppletViewer.toObjectIDString, but I wanted to get this out >> before leaving for the weekend. >> >> One tricky thing with this patch was that it had to consolidate _a >> lot_ of duplicated functionality (actually I found some subtle >> differences in handling, this should be more consistent). Once that >> was done the actual patch was fairly straight forward. >> >> The basic issue was that JSObject was being passed as if it were a >> normal Java object, when the liveconnect spec specifies that it >> should be returned as the underlying javascript object. >> >> A method was added to JSObject to get the underlying reference. This >> was kept package-private to not pollute its public interface. As >> well, a new permission was added for accessing this method. To access >> this outside of the package, a utility was created in JSUtil. >> >> This patch adds a special case to Java->JS communication when sending >> objects, to indicate that a Javascript object is being passed. >> >> With patch applied, JSObjectFromEval should pass in all browsers. >> >> 2012-11-30 Adam Domurad >> >> Fix PR1198: JSObject passed incorrectly to Javascript >> * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Pass extra >> data for >> 'jsobject' object result messages. >> * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same. >> * plugin/icedteanp/IcedTeaPluginUtils.cc: Add special casing of >> javascript references passed from java. >> * >> plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java: >> New permission for unboxing a JSObject's internal reference. >> * plugin/icedteanp/java/netscape/javascript/JSObject.java >> (getInternalReference): New, package-private, retrieves internal >> reference (Must have proper permission). >> * plugin/icedteanp/java/netscape/javascript/JSUtil.java >> (getJSObjectInternalReference) New, utility for accessing >> JSObject#getInternalReference from outside the package. >> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >> (toObjectIDString): New, creates a string that precisely >> identifies a >> Java object. >> (handleMessage): Replace a lot of duplicated functionality with >> 'toObjectIDString'. >> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Replace >> duplicated functionality with 'toObjectIDString'. >> * >> tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: >> Don't print out type passed (differs from browser to browser). >> * >> tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: >> Don't check type passed (differs from browser to browser). Remove >> known-to-fail. Reformat. > > As promised attached is the unit-test for the newly introduced > Java->JS function (which encapsulates logic that was duplicated in > many areas) > > Note that this patch contains a Makefile patch for unit testing > sun.applet package, however this will be committed with another > now-approved patch so I have left it out of the ChangeLog. > > ChangeLog: > 2012-12-XX Adam Domurad > > Unit test for PluginAppletSecurityContext#toObjectIDString. Make > PluginAppletSecurityContext more unit-testable. > * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: > Don't initialize security manager in constructor. Fix a few Java->JS > corner cases. > * plugin/icedteanp/java/sun/applet/PluginMain.java: Initialize > SecurityManager before creating PluginAppletSecurityContext. > * tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java: > Unit test for all the corner cases of converting a Java object to a > string that can be precisely identified. > > Happy hacking, > -Adam Ping? -Adam From andrew at icedtea.classpath.org Thu Jan 3 17:06:38 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 04 Jan 2013 01:06:38 +0000 Subject: /hg/icedtea7: Update to b06 and add nss.cfg to source tree, not ... Message-ID: changeset 3e3ebf551eb1 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=3e3ebf551eb1 author: Andrew John Hughes date: Fri Jan 04 01:05:06 2013 +0000 Update to b06 and add nss.cfg to source tree, not build trees (see jdk/rev/ff10ac18cfbd) 2013-01-03 Andrew John Hughes * patches/nss-not-enabled-config.patch: Removed; included upstream. * Makefile.am: (OPENJDK_VERSION): Bump to b06. (CORBA_CHANGESET): Update to IcedTea7 forest head. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (OPENJDK_TREE): Also depend on add-nss. (ICEDTEA_PATCHES): Drop nss-not-enabled-config.patch (clean-local): Remove clean-add-nss-debug. (.PHONY): Remove clean-add-nss-debug and clean-add-nss-boot. (add-nss): Copy nss.cfg into source tree rather than build tree. (clean-add-nss): Matching change to cleanup rule. (add-nss-debug): No longer needed. (clean-add-nss-debug): Likewise. (icedtea-stage2): Remove dependence on add-nss. (icedtea-debug-stage2): Likewise for add-nss-debug. (add-nss-boot): No longer needed. (clean-add-nss-boot): Likewise. (clean-icedtea-stage1): Remove clean-add-nss-boot. * hotspot.map: Update default to latest HotSpot in IcedTea7 forest. * patches/nss-config.patch: Update due to changes upstream & addition of not enabled configuration to unpatched forest. diffstat: ChangeLog | 37 +++++++++++++++++++ Makefile.am | 69 ++++++++++++----------------------- hotspot.map | 2 +- patches/nss-config.patch | 53 +++++++++++++++++++++++---- patches/nss-not-enabled-config.patch | 14 ------- 5 files changed, 107 insertions(+), 68 deletions(-) diffs (289 lines): diff -r 1a8e93b7fe96 -r 3e3ebf551eb1 ChangeLog --- a/ChangeLog Wed Dec 19 18:38:08 2012 +0000 +++ b/ChangeLog Fri Jan 04 01:05:06 2013 +0000 @@ -1,3 +1,40 @@ +2013-01-03 Andrew John Hughes + + * patches/nss-not-enabled-config.patch: + Removed; included upstream. + * Makefile.am: + (OPENJDK_VERSION): Bump to b06. + (CORBA_CHANGESET): Update to IcedTea7 forest head. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (OPENJDK_TREE): Also depend on add-nss. + (ICEDTEA_PATCHES): Drop nss-not-enabled-config.patch + (clean-local): Remove clean-add-nss-debug. + (.PHONY): Remove clean-add-nss-debug and clean-add-nss-boot. + (add-nss): Copy nss.cfg into source tree rather than build tree. + (clean-add-nss): Matching change to cleanup rule. + (add-nss-debug): No longer needed. + (clean-add-nss-debug): Likewise. + (icedtea-stage2): Remove dependence on add-nss. + (icedtea-debug-stage2): Likewise for add-nss-debug. + (add-nss-boot): No longer needed. + (clean-add-nss-boot): Likewise. + (clean-icedtea-stage1): Remove clean-add-nss-boot. + * hotspot.map: + Update default to latest HotSpot in IcedTea7 forest. + * patches/nss-config.patch: + Update due to changes upstream & addition of + not enabled configuration to unpatched forest. + 2010-09-24 Andrew John Hughes * Makefile.am: diff -r 1a8e93b7fe96 -r 3e3ebf551eb1 Makefile.am --- a/Makefile.am Wed Dec 19 18:38:08 2012 +0000 +++ b/Makefile.am Fri Jan 04 01:05:06 2013 +0000 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b03 +OPENJDK_VERSION = b06 JDK_UPDATE_VERSION = 12 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = c76fd939af52 -JAXP_CHANGESET = ff514c638d9c -JAXWS_CHANGESET = c24ace5f1fd8 -JDK_CHANGESET = b10e1311a206 -LANGTOOLS_CHANGESET = a4f9ef26ecb2 -OPENJDK_CHANGESET = af7f3ffa51f0 +CORBA_CHANGESET = 1fc876ad27f5 +JAXP_CHANGESET = b67573b17099 +JAXWS_CHANGESET = 8c8c122d0fa8 +JDK_CHANGESET = 880acd2bf8d1 +LANGTOOLS_CHANGESET = 698d52b36615 +OPENJDK_CHANGESET = 9b35dbaf2afa -CORBA_SHA256SUM = 66b69e1c9ef33fd241e7aafc718acc23c690961644fed1d13c85b6a29cfecf7b -JAXP_SHA256SUM = b409e5656e6194c4d559d435e5ab0ec4ce2723c12e958f9ba429478719fe2db4 -JAXWS_SHA256SUM = f1732dca7254e8f3c00116eb2cd1fdcd44b6d1da1b19537f23e610acad6764b4 -JDK_SHA256SUM = 654a1fd889d17a8a6fd0a6f3fda697f18e7a0d81a4baff45f3c96014524bbb54 -LANGTOOLS_SHA256SUM = 224feb6a121c3da9a9e4c592c966bf9f2bfab589bb614419d4ca176248f08bc8 -OPENJDK_SHA256SUM = 21aaf8e746fcf51535b9e42b9ab0546c4de2dd3d1846d10b9123f16939f0ca6b +CORBA_SHA256SUM = 2945cef860c0a3e5af69ffe370ed762bb620db855f97e16efef5b639144e3d93 +JAXP_SHA256SUM = 4eb3f831cb486c81e16ac5d37b30e0e309ba8e2e8d4a400382ee4fa0790ca268 +JAXWS_SHA256SUM = 35e075fc9d4c9de7df8905cf3238e87a9388e4028ff984b494b7fb6c36fd17e1 +JDK_SHA256SUM = c6db11a2f5e90f37a37d65615d7e5ffa0e0e066e4eb303cc98e23ac245b3425d +LANGTOOLS_SHA256SUM = 6ec950b34cb8cc1c6aa64e25b492952a3ba0a53370bb6e5d5431922fa940b506 +OPENJDK_SHA256SUM = c42c018e3f2a5037d9c07e98ffb8784a732c5e1ebd5bb18c3587ca0e8825b27b CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 @@ -227,7 +227,7 @@ # Target to ensure a patched OpenJDK tree containing Zero & Shark # and any overlays is available in $(abs_top_builddir)/openjdk -OPENJDK_TREE = stamps/overlay.stamp +OPENJDK_TREE = stamps/overlay.stamp stamps/add-nss.stamp # Target to ensure a patched OpenJDK bootstrap tree containing # Zero & Shark, any other overlays and the bootstrapping patches @@ -292,8 +292,6 @@ if ENABLE_NSS ICEDTEA_PATCHES += patches/nss-config.patch -else -ICEDTEA_PATCHES += patches/nss-not-enabled-config.patch endif if WITH_PAX @@ -792,7 +790,7 @@ clean-icedtea-debug-stage2 clean-icedtea-stage1 clean-add-zero clean-add-zero-debug \ clean-add-cacao clean-add-cacao-debug clean-rt clean-rewrite-rhino clean-rewriter \ clean-add-systemtap clean-add-systemtap-debug clean-add-pulseaudio clean-add-pulseaudio-debug \ - clean-add-nss clean-add-nss-debug clean-add-tzdata-support clean-add-tzdata-support-debug + clean-add-nss clean-add-tzdata-support clean-add-tzdata-support-debug if [ -e bootstrap ]; then \ rmdir bootstrap ; \ fi @@ -824,8 +822,8 @@ clean-extract-hotspot clean-sanitise-openjdk \ clean-tests clean-tapset-report clean-add-systemtap \ clean-add-systemtap-debug clean-add-pulseaudio clean-add-pulseaudio-debug \ - clean-add-nss clean-add-nss-debug clean-add-tzdata-support clean-add-tzdata-support-debug \ - clean-add-systemtap-boot clean-add-pulseaudio-boot clean-add-nss-boot clean-add-tzdata-support-boot + clean-add-nss clean-add-tzdata-support clean-add-tzdata-support-debug \ + clean-add-systemtap-boot clean-add-pulseaudio-boot clean-add-tzdata-support-boot env: @echo 'unset JAVA_HOME' @@ -1773,13 +1771,12 @@ rm -f $(BUILD_OUTPUT_DIR)/j2re-image/lib/ext/pulse-java.jar rm -f stamps/add-pulseaudio.stamp -stamps/add-nss.stamp: stamps/icedtea.stamp - cp $(abs_top_builddir)/nss.cfg \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; +stamps/add-nss.stamp: stamps/extract-openjdk.stamp + cp -v $(abs_top_builddir)/nss.cfg openjdk/jdk/src/share/lib/security; touch stamps/add-nss.stamp clean-add-nss: - rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/nss.cfg + rm -f openjdk/jdk/src/share/lib/security/nss.cfg rm -f stamps/add-nss.stamp stamps/add-tzdata-support.stamp: stamps/icedtea.stamp @@ -1880,15 +1877,6 @@ rm -f $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/ext/pulse-java.jar rm -f stamps/add-pulseaudio-debug.stamp -stamps/add-nss-debug.stamp: stamps/icedtea-debug.stamp - cp $(abs_top_builddir)/nss.cfg \ - $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; - touch stamps/add-nss-debug.stamp - -clean-add-nss-debug: - rm -f $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/nss.cfg - rm -f stamps/add-nss-debug.stamp - stamps/add-tzdata-support-debug.stamp: stamps/icedtea-debug.stamp if WITH_TZDATA_DIR cp $(abs_top_builddir)/tz.properties \ @@ -1902,7 +1890,7 @@ stamps/icedtea-stage2.stamp: stamps/icedtea.stamp stamps/add-cacao.stamp \ stamps/add-zero.stamp stamps/add-jamvm.stamp stamps/add-systemtap.stamp \ - stamps/add-pulseaudio.stamp stamps/add-nss.stamp stamps/add-tzdata-support.stamp + stamps/add-pulseaudio.stamp stamps/add-tzdata-support.stamp mkdir -p stamps touch $@ @@ -1912,7 +1900,7 @@ stamps/icedtea-debug-stage2.stamp: stamps/icedtea-debug.stamp \ stamps/add-cacao-debug.stamp stamps/add-zero-debug.stamp stamps/add-jamvm-debug.stamp \ stamps/add-systemtap-debug.stamp stamps/add-pulseaudio-debug.stamp \ - stamps/add-nss-debug.stamp stamps/add/tzdata-support-debug.stamp + stamps/add/tzdata-support-debug.stamp mkdir -p stamps touch $@ @@ -1993,15 +1981,6 @@ rm -f $(BOOT_BUILD_OUTPUT_DIR)/j2re-image/lib/ext/pulse-java.jar rm -f stamps/add-pulseaudio-boot.stamp -stamps/add-nss-boot.stamp: stamps/icedtea-boot.stamp - cp $(abs_top_builddir)/nss.cfg \ - $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; - touch stamps/add-nss-boot.stamp - -clean-add-nss-boot: - rm -f $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/nss.cfg - rm -f stamps/add-nss-boot.stamp - stamps/add-tzdata-support-boot.stamp: stamps/icedtea-boot.stamp if WITH_TZDATA_DIR cp $(abs_top_builddir)/tz.properties \ @@ -2015,12 +1994,12 @@ stamps/icedtea-stage1.stamp: stamps/icedtea-boot.stamp \ stamps/add-systemtap-boot.stamp stamps/add-pulseaudio-boot.stamp \ - stamps/add-nss-boot.stamp stamps/add-tzdata-support-boot.stamp + stamps/add-tzdata-support-boot.stamp mkdir -p stamps touch $@ clean-icedtea-stage1: clean-add-systemtap-boot clean-add-pulseaudio-boot \ - clean-add-nss-boot clean-add-tzdata-support-boot + clean-add-tzdata-support-boot rm -f stamps/icedtea-stage1.stamp # Rebuild targets diff -r 1a8e93b7fe96 -r 3e3ebf551eb1 hotspot.map --- a/hotspot.map Wed Dec 19 18:38:08 2012 +0000 +++ b/hotspot.map Fri Jan 04 01:05:06 2013 +0000 @@ -1,3 +1,3 @@ # version url changeset sha256sum -default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 2f82d59ddf61 1d38e0229d4318b51a16242f9091547e20e58065c9f7cc2b1dd7f2d5dcfa2a20 +default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 0685d07e5b43 ec2a2dd1423c62860925b24989729d356b441f250adc1496b5bc857baf7a2a44 zero http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot a456d0771ba0 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0 diff -r 1a8e93b7fe96 -r 3e3ebf551eb1 patches/nss-config.patch --- a/patches/nss-config.patch Wed Dec 19 18:38:08 2012 +0000 +++ b/patches/nss-config.patch Fri Jan 04 01:05:06 2013 +0000 @@ -1,11 +1,48 @@ -diff -Nru openjdk.orig/jdk/src/share/lib/security/java.security openjdk/jdk/src/share/lib/security/java.security ---- openjdk.orig/jdk/src/share/lib/security/java.security 2011-09-22 01:56:22.000000000 +0100 -+++ openjdk/jdk/src/share/lib/security/java.security 2011-09-22 13:51:56.234039451 +0100 -@@ -52,6 +52,7 @@ - security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI - security.provider.8=sun.security.smartcardio.SunPCSC - #security.provider.9=sun.security.ec.SunEC -+security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg +diff --git a/src/share/lib/security/java.security-linux b/src/share/lib/security/java.security-linux +--- openjdk/jdk/src/share/lib/security/java.security-linux ++++ openjdk/jdk/src/share/lib/security/java.security-linux +@@ -55,7 +55,7 @@ + # the NSS security provider was not enabled for this build; it can be enabled + # if NSS (libnss3) is available on the machine. The nss.cfg file may need + # editing to reflect the location of the NSS installation. +-#security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg ++security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg # # Select the source of seed data for SecureRandom. By default an +diff --git a/src/share/lib/security/java.security-macosx b/src/share/lib/security/java.security-macosx +--- openjdk/jdk/src/share/lib/security/java.security-macosx ++++ openjdk/jdk/src/share/lib/security/java.security-macosx +@@ -56,7 +56,7 @@ + # the NSS security provider was not enabled for this build; it can be enabled + # if NSS (libnss3) is available on the machine. The nss.cfg file may need + # editing to reflect the location of the NSS installation. +-#security.provider.11=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg ++security.provider.11=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg + + # + # Select the source of seed data for SecureRandom. By default an +diff --git a/src/share/lib/security/java.security-solaris b/src/share/lib/security/java.security-solaris +--- openjdk/jdk/src/share/lib/security/java.security-solaris ++++ openjdk/jdk/src/share/lib/security/java.security-solaris +@@ -57,7 +57,7 @@ + # the NSS security provider was not enabled for this build; it can be enabled + # if NSS (libnss3) is available on the machine. The nss.cfg file may need + # editing to reflect the location of the NSS installation. +-#security.provider.12=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg ++security.provider.12=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg + + # + # Select the source of seed data for SecureRandom. By default an +diff --git a/src/share/lib/security/java.security-windows b/src/share/lib/security/java.security-windows +--- openjdk/jdk/src/share/lib/security/java.security-windows ++++ openjdk/jdk/src/share/lib/security/java.security-windows +@@ -56,7 +56,7 @@ + # the NSS security provider was not enabled for this build; it can be enabled + # if NSS (libnss3) is available on the machine. The nss.cfg file may need + # editing to reflect the location of the NSS installation. +-#security.provider.11=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg ++security.provider.11=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg + + # + # Select the source of seed data for SecureRandom. By default an diff -r 1a8e93b7fe96 -r 3e3ebf551eb1 patches/nss-not-enabled-config.patch --- a/patches/nss-not-enabled-config.patch Wed Dec 19 18:38:08 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -diff -Nru openjdk.orig/jdk/src/share/lib/security/java.security openjdk/jdk/src/share/lib/security/java.security ---- openjdk.orig/jdk/src/share/lib/security/java.security 2011-09-22 01:56:22.000000000 +0100 -+++ openjdk/jdk/src/share/lib/security/java.security 2011-09-22 13:52:56.826997041 +0100 -@@ -52,6 +52,10 @@ - security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI - security.provider.8=sun.security.smartcardio.SunPCSC - #security.provider.9=sun.security.ec.SunEC -+# the NSS security provider was not enabled for this build; it can be enabled -+# if NSS (libnss3) is available on the machine. The nss.cfg file may need -+# editing to reflect the location of the NSS installation. -+#security.provider.9=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg - - # - # Select the source of seed data for SecureRandom. By default an From jvanek at redhat.com Fri Jan 4 01:43:20 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 04 Jan 2013 10:43:20 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50BCF77F.2020808@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> Message-ID: <50E6A438.1010605@redhat.com> On 12/03/2012 08:03 PM, Adam Domurad wrote: > On 11/30/2012 04:08 PM, Adam Domurad wrote: >> Hi all. Attached is a fix for PR1198. >> >> I still plan to write unit tests for at least the new method PluginAppletViewer.toObjectIDString, but I wanted to get this out before leaving for the weekend. >> >> One tricky thing with this patch was that it had to consolidate _a lot_ of duplicated functionality (actually I found some subtle differences in handling, this should be more consistent). Once that was done the actual patch was fairly straight forward. >> >> The basic issue was that JSObject was being passed as if it were a normal Java object, when the liveconnect spec specifies that it should be returned as the underlying javascript object. >> >> A method was added to JSObject to get the underlying reference. This was kept package-private to not pollute its public interface. As well, a new permission was added for accessing this method. To access this outside of the package, a utility was created in JSUtil. >> >> This patch adds a special case to Java->JS communication when sending objects, to indicate that a Javascript object is being passed. >> >> With patch applied, JSObjectFromEval should pass in all browsers. >> >> 2012-11-30 Adam Domurad >> >> Fix PR1198: JSObject passed incorrectly to Javascript >> * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Pass extra data for >> 'jsobject' object result messages. >> * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same. >> * plugin/icedteanp/IcedTeaPluginUtils.cc: Add special casing of >> javascript references passed from java. >> * plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java: >> New permission for unboxing a JSObject's internal reference. >> * plugin/icedteanp/java/netscape/javascript/JSObject.java >> (getInternalReference): New, package-private, retrieves internal >> reference (Must have proper permission). >> * plugin/icedteanp/java/netscape/javascript/JSUtil.java >> (getJSObjectInternalReference) New, utility for accessing >> JSObject#getInternalReference from outside the package. >> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >> (toObjectIDString): New, creates a string that precisely identifies a >> Java object. >> (handleMessage): Replace a lot of duplicated functionality with >> 'toObjectIDString'. >> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Replace >> duplicated functionality with 'toObjectIDString'. >> * tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: >> Don't print out type passed (differs from browser to browser). >> * tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: >> Don't check type passed (differs from browser to browser). Remove >> known-to-fail. Reformat. > > As promised attached is the unit-test for the newly introduced Java->JS function (which encapsulates logic that was duplicated in many areas) > > Note that this patch contains a Makefile patch for unit testing sun.applet package, however this will be committed with another now-approved patch so I have left it out of the ChangeLog. > > ChangeLog: > 2012-12-XX Adam Domurad > > Unit test for PluginAppletSecurityContext#toObjectIDString. Make > PluginAppletSecurityContext more unit-testable. > * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: > Don't initialize security manager in constructor. Fix a few Java->JS > corner cases. > * plugin/icedteanp/java/sun/applet/PluginMain.java: Initialize > SecurityManager before creating PluginAppletSecurityContext. > * tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java: > Unit test for all the corner cases of converting a Java object to a > string that can be precisely identified. > > Happy hacking, > -Adam > > Tests first. A lot of questions.... > jsfix-unittest.patch > > > diff --git a/Makefile.am b/Makefile.am > --- a/Makefile.am > +++ b/Makefile.am > @@ -969,7 +969,7 @@ stamps/netx-unit-tests-compile.stamp: st > mkdir -p $(NETX_UNIT_TEST_DIR)&& \ > $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ > -d $(NETX_UNIT_TEST_DIR) \ > - -classpath $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \ > + -classpath $(JUNIT_JAR):$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar:$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \ > @netx-unit-tests-source-files.txt&& \ > mkdir -p stamps&& \ > touch $@ > @@ -999,7 +999,7 @@ stamps/run-netx-unit-tests.stamp: stamps > done ; \ > cd $(NETX_UNIT_TEST_DIR) ; \ > class_names=`cat $(UNIT_CLASS_NAMES)` ; \ > - CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):. \ > + CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):. \ Just for confirmation, I remember both those changes already in, little bit better (without installed path) > $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine $$class_names > if WITH_XSLTPROC > $(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml> $(TESTS_DIR)/index_unit.html > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > @@ -53,7 +53,6 @@ import java.security.Permissions; > import java.security.PrivilegedAction; > import java.security.ProtectionDomain; > import java.util.ArrayList; > -import java.util.Arrays; > import java.util.Hashtable; > import java.util.List; > import java.util.Map; > @@ -241,16 +240,6 @@ public class PluginAppletSecurityContext > public PluginAppletSecurityContext(int identifier) { > this.identifier = identifier; > > - // We need a security manager.. and since there is a good chance that > - // an applet will be loaded at some point, we should make it the SM > - // that JNLPRuntime will try to install > - if (System.getSecurityManager() == null) { > - JNLPRuntime.initialize(/* isApplication */false); > - JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); > - } > - > - JNLPRuntime.disableExit(); > - Can't the moving of this initiliazaton cause some hole? What corner cases it fixed? Can't they be fixed by better way? Anyway - it should be in different changeset. > URL u = null; > try { > u = new URL("file://"); > @@ -348,16 +337,16 @@ public class PluginAppletSecurityContext > */ > public String toObjectIDString(Object obj, Class type, boolean unboxPrimitives) { > > + /* Void (can occur from declared return type), pass special "void" string: */ > + if (type == Void.TYPE) { > + return "literalreturn void"; > + } > + > /* Null, pass special "null" string: */ > if (obj == null) { > return "literalreturn null"; > } > > - /* Void (can occur from declared return type), pass special "void" string: */ > - if (type == Void.TYPE) { > - return "literalreturn void"; > - } > - > /* Primitive, accurately represented by its toString() form: */ > boolean returnAsString = ( type == Boolean.TYPE > || type == Byte.TYPE > @@ -378,7 +367,7 @@ public class PluginAppletSecurityContext > > /* Floating point number, we ensure we give enough precision: */ > if ( type == Float.TYPE || type == Double.TYPE || > - ( unboxPrimitives&& (type == Double.class || type == Double.class) )) { > + ( unboxPrimitives&& (type == Float.class || type == Double.class) )) { Why this? Also Shouldn't it be in different changeset? > return "literalreturn " + String.format("%308.308e", obj); > } > > diff --git a/plugin/icedteanp/java/sun/applet/PluginMain.java b/plugin/icedteanp/java/sun/applet/PluginMain.java > --- a/plugin/icedteanp/java/sun/applet/PluginMain.java > +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java > @@ -73,6 +73,7 @@ import java.net.ProxySelector; > import java.util.Enumeration; > import java.util.Properties; > > +import net.sourceforge.jnlp.DefaultLaunchHandler; > import net.sourceforge.jnlp.config.DeploymentConfiguration; > import net.sourceforge.jnlp.runtime.JNLPRuntime; > import net.sourceforge.jnlp.security.JNLPAuthenticator; > @@ -106,6 +107,15 @@ public class PluginMain { > // must be called before JNLPRuntime.initialize() > JNLPRuntime.setRedirectStreams(redirectStreams); > > + // We need a security manager for PluginAppletSecurityContext, > + // so we ensure it is initialized > + if (System.getSecurityManager() == null) { > + JNLPRuntime.initialize(/* isApplication */false); > + JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); > + } > + > + JNLPRuntime.disableExit(); > + Concerns told above. As mentioned - there is several changes I believe belongs to different changeset. If I'm wrong feel free to correct me. I' have cced Jana to put her voice to js<->java communicaton, > PluginAppletSecurityContext sc = new PluginAppletSecurityContext(0); > sc.prePopulateLCClasses(); > PluginAppletSecurityContext.setStreamhandler(streamHandler); > diff --git a/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java b/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java > new file mode 100644 > --- /dev/null > +++ b/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java > @@ -0,0 +1,181 @@ > +package sun.applet; > + > +import static org.junit.Assert.assertTrue; > +import static org.junit.Assert.assertFalse; > +import static org.junit.Assert.assertEquals; > + > +import netscape.javascript.JSObject; > + > +import org.junit.Test; > + > +public class PluginAppletSecurityContextTest { > + > + @Test > + public void toIDStringNullTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + assertEquals("literalreturn null", > + pasc.toObjectIDString(null, Object.class, false)); > + } > + > + @Test > + public void toIDStringVoidTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + assertEquals("literalreturn void", > + pasc.toObjectIDString(null, Void.TYPE, false)); > + > + assertFalse("literalreturn void".equals(pasc.toObjectIDString(null, > + Void.class, false))); > + } > + > + @Test > + public void toIDStringIntegralTest() { > + // NB: the special .TYPE classes here represent primitives > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + // Test both unboxing allowed and not allowed to be sure it doesn't > + // alter result > + // although it really shouldn't > + for (boolean unboxPrimitives : new Boolean[] { false, true }) { > + assertEquals("literalreturn true", pasc.toObjectIDString( > + new Boolean(true), Boolean.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Byte( > + (byte) 1), Byte.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString( > + new Character((char) 1), Character.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Short( > + (short) 1), Short.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString( > + new Integer(1), Integer.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Long(1), > + Long.TYPE, unboxPrimitives)); > + } > + } > + > + @Test > + public void toIDStringBoxedIntegralNoUnboxingTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + assertFalse("literalreturn true".equals(pasc.toObjectIDString( > + new Boolean(true), Boolean.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Byte( > + (byte) 1), Byte.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString( > + new Character((char) 1), Character.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Short( > + (short) 1), Short.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Integer( > + 1), Integer.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Long(1), > + Long.class, false))); > + } > + > + @Test > + public void toIDStringBoxedIntegralWithUnboxingTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + assertEquals("literalreturn true", > + pasc.toObjectIDString(new Boolean(true), Boolean.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Byte((byte) 1), Byte.class, true)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Character( > + (char) 1), Character.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Short((short) 1), Short.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Integer(1), Integer.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Long(1), Long.class, true)); > + } > + > + @Test > + public void toIDStringFloatingPoint() { > + final int prefixLength = "literalreturn ".length(); > + > + // NB: the special .TYPE classes here represent primitives > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + // Test both unboxing allowed and not allowed to be sure it doesn't > + // alter result > + // although it really shouldn't > + for (boolean unboxPrimitives : new Boolean[] { false, true }) { > + { > + final float testFloat = 3.141592f; > + String idString = pasc.toObjectIDString(new Float(testFloat), > + Float.TYPE, unboxPrimitives); > + String floatRepr = idString.substring(prefixLength); > + assertTrue(testFloat == Float.parseFloat(floatRepr)); > + } > + { > + final double testDouble = 3.141592; > + String idString = pasc.toObjectIDString(new Double(testDouble), > + Double.TYPE, unboxPrimitives); > + String doubleRepr = idString.substring(prefixLength); > + assertTrue(testDouble == Double.parseDouble(doubleRepr)); > + } > + > + } > + { > + final float testFloat = 3.141592f; > + String idString = pasc.toObjectIDString(new Float(testFloat), > + Float.class, true); > + String floatRepr = idString.substring(prefixLength); > + assertTrue(testFloat == Float.parseFloat(floatRepr)); > + } > + { > + final double testDouble = 3.141592; > + String idString = pasc.toObjectIDString(new Double(testDouble), > + Double.class, true); > + String doubleRepr = idString.substring(prefixLength); > + assertTrue(testDouble == Double.parseDouble(doubleRepr)); > + } > + { > + final float testFloat = 3.141592f; > + String idString = pasc.toObjectIDString(new Float(testFloat), > + Float.class, false); > + assertFalse(idString.startsWith("literalreturn ")); > + } > + { > + final double testDouble = 3.141592; > + String idString = pasc.toObjectIDString(new Double(testDouble), > + Double.class, false); > + assertFalse(idString.startsWith("literalreturn ")); > + } > + } > + > +// FIXME: How can we get the permissions to do this? no idea :( Otherwise tests looks oook. Thank you! > +// @Test > +// public void toIDStringJSObject() { > +// PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > +// > +// long testReference = 1; > +// assertEquals("literalreturn 1", pasc.toObjectIDString(new JSObject( > +// testReference), JSObject.class, false)); > +// } > + > + @Test > + public void toIDStringArbitraryObject() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + final Object testObject = new Object(); > + String idString = pasc.toObjectIDString(testObject, > + testObject.getClass(), false); > + > + assertFalse(idString.startsWith("literalreturn")); > + assertFalse(idString.startsWith("jsobject")); > + } > +} From jvanek at redhat.com Fri Jan 4 02:23:26 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 04 Jan 2013 11:23:26 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50B92039.4070304@redhat.com> References: <50B92039.4070304@redhat.com> Message-ID: <50E6AD9E.9040100@redhat.com> On 11/30/2012 10:08 PM, Adam Domurad wrote: > Hi all. Attached is a fix for PR1198. > > I still plan to write unit tests for at least the new method PluginAppletViewer.toObjectIDString, but I wanted to get this out before leaving for the weekend. > > One tricky thing with this patch was that it had to consolidate _a lot_ of duplicated functionality (actually I found some subtle differences in handling, this should be more consistent). Once that was done the actual patch was fairly straight forward. > > The basic issue was that JSObject was being passed as if it were a normal Java object, when the liveconnect spec specifies that it should be returned as the underlying javascript object. > > A method was added to JSObject to get the underlying reference. This was kept package-private to not pollute its public interface. As well, a new permission was added for accessing this method. To access this outside of the package, a utility was created in JSUtil. > > This patch adds a special case to Java->JS communication when sending objects, to indicate that a Javascript object is being passed. > > With patch applied, JSObjectFromEval should pass in all browsers. > > 2012-11-30 Adam Domurad > > Fix PR1198: JSObject passed incorrectly to Javascript > * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Pass extra data for > 'jsobject' object result messages. > * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same. > * plugin/icedteanp/IcedTeaPluginUtils.cc: Add special casing of > javascript references passed from java. > * plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java: > New permission for unboxing a JSObject's internal reference. > * plugin/icedteanp/java/netscape/javascript/JSObject.java > (getInternalReference): New, package-private, retrieves internal > reference (Must have proper permission). > * plugin/icedteanp/java/netscape/javascript/JSUtil.java > (getJSObjectInternalReference) New, utility for accessing > JSObject#getInternalReference from outside the package. > * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: > (toObjectIDString): New, creates a string that precisely identifies a > Java object. > (handleMessage): Replace a lot of duplicated functionality with > 'toObjectIDString'. > * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Replace > duplicated functionality with 'toObjectIDString'. > * tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: > Don't print out type passed (differs from browser to browser). > * tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: > Don't check type passed (differs from browser to browser). Remove > known-to-fail. Reformat. > > > jsfix2.patch > Again adding Jana. > > diff --git a/NEWS b/NEWS > --- a/NEWS > +++ b/NEWS > @@ -19,6 +19,7 @@ New in release 1.4 (2012-XX-XX): > * Plugin > - PR1106: Buffer overflow in plugin table- > - PR1166: Embedded JNLP File is not supported in applet tag > + - PR1198: JSObject is not passed to javascript correctly > * Common > - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered > - PR955: regression: SweetHome3D fails to run > diff --git a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc > --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc > +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc > @@ -131,7 +131,7 @@ JavaRequestProcessor::newMessageOnBus(co > !message_parts->at(4)->find("GetObjectArrayElement")) > { > > - if (!message_parts->at(5)->find("literalreturn")) > + if (!message_parts->at(5)->find("literalreturn") || !message_parts->at(5)->find("jsobject")) > { > // literal returns don't have a corresponding jni id > result->return_identifier = 0; > diff --git a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc > --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc > +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc > @@ -413,7 +413,7 @@ PluginRequestProcessor::setMember(std::v > member = (NPVariant*) (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); > propertyNameID = *(message_parts->at(6)); > > - if (*(message_parts->at(7)) == "literalreturn") > + if (*(message_parts->at(7)) == "literalreturn" || *(message_parts->at(7)) == "jsobject" ) > { > value.append(*(message_parts->at(7))); > value.append(" "); > diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc b/plugin/icedteanp/IcedTeaPluginUtils.cc > --- a/plugin/icedteanp/IcedTeaPluginUtils.cc > +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc > @@ -776,6 +776,14 @@ javaStringResultToNPVariant(const std::s > } > > static bool > +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* variant) > +{ > + NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(js_id); > + *variant = *result_variant; > + return true; > +} It returns always true?? Maybe void or *variant? > + > +static bool > javaObjectResultToNPVariant(NPP instance, const std::string& jobject_id, NPVariant* variant) > { > // Reference the class object so we can construct an NPObject with it and the instance > @@ -811,9 +819,14 @@ IcedTeaPluginUtilities::javaResultToNPVa > std::string* java_value, NPVariant* variant) > { > int literal_n = sizeof("literalreturn"); // Accounts for one space char > + int jsobject_n = sizeof("jsobject"); // Accounts for one space char > + > if (strncmp("literalreturn ", java_value->c_str(), literal_n) == 0) > { > javaPrimitiveResultToNPVariant(java_value->substr(literal_n), variant); > + } else if (strncmp("jsobject ", java_value->c_str(), jsobject_n) == 0) > + { > + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), variant); > } else > { > std::string jobject_id = *java_value; > diff --git a/plugin/icedteanp/java/netscape/javascript/JSObject.java b/plugin/icedteanp/java/netscape/javascript/JSObject.java > --- a/plugin/icedteanp/java/netscape/javascript/JSObject.java > +++ b/plugin/icedteanp/java/netscape/javascript/JSObject.java > @@ -100,6 +100,16 @@ public final class JSObject { > } > > /** > + * Package-private method used through JSUtil#getJSObjectInternalReference. > + * We make this package-private to avoid polluting the public interface. > + * @return the internal identifier > + */ > + long getInternalReference() { > + AccessController.getContext().checkPermission(new JSObjectUnboxPermission()); > + return internal; > + } > + > + /** > * it is illegal to construct a JSObject manually > */ > public JSObject(int jsobj_addr) { > diff --git a/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java > new file mode 100644 > --- /dev/null > +++ b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java > @@ -0,0 +1,49 @@ > +/* JSObjectUnboxPermission.java > + Copyright (C) 2012 Red Hat > + > +This file is part of IcedTea. > + > +IcedTea is free software; you can redistribute it and/or modify > +it under the terms of the GNU General Public License as published by > +the Free Software Foundation; either version 2, or (at your option) > +any later version. > + > +IcedTea is distributed in the hope that it will be useful, but > +WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with IcedTea; see the file COPYING. If not, write to the > +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > +02110-1301 USA. > + > +Linking this library statically or dynamically with other modules is > +making a combined work based on this library. Thus, the terms and > +conditions of the GNU General Public License cover the whole > +combination. > + > +As a special exception, the copyright holders of this library give you > +permission to link this library with independent modules to produce an > +executable, regardless of the license terms of these independent > +modules, and to copy and distribute the resulting executable under > +terms of your choice, provided that you also meet, for each linked > +independent module, the terms and conditions of the license of that > +module. An independent module is a module which is not derived from > +or based on this library. If you modify this library, you may extend > +this exception to your version of the library, but you are not > +obligated to do so. If you do not wish to do so, delete this > +exception statement from your version. */ > + > +package netscape.javascript; > + > +import java.security.BasicPermission; > + > +/** > + * Permission to access internal reference of JSObject > + */ > +public class JSObjectUnboxPermission extends BasicPermission { > + public JSObjectUnboxPermission() { > + super("JSObjectUnbox"); > + } > +} > diff --git a/plugin/icedteanp/java/netscape/javascript/JSUtil.java b/plugin/icedteanp/java/netscape/javascript/JSUtil.java > --- a/plugin/icedteanp/java/netscape/javascript/JSUtil.java > +++ b/plugin/icedteanp/java/netscape/javascript/JSUtil.java > @@ -57,4 +57,16 @@ public class JSUtil { > > return captureStream.toString(); > } > -} > + > + /** > + * Uses package-private method JSObject.getInternalReference. > + * This is package-private to avoid polluting the public interface. > + * @param js JSObject to unbox > + * @return the internal reference stored by the JSObject > + */ > + public static long getJSObjectInternalReference(JSObject js) { > + // NB: permission is checked in JSObject > + return js.getInternalReference(); > + } > + > +} > \ No newline at end of file > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > @@ -53,13 +53,16 @@ import java.security.Permissions; > import java.security.PrivilegedAction; > import java.security.ProtectionDomain; > import java.util.ArrayList; > +import java.util.Arrays; > import java.util.Hashtable; > import java.util.List; > import java.util.Map; > > +import net.sourceforge.jnlp.DefaultLaunchHandler; > import net.sourceforge.jnlp.runtime.JNLPRuntime; > -import net.sourceforge.jnlp.DefaultLaunchHandler; > +import netscape.javascript.JSObject; > import netscape.javascript.JSObjectCreatePermission; > +import netscape.javascript.JSUtil; cosmetic... > > class Signature { > private String signature; > @@ -318,6 +321,83 @@ public class PluginAppletSecurityContext > return map; > } > > + private static long privilegedJSObjectUnbox(final JSObject js) { > + return AccessController.doPrivileged(new PrivilegedAction() { > + public Long run() { > + return JSUtil.getJSObjectInternalReference(js); > + } > + }); > + } > + > + /** > + * Create a string that identifies a Java object precisely, for passing to > + * Javascript. > + * > + * For builtin value types, a 'literalreturn' prefix is used and the object > + * is passed with a string representation. > + * > + * For JSObject's, a 'jsobject' prefix is used and the object is passed > + * with the JSObject's internal identifier. > + * > + * For other Java objects, an object store reference is used. > + * > + * @param obj the object for which to create an identifier > + * @param type the type to use for representation decisions > + * @param unboxPrimitives whether to treat boxed primitives as value types > + * @return an identifier string > + */ > + public String toObjectIDString(Object obj, Class type, boolean unboxPrimitives) { > + > + /* Null, pass special "null" string: */ > + if (obj == null) { > + return "literalreturn null"; > + } > + > + /* Void (can occur from declared return type), pass special "void" string: */ > + if (type == Void.TYPE) { > + return "literalreturn void"; > + } > + > + /* Primitive, accurately represented by its toString() form: */ > + boolean returnAsString = ( type == Boolean.TYPE > + || type == Byte.TYPE > + || type == Short.TYPE > + || type == Integer.TYPE > + || type == Long.TYPE ); > + if (unboxPrimitives) { > + returnAsString = ( returnAsString > + || type == Boolean.class > + || type == Byte.class > + || type == Short.class > + || type == Integer.class > + || type == Long.class); > + } > + if (returnAsString) { > + return "literalreturn " + obj.toString(); > + } > + > + /* Floating point number, we ensure we give enough precision: */ > + if ( type == Float.TYPE || type == Double.TYPE || > + ( unboxPrimitives&& (type == Double.class || type == Double.class) )) { > + return "literalreturn " + String.format("%308.308e", obj); > + } > + > + /* Character that should be returned as number: */ > + if (type == Character.TYPE || (unboxPrimitives&& type == Character.class)) { > + return "literalreturn " + (int) (Character) obj; > + } > + > + /* JSObject, unwrap underlying Javascript reference: */ > + if (type == netscape.javascript.JSObject.class) { > + long reference = privilegedJSObjectUnbox((JSObject)obj); > + return "jsobject " + Long.toString(reference); > + } > + > + /* Other kind of object, track this object and return our reference: */ > + store.reference(obj); > + return store.getIdentifier(obj).toString(); > + } > + > public void handleMessage(int reference, String src, AccessControlContext callContext, String message) { > > startTime = new java.util.Date().getTime(); > @@ -426,56 +506,16 @@ public class PluginAppletSecurityContext > if (ret instanceof Throwable) > throw (Throwable) ret; > > - if (ret == null) { > - write(reference, "GetStaticField literalreturn null"); > - } else if (f.getType() == Boolean.TYPE > - || f.getType() == Byte.TYPE > - || f.getType() == Short.TYPE > - || f.getType() == Integer.TYPE > - || f.getType() == Long.TYPE) { > - write(reference, "GetStaticField literalreturn " + ret); > - } else if (f.getType() == Float.TYPE > - || f.getType() == Double.TYPE) { > - write(reference, "GetStaticField literalreturn " + String.format("%308.308e", ret)); > - } else if (f.getType() == Character.TYPE) { > - write(reference, "GetStaticField literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetStaticField " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, f.getType(), false /*do not unbox primitives*/); > + write(reference, "GetStaticField " + objIDStr); > } else if (message.startsWith("GetValue")) { > String[] args = message.split(" "); > Integer index = parseCall(args[1], null, Integer.class); > > Object ret = store.getObject(index); > > - if (ret == null) { > - write(reference, "GetValue literalreturn null"); > - } else if (ret.getClass() == Boolean.TYPE > - || ret.getClass() == Boolean.class > - || ret.getClass() == Byte.TYPE > - || ret.getClass() == Byte.class > - || ret.getClass() == Short.TYPE > - || ret.getClass() == Short.class > - || ret.getClass() == Integer.TYPE > - || ret.getClass() == Integer.class > - || ret.getClass() == Long.TYPE > - || ret.getClass() == Long.class) { > - write(reference, "GetValue literalreturn " + ret); > - } else if (ret.getClass() == Float.TYPE > - || ret.getClass() == Float.class > - || ret.getClass() == Double.TYPE > - || ret.getClass() == Double.class) { > - write(reference, "GetValue literalreturn " + String.format("%308.308e", ret)); > - } else if (ret.getClass() == Character.TYPE > - || ret.getClass() == Character.class) { > - write(reference, "GetValue literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetValue " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, ret.getClass(), true /*unbox primitives*/); > + write(reference, "GetValue " + objIDStr); > } else if (message.startsWith("SetStaticField") || > message.startsWith("SetField")) { > String[] args = message.split(" "); > @@ -489,9 +529,7 @@ public class PluginAppletSecurityContext > final Object fValue = MethodOverloadResolver.getCostAndCastedObject(value, f.getType())[1]; > > AccessControlContext acc = callContext != null ? callContext : getClosedAccessControlContext(); > - checkPermission(src, > - message.startsWith("SetStaticField") ? (Class) o : o.getClass(), > - acc); > + checkPermission(src, message.startsWith("SetStaticField") ? (Class) o : o.getClass(), acc); > > Object ret = AccessController.doPrivileged(new PrivilegedAction() { > public Object run() { > @@ -514,27 +552,12 @@ public class PluginAppletSecurityContext > Integer arrayID = parseCall(args[1], null, Integer.class); > Integer index = parseCall(args[2], null, Integer.class); > > - Object ret = Array.get(store.getObject(arrayID), index); > - Class retClass = store.getObject(arrayID).getClass().getComponentType(); // prevent auto-boxing influence > + Object array = store.getObject(arrayID); > + Object ret = Array.get(array, index); > + Class retClass = array.getClass().getComponentType(); // prevent auto-boxing influence > > - if (ret == null) { > - write(reference, "GetObjectArrayElement literalreturn null"); > - } else if (retClass == Boolean.TYPE > - || retClass == Byte.TYPE > - || retClass == Short.TYPE > - || retClass == Integer.TYPE > - || retClass == Long.TYPE) { > - write(reference, "GetObjectArrayElement literalreturn " + ret); > - } else if (retClass == Float.TYPE > - || retClass == Double.TYPE) { > - write(reference, "GetObjectArrayElement literalreturn " + String.format("%308.308e", ret)); > - } else if (retClass == Character.TYPE) { > - write(reference, "GetObjectArrayElement literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetObjectArrayElement " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, retClass, false /*do not unbox primitives*/); > + write(reference, "GetObjectArrayElement " + objIDStr); > > } else if (message.startsWith("SetObjectArrayElement")) { > String[] args = message.split(" "); > @@ -584,25 +607,8 @@ public class PluginAppletSecurityContext > if (ret instanceof Throwable) > throw (Throwable) ret; > > - if (ret == null) { > - write(reference, "GetField literalreturn null"); > - } else if (f.getType() == Boolean.TYPE > - || f.getType() == Byte.TYPE > - || f.getType() == Short.TYPE > - || f.getType() == Integer.TYPE > - || f.getType() == Long.TYPE) { > - write(reference, "GetField literalreturn " + ret); > - } else if (f.getType() == Float.TYPE > - || f.getType() == Double.TYPE) { > - write(reference, "GetField literalreturn " + String.format("%308.308e", ret)); > - } else if (f.getType() == Character.TYPE) { > - write(reference, "GetField literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetField " + store.getIdentifier(ret)); > - } > - > + String objIDStr = toObjectIDString(ret, f.getType(), false /*do not unbox primitives*/); > + write(reference, "GetField " + objIDStr); > } else if (message.startsWith("GetObjectClass")) { > int oid = Integer.parseInt(message.substring("GetObjectClass" > .length() + 1)); > @@ -688,27 +694,8 @@ public class PluginAppletSecurityContext > , collapsedArgs, " and that returned: ", ret > , " of type ", retO); > > - if (m.getReturnType().equals(java.lang.Void.class) || > - m.getReturnType().equals(java.lang.Void.TYPE)) { > - write(reference, "CallMethod literalreturn void"); > - } else if (ret == null) { > - write(reference, "CallMethod literalreturn null"); > - } else if (m.getReturnType() == Boolean.TYPE > - || m.getReturnType() == Byte.TYPE > - || m.getReturnType() == Short.TYPE > - || m.getReturnType() == Integer.TYPE > - || m.getReturnType() == Long.TYPE) { > - write(reference, "CallMethod literalreturn " + ret); > - } else if (m.getReturnType() == Float.TYPE > - || m.getReturnType() == Double.TYPE) { > - write(reference, "CallMethod literalreturn " + String.format("%308.308e", ret)); > - } else if (m.getReturnType() == Character.TYPE) { > - write(reference, "CallMethod literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "CallMethod " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, m.getReturnType(), false /*do not unbox primitives*/); > + write(reference, "CallMethod " + objIDStr); Yap, this refactoring looks really nice and seems ok. > } else if (message.startsWith("GetSuperclass")) { > String[] args = message.split(" "); > Integer classID = parseCall(args[1], null, Integer.class); > @@ -776,10 +763,7 @@ public class PluginAppletSecurityContext > buf = new StringBuffer(b.length * 2); > buf.append(b.length); > for (int i = 0; i< b.length; i++) > - buf > - .append(" " > - + Integer > - .toString(((int) b[i])& 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i])& 0x0ff, 16)); Cosmetic change - see lower. > > write(reference, "GetStringUTFChars " + buf); > } else if (message.startsWith("GetStringChars")) { > @@ -795,10 +779,7 @@ public class PluginAppletSecurityContext > buf = new StringBuffer(b.length * 2); > buf.append(b.length); > for (int i = 0; i< b.length; i++) > - buf > - .append(" " > - + Integer > - .toString(((int) b[i])& 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i])& 0x0ff, 16)); Cosmetic change - see lower. > > PluginDebug.debug("Java: GetStringChars: ", o); > PluginDebug.debug(" String BYTES: ", buf); > @@ -815,10 +796,7 @@ public class PluginAppletSecurityContext > buf = new StringBuffer(b.length * 2); > buf.append(b.length); > for (int i = 0; i< b.length; i++) > - buf > - .append(" " > - + Integer > - .toString(((int) b[i])& 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i])& 0x0ff, 16)); Cosmetic change - see lower. > > write(reference, "GetToStringValue " + buf); > } else if (message.startsWith("NewArray")) { > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > @@ -1160,43 +1160,21 @@ public class PluginAppletViewer extends > } > > public static void setMember(long internal, String name, Object value) { > - System.err.println("Setting to class " + value.getClass() + ":" + value.getClass().isPrimitive()); > - AppletSecurityContextManager.getSecurityContext(0).store(name); > - int nameID = AppletSecurityContextManager.getSecurityContext(0).getIdentifier(name); > + PluginDebug.debug("Setting to class " + value.getClass() + ":" + value.getClass().isPrimitive()); nice catch, if you will be in mood, you can add this line to cosmetic changes as told below. > + PluginAppletSecurityContext securityContext = AppletSecurityContextManager.getSecurityContext(0); > + securityContext.store(name); > + int nameID = securityContext.getIdentifier(name); > Long reference = getRequestIdentifier(); > > // work on a copy of value, as we don't want to be manipulating > // complex objects > - String valueToSetTo; > - if (value instanceof java.lang.Byte || > - value instanceof java.lang.Character || > - value instanceof java.lang.Short || > - value instanceof java.lang.Integer || > - value instanceof java.lang.Long || > - value instanceof java.lang.Float || > - value instanceof java.lang.Double || > - value instanceof java.lang.Boolean) { > - > - valueToSetTo = "literalreturn " + value.toString(); > - > - // Character -> Str results in str value.. we need int value as > - // per specs. > - if (value instanceof java.lang.Character) { > - valueToSetTo = "literalreturn " + (int) ((java.lang.Character) value).charValue(); > - } else if (value instanceof Float || > - value instanceof Double) { > - valueToSetTo = "literalreturn " + String.format("%308.308e", value); > - } > - > - } else { > - AppletSecurityContextManager.getSecurityContext(0).store(value); > - valueToSetTo = Integer.toString(AppletSecurityContextManager.getSecurityContext(0).getIdentifier(value)); > - } > + String objIDStr = securityContext.toObjectIDString(value, > + value.getClass(), true /* unbox primitives */); > > // Prefix with dummy instance for convenience. > PluginCallRequest request = requestFactory.getPluginCallRequest("void", > "instance " + 0 + " reference " + reference + " SetMember " + > - internal + " " + nameID + " " + valueToSetTo, reference); > + internal + " " + nameID + " " + objIDStr, reference); > > streamhandler.postCallRequest(request); > streamhandler.write(request.getMessage()); > @@ -1218,41 +1196,17 @@ public class PluginAppletViewer extends > > // FIXME: handle long index as well. > public static void setSlot(long internal, int index, Object value) { > - AppletSecurityContextManager.getSecurityContext(0).store(value); > + PluginAppletSecurityContext securityContext = AppletSecurityContextManager.getSecurityContext(0); > + securityContext.store(value); > Long reference = getRequestIdentifier(); > > - // work on a copy of value, as we don't want to be manipulating > - // complex objects > - String valueToSetTo; > - if (value instanceof java.lang.Byte || > - value instanceof java.lang.Character || > - value instanceof java.lang.Short || > - value instanceof java.lang.Integer || > - value instanceof java.lang.Long || > - value instanceof java.lang.Float || > - value instanceof java.lang.Double || > - value instanceof java.lang.Boolean) { > - > - valueToSetTo = "literalreturn " + value.toString(); > - > - // Character -> Str results in str value.. we need int value as > - // per specs. > - if (value instanceof java.lang.Character) { > - valueToSetTo = "literalreturn " + (int) ((java.lang.Character) value).charValue(); > - } else if (value instanceof Float || > - value instanceof Double) { > - valueToSetTo = "literalreturn " + String.format("%308.308e", value); > - } > - > - } else { > - AppletSecurityContextManager.getSecurityContext(0).store(value); > - valueToSetTo = Integer.toString(AppletSecurityContextManager.getSecurityContext(0).getIdentifier(value)); > - } > + String objIDStr = securityContext.toObjectIDString(value, > + value.getClass(), true /* unbox primitives */); > > // Prefix with dummy instance for convenience. > PluginCallRequest request = requestFactory.getPluginCallRequest("void", > "instance " + 0 + " reference " + reference + " SetSlot " + > - internal + " " + index + " " + valueToSetTo, reference); > + internal + " " + index + " " + objIDStr, reference); > > streamhandler.postCallRequest(request); > streamhandler.write(request.getMessage()); > diff --git a/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java b/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java > --- a/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java > +++ b/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java > @@ -55,8 +55,6 @@ public class JSObjectFromEval extends Ap > } > > public void setJSMember(JSObject js, String memb, Object val) { > - String typeName = val.getClass().getName(); > - System.out.println("setJSMember: passed '" + typeName + "'"); Not worthy to keep in debug? Anyway - cosmetic change. See my comment lower. > js.setMember(memb, val); > } > } > \ No newline at end of file > diff --git a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > --- a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > +++ b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > @@ -40,7 +40,6 @@ import static org.junit.Assert.assertTru > import net.sourceforge.jnlp.ProcessResult; > import net.sourceforge.jnlp.ServerAccess.AutoClose; > import net.sourceforge.jnlp.annotations.Bug; > -import net.sourceforge.jnlp.annotations.KnownToFail; > import net.sourceforge.jnlp.annotations.NeedsDisplay; > import net.sourceforge.jnlp.annotations.TestInBrowsers; > import net.sourceforge.jnlp.browsertesting.BrowserTest; > @@ -51,40 +50,37 @@ import org.junit.Test; > > public class JSObjectFromEvalTest extends BrowserTest { > > - private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; > + private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; > > - private static final String JAVA_CREATE = "Java create\n"; > - private static final String JS_CREATE = "JS create\n"; > - private static final String JAVA_SET = "Java set\n"; > - private static final String PASSED_INTEGER = "setJSMember: passed 'java.lang.Integer'\n"; > - private static final String CORRECT_VALUE = "obj.test = 0"; > + private static final String JAVA_CREATE = "Java create\n"; > + private static final String JS_CREATE = "JS create\n"; > + private static final String JAVA_SET = "Java set\n"; > + private static final String CORRECT_VALUE = "obj.test = 0"; > > - @Test > - @TestInBrowsers(testIn = { Browsers.all }) > - @NeedsDisplay > - @Bug(id = { "PR1198" }) > - @KnownToFail > - public void testJSObjectSetMemberIsSet() throws Exception { > - ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", > - AutoClose.CLOSE_ON_BOTH); > + @Test > + @TestInBrowsers(testIn = { Browsers.all }) > + @NeedsDisplay > + @Bug(id = { "PR1198" }) > + public void testJSObjectSetMemberIsSet() throws Exception { > + ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", > + AutoClose.CLOSE_ON_BOTH); > > - String expectedJSCreateOutput = JS_CREATE + JAVA_SET + PASSED_INTEGER > - + CORRECT_VALUE; > - String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET > - + PASSED_INTEGER + CORRECT_VALUE; > + String expectedJSCreateOutput = JS_CREATE + JAVA_SET + CORRECT_VALUE; > + String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET > + + CORRECT_VALUE; > > - // No reason JS create should fail, this is mostly a sanity check: > - assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE > - + "' but did not.", pr.stdout.contains(expectedJSCreateOutput)); > + // No reason JS create should fail, this is mostly a sanity check: > + assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE > + + "' but did not.", pr.stdout.contains(expectedJSCreateOutput)); > > - // Demonstrates PR1198: > - assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE > - + "' but did not.", > - pr.stdout.contains(expectedJavaCreateOutput)); > + // Demonstrates PR1198: > + assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE > + + "' but did not.", > + pr.stdout.contains(expectedJavaCreateOutput)); > > - // Make sure we got to the end of the script > - assertTrue("stdout should contain '" + END_STRING + "' but did not.", > - pr.stdout.contains(END_STRING)); > - } > + // Make sure we got to the end of the script > + assertTrue("stdout should contain '" + END_STRING + "' but did not.", > + pr.stdout.contains(END_STRING)); > + } > > } Cosmetic changes - normlay I'm for smughling small cosmetich changes which were found during coding, especially somnething like > - buf > - .append(" " > - + Integer > - .toString(((int) b[i])& 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i])& 0x0ff, 16)); :)) into patch. But there is one whole refacotred file and little bit more. If you will be willing can you separate the changes? You can push the comsetic changes directly. Well and then you will start to hate me with removing of KnowToFail... Thanx for fix. J. ps: Try to check js<->java automated tests and manual liveConnect testuite. I think there wil be some hddien fixes by this aptch. Adnd With some luck also no regressions;) Maybe jana Can meassure those results for you. She is th eguru of liveConnect testing afterall.. pps: Dont take me wrong, this is really nice cleanup and fix. From ptisnovs at icedtea.classpath.org Fri Jan 4 05:02:08 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 04 Jan 2013 13:02:08 +0000 Subject: /hg/icedtea7: Fixed build failure caused by changes in one Makef... Message-ID: changeset 2836b3c6739b in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=2836b3c6739b author: Pavel Tisnovsky date: Fri Jan 04 14:59:32 2013 +0100 Fixed build failure caused by changes in one Makefile altered by this patch (make/sun/rmi/rmi/Makefile). diffstat: ChangeLog | 6 ++++++ patches/boot/use_target_6_for_bootstrap_classes.patch | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diffs (36 lines): diff -r 3e3ebf551eb1 -r 2836b3c6739b ChangeLog --- a/ChangeLog Fri Jan 04 01:05:06 2013 +0000 +++ b/ChangeLog Fri Jan 04 14:59:32 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-04 Pavel Tisnovsky + + * patches/boot/use_target_6_for_bootstrap_classes.patch: + Fixed build failure caused by changes in one Makefile altered by this + patch (make/sun/rmi/rmi/Makefile). + 2013-01-03 Andrew John Hughes * patches/nss-not-enabled-config.patch: diff -r 3e3ebf551eb1 -r 2836b3c6739b patches/boot/use_target_6_for_bootstrap_classes.patch --- a/patches/boot/use_target_6_for_bootstrap_classes.patch Fri Jan 04 01:05:06 2013 +0000 +++ b/patches/boot/use_target_6_for_bootstrap_classes.patch Fri Jan 04 14:59:32 2013 +0100 @@ -26,15 +26,16 @@ diff -r 9cf5ed6b45d6 make/sun/rmi/rmi/Makefile --- openjdk-boot/jdk/make/sun/rmi/rmi/Makefile Mon Jul 25 16:20:39 2011 -0700 +++ openjdk-boot/jdk/make/sun/rmi/rmi/Makefile Thu Jul 28 03:12:35 2011 +0100 -@@ -33,6 +33,9 @@ - LIBRARY = rmi +@@ -34,6 +32,10 @@ + PRODUCT = sun include $(BUILDDIR)/common/Defs.gmk +LANGUAGE_VERSION = -source 6 +CLASS_VERSION = -target 6 + ++ # - # Add use of a mapfile + # Java files to compile. # diff -r 9cf5ed6b45d6 make/com/sun/jndi/rmi/registry/Makefile --- openjdk-boot/jdk/make/com/sun/jndi/rmi/registry/Makefile Mon Jul 25 16:20:39 2011 -0700 From adomurad at redhat.com Fri Jan 4 08:09:12 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 04 Jan 2013 11:09:12 -0500 Subject: [rfc][icedtea-web] Fix for resolving name of versioned jar in JNLP Message-ID: <50E6FEA8.3010407@redhat.com> Hi all. This fixes a bug in the versioning of jars, described here http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/avoidingUnnecessaryUpdateChecks.html . This bug prevented Spring jars such as j2-org.springframework.beans.jar from downloading with the proper versioned name when I looked into problems with the JNLP game 'ADOM2'. Eg, j2-org.springframework.beans.jar with version 1.0 expected: j2-org.springframework.beans__V1.0.jar result: j2-org__V1.0.springframework.beans.jar The fix was easy, however I have added a few extra tests because this part of the code did not seem to be under test (please do inform me if it is tested somewhere). The specific problem is tested in the unit-test ResourceUrlCreatorTest.testVersionWithPeriods 2013-01-04 Adam Domurad Fix for resolving name of versioned jar in JNLP. * netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java (getUrl): Fix versioning of jar names that have periods, eg 'foo.bar.jar'. Make method static for testing. * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceUrlCreatorTest.java: New, test version & pack URL encoding. * tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarDisabled.jnlp: New, tries to use versioned jar with versioning not turned on. * tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarEnabled.jnlp: New, tries to use versioned jar with versioning turned on. * tests/reproducers/simple/VersionedJar__V1/srcs/VersionedJar.java: New, prints simple message. * tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java: New, tests if VersionedJar has ran only with versioning turned on. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: versionedurlfix.patch Type: text/x-patch Size: 14614 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130104/0ae44891/versionedurlfix.patch From adomurad at redhat.com Fri Jan 4 08:35:17 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 04 Jan 2013 11:35:17 -0500 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50E5ACDF.7080609@redhat.com> References: <50E5ACDF.7080609@redhat.com> Message-ID: <50E704C5.4060300@redhat.com> On 01/03/2013 11:07 AM, Jiri Vanek wrote: > Hi! > > This patch is adding "show details" to download indicator. For One jar > jnlp files it behaviour is unaffected. For Multiple jars there is just > one progress bar, but can be shown "old stile" detailed one via > clicking to "Show details". Then can be minimalised by "hide > details". Button is localised. > > The button is nasty not nice.. Any better idea? but still this is > better then previous approach. > > Looking forward to have this inside! > > Best rigards > J. Thanks for looking into this! I was actually comparing our download indicator to proprietary just yesterday, while staring at multiple jars downloading. The average user does not want to know about the jars being downloaded, in fact I think such information can look scary :-). > diff -r 9549226afa8f > netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java > --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java > Thu Jan 03 09:54:16 2013 +0100 > +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java > Thu Jan 03 17:07:28 2013 +0100 > @@ -62,6 +62,7 @@ > > /** shared constraint */ > static GridBagConstraints vertical; > + static GridBagConstraints verticalNoClean; > static GridBagConstraints verticalIndent; > static { > vertical = new GridBagConstraints(); > @@ -70,8 +71,12 @@ > vertical.fill = GridBagConstraints.HORIZONTAL; > vertical.anchor = GridBagConstraints.WEST; > > + verticalNoClean = new GridBagConstraints(); > + verticalNoClean.weightx = 1.0; > + > verticalIndent = (GridBagConstraints) vertical.clone(); > verticalIndent.insets = new Insets(0, 10, 3, 0); > + Nit: These two blank lines (and all the ones added below) have tabs :-) > } > > /** > @@ -114,15 +119,15 @@ > > frame.getContentPane().add(result, vertical); > frame.pack(); > - > if (!frame.isVisible()) { > - Dimension screenSize = > Toolkit.getDefaultToolkit().getScreenSize(); > - Insets insets = > Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); > - Dimension screen = new Dimension(screenSize.width - > insets.left, > - screenSize.height - insets.top); > - frame.setLocation(screen.width - frame.getWidth(), > - screen.height - frame.getHeight()); > + placeFrameToLowerRight(); > } > + result.addComponentListener(new ComponentAdapter() { > + @Override > + public void componentResized(ComponentEvent e) { > + placeFrameToLowerRight(); > + } > + }); > > frame.setVisible(true); > > @@ -131,6 +136,32 @@ > } > > /** > + * The insets are calculated differently during first appearance > + * and during another appearance in case of some configurations. > + * > + * So the first value is stored to avoid jumping of window during > later packing > + * of frame. > + * > + * However the second calculation is more correct:( > + * > + * This is affecting only multiple monitors which have different > assets. > + * The underlying issue is that > Toolkit.getDefaultToolkit().getScreenInsets > + * is returning assets for "random" monitor. > + */ > + Dimension screen = null; > + > + private void placeFrameToLowerRight() throws HeadlessException { > + if (screen == null) { > + Dimension screenSize = > Toolkit.getDefaultToolkit().getScreenSize(); > + Insets insets = > Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); > + screen = new Dimension(screenSize.width - insets.left, > + screenSize.height - insets.top); > + } > + frame.setLocation(screen.width - frame.getWidth(), > + screen.height - frame.getHeight()); > + } > + > + /** > * Remove a download service listener that was obtained by > * calling the getDownloadListener method from the shared > * download info window. > @@ -163,12 +194,26 @@ > * Groups the url progress in a panel. > */ > static class DownloadPanel extends JPanel implements > DownloadServiceListener { > - > + private static enum States{ > + oneJAr, collapsed, detailed; Enums should be all-caps > + > + } > + > + private static final String DETAILS=R("ButShowDetails"); > + private static final String HIDE_DETAILS=R("ButHideDetails"); > /** the download name */ > private String downloadName; > > /** Downloading part: */ > private JLabel header = new JLabel(); > + /** Show/hide details button: */ > + private JButton details = new JButton(DETAILS); > + /** used instead of details button in case of one jar*/ > + private JLabel delimiter = new JLabel(""); > + /** all already created progress bars*/ > + private List progressPanels = new > ArrayList(); > + private States state=States.oneJAr; > + private ProgressPanel mainProgressPanel; > > /** list of URLs being downloaded */ > private List urls = new ArrayList(); > @@ -176,6 +221,7 @@ > /** list of ProgressPanels */ > private List panels = new > ArrayList(); > > + Nit: two blank lines are unnecessary. > /** > * Create a new download panel for with the specified download > * name. > @@ -184,9 +230,35 @@ > setLayout(new GridBagLayout()); > > this.downloadName = downloadName; > - this.add(header, vertical); > + this.add(header, verticalNoClean); > header.setFont(header.getFont().deriveFont(Font.BOLD)); > - > + this.add(delimiter, vertical); > + details.addActionListener(new ActionListener() { > + @Override > + public void actionPerformed(ActionEvent e) { > + if (state == States.detailed) { > + state = States.collapsed; > + details.setText(DETAILS); > + for (ProgressPanel progressPanel : > progressPanels) { > + remove(progressPanel); > + } > + add(mainProgressPanel, verticalIndent); > + synchronized (frameMutex) { > + frame.pack(); > + } > + } else { > + state = States.detailed; > + details.setText(HIDE_DETAILS); > + remove(mainProgressPanel); > + for (ProgressPanel progressPanel : > progressPanels) { > + add(progressPanel, verticalIndent); > + } > + synchronized (frameMutex) { > + frame.pack(); > + } > + } > + } > + }); > setOverallPercent(0); > } > > @@ -196,14 +268,25 @@ > protected void addProgressPanel(URL url, String version) { > if (!urls.contains(url)) { > ProgressPanel panel = new ProgressPanel(url, version); > - > - add(panel, verticalIndent); > + if (state != States.collapsed) { > + add(panel, verticalIndent); > + } > + progressPanels.add(panel); > + urls.add(url); > + panels.add(panel); > + if (panels.size() == 2){ Small comment here would be good explaining why this 'magic number' > + remove(panels.get(0)); > + remove(panels.get(1)); > + remove(delimiter); > + add(details,vertical); > + mainProgressPanel=new ProgressPanel(); > + add(mainProgressPanel, verticalIndent); > + state=States.collapsed; > + } > synchronized (frameMutex) { > frame.pack(); > } > > - urls.add(url); > - panels.add(panel); > } > } > > @@ -219,10 +302,10 @@ > addProgressPanel(url, version); > > setOverallPercent(overallPercent); > - > ProgressPanel panel = panels.get(urls.indexOf(url)); > panel.setProgress(readSoFar, total); > panel.repaint(); > + > } > }; > SwingUtilities.invokeLater(r); > @@ -230,12 +313,28 @@ > > /** > * Sets the overall percent completed. > + * should be called via invokeLater > */ > public void setOverallPercent(int percent) { > // don't get whole string from resource and sub in > // values because it'll be doing a MessageFormat for > // each update. > header.setText(downloading + " " + downloadName + ": " + > percent + "% " + complete + "."); > + Container c = header.getParent(); > + //we need to adapt nbboth panels and also frame to new > length of header text nbboth > both > + while (c != null) { > + c.invalidate(); > + c.validate(); > + if (c instanceof Window){ > + ((Window) c).pack(); > + } > + c=c.getParent(); > + } > + > + if (mainProgressPanel != null) { > + mainProgressPanel.setProgress(percent, 100); > + mainProgressPanel.repaint(); > + } > } > > /** > @@ -276,12 +375,28 @@ > > private long total; > private long readSoFar; > + private Dimension size = new Dimension(80, 15); > > + ProgressPanel() { > + bar.setMinimumSize(size); > + bar.setPreferredSize(size); > + bar.setOpaque(false); > + > + setLayout(new GridBagLayout()); > + > + GridBagConstraints gbc = new GridBagConstraints(); > + styleGridBagConstraints(gbc); > + add(bar, gbc); > + } > + > ProgressPanel(URL url, String version) { > - JLabel location = new JLabel(" " + url.getHost() + "/" + > url.getFile()); > + this(" " + url.getHost() + "/" + url.getFile(),version); > + } > + ProgressPanel(String caption, String version) { > + JLabel location = new JLabel(caption); > > - bar.setMinimumSize(new Dimension(80, 15)); > - bar.setPreferredSize(new Dimension(80, 15)); > + bar.setMinimumSize(size); > + bar.setPreferredSize(size); > bar.setOpaque(false); > > setLayout(new GridBagLayout()); > @@ -291,12 +406,8 @@ > gbc.fill = GridBagConstraints.NONE; > gbc.gridwidth = GridBagConstraints.RELATIVE; > add(bar, gbc); > - > - gbc.insets = new Insets(0, 3, 0, 0); > - gbc.weightx = 1.0; > - gbc.fill = GridBagConstraints.HORIZONTAL; > - gbc.gridwidth = GridBagConstraints.REMAINDER; > - gbc.anchor = GridBagConstraints.WEST; > + > + styleGridBagConstraints(gbc); > add(location, gbc); > } > > @@ -325,6 +436,14 @@ > g.fillRect(x + 1, y + 1, divide - 1, h - 1); > } > } > + > + private void styleGridBagConstraints(GridBagConstraints gbc) { > + gbc.insets = new Insets(0, 3, 0, 0); > + gbc.weightx = 1.0; > + gbc.fill = GridBagConstraints.HORIZONTAL; > + gbc.gridwidth = GridBagConstraints.REMAINDER; > + gbc.anchor = GridBagConstraints.WEST; > + } > }; > > } Code looks OK nits aside. As for button ... yes it is nasty. IMO maybe we can take different approach here. The people interested in how the individual jars are downloading would mainly be 1. us trying to fix jar loading issues, 2. developers looking into jar loading issues. So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this on/off ? It can be argued it is a bit hard for developers to access, but it isn't any easier to access this information from oracle plugin. As well, I would be very happy to see the loading bar integrated with the splash screen (if splash screen is on). I believe this would nicely complement the user friendliness of the splash screen. Happy hacking, -Adam From adomurad at redhat.com Fri Jan 4 09:19:41 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 04 Jan 2013 12:19:41 -0500 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50E6A438.1010605@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> Message-ID: <50E70F2D.2070805@redhat.com> On 01/04/2013 04:43 AM, Jiri Vanek wrote: > On 12/03/2012 08:03 PM, Adam Domurad wrote: >> On 11/30/2012 04:08 PM, Adam Domurad wrote: >>> Hi all. Attached is a fix for PR1198. >>> >>> I still plan to write unit tests for at least the new method >>> PluginAppletViewer.toObjectIDString, but I wanted to get this out >>> before leaving for the weekend. >>> >>> One tricky thing with this patch was that it had to consolidate _a >>> lot_ of duplicated functionality (actually I found some subtle >>> differences in handling, this should be more consistent). Once that >>> was done the actual patch was fairly straight forward. >>> >>> The basic issue was that JSObject was being passed as if it were a >>> normal Java object, when the liveconnect spec specifies that it >>> should be returned as the underlying javascript object. >>> >>> A method was added to JSObject to get the underlying reference. This >>> was kept package-private to not pollute its public interface. As >>> well, a new permission was added for accessing this method. To >>> access this outside of the package, a utility was created in JSUtil. >>> >>> This patch adds a special case to Java->JS communication when >>> sending objects, to indicate that a Javascript object is being passed. >>> >>> With patch applied, JSObjectFromEval should pass in all browsers. >>> >>> 2012-11-30 Adam Domurad >>> >>> Fix PR1198: JSObject passed incorrectly to Javascript >>> * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Pass extra >>> data for >>> 'jsobject' object result messages. >>> * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same. >>> * plugin/icedteanp/IcedTeaPluginUtils.cc: Add special casing of >>> javascript references passed from java. >>> * >>> plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java: >>> New permission for unboxing a JSObject's internal reference. >>> * plugin/icedteanp/java/netscape/javascript/JSObject.java >>> (getInternalReference): New, package-private, retrieves internal >>> reference (Must have proper permission). >>> * plugin/icedteanp/java/netscape/javascript/JSUtil.java >>> (getJSObjectInternalReference) New, utility for accessing >>> JSObject#getInternalReference from outside the package. >>> * >>> plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >>> (toObjectIDString): New, creates a string that precisely >>> identifies a >>> Java object. >>> (handleMessage): Replace a lot of duplicated functionality with >>> 'toObjectIDString'. >>> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Replace >>> duplicated functionality with 'toObjectIDString'. >>> * >>> tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: >>> Don't print out type passed (differs from browser to browser). >>> * >>> tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: >>> Don't check type passed (differs from browser to browser). Remove >>> known-to-fail. Reformat. >> >> As promised attached is the unit-test for the newly introduced >> Java->JS function (which encapsulates logic that was duplicated in >> many areas) >> >> Note that this patch contains a Makefile patch for unit testing >> sun.applet package, however this will be committed with another >> now-approved patch so I have left it out of the ChangeLog. >> >> ChangeLog: >> 2012-12-XX Adam Domurad >> >> Unit test for PluginAppletSecurityContext#toObjectIDString. Make >> PluginAppletSecurityContext more unit-testable. >> * >> plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >> Don't initialize security manager in constructor. Fix a few >> Java->JS >> corner cases. >> * plugin/icedteanp/java/sun/applet/PluginMain.java: Initialize >> SecurityManager before creating PluginAppletSecurityContext. >> * tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java: >> Unit test for all the corner cases of converting a Java object to a >> string that can be precisely identified. >> >> Happy hacking, >> -Adam >> >> > > Tests first. A lot of questions.... > >> jsfix-unittest.patch >> >> >> diff --git a/Makefile.am b/Makefile.am >> --- a/Makefile.am >> +++ b/Makefile.am >> @@ -969,7 +969,7 @@ stamps/netx-unit-tests-compile.stamp: st >> mkdir -p $(NETX_UNIT_TEST_DIR)&& \ >> $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ >> -d $(NETX_UNIT_TEST_DIR) \ >> - -classpath >> $(JUNIT_JAR):$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) \ >> + -classpath >> $(JUNIT_JAR):$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar:$(NETX_DIR)/lib/classes.jar:$(TEST_EXTENSIONS_DIR) >> \ >> @netx-unit-tests-source-files.txt&& \ >> mkdir -p stamps&& \ >> touch $@ >> @@ -999,7 +999,7 @@ stamps/run-netx-unit-tests.stamp: stamps >> done ; \ >> cd $(NETX_UNIT_TEST_DIR) ; \ >> class_names=`cat $(UNIT_CLASS_NAMES)` ; \ >> - >> CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):. >> \ >> + >> CLASSPATH=$(NETX_DIR)/lib/classes.jar:$(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar:$(JUNIT_JAR):$(JUNIT_RUNNER_JAR):$(TEST_EXTENSIONS_DIR):. >> \ > > Just for confirmation, I remember both those changes already in, > little bit better (without installed path) This is already in, yes > >> $(BOOT_DIR)/bin/java -Xbootclasspath:$(RUNTIME) CommandLine >> $$class_names >> if WITH_XSLTPROC >> $(XSLTPROC) --stringparam logs logs_unit.html >> $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl >> $(NETX_UNIT_TEST_DIR)/tests-output.xml> $(TESTS_DIR)/index_unit.html >> diff --git >> a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> @@ -53,7 +53,6 @@ import java.security.Permissions; >> import java.security.PrivilegedAction; >> import java.security.ProtectionDomain; >> import java.util.ArrayList; >> -import java.util.Arrays; >> import java.util.Hashtable; >> import java.util.List; >> import java.util.Map; >> @@ -241,16 +240,6 @@ public class PluginAppletSecurityContext >> public PluginAppletSecurityContext(int identifier) { >> this.identifier = identifier; >> >> - // We need a security manager.. and since there is a good >> chance that >> - // an applet will be loaded at some point, we should make it >> the SM >> - // that JNLPRuntime will try to install >> - if (System.getSecurityManager() == null) { >> - JNLPRuntime.initialize(/* isApplication */false); >> - JNLPRuntime.setDefaultLaunchHandler(new >> DefaultLaunchHandler(System.err)); >> - } >> - >> - JNLPRuntime.disableExit(); >> - > > Can't the moving of this initiliazaton cause some hole? This code is invoked exactly once, and I figured this type of thing shouldn't be in a constructor. It was causing problems for my unit tests because of the security manager it installed. A different solution is welcome. The problem is I need access to PluginAppletSecurityContext #toObjectIDString. It requires a security context instance. IMO this is an indicator that this class 'does too much' (a class called SecurityContext handling all the liveconnect logic??). If you feel I should do it, I can move liveconnect logic into a different class and then testing will be fine. > What corner cases it fixed? Can't they be fixed by better way? > Anyway - it should be in different changeset. > >> URL u = null; >> try { >> u = new URL("file://"); >> @@ -348,16 +337,16 @@ public class PluginAppletSecurityContext >> */ >> public String toObjectIDString(Object obj, Class type, >> boolean unboxPrimitives) { >> >> + /* Void (can occur from declared return type), pass special >> "void" string: */ >> + if (type == Void.TYPE) { >> + return "literalreturn void"; >> + } >> + >> /* Null, pass special "null" string: */ >> if (obj == null) { >> return "literalreturn null"; >> } >> >> - /* Void (can occur from declared return type), pass special >> "void" string: */ >> - if (type == Void.TYPE) { >> - return "literalreturn void"; >> - } >> - >> /* Primitive, accurately represented by its toString() >> form: */ >> boolean returnAsString = ( type == Boolean.TYPE >> || type == Byte.TYPE >> @@ -378,7 +367,7 @@ public class PluginAppletSecurityContext >> >> /* Floating point number, we ensure we give enough >> precision: */ >> if ( type == Float.TYPE || type == Double.TYPE || >> - ( unboxPrimitives&& (type == Double.class || type >> == Double.class) )) { >> + ( unboxPrimitives&& (type == Float.class || type == >> Double.class) )) { > > Why this? Also Shouldn't it be in different changeset? I will move this into the fix itself, they were bugs discovered during unit testing :-) [.. rest snipped..] From adomurad at icedtea.classpath.org Fri Jan 4 09:32:23 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Fri, 04 Jan 2013 17:32:23 +0000 Subject: /hg/icedtea-web: Minor code formatting & cosmetic changes Message-ID: changeset e335e39c382b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=e335e39c382b author: Adam Domurad date: Fri Jan 04 12:32:15 2013 -0500 Minor code formatting & cosmetic changes diffstat: ChangeLog | 11 + plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 14 +- plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 10 +- tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java | 2 - tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java | 59 ++++----- 5 files changed, 54 insertions(+), 42 deletions(-) diffs (186 lines): diff -r b758667cc17c -r e335e39c382b ChangeLog --- a/ChangeLog Thu Jan 03 13:17:37 2013 -0500 +++ b/ChangeLog Fri Jan 04 12:32:15 2013 -0500 @@ -1,3 +1,14 @@ +2013-01-04 Adam Domurad + + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: + Code-formatting fixes and cosmetic changes. + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: + Same. + * tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: + Same. + * tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: + Same. + 2013-01-03 Adam Domurad Fix breakage in unit test CodeBaseClassLoaderTest.testParentClassLoaderIsAskedForClassesApplication diff -r b758667cc17c -r e335e39c382b plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Thu Jan 03 13:17:37 2013 -0500 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Fri Jan 04 12:32:15 2013 -0500 @@ -53,13 +53,16 @@ import java.security.PrivilegedAction; import java.security.ProtectionDomain; import java.util.ArrayList; +import java.util.Arrays; import java.util.Hashtable; import java.util.List; import java.util.Map; +import net.sourceforge.jnlp.DefaultLaunchHandler; import net.sourceforge.jnlp.runtime.JNLPRuntime; -import net.sourceforge.jnlp.DefaultLaunchHandler; +import netscape.javascript.JSObject; import netscape.javascript.JSObjectCreatePermission; +import netscape.javascript.JSUtil; class Signature { private String signature; @@ -489,9 +492,7 @@ final Object fValue = MethodOverloadResolver.getCostAndCastedObject(value, f.getType())[1]; AccessControlContext acc = callContext != null ? callContext : getClosedAccessControlContext(); - checkPermission(src, - message.startsWith("SetStaticField") ? (Class) o : o.getClass(), - acc); + checkPermission(src, message.startsWith("SetStaticField") ? (Class) o : o.getClass(), acc); Object ret = AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -514,8 +515,9 @@ Integer arrayID = parseCall(args[1], null, Integer.class); Integer index = parseCall(args[2], null, Integer.class); - Object ret = Array.get(store.getObject(arrayID), index); - Class retClass = store.getObject(arrayID).getClass().getComponentType(); // prevent auto-boxing influence + Object array = store.getObject(arrayID); + Object ret = Array.get(array, index); + Class retClass = array.getClass().getComponentType(); // prevent auto-boxing influence if (ret == null) { write(reference, "GetObjectArrayElement literalreturn null"); diff -r b758667cc17c -r e335e39c382b plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu Jan 03 13:17:37 2013 -0500 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Fri Jan 04 12:32:15 2013 -0500 @@ -1014,9 +1014,10 @@ } public static void setMember(long internal, String name, Object value) { - System.err.println("Setting to class " + value.getClass() + ":" + value.getClass().isPrimitive()); - AppletSecurityContextManager.getSecurityContext(0).store(name); - int nameID = AppletSecurityContextManager.getSecurityContext(0).getIdentifier(name); + PluginDebug.debug("Setting to class " + value.getClass() + ":" + value.getClass().isPrimitive()); + PluginAppletSecurityContext securityContext = AppletSecurityContextManager.getSecurityContext(0); + securityContext.store(name); + int nameID = securityContext.getIdentifier(name); Long reference = getRequestIdentifier(); // work on a copy of value, as we don't want to be manipulating @@ -1072,7 +1073,8 @@ // FIXME: handle long index as well. public static void setSlot(long internal, int index, Object value) { - AppletSecurityContextManager.getSecurityContext(0).store(value); + PluginAppletSecurityContext securityContext = AppletSecurityContextManager.getSecurityContext(0); + securityContext.store(value); Long reference = getRequestIdentifier(); // work on a copy of value, as we don't want to be manipulating diff -r b758667cc17c -r e335e39c382b tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java --- a/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java Thu Jan 03 13:17:37 2013 -0500 +++ b/tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java Fri Jan 04 12:32:15 2013 -0500 @@ -55,8 +55,6 @@ } public void setJSMember(JSObject js, String memb, Object val) { - String typeName = val.getClass().getName(); - System.out.println("setJSMember: passed '" + typeName + "'"); js.setMember(memb, val); } } \ No newline at end of file diff -r b758667cc17c -r e335e39c382b tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java --- a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java Thu Jan 03 13:17:37 2013 -0500 +++ b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java Fri Jan 04 12:32:15 2013 -0500 @@ -37,10 +37,11 @@ import static org.junit.Assert.assertTrue; +import net.sourceforge.jnlp.annotations.KnownToFail; + import net.sourceforge.jnlp.ProcessResult; import net.sourceforge.jnlp.ServerAccess.AutoClose; import net.sourceforge.jnlp.annotations.Bug; -import net.sourceforge.jnlp.annotations.KnownToFail; import net.sourceforge.jnlp.annotations.NeedsDisplay; import net.sourceforge.jnlp.annotations.TestInBrowsers; import net.sourceforge.jnlp.browsertesting.BrowserTest; @@ -51,40 +52,38 @@ public class JSObjectFromEvalTest extends BrowserTest { - private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; + private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; - private static final String JAVA_CREATE = "Java create\n"; - private static final String JS_CREATE = "JS create\n"; - private static final String JAVA_SET = "Java set\n"; - private static final String PASSED_INTEGER = "setJSMember: passed 'java.lang.Integer'\n"; - private static final String CORRECT_VALUE = "obj.test = 0"; + private static final String JAVA_CREATE = "Java create\n"; + private static final String JS_CREATE = "JS create\n"; + private static final String JAVA_SET = "Java set\n"; + private static final String CORRECT_VALUE = "obj.test = 0"; - @Test - @TestInBrowsers(testIn = { Browsers.all }) - @NeedsDisplay - @Bug(id = { "PR1198" }) - @KnownToFail - public void testJSObjectSetMemberIsSet() throws Exception { - ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", - AutoClose.CLOSE_ON_BOTH); + @Test + @TestInBrowsers(testIn = { Browsers.all }) + @NeedsDisplay + @KnownToFail + @Bug(id = { "PR1198" }) + public void testJSObjectSetMemberIsSet() throws Exception { + ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", + AutoClose.CLOSE_ON_BOTH); - String expectedJSCreateOutput = JS_CREATE + JAVA_SET + PASSED_INTEGER - + CORRECT_VALUE; - String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET - + PASSED_INTEGER + CORRECT_VALUE; + String expectedJSCreateOutput = JS_CREATE + JAVA_SET + CORRECT_VALUE; + String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET + + CORRECT_VALUE; - // No reason JS create should fail, this is mostly a sanity check: - assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE - + "' but did not.", pr.stdout.contains(expectedJSCreateOutput)); + // No reason JS create should fail, this is mostly a sanity check: + assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE + + "' but did not.", pr.stdout.contains(expectedJSCreateOutput)); - // Demonstrates PR1198: - assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE - + "' but did not.", - pr.stdout.contains(expectedJavaCreateOutput)); + // Demonstrates PR1198: + assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE + + "' but did not.", + pr.stdout.contains(expectedJavaCreateOutput)); - // Make sure we got to the end of the script - assertTrue("stdout should contain '" + END_STRING + "' but did not.", - pr.stdout.contains(END_STRING)); - } + // Make sure we got to the end of the script + assertTrue("stdout should contain '" + END_STRING + "' but did not.", + pr.stdout.contains(END_STRING)); + } } From adomurad at redhat.com Fri Jan 4 11:36:05 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 04 Jan 2013 14:36:05 -0500 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50E6AD9E.9040100@redhat.com> References: <50B92039.4070304@redhat.com> <50E6AD9E.9040100@redhat.com> Message-ID: <50E72F25.1030903@redhat.com> On 01/04/2013 05:23 AM, Jiri Vanek wrote: > [.. snipped..] As you suggested, I have separated the cosmetic changes and pushed them. It did prove quite tricky, though. >> >> diff --git a/NEWS b/NEWS >> --- a/NEWS >> +++ b/NEWS >> @@ -19,6 +19,7 @@ New in release 1.4 (2012-XX-XX): >> * Plugin >> - PR1106: Buffer overflow in plugin table- >> - PR1166: Embedded JNLP File is not supported in applet tag >> + - PR1198: JSObject is not passed to javascript correctly >> * Common >> - PR1049: Extension jnlp's signed jar with the content of only >> META-INF/* is considered >> - PR955: regression: SweetHome3D fails to run >> diff --git a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >> b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >> --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >> +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >> @@ -131,7 +131,7 @@ JavaRequestProcessor::newMessageOnBus(co >> !message_parts->at(4)->find("GetObjectArrayElement")) >> { >> >> - if (!message_parts->at(5)->find("literalreturn")) >> + if (!message_parts->at(5)->find("literalreturn") || >> !message_parts->at(5)->find("jsobject")) >> { >> // literal returns don't have a corresponding >> jni id >> result->return_identifier = 0; >> diff --git a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >> b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >> --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >> +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >> @@ -413,7 +413,7 @@ PluginRequestProcessor::setMember(std::v >> member = (NPVariant*) >> (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); >> propertyNameID = *(message_parts->at(6)); >> >> - if (*(message_parts->at(7)) == "literalreturn") >> + if (*(message_parts->at(7)) == "literalreturn" || >> *(message_parts->at(7)) == "jsobject" ) >> { >> value.append(*(message_parts->at(7))); >> value.append(" "); >> diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc >> b/plugin/icedteanp/IcedTeaPluginUtils.cc >> --- a/plugin/icedteanp/IcedTeaPluginUtils.cc >> +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc >> @@ -776,6 +776,14 @@ javaStringResultToNPVariant(const std::s >> } >> >> static bool >> +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* >> variant) >> +{ >> + NPVariant* result_variant = (NPVariant*) >> IcedTeaPluginUtilities::stringToJSID(js_id); >> + *variant = *result_variant; >> + return true; >> +} > > It returns always true?? Maybe void or *variant? I left this accidentally after it could no longer fail, made it void. > >> + >> +static bool >> javaObjectResultToNPVariant(NPP instance, const std::string& >> jobject_id, NPVariant* variant) >> { >> // Reference the class object so we can construct an NPObject >> with it and the instance >> @@ -811,9 +819,14 @@ IcedTeaPluginUtilities::javaResultToNPVa >> std::string* java_value, NPVariant* variant) >> { >> int literal_n = sizeof("literalreturn"); // Accounts for one >> space char >> + int jsobject_n = sizeof("jsobject"); // Accounts for one space char >> + >> if (strncmp("literalreturn ", java_value->c_str(), literal_n) >> == 0) >> { >> javaPrimitiveResultToNPVariant(java_value->substr(literal_n), variant); >> + } else if (strncmp("jsobject ", java_value->c_str(), jsobject_n) >> == 0) >> + { >> + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), >> variant); >> } else >> { >> std::string jobject_id = *java_value; >> [... long snip...] >> public void setJSMember(JSObject js, String memb, Object val) { >> - String typeName = val.getClass().getName(); >> - System.out.println("setJSMember: passed '" + typeName + "'"); > Not worthy to keep in debug? > Anyway - cosmetic change. See my comment lower. No, this was part of the expected reproducer output. It was removed from the checks because the type is dependent on the browser. It was causing failures on some browsers. I have pushed it with my cosmetic changes anyway. >> js.setMember(memb, val); >> } >> } >> \ No newline at end of file >> diff --git >> a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >> >> --- >> a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >> +++ >> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >> @@ -40,7 +40,6 @@ import static org.junit.Assert.assertTru >> import net.sourceforge.jnlp.ProcessResult; >> import net.sourceforge.jnlp.ServerAccess.AutoClose; >> import net.sourceforge.jnlp.annotations.Bug; >> -import net.sourceforge.jnlp.annotations.KnownToFail; >> import net.sourceforge.jnlp.annotations.NeedsDisplay; >> import net.sourceforge.jnlp.annotations.TestInBrowsers; >> import net.sourceforge.jnlp.browsertesting.BrowserTest; >> @@ -51,40 +50,37 @@ import org.junit.Test; >> >> public class JSObjectFromEvalTest extends BrowserTest { >> >> - private static final String END_STRING = >> AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >> + private static final String END_STRING = >> AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >> >> - private static final String JAVA_CREATE = "Java create\n"; >> - private static final String JS_CREATE = "JS create\n"; >> - private static final String JAVA_SET = "Java set\n"; >> - private static final String PASSED_INTEGER = "setJSMember: >> passed 'java.lang.Integer'\n"; >> - private static final String CORRECT_VALUE = "obj.test = 0"; >> + private static final String JAVA_CREATE = "Java create\n"; >> + private static final String JS_CREATE = "JS create\n"; >> + private static final String JAVA_SET = "Java set\n"; >> + private static final String CORRECT_VALUE = "obj.test = 0"; >> >> - @Test >> - @TestInBrowsers(testIn = { Browsers.all }) >> - @NeedsDisplay >> - @Bug(id = { "PR1198" }) >> - @KnownToFail >> - public void testJSObjectSetMemberIsSet() throws Exception { >> - ProcessResult pr = >> server.executeBrowser("/JSObjectFromEval.html", >> - AutoClose.CLOSE_ON_BOTH); >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + @Bug(id = { "PR1198" }) >> + public void testJSObjectSetMemberIsSet() throws Exception { >> + ProcessResult pr = >> server.executeBrowser("/JSObjectFromEval.html", >> + AutoClose.CLOSE_ON_BOTH); >> >> - String expectedJSCreateOutput = JS_CREATE + JAVA_SET + >> PASSED_INTEGER >> - + CORRECT_VALUE; >> - String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >> - + PASSED_INTEGER + CORRECT_VALUE; >> + String expectedJSCreateOutput = JS_CREATE + JAVA_SET + >> CORRECT_VALUE; >> + String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >> + + CORRECT_VALUE; >> >> - // No reason JS create should fail, this is mostly a sanity >> check: >> - assertTrue("stdout should contain 'JS create [...] " + >> CORRECT_VALUE >> - + "' but did not.", >> pr.stdout.contains(expectedJSCreateOutput)); >> + // No reason JS create should fail, this is mostly a sanity >> check: >> + assertTrue("stdout should contain 'JS create [...] " + >> CORRECT_VALUE >> + + "' but did not.", >> pr.stdout.contains(expectedJSCreateOutput)); >> >> - // Demonstrates PR1198: >> - assertTrue("stdout should contain 'Java create [...] " + >> CORRECT_VALUE >> - + "' but did not.", >> - pr.stdout.contains(expectedJavaCreateOutput)); >> + // Demonstrates PR1198: >> + assertTrue("stdout should contain 'Java create [...] " + >> CORRECT_VALUE >> + + "' but did not.", >> + pr.stdout.contains(expectedJavaCreateOutput)); >> >> - // Make sure we got to the end of the script >> - assertTrue("stdout should contain '" + END_STRING + "' but >> did not.", >> - pr.stdout.contains(END_STRING)); >> - } >> + // Make sure we got to the end of the script >> + assertTrue("stdout should contain '" + END_STRING + "' but >> did not.", >> + pr.stdout.contains(END_STRING)); >> + } >> >> } > > Cosmetic changes - normlay I'm for smughling small cosmetich changes > which were found during coding, especially somnething like > > - buf > > - .append(" " > > - + Integer > > - .toString(((int) b[i])& 0x0ff, 16)); > > + buf.append(" " + Integer.toString(((int) > b[i])& 0x0ff, 16)); > > :)) > > into patch. But there is one whole refacotred file and little bit > more. If you will be willing can you separate the changes? You can > push the comsetic changes directly. > > Well and then you will start to hate me with removing of KnowToFail... > Thanx for fix. > J. > > > ps: Try to check js<->java automated tests and manual liveConnect > testuite. I think there wil be some hddien fixes by this aptch. Adnd > With some luck also no regressions;) Maybe jana Can meassure those > results for you. She is th eguru of liveConnect testing afterall.. > pps: Dont take me wrong, this is really nice cleanup and fix. Will do. Attached is an updated patch, with some cleanup removed (since it was pushed) and the fixes from my unit test patch added. See my reply to unit test review though -- I need some additional advice on what to do about the security manager problem. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: jsfix3.patch Type: text/x-patch Size: 26866 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130104/2509b0a9/jsfix3.patch From amiko212 at 126.com Sat Jan 5 22:04:01 2013 From: amiko212 at 126.com (liu chao jun) Date: Sun, 6 Jan 2013 14:04:01 +0800 (CST) Subject: Run SPECJVM2008 Error Message-ID: <3d6ca.1e99d.13c0e75688b.Coremail.amiko212@126.com> hi all , A new bug was found when i run SPEJVM2008 after finishing developing icedtea1-11-4 against llvm-3.2 , When it runs ok until startup.scimark.* ,it seems stop but the java process of it is alive ,however if i kill the process of the startup.scimark.* manual the current case is run ok ,but the next is the same , is anybody met this before ? Thank you very much ! BR//Amiko -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130106/99f1f487/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Jan 6 09:31:00 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 06 Jan 2013 17:31:00 +0000 Subject: [Bug 1248] New: Fails to load "NemId" internet banking login applet ("Invalid checksum occurred") Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1248 Bug ID: 1248 Summary: Fails to load "NemId" internet banking login applet ("Invalid checksum occurred") Classification: Unclassified Product: IcedTea Version: 7-1.3 Hardware: arm OS: Linux Status: NEW Severity: major Priority: P3 Component: NPPlugin Assignee: dbhole at redhat.com Reporter: runesvend at gmail.com CC: unassigned at icedtea.classpath.org Created attachment 814 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=814&action=edit firefox terminal output This bug occurs in Firefox running in Ubuntu (armhf) on a Samsung ARM Chromebook. Steps to reproduce: Go to the site https://www.portalbank.dk/6610/ What happens: The plugin on the site fails to load. Errors in the terminal output mention "Invalid checksum occurred". Please let me know if there are additional steps I can take to help diagnose this issue (as I realize not everyone has armhf hardware available, which may be why this bug happens). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130106/87f5384f/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Jan 6 09:32:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 06 Jan 2013 17:32:25 +0000 Subject: [Bug 1248] Fails to load "NemId" internet banking login applet ("Invalid checksum occurred") In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1248 Rune K. Svendsen changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://www.portalbank.dk/6 | |610/ CC| |runesvend at gmail.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130106/03f1fdec/attachment.html From bugzilla-daemon at icedtea.classpath.org Sun Jan 6 15:12:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 06 Jan 2013 23:12:07 +0000 Subject: [Bug 1248] Fails to load "NemId" internet banking login applet ("Invalid checksum occurred") In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1248 Rune K. Svendsen changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #1 from Rune K. Svendsen --- Upon further research, it appears that the applet in question loads x86-specific binaries for execution. The file DanID_Applet.jar contains an x86 ELF file disguised as a GIF file: error.gif: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x24d556c0242ff5b0f28d097a920c4f82d6e89aca, not stripped Apparently this collects various system information to create a "checksum" that is sent to the bank and logged. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130106/8870cca4/attachment.html From ptisnovs at icedtea.classpath.org Mon Jan 7 01:54:39 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 07 Jan 2013 09:54:39 +0000 Subject: /hg/rhino-tests: Added new test and updated three other tests in... Message-ID: changeset 87019bd63c13 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=87019bd63c13 author: Pavel Tisnovsky date: Mon Jan 07 10:57:47 2013 +0100 Added new test and updated three other tests in the test case AbstractScriptEngineClassTest. diffstat: ChangeLog | 6 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 63 +++++++++++++++--- 2 files changed, 59 insertions(+), 10 deletions(-) diffs (152 lines): diff -r f2a6c496bf93 -r 87019bd63c13 ChangeLog --- a/ChangeLog Fri Dec 21 11:21:05 2012 +0100 +++ b/ChangeLog Mon Jan 07 10:57:47 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-07 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Added new test for a method GetCanonicalName(). + Updated tests GetFields(), GetDeclaredFields() and GetField(). + 2012-12-21 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineManagerClassTest.java: diff -r f2a6c496bf93 -r 87019bd63c13 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Fri Dec 21 11:21:05 2012 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Jan 07 10:57:47 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.abstractScriptEngineClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.AbstractScriptEngine", + "Method javax.script.AbstractScriptEngine.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.AbstractScriptEngine.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -341,7 +351,7 @@ */ protected void testGetFields() { // following fields should exists - final String[] fieldsThatShouldExists = { + final String[] fieldsThatShouldExist_jdk6 = { "public static final java.lang.String javax.script.ScriptEngine.ARGV", "public static final java.lang.String javax.script.ScriptEngine.FILENAME", "public static final java.lang.String javax.script.ScriptEngine.ENGINE", @@ -350,6 +360,19 @@ "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE", "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE_VERSION", }; + final String[] fieldsThatShouldExist_jdk7 = { + "public static final java.lang.String javax.script.ScriptEngine.ARGV", + "public static final java.lang.String javax.script.ScriptEngine.FILENAME", + "public static final java.lang.String javax.script.ScriptEngine.ENGINE", + "public static final java.lang.String javax.script.ScriptEngine.ENGINE_VERSION", + "public static final java.lang.String javax.script.ScriptEngine.NAME", + "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE", + "public static final java.lang.String javax.script.ScriptEngine.LANGUAGE_VERSION", + }; + + // get the right array of field signatures + final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + // get all fields Field[] fields = this.abstractScriptEngineClass.getFields(); // and transform the array into a list of field names @@ -358,7 +381,7 @@ fieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { + for (String fieldThatShouldExists : fieldsThatShouldExist) { assertTrue(fieldsAsString.contains(fieldThatShouldExists), "field " + fieldThatShouldExists + " not found"); } @@ -368,10 +391,18 @@ * Test for method javax.script.AbstractScriptEngine.getClass().getDeclaredFields() */ protected void testGetDeclaredFields() { - // following fields should be declared - final String[] fieldsThatShouldExists = { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { "protected javax.script.ScriptContext javax.script.AbstractScriptEngine.context", }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + "protected javax.script.ScriptContext javax.script.AbstractScriptEngine.context", + }; + + // get the right array of field signatures + // following fields should be declared + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + // get all declared fields Field[] declaredFields = this.abstractScriptEngineClass.getDeclaredFields(); // and transform the array into a list of field names @@ -380,9 +411,9 @@ declaredFieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { - assertTrue(declaredFieldsAsString.contains(fieldThatShouldExists), - "field " + fieldThatShouldExists + " not found"); + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + assertTrue(declaredFieldsAsString.contains(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); } } @@ -391,7 +422,7 @@ */ protected void testGetField() { // following fields should exists - final String[] fieldsThatShouldExists = { + final String[] fieldsThatShouldExist_jdk6 = { "ARGV", "FILENAME", "ENGINE", @@ -400,8 +431,20 @@ "LANGUAGE", "LANGUAGE_VERSION", }; + final String[] fieldsThatShouldExist_jdk7 = { + "ARGV", + "FILENAME", + "ENGINE", + "ENGINE_VERSION", + "NAME", + "LANGUAGE", + "LANGUAGE_VERSION", + }; + + final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { + for (String fieldThatShouldExists : fieldsThatShouldExist) { try { Field field = this.abstractScriptEngineClass.getField(fieldThatShouldExists); String fieldName = field.getName(); From ptisnovs at icedtea.classpath.org Mon Jan 7 02:42:46 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 07 Jan 2013 10:42:46 +0000 Subject: /hg/gfx-test: Added two helper methods used to create test images. Message-ID: changeset f58d79d0af5e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=f58d79d0af5e author: Pavel Tisnovsky date: Mon Jan 07 11:45:55 2013 +0100 Added two helper methods used to create test images. Fixed names of two tests and removed one redundant test. Added (c) year. diffstat: ChangeLog | 8 ++ src/org/gfxtest/framework/ImageFactory.java | 82 ++++++++++++++++++++++++ src/org/gfxtest/testsuites/BitBltBasicTests.java | 20 +----- 3 files changed, 92 insertions(+), 18 deletions(-) diffs (149 lines): diff -r c71e4eb14bec -r f58d79d0af5e ChangeLog --- a/ChangeLog Fri Dec 21 10:35:45 2012 +0100 +++ b/ChangeLog Mon Jan 07 11:45:55 2013 +0100 @@ -1,3 +1,11 @@ +2013-01-07 Pavel Tisnovsky + + * src/org/gfxtest/framework/ImageFactory.java: + Added two helper methods used to create test images. + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Fixed names of two tests and removed one redundant test. + Added (c) year. + 2012-12-21 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: diff -r c71e4eb14bec -r f58d79d0af5e src/org/gfxtest/framework/ImageFactory.java --- a/src/org/gfxtest/framework/ImageFactory.java Fri Dec 21 10:35:45 2012 +0100 +++ b/src/org/gfxtest/framework/ImageFactory.java Mon Jan 07 11:45:55 2013 +0100 @@ -651,4 +651,86 @@ // return buffered image containing computed color pattern return image; } + + /** + * Create image containing grayscale gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalGrayscaleGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 16) | (rgb << 8) | rgb; + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing grayscale gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalGrayscaleGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 16) | (rgb << 8) | rgb; + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } } diff -r c71e4eb14bec -r f58d79d0af5e src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Fri Dec 21 10:35:45 2012 +0100 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Mon Jan 07 11:45:55 2013 +0100 @@ -2075,7 +2075,7 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltBWDotsImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltBWDotsBufferedImageTypeByteBinary(TestImage image, Graphics2D graphics2d) { // create new buffered image and then perform basic BitBlt test. return CommonBitmapOperations.doBitBltTestWithBWDotsImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); @@ -2256,7 +2256,7 @@ * graphics canvas * @return test result status - PASSED, FAILED or ERROR */ - public TestResult testBitBltColorDotsImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + public TestResult testBitBltColorDotsBufferedImageTypeByteBinary(TestImage image, Graphics2D graphics2d) { // create new buffered image and then perform basic BitBlt test. return CommonBitmapOperations.doBitBltTestWithColorDotsImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); @@ -2428,22 +2428,6 @@ } /** - * Test basic BitBlt operation for color dots pattern buffered image - * with type TYPE_BYTE_BINARY. - * - * @param image - * image used as a destination for BitBlt-type operations - * @param graphics2d - * graphics canvas - * @return test result status - PASSED, FAILED or ERROR - */ - public TestResult testBitBltColorDotsImageTypeByteIntARGB(TestImage image, Graphics2D graphics2d) - { - // create new buffered image and then perform basic BitBlt test. - return CommonBitmapOperations.doBitBltTestWithColorDotsImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB); - } - - /** * Entry point to the test suite. * * @param args not used in this case From jvanek at redhat.com Mon Jan 7 06:41:35 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 07 Jan 2013 15:41:35 +0100 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50E704C5.4060300@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> Message-ID: <50EADE9F.3000101@redhat.com> On 01/04/2013 05:35 PM, Adam Domurad wrote: > On 01/03/2013 11:07 AM, Jiri Vanek wrote: >> Hi! >> >> This patch is adding "show details" to download indicator. For One jar jnlp files it behaviour is >> unaffected. For Multiple jars there is just one progress bar, but can be shown "old stile" >> detailed one via clicking to "Show details". Then can be minimalised by "hide details". Button is >> localised. >> >> The button is nasty not nice.. Any better idea? but still this is better then previous approach. >> >> Looking forward to have this inside! >> >> Best rigards >> J. > > Thanks for looking into this! I was actually comparing our download indicator to proprietary just > yesterday, while staring at multiple jars downloading. The average user does not want to know about > the jars being downloaded, in fact I think such information can look scary :-). > >> diff -r 9549226afa8f netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >> --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 09:54:16 2013 +0100 >> +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 17:07:28 2013 +0100 >> @@ -62,6 +62,7 @@ >> >> /** shared constraint */ >> static GridBagConstraints vertical; >> + static GridBagConstraints verticalNoClean; >> static GridBagConstraints verticalIndent; >> static { >> vertical = new GridBagConstraints(); >> @@ -70,8 +71,12 @@ >> vertical.fill = GridBagConstraints.HORIZONTAL; >> vertical.anchor = GridBagConstraints.WEST; >> >> + verticalNoClean = new GridBagConstraints(); >> + verticalNoClean.weightx = 1.0; >> + >> verticalIndent = (GridBagConstraints) vertical.clone(); >> verticalIndent.insets = new Insets(0, 10, 3, 0); >> + > > Nit: These two blank lines (and all the ones added below) have tabs :-) > >> } >> >> /** >> @@ -114,15 +119,15 @@ >> >> frame.getContentPane().add(result, vertical); >> frame.pack(); >> - >> if (!frame.isVisible()) { >> - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >> - Insets insets = >> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >> - Dimension screen = new Dimension(screenSize.width - insets.left, >> - screenSize.height - insets.top); >> - frame.setLocation(screen.width - frame.getWidth(), >> - screen.height - frame.getHeight()); >> + placeFrameToLowerRight(); >> } >> + result.addComponentListener(new ComponentAdapter() { >> + @Override >> + public void componentResized(ComponentEvent e) { >> + placeFrameToLowerRight(); >> + } >> + }); >> >> frame.setVisible(true); >> >> @@ -131,6 +136,32 @@ >> } >> >> /** >> + * The insets are calculated differently during first appearance >> + * and during another appearance in case of some configurations. >> + * >> + * So the first value is stored to avoid jumping of window during later packing >> + * of frame. >> + * >> + * However the second calculation is more correct:( >> + * >> + * This is affecting only multiple monitors which have different assets. >> + * The underlying issue is that Toolkit.getDefaultToolkit().getScreenInsets >> + * is returning assets for "random" monitor. >> + */ >> + Dimension screen = null; >> + >> + private void placeFrameToLowerRight() throws HeadlessException { >> + if (screen == null) { >> + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >> + Insets insets = >> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >> + screen = new Dimension(screenSize.width - insets.left, >> + screenSize.height - insets.top); >> + } >> + frame.setLocation(screen.width - frame.getWidth(), >> + screen.height - frame.getHeight()); >> + } >> + >> + /** >> * Remove a download service listener that was obtained by >> * calling the getDownloadListener method from the shared >> * download info window. >> @@ -163,12 +194,26 @@ >> * Groups the url progress in a panel. >> */ >> static class DownloadPanel extends JPanel implements DownloadServiceListener { >> - >> + private static enum States{ >> + oneJAr, collapsed, detailed; > > Enums should be all-caps > >> + >> + } >> + >> + private static final String DETAILS=R("ButShowDetails"); >> + private static final String HIDE_DETAILS=R("ButHideDetails"); >> /** the download name */ >> private String downloadName; >> >> /** Downloading part: */ >> private JLabel header = new JLabel(); >> + /** Show/hide details button: */ >> + private JButton details = new JButton(DETAILS); >> + /** used instead of details button in case of one jar*/ >> + private JLabel delimiter = new JLabel(""); >> + /** all already created progress bars*/ >> + private List progressPanels = new ArrayList(); >> + private States state=States.oneJAr; >> + private ProgressPanel mainProgressPanel; >> >> /** list of URLs being downloaded */ >> private List urls = new ArrayList(); >> @@ -176,6 +221,7 @@ >> /** list of ProgressPanels */ >> private List panels = new ArrayList(); >> >> + > > Nit: two blank lines are unnecessary. > >> /** >> * Create a new download panel for with the specified download >> * name. >> @@ -184,9 +230,35 @@ >> setLayout(new GridBagLayout()); >> >> this.downloadName = downloadName; >> - this.add(header, vertical); >> + this.add(header, verticalNoClean); >> header.setFont(header.getFont().deriveFont(Font.BOLD)); >> - >> + this.add(delimiter, vertical); >> + details.addActionListener(new ActionListener() { >> + @Override >> + public void actionPerformed(ActionEvent e) { >> + if (state == States.detailed) { >> + state = States.collapsed; >> + details.setText(DETAILS); >> + for (ProgressPanel progressPanel : progressPanels) { >> + remove(progressPanel); >> + } >> + add(mainProgressPanel, verticalIndent); >> + synchronized (frameMutex) { >> + frame.pack(); >> + } >> + } else { >> + state = States.detailed; >> + details.setText(HIDE_DETAILS); >> + remove(mainProgressPanel); >> + for (ProgressPanel progressPanel : progressPanels) { >> + add(progressPanel, verticalIndent); >> + } >> + synchronized (frameMutex) { >> + frame.pack(); >> + } >> + } >> + } >> + }); >> setOverallPercent(0); >> } >> >> @@ -196,14 +268,25 @@ >> protected void addProgressPanel(URL url, String version) { >> if (!urls.contains(url)) { >> ProgressPanel panel = new ProgressPanel(url, version); >> - >> - add(panel, verticalIndent); >> + if (state != States.collapsed) { >> + add(panel, verticalIndent); >> + } >> + progressPanels.add(panel); >> + urls.add(url); >> + panels.add(panel); >> + if (panels.size() == 2){ > > Small comment here would be good explaining why this 'magic number' > >> + remove(panels.get(0)); >> + remove(panels.get(1)); >> + remove(delimiter); >> + add(details,vertical); >> + mainProgressPanel=new ProgressPanel(); >> + add(mainProgressPanel, verticalIndent); >> + state=States.collapsed; >> + } >> synchronized (frameMutex) { >> frame.pack(); >> } >> >> - urls.add(url); >> - panels.add(panel); >> } >> } >> >> @@ -219,10 +302,10 @@ >> addProgressPanel(url, version); >> >> setOverallPercent(overallPercent); >> - >> ProgressPanel panel = panels.get(urls.indexOf(url)); >> panel.setProgress(readSoFar, total); >> panel.repaint(); >> + >> } >> }; >> SwingUtilities.invokeLater(r); >> @@ -230,12 +313,28 @@ >> >> /** >> * Sets the overall percent completed. >> + * should be called via invokeLater >> */ >> public void setOverallPercent(int percent) { >> // don't get whole string from resource and sub in >> // values because it'll be doing a MessageFormat for >> // each update. >> header.setText(downloading + " " + downloadName + ": " + percent + "% " + complete + >> "."); >> + Container c = header.getParent(); >> + //we need to adapt nbboth panels and also frame to new length of header text > > nbboth > both > >> + while (c != null) { >> + c.invalidate(); >> + c.validate(); >> + if (c instanceof Window){ >> + ((Window) c).pack(); >> + } >> + c=c.getParent(); >> + } >> + >> + if (mainProgressPanel != null) { >> + mainProgressPanel.setProgress(percent, 100); >> + mainProgressPanel.repaint(); >> + } >> } >> >> /** >> @@ -276,12 +375,28 @@ >> >> private long total; >> private long readSoFar; >> + private Dimension size = new Dimension(80, 15); >> >> + ProgressPanel() { >> + bar.setMinimumSize(size); >> + bar.setPreferredSize(size); >> + bar.setOpaque(false); >> + >> + setLayout(new GridBagLayout()); >> + >> + GridBagConstraints gbc = new GridBagConstraints(); >> + styleGridBagConstraints(gbc); >> + add(bar, gbc); >> + } >> + >> ProgressPanel(URL url, String version) { >> - JLabel location = new JLabel(" " + url.getHost() + "/" + url.getFile()); >> + this(" " + url.getHost() + "/" + url.getFile(),version); >> + } >> + ProgressPanel(String caption, String version) { >> + JLabel location = new JLabel(caption); >> >> - bar.setMinimumSize(new Dimension(80, 15)); >> - bar.setPreferredSize(new Dimension(80, 15)); >> + bar.setMinimumSize(size); >> + bar.setPreferredSize(size); >> bar.setOpaque(false); >> >> setLayout(new GridBagLayout()); >> @@ -291,12 +406,8 @@ >> gbc.fill = GridBagConstraints.NONE; >> gbc.gridwidth = GridBagConstraints.RELATIVE; >> add(bar, gbc); >> - >> - gbc.insets = new Insets(0, 3, 0, 0); >> - gbc.weightx = 1.0; >> - gbc.fill = GridBagConstraints.HORIZONTAL; >> - gbc.gridwidth = GridBagConstraints.REMAINDER; >> - gbc.anchor = GridBagConstraints.WEST; >> + >> + styleGridBagConstraints(gbc); >> add(location, gbc); >> } >> >> @@ -325,6 +436,14 @@ >> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >> } >> } >> + >> + private void styleGridBagConstraints(GridBagConstraints gbc) { >> + gbc.insets = new Insets(0, 3, 0, 0); >> + gbc.weightx = 1.0; >> + gbc.fill = GridBagConstraints.HORIZONTAL; >> + gbc.gridwidth = GridBagConstraints.REMAINDER; >> + gbc.anchor = GridBagConstraints.WEST; >> + } >> }; >> >> } > > Code looks OK nits aside. Thanx for nits. Should be fixed now > > As for button ... yes it is nasty. IMO maybe we can take different approach here. The people > interested in how the individual jars are downloading would mainly be 1. us trying to fix jar > loading issues, 2. developers looking into jar loading issues. > > So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this on/off ? It can be argued it is > a bit hard for developers to access, but it isn't any easier to access this information from oracle > plugin. I think I don't like this idea :( I have added an attempt to use an icon, And I must say it is much better. Btw, I have created this icon.. so no wonders here :) But looks quite cool :) > > As well, I would be very happy to see the loading bar integrated with the splash screen (if splash > screen is on). I believe this would nicely complement the user friendliness of the splash screen. You mean to sync progress on progress bar with the one in splash? Or also showing the downlaoded resources somehow and show details button in splash? Sounds reasonable, but definitely as different changeset. Thanx for review an ideas, J. -------------- next part -------------- A non-text attachment was scrubbed... Name: fixedDownloadIndicatorDialog2.patch Type: text/x-patch Size: 11443 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130107/f4d4c30c/fixedDownloadIndicatorDialog2.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: magnifyGlass-small.png Type: image/png Size: 1008 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130107/f4d4c30c/magnifyGlass-small.png From jvanek at redhat.com Mon Jan 7 06:53:01 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 07 Jan 2013 15:53:01 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50E70F2D.2070805@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> Message-ID: <50EAE14D.5050505@redhat.com> On 01/04/2013 06:19 PM, Adam Domurad wrote: > On 01/04/2013 04:43 AM, Jiri Vanek wrote: >> On 12/03/2012 08:03 PM, Adam Domurad wrote: >>> On 11/30/2012 04:08 PM, Adam Domurad wrote: >>>> Hi all. Attached is a fix for PR1198. >>>> >>>> I still plan to write unit tests for at least the new method >>>> PluginAppletViewer.toObjectIDString, but I wanted to get this out before leaving for the weekend. >>>> >>>> One tricky thing with this patch was that it had to consolidate _a lot_ of duplicated >>>> functionality (actually I found some subtle differences in handling, this should be more >>>> consistent). Once that was done the actual patch was fairly straight forward. >>>> >>>> The basic issue was that JSObject was being passed as if it were a normal Java object, when the >>>> liveconnect spec specifies that it should be returned as the underlying javascript object. >>>> >>>> A method was added to JSObject to get the underlying reference. This was kept package-private to >>>> not pollute its public interface. As well, a new permission was added for accessing this method. >>>> To access this outside of the package, a utility was created in JSUtil. >>>> >>>> This patch adds a special case to Java->JS communication when sending objects, to indicate that >>>> a Javascript object is being passed. >>>> >>>> With patch applied, JSObjectFromEval should pass in all browsers. >>>> >>>> 2012-11-30 Adam Domurad >>>> >>>> Fix PR1198: JSObject passed incorrectly to Javascript >>>> * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Pass extra data for >>>> 'jsobject' object result messages. >>>> * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same. >>>> * plugin/icedteanp/IcedTeaPluginUtils.cc: Add special casing of >>>> javascript references passed from java. >>>> * plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java: >>>> New permission for unboxing a JSObject's internal reference. >>>> * plugin/icedteanp/java/netscape/javascript/JSObject.java >>>> (getInternalReference): New, package-private, retrieves internal >>>> reference (Must have proper permission). >>>> * plugin/icedteanp/java/netscape/javascript/JSUtil.java >>>> (getJSObjectInternalReference) New, utility for accessing >>>> JSObject#getInternalReference from outside the package. >>>> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >>>> (toObjectIDString): New, creates a string that precisely identifies a >>>> Java object. >>>> (handleMessage): Replace a lot of duplicated functionality with >>>> 'toObjectIDString'. >>>> * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Replace >>>> duplicated functionality with 'toObjectIDString'. >>>> * tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: >>>> Don't print out type passed (differs from browser to browser). >>>> * tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: >>>> Don't check type passed (differs from browser to browser). Remove >>>> known-to-fail. Reformat. >>> >>> As promised attached is the unit-test for the newly introduced Java->JS function (which >>> encapsulates logic that was duplicated in many areas) >>> >>> Note that this patch contains a Makefile patch for unit testing sun.applet package, however this >>> will be committed with another now-approved patch so I have left it out of the ChangeLog. >>> >>> ChangeLog: >>> 2012-12-XX Adam Domurad >>> >>> Unit test for PluginAppletSecurityContext#toObjectIDString. Make >>> PluginAppletSecurityContext more unit-testable. >>> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >>> Don't initialize security manager in constructor. Fix a few Java->JS >>> corner cases. >>> * plugin/icedteanp/java/sun/applet/PluginMain.java: Initialize >>> SecurityManager before creating PluginAppletSecurityContext. >>> * tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java: >>> Unit test for all the corner cases of converting a Java object to a >>> string that can be precisely identified. >>> >>> Happy hacking, >>> -Adam >>> >>> >> >> Tests first. A lot of questions.... >> >>> jsfix-unittest.patch >>> >>> >>> diff --git a/Makefile.am b/Makefile.am >>> --- a/Makefile.am ... >>> - >>> - JNLPRuntime.disableExit(); >>> - >> >> Can't the moving of this initiliazaton cause some hole? > > This code is invoked exactly once, and I figured this type of thing shouldn't be in a constructor. > It was causing problems for my unit tests because of the security manager it installed. A different > solution is welcome. > The problem is I need access to PluginAppletSecurityContext #toObjectIDString. It requires a > security context instance. IMO this is an indicator that this class 'does too much' (a class called > SecurityContext handling all the liveconnect logic??). > If you feel I should do it, I can move liveconnect logic into a different class and then testing > will be fine. I understood why you did it, I wanted to ensure you know what you are doing :) I completely agree that with this class doing to much. Some refactoring is possible as another changeset. But I'm for it (although not understanding all possible security impacts). >> What corner cases it fixed? Can't they be fixed by better way? >> Anyway - it should be in different changeset. >> >>> URL u = null; >>> try { >>> u = new URL("file://"); >>> @@ -348,16 +337,16 @@ public class PluginAppletSecurityContext >>> */ >>> public String toObjectIDString(Object obj, Class type, boolean unboxPrimitives) { >>> >>> + /* Void (can occur from declared return type), pass special "void" string: */ >>> + if (type == Void.TYPE) { >>> + return "literalreturn void"; >>> + } >>> + >>> /* Null, pass special "null" string: */ >>> if (obj == null) { >>> return "literalreturn null"; >>> } >>> >>> - /* Void (can occur from declared return type), pass special "void" string: */ >>> - if (type == Void.TYPE) { >>> - return "literalreturn void"; >>> - } >>> - >>> /* Primitive, accurately represented by its toString() form: */ >>> boolean returnAsString = ( type == Boolean.TYPE >>> || type == Byte.TYPE >>> @@ -378,7 +367,7 @@ public class PluginAppletSecurityContext >>> >>> /* Floating point number, we ensure we give enough precision: */ >>> if ( type == Float.TYPE || type == Double.TYPE || >>> - ( unboxPrimitives&& (type == Double.class || type == Double.class) )) { >>> + ( unboxPrimitives&& (type == Float.class || type == Double.class) )) { >> >> Why this? Also Shouldn't it be in different changeset? > > I will move this into the fix itself, they were bugs discovered during unit testing :-) > > [.. rest snipped..] Isn't missing updated junit patch here? Thanx for looking into it. J. From jvanek at redhat.com Mon Jan 7 07:07:53 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 07 Jan 2013 16:07:53 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50E72F25.1030903@redhat.com> References: <50B92039.4070304@redhat.com> <50E6AD9E.9040100@redhat.com> <50E72F25.1030903@redhat.com> Message-ID: <50EAE4C9.1010107@redhat.com> On 01/04/2013 08:36 PM, Adam Domurad wrote: > On 01/04/2013 05:23 AM, Jiri Vanek wrote: >> [.. snipped..] > > As you suggested, I have separated the cosmetic changes and pushed them. It did prove quite tricky, > though. ty :) > >>> >>> diff --git a/NEWS b/NEWS >>> --- a/NEWS >>> +++ b/NEWS >>> @@ -19,6 +19,7 @@ New in release 1.4 (2012-XX-XX): >>> * Plugin >>> - PR1106: Buffer overflow in plugin table- >>> - PR1166: Embedded JNLP File is not supported in applet tag >>> + - PR1198: JSObject is not passed to javascript correctly >>> * Common >>> - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered >>> - PR955: regression: SweetHome3D fails to run >>> diff --git a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> @@ -131,7 +131,7 @@ JavaRequestProcessor::newMessageOnBus(co >>> !message_parts->at(4)->find("GetObjectArrayElement")) >>> { >>> >>> - if (!message_parts->at(5)->find("literalreturn")) >>> + if (!message_parts->at(5)->find("literalreturn") || >>> !message_parts->at(5)->find("jsobject")) >>> { >>> // literal returns don't have a corresponding jni id >>> result->return_identifier = 0; >>> diff --git a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> @@ -413,7 +413,7 @@ PluginRequestProcessor::setMember(std::v >>> member = (NPVariant*) (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); >>> propertyNameID = *(message_parts->at(6)); >>> >>> - if (*(message_parts->at(7)) == "literalreturn") >>> + if (*(message_parts->at(7)) == "literalreturn" || *(message_parts->at(7)) == "jsobject" ) >>> { >>> value.append(*(message_parts->at(7))); >>> value.append(" "); >>> diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc b/plugin/icedteanp/IcedTeaPluginUtils.cc >>> --- a/plugin/icedteanp/IcedTeaPluginUtils.cc >>> +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc >>> @@ -776,6 +776,14 @@ javaStringResultToNPVariant(const std::s >>> } >>> >>> static bool >>> +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* variant) >>> +{ >>> + NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(js_id); >>> + *variant = *result_variant; >>> + return true; >>> +} >> >> It returns always true?? Maybe void or *variant? > > I left this accidentally after it could no longer fail, made it void. yap > >> >>> + >>> +static bool >>> javaObjectResultToNPVariant(NPP instance, const std::string& jobject_id, NPVariant* variant) >>> { >>> // Reference the class object so we can construct an NPObject with it and the instance >>> @@ -811,9 +819,14 @@ IcedTeaPluginUtilities::javaResultToNPVa >>> std::string* java_value, NPVariant* variant) >>> { >>> int literal_n = sizeof("literalreturn"); // Accounts for one space char >>> + int jsobject_n = sizeof("jsobject"); // Accounts for one space char >>> + >>> if (strncmp("literalreturn ", java_value->c_str(), literal_n) == 0) >>> { >>> javaPrimitiveResultToNPVariant(java_value->substr(literal_n), variant); >>> + } else if (strncmp("jsobject ", java_value->c_str(), jsobject_n) == 0) >>> + { >>> + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), variant); >>> } else >>> { >>> std::string jobject_id = *java_value; >>> > [... long snip...] >>> public void setJSMember(JSObject js, String memb, Object val) { >>> - String typeName = val.getClass().getName(); >>> - System.out.println("setJSMember: passed '" + typeName + "'"); >> Not worthy to keep in debug? >> Anyway - cosmetic change. See my comment lower. > > No, this was part of the expected reproducer output. It was removed from the checks because the type > is dependent on the browser. It was causing failures on some browsers. I have pushed it with my > cosmetic changes anyway. oook. > >>> js.setMember(memb, val); >>> } >>> } >>> \ No newline at end of file >>> diff --git a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> --- a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> +++ b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> @@ -40,7 +40,6 @@ import static org.junit.Assert.assertTru >>> import net.sourceforge.jnlp.ProcessResult; >>> import net.sourceforge.jnlp.ServerAccess.AutoClose; >>> import net.sourceforge.jnlp.annotations.Bug; >>> -import net.sourceforge.jnlp.annotations.KnownToFail; >>> import net.sourceforge.jnlp.annotations.NeedsDisplay; >>> import net.sourceforge.jnlp.annotations.TestInBrowsers; >>> import net.sourceforge.jnlp.browsertesting.BrowserTest; >>> @@ -51,40 +50,37 @@ import org.junit.Test; >>> >>> public class JSObjectFromEvalTest extends BrowserTest { >>> >>> - private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >>> + private static final String END_STRING = AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >>> >>> - private static final String JAVA_CREATE = "Java create\n"; >>> - private static final String JS_CREATE = "JS create\n"; >>> - private static final String JAVA_SET = "Java set\n"; >>> - private static final String PASSED_INTEGER = "setJSMember: passed 'java.lang.Integer'\n"; >>> - private static final String CORRECT_VALUE = "obj.test = 0"; >>> + private static final String JAVA_CREATE = "Java create\n"; >>> + private static final String JS_CREATE = "JS create\n"; >>> + private static final String JAVA_SET = "Java set\n"; >>> + private static final String CORRECT_VALUE = "obj.test = 0"; >>> >>> - @Test >>> - @TestInBrowsers(testIn = { Browsers.all }) >>> - @NeedsDisplay >>> - @Bug(id = { "PR1198" }) >>> - @KnownToFail >>> - public void testJSObjectSetMemberIsSet() throws Exception { >>> - ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", >>> - AutoClose.CLOSE_ON_BOTH); >>> + @Test >>> + @TestInBrowsers(testIn = { Browsers.all }) >>> + @NeedsDisplay >>> + @Bug(id = { "PR1198" }) >>> + public void testJSObjectSetMemberIsSet() throws Exception { >>> + ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", >>> + AutoClose.CLOSE_ON_BOTH); >>> >>> - String expectedJSCreateOutput = JS_CREATE + JAVA_SET + PASSED_INTEGER >>> - + CORRECT_VALUE; >>> - String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >>> - + PASSED_INTEGER + CORRECT_VALUE; >>> + String expectedJSCreateOutput = JS_CREATE + JAVA_SET + CORRECT_VALUE; >>> + String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >>> + + CORRECT_VALUE; >>> >>> - // No reason JS create should fail, this is mostly a sanity check: >>> - assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE >>> - + "' but did not.", pr.stdout.contains(expectedJSCreateOutput)); >>> + // No reason JS create should fail, this is mostly a sanity check: >>> + assertTrue("stdout should contain 'JS create [...] " + CORRECT_VALUE >>> + + "' but did not.", pr.stdout.contains(expectedJSCreateOutput)); >>> >>> - // Demonstrates PR1198: >>> - assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE >>> - + "' but did not.", >>> - pr.stdout.contains(expectedJavaCreateOutput)); >>> + // Demonstrates PR1198: >>> + assertTrue("stdout should contain 'Java create [...] " + CORRECT_VALUE >>> + + "' but did not.", >>> + pr.stdout.contains(expectedJavaCreateOutput)); >>> >>> - // Make sure we got to the end of the script >>> - assertTrue("stdout should contain '" + END_STRING + "' but did not.", >>> - pr.stdout.contains(END_STRING)); >>> - } >>> + // Make sure we got to the end of the script >>> + assertTrue("stdout should contain '" + END_STRING + "' but did not.", >>> + pr.stdout.contains(END_STRING)); >>> + } >>> >>> } >> >> Cosmetic changes - normlay I'm for smughling small cosmetich changes which were found during >> coding, especially somnething like >> > - buf >> > - .append(" " >> > - + Integer >> > - .toString(((int) b[i])& 0x0ff, 16)); >> > + buf.append(" " + Integer.toString(((int) b[i])& 0x0ff, 16)); >> >> :)) >> >> into patch. But there is one whole refacotred file and little bit more. If you will be willing can >> you separate the changes? You can push the comsetic changes directly. >> >> Well and then you will start to hate me with removing of KnowToFail... >> Thanx for fix. >> J. >> >> >> ps: Try to check js<->java automated tests and manual liveConnect testuite. I think there wil be >> some hddien fixes by this aptch. Adnd With some luck also no regressions;) Maybe jana Can meassure >> those results for you. She is th eguru of liveConnect testing afterall.. >> pps: Dont take me wrong, this is really nice cleanup and fix. > > Will do. > > Attached is an updated patch, with some cleanup removed (since it was pushed) and the fixes from my > unit test patch added. > See my reply to unit test review though -- I need some additional advice on what to do about the > security manager problem. > > Happy hacking, > -Adam > > jsfix3.patch > > > diff --git a/NEWS b/NEWS > --- a/NEWS > +++ b/NEWS > @@ -21,6 +21,7 @@ New in release 1.4 (2012-XX-XX): > - PR1166: Embedded JNLP File is not supported in applet tag > - PR1217: Add command line arguments for plugins > - PR1189: Icedtea-plugin requires code attribute when using jnlp_href > + - PR1198: JSObject is not passed to javascript correctly > * Common > - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered > - PR955: regression: SweetHome3D fails to run > diff --git a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc > --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc > +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc > @@ -131,7 +131,7 @@ JavaRequestProcessor::newMessageOnBus(co > !message_parts->at(4)->find("GetObjectArrayElement")) > { > > - if (!message_parts->at(5)->find("literalreturn")) > + if (!message_parts->at(5)->find("literalreturn") || !message_parts->at(5)->find("jsobject")) > { > // literal returns don't have a corresponding jni id > result->return_identifier = 0; > diff --git a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc > --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc > +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc > @@ -413,7 +413,7 @@ PluginRequestProcessor::setMember(std::v > member = (NPVariant*) (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); > propertyNameID = *(message_parts->at(6)); > > - if (*(message_parts->at(7)) == "literalreturn") > + if (*(message_parts->at(7)) == "literalreturn" || *(message_parts->at(7)) == "jsobject" ) > { > value.append(*(message_parts->at(7))); > value.append(" "); > diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc b/plugin/icedteanp/IcedTeaPluginUtils.cc > --- a/plugin/icedteanp/IcedTeaPluginUtils.cc > +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc > @@ -776,6 +776,14 @@ javaStringResultToNPVariant(const std::s > } > > static bool > +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* variant) > +{ > + NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(js_id); > + *variant = *result_variant; > + return true; > +} > + > +static bool > javaObjectResultToNPVariant(NPP instance, const std::string& jobject_id, NPVariant* variant) > { > // Reference the class object so we can construct an NPObject with it and the instance > @@ -811,9 +819,14 @@ IcedTeaPluginUtilities::javaResultToNPVa > std::string* java_value, NPVariant* variant) > { > int literal_n = sizeof("literalreturn"); // Accounts for one space char > + int jsobject_n = sizeof("jsobject"); // Accounts for one space char > + > if (strncmp("literalreturn ", java_value->c_str(), literal_n) == 0) > { > javaPrimitiveResultToNPVariant(java_value->substr(literal_n), variant); > + } else if (strncmp("jsobject ", java_value->c_str(), jsobject_n) == 0) > + { > + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), variant); > } else > { > std::string jobject_id = *java_value; > diff --git a/plugin/icedteanp/java/netscape/javascript/JSObject.java b/plugin/icedteanp/java/netscape/javascript/JSObject.java > --- a/plugin/icedteanp/java/netscape/javascript/JSObject.java > +++ b/plugin/icedteanp/java/netscape/javascript/JSObject.java > @@ -100,6 +100,16 @@ public final class JSObject { > } > > /** > + * Package-private method used through JSUtil#getJSObjectInternalReference. > + * We make this package-private to avoid polluting the public interface. > + * @return the internal identifier > + */ > + long getInternalReference() { > + AccessController.getContext().checkPermission(new JSObjectUnboxPermission()); > + return internal; > + } > + > + /** > * it is illegal to construct a JSObject manually > */ > public JSObject(int jsobj_addr) { > diff --git a/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java > new file mode 100644 > --- /dev/null > +++ b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java > @@ -0,0 +1,49 @@ > +/* JSObjectUnboxPermission.java > + Copyright (C) 2012 Red Hat > + > +This file is part of IcedTea. > + > +IcedTea is free software; you can redistribute it and/or modify > +it under the terms of the GNU General Public License as published by > +the Free Software Foundation; either version 2, or (at your option) > +any later version. > + > +IcedTea is distributed in the hope that it will be useful, but > +WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with IcedTea; see the file COPYING. If not, write to the > +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > +02110-1301 USA. > + > +Linking this library statically or dynamically with other modules is > +making a combined work based on this library. Thus, the terms and > +conditions of the GNU General Public License cover the whole > +combination. > + > +As a special exception, the copyright holders of this library give you > +permission to link this library with independent modules to produce an > +executable, regardless of the license terms of these independent > +modules, and to copy and distribute the resulting executable under > +terms of your choice, provided that you also meet, for each linked > +independent module, the terms and conditions of the license of that > +module. An independent module is a module which is not derived from > +or based on this library. If you modify this library, you may extend > +this exception to your version of the library, but you are not > +obligated to do so. If you do not wish to do so, delete this > +exception statement from your version. */ > + > +package netscape.javascript; > + > +import java.security.BasicPermission; > + > +/** > + * Permission to access internal reference of JSObject > + */ > +public class JSObjectUnboxPermission extends BasicPermission { > + public JSObjectUnboxPermission() { > + super("JSObjectUnbox"); > + } > +} > diff --git a/plugin/icedteanp/java/netscape/javascript/JSUtil.java b/plugin/icedteanp/java/netscape/javascript/JSUtil.java > --- a/plugin/icedteanp/java/netscape/javascript/JSUtil.java > +++ b/plugin/icedteanp/java/netscape/javascript/JSUtil.java > @@ -57,4 +57,16 @@ public class JSUtil { > > return captureStream.toString(); > } > -} > + > + /** > + * Uses package-private method JSObject.getInternalReference. > + * This is package-private to avoid polluting the public interface. > + * @param js JSObject to unbox > + * @return the internal reference stored by the JSObject > + */ > + public static long getJSObjectInternalReference(JSObject js) { > + // NB: permission is checked in JSObject > + return js.getInternalReference(); > + } > + > +} > \ No newline at end of file > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > @@ -321,6 +321,83 @@ public class PluginAppletSecurityContext > return map; > } > > + private static long privilegedJSObjectUnbox(final JSObject js) { > + return AccessController.doPrivileged(new PrivilegedAction() { > + public Long run() { > + return JSUtil.getJSObjectInternalReference(js); > + } > + }); > + } > + > + /** > + * Create a string that identifies a Java object precisely, for passing to > + * Javascript. > + * > + * For builtin value types, a 'literalreturn' prefix is used and the object > + * is passed with a string representation. > + * > + * For JSObject's, a 'jsobject' prefix is used and the object is passed > + * with the JSObject's internal identifier. > + * > + * For other Java objects, an object store reference is used. > + * > + * @param obj the object for which to create an identifier > + * @param type the type to use for representation decisions > + * @param unboxPrimitives whether to treat boxed primitives as value types > + * @return an identifier string > + */ > + public String toObjectIDString(Object obj, Class type, boolean unboxPrimitives) { > + > + /* Void (can occur from declared return type), pass special "void" string: */ > + if (type == Void.TYPE) { > + return "literalreturn void"; > + } > + > + /* Null, pass special "null" string: */ > + if (obj == null) { > + return "literalreturn null"; > + } > + > + /* Primitive, accurately represented by its toString() form: */ > + boolean returnAsString = ( type == Boolean.TYPE > + || type == Byte.TYPE > + || type == Short.TYPE > + || type == Integer.TYPE > + || type == Long.TYPE ); > + if (unboxPrimitives) { > + returnAsString = ( returnAsString > + || type == Boolean.class > + || type == Byte.class > + || type == Short.class > + || type == Integer.class > + || type == Long.class); > + } > + if (returnAsString) { > + return "literalreturn " + obj.toString(); > + } > + > + /* Floating point number, we ensure we give enough precision: */ > + if ( type == Float.TYPE || type == Double.TYPE || > + ( unboxPrimitives && (type == Float.class || type == Double.class) )) { > + return "literalreturn " + String.format("%308.308e", obj); > + } > + > + /* Character that should be returned as number: */ > + if (type == Character.TYPE || (unboxPrimitives && type == Character.class)) { > + return "literalreturn " + (int) (Character) obj; > + } > + > + /* JSObject, unwrap underlying Javascript reference: */ > + if (type == netscape.javascript.JSObject.class) { > + long reference = privilegedJSObjectUnbox((JSObject)obj); > + return "jsobject " + Long.toString(reference); > + } > + > + /* Other kind of object, track this object and return our reference: */ > + store.reference(obj); > + return store.getIdentifier(obj).toString(); > + } > + > public void handleMessage(int reference, String src, AccessControlContext callContext, String message) { > > startTime = new java.util.Date().getTime(); > @@ -429,56 +506,16 @@ public class PluginAppletSecurityContext > if (ret instanceof Throwable) > throw (Throwable) ret; > > - if (ret == null) { > - write(reference, "GetStaticField literalreturn null"); > - } else if (f.getType() == Boolean.TYPE > - || f.getType() == Byte.TYPE > - || f.getType() == Short.TYPE > - || f.getType() == Integer.TYPE > - || f.getType() == Long.TYPE) { > - write(reference, "GetStaticField literalreturn " + ret); > - } else if (f.getType() == Float.TYPE > - || f.getType() == Double.TYPE) { > - write(reference, "GetStaticField literalreturn " + String.format("%308.308e", ret)); > - } else if (f.getType() == Character.TYPE) { > - write(reference, "GetStaticField literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetStaticField " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, f.getType(), false /*do not unbox primitives*/); > + write(reference, "GetStaticField " + objIDStr); > } else if (message.startsWith("GetValue")) { > String[] args = message.split(" "); > Integer index = parseCall(args[1], null, Integer.class); > > Object ret = store.getObject(index); > > - if (ret == null) { > - write(reference, "GetValue literalreturn null"); > - } else if (ret.getClass() == Boolean.TYPE > - || ret.getClass() == Boolean.class > - || ret.getClass() == Byte.TYPE > - || ret.getClass() == Byte.class > - || ret.getClass() == Short.TYPE > - || ret.getClass() == Short.class > - || ret.getClass() == Integer.TYPE > - || ret.getClass() == Integer.class > - || ret.getClass() == Long.TYPE > - || ret.getClass() == Long.class) { > - write(reference, "GetValue literalreturn " + ret); > - } else if (ret.getClass() == Float.TYPE > - || ret.getClass() == Float.class > - || ret.getClass() == Double.TYPE > - || ret.getClass() == Double.class) { > - write(reference, "GetValue literalreturn " + String.format("%308.308e", ret)); > - } else if (ret.getClass() == Character.TYPE > - || ret.getClass() == Character.class) { > - write(reference, "GetValue literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetValue " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, ret.getClass(), true /*unbox primitives*/); > + write(reference, "GetValue " + objIDStr); > } else if (message.startsWith("SetStaticField") || > message.startsWith("SetField")) { > String[] args = message.split(" "); > @@ -519,24 +556,8 @@ public class PluginAppletSecurityContext > Object ret = Array.get(array, index); > Class retClass = array.getClass().getComponentType(); // prevent auto-boxing influence > > - if (ret == null) { > - write(reference, "GetObjectArrayElement literalreturn null"); > - } else if (retClass == Boolean.TYPE > - || retClass == Byte.TYPE > - || retClass == Short.TYPE > - || retClass == Integer.TYPE > - || retClass == Long.TYPE) { > - write(reference, "GetObjectArrayElement literalreturn " + ret); > - } else if (retClass == Float.TYPE > - || retClass == Double.TYPE) { > - write(reference, "GetObjectArrayElement literalreturn " + String.format("%308.308e", ret)); > - } else if (retClass == Character.TYPE) { > - write(reference, "GetObjectArrayElement literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetObjectArrayElement " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, retClass, false /*do not unbox primitives*/); > + write(reference, "GetObjectArrayElement " + objIDStr); > > } else if (message.startsWith("SetObjectArrayElement")) { > String[] args = message.split(" "); > @@ -586,25 +607,8 @@ public class PluginAppletSecurityContext > if (ret instanceof Throwable) > throw (Throwable) ret; > > - if (ret == null) { > - write(reference, "GetField literalreturn null"); > - } else if (f.getType() == Boolean.TYPE > - || f.getType() == Byte.TYPE > - || f.getType() == Short.TYPE > - || f.getType() == Integer.TYPE > - || f.getType() == Long.TYPE) { > - write(reference, "GetField literalreturn " + ret); > - } else if (f.getType() == Float.TYPE > - || f.getType() == Double.TYPE) { > - write(reference, "GetField literalreturn " + String.format("%308.308e", ret)); > - } else if (f.getType() == Character.TYPE) { > - write(reference, "GetField literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "GetField " + store.getIdentifier(ret)); > - } > - > + String objIDStr = toObjectIDString(ret, f.getType(), false /*do not unbox primitives*/); > + write(reference, "GetField " + objIDStr); > } else if (message.startsWith("GetObjectClass")) { > int oid = Integer.parseInt(message.substring("GetObjectClass" > .length() + 1)); > @@ -690,27 +694,8 @@ public class PluginAppletSecurityContext > , collapsedArgs, " and that returned: ", ret > , " of type ", retO); > > - if (m.getReturnType().equals(java.lang.Void.class) || > - m.getReturnType().equals(java.lang.Void.TYPE)) { > - write(reference, "CallMethod literalreturn void"); > - } else if (ret == null) { > - write(reference, "CallMethod literalreturn null"); > - } else if (m.getReturnType() == Boolean.TYPE > - || m.getReturnType() == Byte.TYPE > - || m.getReturnType() == Short.TYPE > - || m.getReturnType() == Integer.TYPE > - || m.getReturnType() == Long.TYPE) { > - write(reference, "CallMethod literalreturn " + ret); > - } else if (m.getReturnType() == Float.TYPE > - || m.getReturnType() == Double.TYPE) { > - write(reference, "CallMethod literalreturn " + String.format("%308.308e", ret)); > - } else if (m.getReturnType() == Character.TYPE) { > - write(reference, "CallMethod literalreturn " + (int) (Character) ret); > - } else { > - // Track returned object. > - store.reference(ret); > - write(reference, "CallMethod " + store.getIdentifier(ret)); > - } > + String objIDStr = toObjectIDString(ret, m.getReturnType(), false /*do not unbox primitives*/); > + write(reference, "CallMethod " + objIDStr); > } else if (message.startsWith("GetSuperclass")) { > String[] args = message.split(" "); > Integer classID = parseCall(args[1], null, Integer.class); > @@ -778,10 +763,7 @@ public class PluginAppletSecurityContext > buf = new StringBuffer(b.length * 2); > buf.append(b.length); > for (int i = 0; i < b.length; i++) > - buf > - .append(" " > - + Integer > - .toString(((int) b[i]) & 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i]) & 0x0ff, 16)); > > write(reference, "GetStringUTFChars " + buf); > } else if (message.startsWith("GetStringChars")) { > @@ -797,10 +779,7 @@ public class PluginAppletSecurityContext > buf = new StringBuffer(b.length * 2); > buf.append(b.length); > for (int i = 0; i < b.length; i++) > - buf > - .append(" " > - + Integer > - .toString(((int) b[i]) & 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i]) & 0x0ff, 16)); > > PluginDebug.debug("Java: GetStringChars: ", o); > PluginDebug.debug(" String BYTES: ", buf); > @@ -817,10 +796,7 @@ public class PluginAppletSecurityContext > buf = new StringBuffer(b.length * 2); > buf.append(b.length); > for (int i = 0; i < b.length; i++) > - buf > - .append(" " > - + Integer > - .toString(((int) b[i]) & 0x0ff, 16)); > + buf.append(" " + Integer.toString(((int) b[i]) & 0x0ff, 16)); > > write(reference, "GetToStringValue " + buf); > } else if (message.startsWith("NewArray")) { > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java > @@ -1022,36 +1022,13 @@ public class PluginAppletViewer extends > > // work on a copy of value, as we don't want to be manipulating > // complex objects > - String valueToSetTo; > - if (value instanceof java.lang.Byte || > - value instanceof java.lang.Character || > - value instanceof java.lang.Short || > - value instanceof java.lang.Integer || > - value instanceof java.lang.Long || > - value instanceof java.lang.Float || > - value instanceof java.lang.Double || > - value instanceof java.lang.Boolean) { > - > - valueToSetTo = "literalreturn " + value.toString(); > - > - // Character -> Str results in str value.. we need int value as > - // per specs. > - if (value instanceof java.lang.Character) { > - valueToSetTo = "literalreturn " + (int) ((java.lang.Character) value).charValue(); > - } else if (value instanceof Float || > - value instanceof Double) { > - valueToSetTo = "literalreturn " + String.format("%308.308e", value); > - } > - > - } else { > - AppletSecurityContextManager.getSecurityContext(0).store(value); > - valueToSetTo = Integer.toString(AppletSecurityContextManager.getSecurityContext(0).getIdentifier(value)); > - } > + String objIDStr = securityContext.toObjectIDString(value, > + value.getClass(), true /* unbox primitives */); > > // Prefix with dummy instance for convenience. > PluginCallRequest request = requestFactory.getPluginCallRequest("void", > "instance " + 0 + " reference " + reference + " SetMember " + > - internal + " " + nameID + " " + valueToSetTo, reference); > + internal + " " + nameID + " " + objIDStr, reference); > > streamhandler.postCallRequest(request); > streamhandler.write(request.getMessage()); > @@ -1077,38 +1054,13 @@ public class PluginAppletViewer extends > securityContext.store(value); > Long reference = getRequestIdentifier(); > > - // work on a copy of value, as we don't want to be manipulating > - // complex objects > - String valueToSetTo; > - if (value instanceof java.lang.Byte || > - value instanceof java.lang.Character || > - value instanceof java.lang.Short || > - value instanceof java.lang.Integer || > - value instanceof java.lang.Long || > - value instanceof java.lang.Float || > - value instanceof java.lang.Double || > - value instanceof java.lang.Boolean) { > - > - valueToSetTo = "literalreturn " + value.toString(); > - > - // Character -> Str results in str value.. we need int value as > - // per specs. > - if (value instanceof java.lang.Character) { > - valueToSetTo = "literalreturn " + (int) ((java.lang.Character) value).charValue(); > - } else if (value instanceof Float || > - value instanceof Double) { > - valueToSetTo = "literalreturn " + String.format("%308.308e", value); > - } > - > - } else { > - AppletSecurityContextManager.getSecurityContext(0).store(value); > - valueToSetTo = Integer.toString(AppletSecurityContextManager.getSecurityContext(0).getIdentifier(value)); > - } > + String objIDStr = securityContext.toObjectIDString(value, > + value.getClass(), true /* unbox primitives */); > > // Prefix with dummy instance for convenience. > PluginCallRequest request = requestFactory.getPluginCallRequest("void", > "instance " + 0 + " reference " + reference + " SetSlot " + > - internal + " " + index + " " + valueToSetTo, reference); > + internal + " " + index + " " + objIDStr, reference); > > streamhandler.postCallRequest(request); > streamhandler.write(request.getMessage()); > diff --git a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > --- a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > +++ b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > @@ -37,8 +37,6 @@ exception statement from your version. > > import static org.junit.Assert.assertTrue; > > -import net.sourceforge.jnlp.annotations.KnownToFail; > - > import net.sourceforge.jnlp.ProcessResult; > import net.sourceforge.jnlp.ServerAccess.AutoClose; > import net.sourceforge.jnlp.annotations.Bug; > @@ -62,7 +60,6 @@ public class JSObjectFromEvalTest extend > @Test > @TestInBrowsers(testIn = { Browsers.all }) > @NeedsDisplay > - @KnownToFail > @Bug(id = { "PR1198" }) > public void testJSObjectSetMemberIsSet() throws Exception { > ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", > I'm now ok with the patch except missing unit tests. Also I'm missing the prommised : " ( unboxPrimitives&& (type == Float.class || type == Double.class) " fixes. So lets push after those two are solved. Thank you! J. From jvanek at redhat.com Mon Jan 7 07:09:14 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 07 Jan 2013 16:09:14 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50E72F25.1030903@redhat.com> References: <50B92039.4070304@redhat.com> <50E6AD9E.9040100@redhat.com> <50E72F25.1030903@redhat.com> Message-ID: <50EAE51A.4020505@redhat.com> On 01/04/2013 08:36 PM, Adam Domurad wrote: > > streamhandler.postCallRequest(request); > streamhandler.write(request.getMessage()); > diff --git a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > --- a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > +++ b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java > @@ -37,8 +37,6 @@ exception statement from your version. > > import static org.junit.Assert.assertTrue; > > -import net.sourceforge.jnlp.annotations.KnownToFail; > - > import net.sourceforge.jnlp.ProcessResult; > import net.sourceforge.jnlp.ServerAccess.AutoClose; > import net.sourceforge.jnlp.annotations.Bug; > @@ -62,7 +60,6 @@ public class JSObjectFromEvalTest extend > @Test > @TestInBrowsers(testIn = { Browsers.all }) > @NeedsDisplay > - @KnownToFail > @Bug(id = { "PR1198" }) > public void testJSObjectSetMemberIsSet() throws Exception { > ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", One forgotten question to above chunk: You told that there was one important change in tests - well I have noted this one, it does not look so dramatic:) Was there something else?? J. From adomurad at redhat.com Mon Jan 7 07:47:48 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 07 Jan 2013 10:47:48 -0500 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EAE14D.5050505@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> <50EAE14D.5050505@redhat.com> Message-ID: <50EAEE24.2080804@redhat.com> On 01/07/2013 09:53 AM, Jiri Vanek wrote: >> [.. rest snipped..] > Isn't missing updated junit patch here? Sorry, was awaiting your advice -- if you did not like this security-manager-in-constructor change than the unit test would not be valid, a quite different approach would have to be used. > > Thanx for looking into it. > J. > patch attached, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: jsfix-unittest2.patch Type: text/x-patch Size: 12372 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130107/33d9ed54/jsfix-unittest2.patch From adomurad at redhat.com Mon Jan 7 07:54:24 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 07 Jan 2013 10:54:24 -0500 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EAE4C9.1010107@redhat.com> References: <50B92039.4070304@redhat.com> <50E6AD9E.9040100@redhat.com> <50E72F25.1030903@redhat.com> <50EAE4C9.1010107@redhat.com> Message-ID: <50EAEFB0.7090004@redhat.com> On 01/07/2013 10:07 AM, Jiri Vanek wrote: > On 01/04/2013 08:36 PM, Adam Domurad wrote: >> On 01/04/2013 05:23 AM, Jiri Vanek wrote: >>> [.. snipped..] >> >> As you suggested, I have separated the cosmetic changes and pushed >> them. It did prove quite tricky, >> though. > > ty :) > >> >>>> >>>> diff --git a/NEWS b/NEWS >>>> --- a/NEWS >>>> +++ b/NEWS >>>> @@ -19,6 +19,7 @@ New in release 1.4 (2012-XX-XX): >>>> * Plugin >>>> - PR1106: Buffer overflow in plugin table- >>>> - PR1166: Embedded JNLP File is not supported in applet tag >>>> + - PR1198: JSObject is not passed to javascript correctly >>>> * Common >>>> - PR1049: Extension jnlp's signed jar with the content of only >>>> META-INF/* is considered >>>> - PR955: regression: SweetHome3D fails to run >>>> diff --git a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>>> b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>>> --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>>> +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>>> @@ -131,7 +131,7 @@ JavaRequestProcessor::newMessageOnBus(co >>>> !message_parts->at(4)->find("GetObjectArrayElement")) >>>> { >>>> >>>> - if (!message_parts->at(5)->find("literalreturn")) >>>> + if (!message_parts->at(5)->find("literalreturn") || >>>> !message_parts->at(5)->find("jsobject")) >>>> { >>>> // literal returns don't have a corresponding >>>> jni id >>>> result->return_identifier = 0; >>>> diff --git a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>>> b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>>> --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>>> +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>>> @@ -413,7 +413,7 @@ PluginRequestProcessor::setMember(std::v >>>> member = (NPVariant*) >>>> (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); >>>> propertyNameID = *(message_parts->at(6)); >>>> >>>> - if (*(message_parts->at(7)) == "literalreturn") >>>> + if (*(message_parts->at(7)) == "literalreturn" || >>>> *(message_parts->at(7)) == "jsobject" ) >>>> { >>>> value.append(*(message_parts->at(7))); >>>> value.append(" "); >>>> diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc >>>> b/plugin/icedteanp/IcedTeaPluginUtils.cc >>>> --- a/plugin/icedteanp/IcedTeaPluginUtils.cc >>>> +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc >>>> @@ -776,6 +776,14 @@ javaStringResultToNPVariant(const std::s >>>> } >>>> >>>> static bool >>>> +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* >>>> variant) >>>> +{ >>>> + NPVariant* result_variant = (NPVariant*) >>>> IcedTeaPluginUtilities::stringToJSID(js_id); >>>> + *variant = *result_variant; >>>> + return true; >>>> +} >>> >>> It returns always true?? Maybe void or *variant? >> >> I left this accidentally after it could no longer fail, made it void. > yap > >> >>> >>>> + >>>> +static bool >>>> javaObjectResultToNPVariant(NPP instance, const std::string& >>>> jobject_id, NPVariant* variant) >>>> { >>>> // Reference the class object so we can construct an NPObject >>>> with it and the instance >>>> @@ -811,9 +819,14 @@ IcedTeaPluginUtilities::javaResultToNPVa >>>> std::string* java_value, NPVariant* variant) >>>> { >>>> int literal_n = sizeof("literalreturn"); // Accounts for one >>>> space char >>>> + int jsobject_n = sizeof("jsobject"); // Accounts for one space >>>> char >>>> + >>>> if (strncmp("literalreturn ", java_value->c_str(), literal_n) >>>> == 0) >>>> { >>>> javaPrimitiveResultToNPVariant(java_value->substr(literal_n), >>>> variant); >>>> + } else if (strncmp("jsobject ", java_value->c_str(), >>>> jsobject_n) == 0) >>>> + { >>>> + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), >>>> variant); >>>> } else >>>> { >>>> std::string jobject_id = *java_value; >>>> >> [... long snip...] >>>> public void setJSMember(JSObject js, String memb, Object val) { >>>> - String typeName = val.getClass().getName(); >>>> - System.out.println("setJSMember: passed '" + typeName + "'"); >>> Not worthy to keep in debug? >>> Anyway - cosmetic change. See my comment lower. >> >> No, this was part of the expected reproducer output. It was removed >> from the checks because the type >> is dependent on the browser. It was causing failures on some >> browsers. I have pushed it with my >> cosmetic changes anyway. > > oook. >> >>>> js.setMember(memb, val); >>>> } >>>> } >>>> \ No newline at end of file >>>> diff --git >>>> a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>>> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>>> >>>> --- >>>> a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>>> +++ >>>> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>>> @@ -40,7 +40,6 @@ import static org.junit.Assert.assertTru >>>> import net.sourceforge.jnlp.ProcessResult; >>>> import net.sourceforge.jnlp.ServerAccess.AutoClose; >>>> import net.sourceforge.jnlp.annotations.Bug; >>>> -import net.sourceforge.jnlp.annotations.KnownToFail; >>>> import net.sourceforge.jnlp.annotations.NeedsDisplay; >>>> import net.sourceforge.jnlp.annotations.TestInBrowsers; >>>> import net.sourceforge.jnlp.browsertesting.BrowserTest; >>>> @@ -51,40 +50,37 @@ import org.junit.Test; >>>> >>>> public class JSObjectFromEvalTest extends BrowserTest { >>>> >>>> - private static final String END_STRING = >>>> AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >>>> + private static final String END_STRING = >>>> AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >>>> >>>> - private static final String JAVA_CREATE = "Java create\n"; >>>> - private static final String JS_CREATE = "JS create\n"; >>>> - private static final String JAVA_SET = "Java set\n"; >>>> - private static final String PASSED_INTEGER = "setJSMember: >>>> passed 'java.lang.Integer'\n"; >>>> - private static final String CORRECT_VALUE = "obj.test = 0"; >>>> + private static final String JAVA_CREATE = "Java create\n"; >>>> + private static final String JS_CREATE = "JS create\n"; >>>> + private static final String JAVA_SET = "Java set\n"; >>>> + private static final String CORRECT_VALUE = "obj.test = 0"; >>>> >>>> - @Test >>>> - @TestInBrowsers(testIn = { Browsers.all }) >>>> - @NeedsDisplay >>>> - @Bug(id = { "PR1198" }) >>>> - @KnownToFail >>>> - public void testJSObjectSetMemberIsSet() throws Exception { >>>> - ProcessResult pr = >>>> server.executeBrowser("/JSObjectFromEval.html", >>>> - AutoClose.CLOSE_ON_BOTH); >>>> + @Test >>>> + @TestInBrowsers(testIn = { Browsers.all }) >>>> + @NeedsDisplay >>>> + @Bug(id = { "PR1198" }) >>>> + public void testJSObjectSetMemberIsSet() throws Exception { >>>> + ProcessResult pr = >>>> server.executeBrowser("/JSObjectFromEval.html", >>>> + AutoClose.CLOSE_ON_BOTH); >>>> >>>> - String expectedJSCreateOutput = JS_CREATE + JAVA_SET + >>>> PASSED_INTEGER >>>> - + CORRECT_VALUE; >>>> - String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >>>> - + PASSED_INTEGER + CORRECT_VALUE; >>>> + String expectedJSCreateOutput = JS_CREATE + JAVA_SET + >>>> CORRECT_VALUE; >>>> + String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >>>> + + CORRECT_VALUE; >>>> >>>> - // No reason JS create should fail, this is mostly a >>>> sanity check: >>>> - assertTrue("stdout should contain 'JS create [...] " + >>>> CORRECT_VALUE >>>> - + "' but did not.", >>>> pr.stdout.contains(expectedJSCreateOutput)); >>>> + // No reason JS create should fail, this is mostly a >>>> sanity check: >>>> + assertTrue("stdout should contain 'JS create [...] " + >>>> CORRECT_VALUE >>>> + + "' but did not.", >>>> pr.stdout.contains(expectedJSCreateOutput)); >>>> >>>> - // Demonstrates PR1198: >>>> - assertTrue("stdout should contain 'Java create [...] " + >>>> CORRECT_VALUE >>>> - + "' but did not.", >>>> - pr.stdout.contains(expectedJavaCreateOutput)); >>>> + // Demonstrates PR1198: >>>> + assertTrue("stdout should contain 'Java create [...] " + >>>> CORRECT_VALUE >>>> + + "' but did not.", >>>> + pr.stdout.contains(expectedJavaCreateOutput)); >>>> >>>> - // Make sure we got to the end of the script >>>> - assertTrue("stdout should contain '" + END_STRING + "' but >>>> did not.", >>>> - pr.stdout.contains(END_STRING)); >>>> - } >>>> + // Make sure we got to the end of the script >>>> + assertTrue("stdout should contain '" + END_STRING + "' but >>>> did not.", >>>> + pr.stdout.contains(END_STRING)); >>>> + } >>>> >>>> } >>> >>> Cosmetic changes - normlay I'm for smughling small cosmetich changes >>> which were found during >>> coding, especially somnething like >>> > - buf >>> > - .append(" " >>> > - + Integer >>> > - .toString(((int) b[i])& 0x0ff, 16)); >>> > + buf.append(" " + Integer.toString(((int) >>> b[i])& 0x0ff, 16)); >>> >>> :)) >>> >>> into patch. But there is one whole refacotred file and little bit >>> more. If you will be willing can >>> you separate the changes? You can push the comsetic changes directly. >>> >>> Well and then you will start to hate me with removing of KnowToFail... >>> Thanx for fix. >>> J. >>> >>> >>> ps: Try to check js<->java automated tests and manual liveConnect >>> testuite. I think there wil be >>> some hddien fixes by this aptch. Adnd With some luck also no >>> regressions;) Maybe jana Can meassure >>> those results for you. She is th eguru of liveConnect testing >>> afterall.. >>> pps: Dont take me wrong, this is really nice cleanup and fix. >> >> Will do. >> >> Attached is an updated patch, with some cleanup removed (since it was >> pushed) and the fixes from my >> unit test patch added. >> See my reply to unit test review though -- I need some additional >> advice on what to do about the >> security manager problem. >> >> Happy hacking, >> -Adam >> [..snip..] >> import net.sourceforge.jnlp.ProcessResult; >> import net.sourceforge.jnlp.ServerAccess.AutoClose; >> import net.sourceforge.jnlp.annotations.Bug; >> @@ -62,7 +60,6 @@ public class JSObjectFromEvalTest extend >> @Test >> @TestInBrowsers(testIn = { Browsers.all }) >> @NeedsDisplay >> - @KnownToFail >> @Bug(id = { "PR1198" }) >> public void testJSObjectSetMemberIsSet() throws Exception { >> ProcessResult pr = >> server.executeBrowser("/JSObjectFromEval.html", >> > > > I'm now ok with the patch except missing unit tests. Also I'm missing > the prommised : > " ( unboxPrimitives&& (type == Float.class || type == Double.class) " > fixes. Missing how ? From patch: + if ( type == Float.TYPE || type == Double.TYPE || + ( unboxPrimitives && (type == Float.class || type == Double.class) )) { > > So lets push after those two are solved. Thank you! > J. Answer to PS: > > One forgotten question to above chunk: > > You told that there was one important change in tests - well I have > noted this one, it does not look so dramatic:) Was there something else?? > > J. Sorry, it was pushed as 'cosmetic change' because it would have been painful to separate :). It was removal of a test assert that explicitly checked that the return type was java.lang.Integer, but some JS engines actually returned java.lang.Double. The fix is in HEAD now. I have also posted new iteration of unit tests. Thanks for the review! -Adam From jvanek at redhat.com Mon Jan 7 08:06:30 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 07 Jan 2013 17:06:30 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EAEFB0.7090004@redhat.com> References: <50B92039.4070304@redhat.com> <50E6AD9E.9040100@redhat.com> <50E72F25.1030903@redhat.com> <50EAE4C9.1010107@redhat.com> <50EAEFB0.7090004@redhat.com> Message-ID: <50EAF286.1000703@redhat.com> On 01/07/2013 04:54 PM, Adam Domurad wrote: > On 01/07/2013 10:07 AM, Jiri Vanek wrote: >> On 01/04/2013 08:36 PM, Adam Domurad wrote: >>> On 01/04/2013 05:23 AM, Jiri Vanek wrote: ...snip... >>> @Bug(id = { "PR1198" }) >>> public void testJSObjectSetMemberIsSet() throws Exception { >>> ProcessResult pr = server.executeBrowser("/JSObjectFromEval.html", >>> >> >> >> I'm now ok with the patch except missing unit tests. Also I'm missing the prommised : >> " ( unboxPrimitives&& (type == Float.class || type == Double.class) " fixes. > > Missing how ? > From patch: > > + if ( type == Float.TYPE || type == Double.TYPE || > + ( unboxPrimitives && (type == Float.class || type == Double.class) )) { > > >> Ok. Sorry, overlooked. >> So lets push after those two are solved. Thank you! >> J. > > Answer to PS: > >> >> One forgotten question to above chunk: >> >> You told that there was one important change in tests - well I have noted this one, it does not >> look so dramatic:) Was there something else?? >> >> J. > > Sorry, it was pushed as 'cosmetic change' because it would have been painful to separate :). It was > removal of a test assert that explicitly checked that the return type was java.lang.Integer, but > some JS engines actually returned java.lang.Double. The fix is in HEAD now. > > I have also posted new iteration of unit tests. I see.. :-/ not only money is root of all evil! > > Thanks for the review! > -Adam > From jvanek at redhat.com Mon Jan 7 08:44:10 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 07 Jan 2013 17:44:10 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EAEE24.2080804@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> <50EAE14D.5050505@redhat.com> <50EAEE24.2080804@redhat.com> Message-ID: <50EAFB5A.9000104@redhat.com> On 01/07/2013 04:47 PM, Adam Domurad wrote: > On 01/07/2013 09:53 AM, Jiri Vanek wrote: >>> [.. rest snipped..] >> Isn't missing updated junit patch here? > > Sorry, was awaiting your advice -- if you did not like this security-manager-in-constructor change > than the unit test would not be valid, a quite different approach would have to be used. > >> >> Thanx for looking into it. >> J. >> > > > patch attached, > -Adam > > jsfix-unittest2.patch > > > diff --git a/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java > new file mode 100644 > --- /dev/null > +++ b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java > @@ -0,0 +1,49 @@ > +/* JSObjectUnboxPermission.java > + Copyright (C) 2012 Red Hat > + > +This file is part of IcedTea. > + > +IcedTea is free software; you can redistribute it and/or modify > +it under the terms of the GNU General Public License as published by > +the Free Software Foundation; either version 2, or (at your option) > +any later version. > + > +IcedTea is distributed in the hope that it will be useful, but > +WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with IcedTea; see the file COPYING. If not, write to the > +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > +02110-1301 USA. > + > +Linking this library statically or dynamically with other modules is > +making a combined work based on this library. Thus, the terms and > +conditions of the GNU General Public License cover the whole > +combination. > + > +As a special exception, the copyright holders of this library give you > +permission to link this library with independent modules to produce an > +executable, regardless of the license terms of these independent > +modules, and to copy and distribute the resulting executable under > +terms of your choice, provided that you also meet, for each linked > +independent module, the terms and conditions of the license of that > +module. An independent module is a module which is not derived from > +or based on this library. If you modify this library, you may extend > +this exception to your version of the library, but you are not > +obligated to do so. If you do not wish to do so, delete this > +exception statement from your version. */ > + > +package netscape.javascript; > + > +import java.security.BasicPermission; > + > +/** > + * Permission to access internal reference of JSObject > + */ > +public class JSObjectUnboxPermission extends BasicPermission { > + public JSObjectUnboxPermission() { > + super("JSObjectUnbox"); > + } > +} > diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java > @@ -53,7 +53,6 @@ import java.security.Permissions; > import java.security.PrivilegedAction; > import java.security.ProtectionDomain; > import java.util.ArrayList; > -import java.util.Arrays; > import java.util.Hashtable; > import java.util.List; > import java.util.Map; > @@ -241,16 +240,6 @@ public class PluginAppletSecurityContext > public PluginAppletSecurityContext(int identifier) { > this.identifier = identifier; > > - // We need a security manager.. and since there is a good chance that > - // an applet will be loaded at some point, we should make it the SM > - // that JNLPRuntime will try to install > - if (System.getSecurityManager() == null) { > - JNLPRuntime.initialize(/* isApplication */false); > - JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); > - } > - > - JNLPRuntime.disableExit(); > - > URL u = null; > try { > u = new URL("file://"); > diff --git a/plugin/icedteanp/java/sun/applet/PluginMain.java b/plugin/icedteanp/java/sun/applet/PluginMain.java > --- a/plugin/icedteanp/java/sun/applet/PluginMain.java > +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java > @@ -73,6 +73,7 @@ import java.net.ProxySelector; > import java.util.Enumeration; > import java.util.Properties; > > +import net.sourceforge.jnlp.DefaultLaunchHandler; > import net.sourceforge.jnlp.config.DeploymentConfiguration; > import net.sourceforge.jnlp.runtime.JNLPRuntime; > import net.sourceforge.jnlp.security.JNLPAuthenticator; > @@ -106,6 +107,15 @@ public class PluginMain { > // must be called before JNLPRuntime.initialize() > JNLPRuntime.setRedirectStreams(redirectStreams); > > + // We need a security manager for PluginAppletSecurityContext, > + // so we ensure it is initialized > + if (System.getSecurityManager() == null) { > + JNLPRuntime.initialize(/* isApplication */false); > + JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); > + } > + > + JNLPRuntime.disableExit(); > + > PluginAppletSecurityContext sc = new PluginAppletSecurityContext(0); > sc.prePopulateLCClasses(); Well, I'm still not comfortable with this change. I'm not sure which security parts can be affected:-/ I really would like to know Jana's opinion here. Do you mind to move it to separate method? > PluginAppletSecurityContext.setStreamhandler(streamHandler); > diff --git a/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java b/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java > new file mode 100644 > --- /dev/null > +++ b/tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java > @@ -0,0 +1,181 @@ > +package sun.applet; > + > +import static org.junit.Assert.assertTrue; > +import static org.junit.Assert.assertFalse; > +import static org.junit.Assert.assertEquals; > + > +import netscape.javascript.JSObject; > + > +import org.junit.Test; > + > +public class PluginAppletSecurityContextTest { > + > + @Test > + public void toIDStringNullTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + assertEquals("literalreturn null", > + pasc.toObjectIDString(null, Object.class, false)); > + } > + > + @Test > + public void toIDStringVoidTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + assertEquals("literalreturn void", > + pasc.toObjectIDString(null, Void.TYPE, false)); > + > + assertFalse("literalreturn void".equals(pasc.toObjectIDString(null, > + Void.class, false))); > + } > + > + @Test > + public void toIDStringIntegralTest() { > + // NB: the special .TYPE classes here represent primitives > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + // Test both unboxing allowed and not allowed to be sure it doesn't > + // alter result > + // although it really shouldn't > + for (boolean unboxPrimitives : new Boolean[] { false, true }) { > + assertEquals("literalreturn true", pasc.toObjectIDString( > + new Boolean(true), Boolean.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Byte( > + (byte) 1), Byte.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString( > + new Character((char) 1), Character.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Short( > + (short) 1), Short.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString( > + new Integer(1), Integer.TYPE, unboxPrimitives)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Long(1), > + Long.TYPE, unboxPrimitives)); > + } > + } > + > + @Test > + public void toIDStringBoxedIntegralNoUnboxingTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + assertFalse("literalreturn true".equals(pasc.toObjectIDString( > + new Boolean(true), Boolean.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Byte( > + (byte) 1), Byte.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString( > + new Character((char) 1), Character.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Short( > + (short) 1), Short.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Integer( > + 1), Integer.class, false))); > + > + assertFalse("literalreturn 1".equals(pasc.toObjectIDString(new Long(1), > + Long.class, false))); > + } > + > + @Test > + public void toIDStringBoxedIntegralWithUnboxingTest() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + assertEquals("literalreturn true", > + pasc.toObjectIDString(new Boolean(true), Boolean.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Byte((byte) 1), Byte.class, true)); > + > + assertEquals("literalreturn 1", pasc.toObjectIDString(new Character( > + (char) 1), Character.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Short((short) 1), Short.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Integer(1), Integer.class, true)); > + > + assertEquals("literalreturn 1", > + pasc.toObjectIDString(new Long(1), Long.class, true)); > + } > + > + @Test > + public void toIDStringFloatingPoint() { > + final int prefixLength = "literalreturn ".length(); > + > + // NB: the special .TYPE classes here represent primitives > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + // Test both unboxing allowed and not allowed to be sure it doesn't > + // alter result > + // although it really shouldn't > + for (boolean unboxPrimitives : new Boolean[] { false, true }) { > + { > + final float testFloat = 3.141592f; > + String idString = pasc.toObjectIDString(new Float(testFloat), > + Float.TYPE, unboxPrimitives); > + String floatRepr = idString.substring(prefixLength); > + assertTrue(testFloat == Float.parseFloat(floatRepr)); > + } > + { > + final double testDouble = 3.141592; > + String idString = pasc.toObjectIDString(new Double(testDouble), > + Double.TYPE, unboxPrimitives); > + String doubleRepr = idString.substring(prefixLength); > + assertTrue(testDouble == Double.parseDouble(doubleRepr)); > + } > + > + } > + { > + final float testFloat = 3.141592f; > + String idString = pasc.toObjectIDString(new Float(testFloat), > + Float.class, true); > + String floatRepr = idString.substring(prefixLength); > + assertTrue(testFloat == Float.parseFloat(floatRepr)); > + } > + { > + final double testDouble = 3.141592; > + String idString = pasc.toObjectIDString(new Double(testDouble), > + Double.class, true); > + String doubleRepr = idString.substring(prefixLength); > + assertTrue(testDouble == Double.parseDouble(doubleRepr)); > + } > + { > + final float testFloat = 3.141592f; > + String idString = pasc.toObjectIDString(new Float(testFloat), > + Float.class, false); > + assertFalse(idString.startsWith("literalreturn ")); > + } > + { > + final double testDouble = 3.141592; > + String idString = pasc.toObjectIDString(new Double(testDouble), > + Double.class, false); > + assertFalse(idString.startsWith("literalreturn ")); > + } > + } > + > +// FIXME: How can we get the permissions to do this? > +// @Test > +// public void toIDStringJSObject() { > +// PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > +// > +// long testReference = 1; > +// assertEquals("literalreturn 1", pasc.toObjectIDString(new JSObject( > +// testReference), JSObject.class, false)); > +// } Otherwise I'm of for test to go, even with this one commented out. I will try to revisit this once it will be inside. > + > + @Test > + public void toIDStringArbitraryObject() { > + PluginAppletSecurityContext pasc = new PluginAppletSecurityContext(0); > + > + final Object testObject = new Object(); > + String idString = pasc.toObjectIDString(testObject, > + testObject.getClass(), false); > + > + assertFalse(idString.startsWith("literalreturn")); > + assertFalse(idString.startsWith("jsobject")); > + } > +} > From dbhole at icedtea.classpath.org Mon Jan 7 08:55:49 2013 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 07 Jan 2013 16:55:49 +0000 Subject: /hg/release/icedtea-web-1.2: Converted Messages.properties to Un... Message-ID: changeset cd6608773628 in /hg/release/icedtea-web-1.2 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.2?cmd=changeset;node=cd6608773628 author: Deepak Bhole date: Mon Jan 07 11:47:37 2013 -0500 Converted Messages.properties to Unix format diffstat: ChangeLog | 5 + netx/net/sourceforge/jnlp/resources/Messages.properties | 636 ++++++++-------- 2 files changed, 323 insertions(+), 318 deletions(-) diffs (truncated from 667 to 500 lines): diff -r c74251bbaffd -r cd6608773628 ChangeLog --- a/ChangeLog Mon Dec 03 16:26:42 2012 -0500 +++ b/ChangeLog Mon Jan 07 11:47:37 2013 -0500 @@ -1,3 +1,8 @@ +2013-01-07 Deepak Bhole + + * netx/net/sourceforge/jnlp/resources/Messages.properties: Converted to + Unix format. + 2012-09-17 Deepak Bhole PR1161: X509VariableTrustManager does not work correctly with OpenJDK7 diff -r c74251bbaffd -r cd6608773628 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Dec 03 16:26:42 2012 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan 07 11:47:37 2013 -0500 @@ -1,294 +1,294 @@ -# Default (English) UI messages for netx -# L=Launcher, B=Boot, P=Parser, C=cache S=security -# -# General -NullParameter=Null parameter -ButAllow=Allow -ButBrowse=Browse... -ButCancel=\ Cancel\ -ButClose=Close -ButCopy=Copy to Clipboard -ButMoreInformation=More Information... -ButOk=OK -ButProceed=Proceed -ButRun=Run -ButApply=Apply -ButDone=Done -ButShowDetails=Show Details -ButHideDetails=Hide Details - -AFileOnTheMachine=a file on the machine -AlwaysAllowAction=Always allow this action -Usage=Usage: -Error=Error - -Continue=Do you want to continue? -Field=Field -From=From -Name=Name -Password=Password: -Publisher=Publisher -Unknown= -Username=Username: -Value=Value -Version=Version - -# LS - Severity -LSMinor=Minor -LSFatal=Fatal - -# LC - Category -LCSystem=System Error -LCExternalLaunch=External Launch Error -LCFileFormat=File Format Error -LCReadError=Read Error -LCClient=Application Error -LCLaunching=Launch Error -LCNotSupported=Unsupported Feature -LCInit=Initialization Error - -LAllThreadGroup=All JNLP applications -LNullUpdatePolicy=Update policy cannot be null. - -LThreadInterrupted=Thread interrupted while waiting for file to launch. -LThreadInterruptedInfo= -LCouldNotLaunch=Could not launch JNLP file. -LCouldNotLaunchInfo= -LCantRead=Could not read or parse the JNLP file. -LCantReadInfo= -LNullLocation=Could not determine .jnlp file location. -LNullLocationInfo=An attempt was made to launch a JNLP file in another JVM, but the file could not be located. In order to launch in an external JVM, the runtime must be able to locate the .jnlp file either in the local filesystem or on a server. -LNetxJarMissing=Could not determine location of netx.jar. -LNetxJarMissingInfo=An attempt was made to lauch a JNLP file in another JVM, but the netx.jar could not be located. In order to launch in an external JVM, the runtime must be able to locate the netx.jar file. -LNotToSpec=JNLP file not strictly to spec. -LNotToSpecInfo=The JNLP file contains data that is prohibited by the JNLP specification. The runtime can attempt to ignore the invalid information and continue launching the file. -LNotApplication=Not an application file. -LNotApplicationInfo=An attempt was made to load a non-application file as an application. -LNotApplet=Not an applet file. -LNotAppletInfo=An attempt was made to load a non-applet file as an applet. -LNoInstallers=Installers not supported. -LNoInstallersInfo=JNLP installer files are not yet supported. -LInitApplet=Could not initialize applet. -LInitAppletInfo= -LInitApplication=Could not initialize application. -LInitApplicationInfo= -LNotLaunchable=Not a launchable JNLP file. -LNotLaunchableInfo=File must be a JNLP application, applet, or installer type. -LCantDetermineMainClass=Unknown Main-Class. -LCantDetermineMainClassInfo=Could not determine the main class for this application. -LUnsignedJarWithSecurity=Cannot grant permissions to unsigned jars. -LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. -LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. -LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. -LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. -LNoSecInstance=Error: No security instance for {0}. The application may have trouble continuing -LCertFoundIn={0} found in cacerts ({1}) - -JNotApplet=File is not an applet. -JNotApplication=File is not an application. -JNotComponent=File is not a component. -JNotInstaller=File is not an installer. -JInvalidExtensionDescriptor=Extension does not refer to a component or installer (name={1}, location={2}). - -LNotVerified=Jars not verified. -LCancelOnUserRequest=Canceled on user request. -LFatalVerification=A fatal error occurred while trying to verify jars. -LFatalVerificationInfo= - -LNotVerifiedDialog=Not all jars could be verified. -LAskToContinue=Would you still like to continue running this application? - -# Parser -PInvalidRoot=Root node is not a jnlp node -PNoResources=No resources section defined -PUntrustedNative=nativelib element cannot be specified unless a trusted environment is requested. -PExtensionHasJ2SE=j2se element cannot be specified in a component extension file. -PInnerJ2SE=j2se element cannot be specified within a j2se element. -PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) -PNativeHasMain=Cannot specify main attribute on native JARs. -PNoInfoElement=No information section defined -PTwoDescriptions=Duplicate description of kind {0} -PSharing=Element "sharing-allowed" is illegal in a standard JNLP file -PTwoSecurity=Only one security element allowed per JNLPFile. -PEmptySecurity=Security element specified but does not contain a permissions element. -PTwoDescriptors=Only one application descriptor element allowed per JNLPFile. -PTwoDesktops=Only one desktop element allowed -PTwoMenus=Only one menu element allowed -PTwoTitles=Only one title element allowed -PTwoIcons=Only one icon element allowed -PTwoUpdates=Only one update element is allowed -PUnknownApplet=Unknown Applet -PBadWidth=Invalid applet width. -PBadHeight=Invalid applet height. -PUrlNotInCodebase=Relative URL does not specify a subdirectory of the codebase. (node={0}, href={1}, base={2}) -PBadRelativeUrl=Invalid relative URL (node={0}, href={1}, base={2}) -PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={0}). -PNeedsAttribute=The {0} element must specify a {1} attribute. -PBadXML=Invalid XML document syntax. -PBadHeapSize=Invalid value for heap size ({0}) - -# Runtime -BLaunchAbout=Launching about window... -BNeedsFile=Must specify a .jnlp file -RNoAboutJnlp=Unable to find about.jnlp -BFileLoc=JNLP file location -BBadProp=Incorrect property format {0} (should be key=value) -BBadParam=Incorrect parameter format {0} (should be name=value) -BNoDir=Directory {0} does not exist. -RNoResource=Missing Resource: {0} -RShutdown=This exception to prevent shutdown of JVM, but the process has been terminated. -RExitTaken=Exit class already set and caller is not exit class. -RCantReplaceSM=Changing the SecurityManager is not allowed. -RCantCreateFile=Cant create file {0} -RCantDeleteFile=Cant delete file {0} -RRemoveRPermFailed=Removing read permission on file {0} failed -RRemoveWPermFailed=Removing write permissions on file {0} failed -RRemoveXPermFailed=Removing execute permissions on file {0} failed -RGetRPermFailed=Acquiring read permissions on file {0} failed -RGetWPermFailed=Acquiring write permissions on file {0} failed -RGetXPermFailed=Acquiring execute permissions on file {0} failed -RCantCreateDir=Cant create directory {0} -RCantRename=Cant rename {0} to {1} -RDenyStopped=Stopped applications have no permissions. -RExitNoApp=Can not exit the JVM because the current application cannot be determined. -RNoLockDir=Unable to create locks directory ({0}) -RNestedJarExtration=Unable to extract nested jar. -RUnexpected=Unexpected {0} at {1} -RConfigurationError=Fatal error while reading the configuration -RConfigurationFatal=ERROR: a fatal error has occurred while loading configuration. Perhaps a global configuration was required but could not be found -RPRoxyPacNotSupported=Using Proxy Auto Config (PAC) files is not supported. -RProxyFirefoxNotFound=Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. -RProxyFirefoxOptionNotImplemented=Browser proxy option "{0}" ({1}) not supported yet. -RBrowserLocationPromptTitle=Browser Location -RBrowserLocationPromptMessage=Specify Browser Location -RBrowserLocationPromptMessageWithReason=Specify Browser Location (the browser command "{0}" is invalid). - -# Boot options, message should be shorter than this ----------------> -BOUsage=javaws [-run-options] -BOUsage2=javaws [-control-options] -BOJnlp = Location of JNLP file to launch (url or file). -BOArg = Adds an application argument before launching. -BOParam = Adds an applet parameter before launching. -BOProperty = Sets a system property before launching. -BOUpdate = Update check if seconds since last checked. -BOLicense = Display the GPL license and exit. -BOVerbose = Enable verbose output. -BOAbout = Shows a sample application. -BONosecurity= Disables the secure runtime environment. -BONoupdate = Disables checking for updates. -BOHeadless = Disables download window, other UIs. -BOStrict = Enables strict checking of JNLP file format. -BOViewer = Shows the trusted certificate viewer. -BXnofork = Do not create another JVM. -BXclearcache= Clean the JNLP application cache. -BOHelp = Print this message and exit. - -# Cache -CAutoGen=automatically generated - do not edit -CNotCacheable={0} is not a cacheable resource -CDownloading=Downloading -CComplete=Complete -CChooseCache=Choose a cache directory... -CChooseCacheInfo=Netx needs a location for storing cache files. -CChooseCacheDir=Cache directory -CCannotClearCache=Can not clear cache at this time -CFakeCache=Cache is corrupt. Disabling. -CFakedCache=Cache is corrupt and has been disabled. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. -CStillCorupted=Cache is still corrupt, clearing it. -CCleaningUnsuccessful=Unable to clear cache due to running javaws instance. Please try to shut down all instances of javaws, run 'javaws -Xclearcache', and rerun your jnlp file -CClearedReloading=Cache cleared, re-loading. -CReloadRestarting=Cache re-loaded and application re-starting. It is strongly recommended that you run 'javaws -Xclearcache' and re-run your application as soon as possible. -CStillBroken=Unable to fix corrupt cache. Please shutdown all javaws instances, run 'javaws -Xclearcache', and re-start your application. - -# Security -SFileReadAccess=The application has requested read access to {0}. Do you want to allow this action? -SFileWriteAccess=The application has requested write access to {0}. Do you want to allow this action? -SDesktopShortcut=The application has requested permission to create a desktop launcher. Do you want to allow this action? -SSigUnverified=The application's digital signature cannot be verified. Do you want to run the application? -SSigVerified=The application's digital signature has been verified. Do you want to run the application? -SSignatureError=The application's digital signature has an error. Do you want to run the application? -SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. -STrustedSource=The digital signature has been validated by a trusted source. -SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? -SClipboardWriteAccess=The application has requested write-only access to the system clipboard. Do you want to allow this action? -SPrinterAccess=The application has requested printer access. Do you want to allow this action? -SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action? -SNoAssociatedCertificate= +# Default (English) UI messages for netx +# L=Launcher, B=Boot, P=Parser, C=cache S=security +# +# General +NullParameter=Null parameter +ButAllow=Allow +ButBrowse=Browse... +ButCancel=\ Cancel\ +ButClose=Close +ButCopy=Copy to Clipboard +ButMoreInformation=More Information... +ButOk=OK +ButProceed=Proceed +ButRun=Run +ButApply=Apply +ButDone=Done +ButShowDetails=Show Details +ButHideDetails=Hide Details + +AFileOnTheMachine=a file on the machine +AlwaysAllowAction=Always allow this action +Usage=Usage: +Error=Error + +Continue=Do you want to continue? +Field=Field +From=From +Name=Name +Password=Password: +Publisher=Publisher +Unknown= +Username=Username: +Value=Value +Version=Version + +# LS - Severity +LSMinor=Minor +LSFatal=Fatal + +# LC - Category +LCSystem=System Error +LCExternalLaunch=External Launch Error +LCFileFormat=File Format Error +LCReadError=Read Error +LCClient=Application Error +LCLaunching=Launch Error +LCNotSupported=Unsupported Feature +LCInit=Initialization Error + +LAllThreadGroup=All JNLP applications +LNullUpdatePolicy=Update policy cannot be null. + +LThreadInterrupted=Thread interrupted while waiting for file to launch. +LThreadInterruptedInfo= +LCouldNotLaunch=Could not launch JNLP file. +LCouldNotLaunchInfo= +LCantRead=Could not read or parse the JNLP file. +LCantReadInfo= +LNullLocation=Could not determine .jnlp file location. +LNullLocationInfo=An attempt was made to launch a JNLP file in another JVM, but the file could not be located. In order to launch in an external JVM, the runtime must be able to locate the .jnlp file either in the local filesystem or on a server. +LNetxJarMissing=Could not determine location of netx.jar. +LNetxJarMissingInfo=An attempt was made to lauch a JNLP file in another JVM, but the netx.jar could not be located. In order to launch in an external JVM, the runtime must be able to locate the netx.jar file. +LNotToSpec=JNLP file not strictly to spec. +LNotToSpecInfo=The JNLP file contains data that is prohibited by the JNLP specification. The runtime can attempt to ignore the invalid information and continue launching the file. +LNotApplication=Not an application file. +LNotApplicationInfo=An attempt was made to load a non-application file as an application. +LNotApplet=Not an applet file. +LNotAppletInfo=An attempt was made to load a non-applet file as an applet. +LNoInstallers=Installers not supported. +LNoInstallersInfo=JNLP installer files are not yet supported. +LInitApplet=Could not initialize applet. +LInitAppletInfo= +LInitApplication=Could not initialize application. +LInitApplicationInfo= +LNotLaunchable=Not a launchable JNLP file. +LNotLaunchableInfo=File must be a JNLP application, applet, or installer type. +LCantDetermineMainClass=Unknown Main-Class. +LCantDetermineMainClassInfo=Could not determine the main class for this application. +LUnsignedJarWithSecurity=Cannot grant permissions to unsigned jars. +LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. +LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. +LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. +LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. +LNoSecInstance=Error: No security instance for {0}. The application may have trouble continuing +LCertFoundIn={0} found in cacerts ({1}) + +JNotApplet=File is not an applet. +JNotApplication=File is not an application. +JNotComponent=File is not a component. +JNotInstaller=File is not an installer. +JInvalidExtensionDescriptor=Extension does not refer to a component or installer (name={1}, location={2}). + +LNotVerified=Jars not verified. +LCancelOnUserRequest=Canceled on user request. +LFatalVerification=A fatal error occurred while trying to verify jars. +LFatalVerificationInfo= + +LNotVerifiedDialog=Not all jars could be verified. +LAskToContinue=Would you still like to continue running this application? + +# Parser +PInvalidRoot=Root node is not a jnlp node +PNoResources=No resources section defined +PUntrustedNative=nativelib element cannot be specified unless a trusted environment is requested. +PExtensionHasJ2SE=j2se element cannot be specified in a component extension file. +PInnerJ2SE=j2se element cannot be specified within a j2se element. +PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) +PNativeHasMain=Cannot specify main attribute on native JARs. +PNoInfoElement=No information section defined +PTwoDescriptions=Duplicate description of kind {0} +PSharing=Element "sharing-allowed" is illegal in a standard JNLP file +PTwoSecurity=Only one security element allowed per JNLPFile. +PEmptySecurity=Security element specified but does not contain a permissions element. +PTwoDescriptors=Only one application descriptor element allowed per JNLPFile. +PTwoDesktops=Only one desktop element allowed +PTwoMenus=Only one menu element allowed +PTwoTitles=Only one title element allowed +PTwoIcons=Only one icon element allowed +PTwoUpdates=Only one update element is allowed +PUnknownApplet=Unknown Applet +PBadWidth=Invalid applet width. +PBadHeight=Invalid applet height. +PUrlNotInCodebase=Relative URL does not specify a subdirectory of the codebase. (node={0}, href={1}, base={2}) +PBadRelativeUrl=Invalid relative URL (node={0}, href={1}, base={2}) +PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={0}). +PNeedsAttribute=The {0} element must specify a {1} attribute. +PBadXML=Invalid XML document syntax. +PBadHeapSize=Invalid value for heap size ({0}) + +# Runtime +BLaunchAbout=Launching about window... +BNeedsFile=Must specify a .jnlp file +RNoAboutJnlp=Unable to find about.jnlp +BFileLoc=JNLP file location +BBadProp=Incorrect property format {0} (should be key=value) +BBadParam=Incorrect parameter format {0} (should be name=value) +BNoDir=Directory {0} does not exist. +RNoResource=Missing Resource: {0} +RShutdown=This exception to prevent shutdown of JVM, but the process has been terminated. +RExitTaken=Exit class already set and caller is not exit class. +RCantReplaceSM=Changing the SecurityManager is not allowed. +RCantCreateFile=Cant create file {0} +RCantDeleteFile=Cant delete file {0} +RRemoveRPermFailed=Removing read permission on file {0} failed +RRemoveWPermFailed=Removing write permissions on file {0} failed +RRemoveXPermFailed=Removing execute permissions on file {0} failed +RGetRPermFailed=Acquiring read permissions on file {0} failed +RGetWPermFailed=Acquiring write permissions on file {0} failed +RGetXPermFailed=Acquiring execute permissions on file {0} failed +RCantCreateDir=Cant create directory {0} +RCantRename=Cant rename {0} to {1} +RDenyStopped=Stopped applications have no permissions. +RExitNoApp=Can not exit the JVM because the current application cannot be determined. +RNoLockDir=Unable to create locks directory ({0}) +RNestedJarExtration=Unable to extract nested jar. +RUnexpected=Unexpected {0} at {1} +RConfigurationError=Fatal error while reading the configuration +RConfigurationFatal=ERROR: a fatal error has occurred while loading configuration. Perhaps a global configuration was required but could not be found +RPRoxyPacNotSupported=Using Proxy Auto Config (PAC) files is not supported. +RProxyFirefoxNotFound=Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. +RProxyFirefoxOptionNotImplemented=Browser proxy option "{0}" ({1}) not supported yet. +RBrowserLocationPromptTitle=Browser Location +RBrowserLocationPromptMessage=Specify Browser Location +RBrowserLocationPromptMessageWithReason=Specify Browser Location (the browser command "{0}" is invalid). + +# Boot options, message should be shorter than this ----------------> +BOUsage=javaws [-run-options] +BOUsage2=javaws [-control-options] +BOJnlp = Location of JNLP file to launch (url or file). +BOArg = Adds an application argument before launching. +BOParam = Adds an applet parameter before launching. +BOProperty = Sets a system property before launching. +BOUpdate = Update check if seconds since last checked. +BOLicense = Display the GPL license and exit. +BOVerbose = Enable verbose output. +BOAbout = Shows a sample application. +BONosecurity= Disables the secure runtime environment. +BONoupdate = Disables checking for updates. +BOHeadless = Disables download window, other UIs. +BOStrict = Enables strict checking of JNLP file format. +BOViewer = Shows the trusted certificate viewer. +BXnofork = Do not create another JVM. +BXclearcache= Clean the JNLP application cache. +BOHelp = Print this message and exit. + +# Cache +CAutoGen=automatically generated - do not edit +CNotCacheable={0} is not a cacheable resource +CDownloading=Downloading +CComplete=Complete +CChooseCache=Choose a cache directory... +CChooseCacheInfo=Netx needs a location for storing cache files. +CChooseCacheDir=Cache directory +CCannotClearCache=Can not clear cache at this time +CFakeCache=Cache is corrupt. Disabling. +CFakedCache=Cache is corrupt and has been disabled. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. +CStillCorupted=Cache is still corrupt, clearing it. +CCleaningUnsuccessful=Unable to clear cache due to running javaws instance. Please try to shut down all instances of javaws, run 'javaws -Xclearcache', and rerun your jnlp file +CClearedReloading=Cache cleared, re-loading. +CReloadRestarting=Cache re-loaded and application re-starting. It is strongly recommended that you run 'javaws -Xclearcache' and re-run your application as soon as possible. +CStillBroken=Unable to fix corrupt cache. Please shutdown all javaws instances, run 'javaws -Xclearcache', and re-start your application. + +# Security +SFileReadAccess=The application has requested read access to {0}. Do you want to allow this action? +SFileWriteAccess=The application has requested write access to {0}. Do you want to allow this action? +SDesktopShortcut=The application has requested permission to create a desktop launcher. Do you want to allow this action? +SSigUnverified=The application's digital signature cannot be verified. Do you want to run the application? +SSigVerified=The application's digital signature has been verified. Do you want to run the application? +SSignatureError=The application's digital signature has an error. Do you want to run the application? +SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. +SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. +STrustedSource=The digital signature has been validated by a trusted source. +SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? +SClipboardWriteAccess=The application has requested write-only access to the system clipboard. Do you want to allow this action? +SPrinterAccess=The application has requested printer access. Do you want to allow this action? +SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action? +SNoAssociatedCertificate= SUnverified=(unverified) -SAlwaysTrustPublisher=Always trust content from this publisher -SHttpsUnverified=The website's HTTPS certificate cannot be verified. -SNotAllSignedSummary=Only parts of this application code are signed. -SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. -SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? -SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" -SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. - -# Security - used for the More Information dialog -SBadKeyUsage=Resources contain entries whose signer certificate's KeyUsage extension doesn't allow code signing. -SBadExtendedKeyUsage=Resources contain entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing. -SBadNetscapeCertType=Resources contain entries whose signer certificate's NetscapeCertType extension doesn't allow code signing. -SHasUnsignedEntry=Resources contain unsigned entries which have not been integrity-checked. -SHasExpiredCert=The digital signature has expired. -SHasExpiringCert=Resources contain entries whose signer certificate will expire within six months. -SNotYetValidCert=Resources contain entries whose signer certificate is not yet valid. -SUntrustedCertificate=The digital signature was generated with an untrusted certificate. -STrustedCertificate=The digital signature was generated with a trusted certificate. -SCNMisMatch=The expected hostname for this certificate is: "{0}"
The address being connected to is: "{1}" -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. -SCertificateDetails=Certificate Details - -# Security - certificate information -SIssuer=Issuer -SSerial=Serial -SMD5Fingerprint=MD5 Fingerprint -SSHA1Fingerprint=SHA1 Fingerprint -SSignature=Signature -SSignatureAlgorithm=Signature Algorithm -SSubject=Subject -SValidity=Validity - -# Certificate Viewer -CVCertificateViewer=Certificates -CVCertificateType=Certificate Type -CVDetails=Details -CVExport=Export -CVExportPasswordMessage=Enter password to protect key file: -CVImport=Import -CVImportPasswordMessage=Enter password to access file: -CVIssuedBy=Issued By -CVIssuedTo=Issued To -CVPasswordTitle=Authentication Required -CVRemove=Remove -CVRemoveConfirmMessage=Are you sure you want to remove the selected certificate? -CVRemoveConfirmTitle=Confirmation - Remove Certificate? -CVUser=User -CVSystem=System - From dbhole at icedtea.classpath.org Mon Jan 7 08:56:00 2013 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 07 Jan 2013 16:56:00 +0000 Subject: /hg/release/icedtea-web-1.3: Converted Messages.properties to Un... Message-ID: changeset b96993bf1061 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=b96993bf1061 author: Deepak Bhole date: Mon Jan 07 11:47:42 2013 -0500 Converted Messages.properties to Unix format diffstat: ChangeLog | 5 + netx/net/sourceforge/jnlp/resources/Messages.properties | 886 ++++++++-------- 2 files changed, 448 insertions(+), 443 deletions(-) diffs (truncated from 902 to 500 lines): diff -r b8bd24f0aad1 -r b96993bf1061 ChangeLog --- a/ChangeLog Wed Nov 07 13:06:52 2012 -0500 +++ b/ChangeLog Mon Jan 07 11:47:42 2013 -0500 @@ -1,3 +1,8 @@ +2013-01-07 Deepak Bhole + + * netx/net/sourceforge/jnlp/resources/Messages.properties: Converted to + Unix format. + 2012-11-02 Jiri Vanek Renamed reproducers-related variables and targets diff -r b8bd24f0aad1 -r b96993bf1061 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Nov 07 13:06:52 2012 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan 07 11:47:42 2013 -0500 @@ -1,443 +1,443 @@ -# Default (English) UI messages for netx -# L=Launcher, B=Boot, P=Parser, C=cache S=security -# -# General -NullParameter=Null parameter -ButAllow=Allow -ButBrowse=Browse... -ButCancel=\ Cancel\ -ButClose=Close -ButCopy=Copy to Clipboard -ButMoreInformation=More Information... -ButOk=OK -ButProceed=Proceed -ButRun=Run -ButApply=Apply -ButDone=Done -ButShowDetails=Show Details -ButHideDetails=Hide Details - -AFileOnTheMachine=a file on the machine -AlwaysAllowAction=Always allow this action -Usage=Usage: -Error=Error - -Continue=Do you want to continue? -Field=Field -From=From -Name=Name -Password=Password: -Publisher=Publisher -Unknown= -Username=Username: -Value=Value -Version=Version - -# LS - Severity -LSMinor=Minor -LSFatal=Fatal - -# LC - Category -LCSystem=System Error -LCExternalLaunch=External Launch Error -LCFileFormat=File Format Error -LCReadError=Read Error -LCClient=Application Error -LCLaunching=Launch Error -LCNotSupported=Unsupported Feature -LCInit=Initialization Error - -LAllThreadGroup=All JNLP applications -LNullUpdatePolicy=Update policy cannot be null. - -LThreadInterrupted=Thread interrupted while waiting for file to launch. -LThreadInterruptedInfo= -LCouldNotLaunch=Could not launch JNLP file. -LCouldNotLaunchInfo= -LCantRead=Could not read or parse the JNLP file. -LCantReadInfo= -LNullLocation=Could not determine .jnlp file location. -LNullLocationInfo=An attempt was made to launch a JNLP file in another JVM, but the file could not be located. In order to launch in an external JVM, the runtime must be able to locate the .jnlp file either in the local filesystem or on a server. -LNetxJarMissing=Could not determine location of netx.jar. -LNetxJarMissingInfo=An attempt was made to lauch a JNLP file in another JVM, but the netx.jar could not be located. In order to launch in an external JVM, the runtime must be able to locate the netx.jar file. -LNotToSpec=JNLP file not strictly to spec. -LNotToSpecInfo=The JNLP file contains data that is prohibited by the JNLP specification. The runtime can attempt to ignore the invalid information and continue launching the file. -LNotApplication=Not an application file. -LNotApplicationInfo=An attempt was made to load a non-application file as an application. -LNotApplet=Not an applet file. -LNotAppletInfo=An attempt was made to load a non-applet file as an applet. -LNoInstallers=Installers not supported. -LNoInstallersInfo=JNLP installer files are not yet supported. -LInitApplet=Could not initialize applet. -LInitAppletInfo= -LInitApplication=Could not initialize application. -LInitApplicationInfo= -LNotLaunchable=Not a launchable JNLP file. -LNotLaunchableInfo=File must be a JNLP application, applet, or installer type. -LCantDetermineMainClass=Unknown Main-Class. -LCantDetermineMainClassInfo=Could not determine the main class for this application. -LUnsignedJarWithSecurity=Cannot grant permissions to unsigned jars. -LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. -LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. -LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. -LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. -LNoSecInstance=Error: No security instance for {0}. The application may have trouble continuing -LCertFoundIn={0} found in cacerts ({1}) -LSingleInstanceExists=Another instance of this applet already exists and only one may be run at the same time. - -JNotApplet=File is not an applet. -JNotApplication=File is not an application. -JNotComponent=File is not a component. -JNotInstaller=File is not an installer. -JInvalidExtensionDescriptor=Extension does not refer to a component or installer (name={1}, location={2}). - -LNotVerified=Jars not verified. -LCancelOnUserRequest=Canceled on user request. -LFatalVerification=A fatal error occurred while trying to verify jars. -LFatalVerificationInfo= - -LNotVerifiedDialog=Not all jars could be verified. -LAskToContinue=Would you still like to continue running this application? - -# Parser -PInvalidRoot=Root node is not a jnlp node -PNoResources=No resources section defined -PUntrustedNative=nativelib element cannot be specified unless a trusted environment is requested. -PExtensionHasJ2SE=j2se element cannot be specified in a component extension file. -PInnerJ2SE=j2se element cannot be specified within a j2se element. -PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) -PNativeHasMain=Cannot specify main attribute on native JARs. -PNoInfoElement=No information section defined. -PMissingTitle=title -PMissingVendor=vendor -PMissingElement=The {0} section has not been defined for your locale nor does a default value exist in the JNLP file. -PTwoDescriptions=Duplicate description of kind {0} -PSharing=Element "sharing-allowed" is illegal in a standard JNLP file -PTwoSecurity=Only one security element allowed per JNLPFile. -PEmptySecurity=Security element specified but does not contain a permissions element. -PTwoDescriptors=Only one application descriptor element allowed per JNLPFile. -PTwoDesktops=Only one desktop element allowed -PTwoMenus=Only one menu element allowed -PTwoTitles=Only one title element allowed -PTwoIcons=Only one icon element allowed -PTwoUpdates=Only one update element is allowed -PUnknownApplet=Unknown Applet -PBadWidth=Invalid applet width. -PBadHeight=Invalid applet height. -PUrlNotInCodebase=Relative URL does not specify a subdirectory of the codebase. (node={0}, href={1}, base={2}) -PBadRelativeUrl=Invalid relative URL (node={0}, href={1}, base={2}) -PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={1}) -PNeedsAttribute=The {0} element must specify a {1} attribute. -PBadXML=Invalid XML document syntax. -PBadHeapSize=Invalid value for heap size ({0}) - -# Runtime -BLaunchAbout=Launching about window... -BNeedsFile=Must specify a .jnlp file -RNoAboutJnlp=Unable to find about.jnlp -BFileLoc=JNLP file location -BBadProp=Incorrect property format {0} (should be key=value) -BBadParam=Incorrect parameter format {0} (should be name=value) -BNoDir=Directory {0} does not exist. -RNoResource=Missing Resource: {0} -RShutdown=This exception to prevent shutdown of JVM, but the process has been terminated. -RExitTaken=Exit class already set and caller is not exit class. -RCantReplaceSM=Changing the SecurityManager is not allowed. -RCantCreateFile=Cant create file {0} -RCantDeleteFile=Cant delete file {0} -RRemoveRPermFailed=Removing read permission on file {0} failed -RRemoveWPermFailed=Removing write permissions on file {0} failed -RRemoveXPermFailed=Removing execute permissions on file {0} failed -RGetRPermFailed=Acquiring read permissions on file {0} failed -RGetWPermFailed=Acquiring write permissions on file {0} failed -RGetXPermFailed=Acquiring execute permissions on file {0} failed -RCantCreateDir=Cant create directory {0} -RCantRename=Cant rename {0} to {1} -RDenyStopped=Stopped applications have no permissions. -RExitNoApp=Can not exit the JVM because the current application cannot be determined. -RNoLockDir=Unable to create locks directory ({0}) -RNestedJarExtration=Unable to extract nested jar. -RUnexpected=Unexpected {0} at {1} -RConfigurationError=Fatal error while reading the configuration -RConfigurationFatal=ERROR: a fatal error has occurred while loading configuration. Perhaps a global configuration was required but could not be found -RPRoxyPacNotSupported=Using Proxy Auto Config (PAC) files is not supported. -RProxyFirefoxNotFound=Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. -RProxyFirefoxOptionNotImplemented=Browser proxy option "{0}" ({1}) not supported yet. -RBrowserLocationPromptTitle=Browser Location -RBrowserLocationPromptMessage=Specify Browser Location -RBrowserLocationPromptMessageWithReason=Specify Browser Location (the browser command "{0}" is invalid). - -# Boot options, message should be shorter than this ----------------> -BOUsage=javaws [-run-options] -BOUsage2=javaws [-control-options] -BOJnlp = Location of JNLP file to launch (url or file). -BOArg = Adds an application argument before launching. -BOParam = Adds an applet parameter before launching. -BOProperty = Sets a system property before launching. -BOUpdate = Update check if seconds since last checked. -BOLicense = Display the GPL license and exit. -BOVerbose = Enable verbose output. -BOAbout = Shows a sample application. -BONosecurity= Disables the secure runtime environment. -BONoupdate = Disables checking for updates. -BOHeadless = Disables download window, other UIs. -BOStrict = Enables strict checking of JNLP file format. -BOViewer = Shows the trusted certificate viewer. -BXnofork = Do not create another JVM. -BXclearcache= Clean the JNLP application cache. -BOHelp = Print this message and exit. - -# Cache -CAutoGen=automatically generated - do not edit -CNotCacheable={0} is not a cacheable resource -CDownloading=Downloading -CComplete=Complete -CChooseCache=Choose a cache directory... -CChooseCacheInfo=Netx needs a location for storing cache files. -CChooseCacheDir=Cache directory -CCannotClearCache=Can not clear cache at this time -CFakeCache=Cache is corrupt. Fixing. -CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. - -# Security -SFileReadAccess=The application has requested read access to {0}. Do you want to allow this action? -SFileWriteAccess=The application has requested write access to {0}. Do you want to allow this action? -SDesktopShortcut=The application has requested permission to create a desktop launcher. Do you want to allow this action? -SSigUnverified=The application's digital signature cannot be verified. Do you want to run the application? -SSigVerified=The application's digital signature has been verified. Do you want to run the application? -SSignatureError=The application's digital signature has an error. Do you want to run the application? -SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. -STrustedSource=The digital signature has been validated by a trusted source. -SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? -SClipboardWriteAccess=The application has requested write-only access to the system clipboard. Do you want to allow this action? -SPrinterAccess=The application has requested printer access. Do you want to allow this action? -SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action? -SNoAssociatedCertificate= -SUnverified=(unverified) -SAlwaysTrustPublisher=Always trust content from this publisher -SHttpsUnverified=The website's HTTPS certificate cannot be verified. -SNotAllSignedSummary=Only parts of this application code are signed. -SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. -SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? -SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" -SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. - -# Security - used for the More Information dialog -SBadKeyUsage=Resources contain entries whose signer certificate's KeyUsage extension doesn't allow code signing. -SBadExtendedKeyUsage=Resources contain entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing. -SBadNetscapeCertType=Resources contain entries whose signer certificate's NetscapeCertType extension doesn't allow code signing. -SHasUnsignedEntry=Resources contain unsigned entries which have not been integrity-checked. -SHasExpiredCert=The digital signature has expired. -SHasExpiringCert=Resources contain entries whose signer certificate will expire within six months. -SNotYetValidCert=Resources contain entries whose signer certificate is not yet valid. -SUntrustedCertificate=The digital signature was generated with an untrusted certificate. -STrustedCertificate=The digital signature was generated with a trusted certificate. -SCNMisMatch=The expected hostname for this certificate is: "{0}"
The address being connected to is: "{1}" -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. -SCertificateDetails=Certificate Details - -# Security - certificate information -SIssuer=Issuer -SSerial=Serial -SMD5Fingerprint=MD5 Fingerprint -SSHA1Fingerprint=SHA1 Fingerprint -SSignature=Signature -SSignatureAlgorithm=Signature Algorithm -SSubject=Subject -SValidity=Validity - -# Certificate Viewer -CVCertificateViewer=Certificates -CVCertificateType=Certificate Type -CVDetails=Details -CVExport=Export -CVExportPasswordMessage=Enter password to protect key file: -CVImport=Import -CVImportPasswordMessage=Enter password to access file: -CVIssuedBy=Issued By -CVIssuedTo=Issued To -CVPasswordTitle=Authentication Required -CVRemove=Remove -CVRemoveConfirmMessage=Are you sure you want to remove the selected certificate? -CVRemoveConfirmTitle=Confirmation - Remove Certificate? -CVUser=User -CVSystem=System - -#KeyStores: see KeyStores.java -KS=KeyStore -KSCerts=Trusted Certificates -KSJsseCerts=Trusted JSSE Certificates -KSCaCerts=Trusted Root CA Certificates -KSJsseCaCerts=Trusted JSSE Root CA Certificates, -KSClientCerts=Client Authentication Certificates - -# Deployment Configuration messages -DCIncorrectValue=Property "{0}" has incorrect value "{1}". Possible values {2}. -DCInternal=Internal error: {0} -DCSourceInternal= -DCUnknownSettingWithName=Property "{0}" is unknown. - -# Value Validator messages. Messages should follow "Possible values ..." -VVPossibleValues=Possible values {0} -VVPossibleBooleanValues=are {0} or {1} -VVPossibleFileValues=include the absolute location of a file - it must begin with a / -VVPossibleRangedIntegerValues=are in range {0} to {1} (inclusive) -VVPossibleUrlValues=include any valid url (eg http://icedtea.classpath.org/hg/) - -# Control Panel - Main -CPMainDescriptionShort=Configure IcedTea-Web -CPMainDescriptionLong=Configure how the browser plugin (IcedTeaNPPlugin) and javaws (NetX) work - -# Control Panel - Tab Descriptions -CPAboutDescription=View version information about Icedtea Control Panel. -CPNetworkSettingsDescription=Configure network settings, including how IcedTea-Web connects to the internet and whether to use any proxies. -CPTempInternetFilesDescription=Java stores application data for faster execution the next time you run it. -CPJRESettingsDescription=View and manage Java Runtime Environment versions and settings for Java applications and applets. -CPCertificatesDescription=Use certificates to positively identify yourself, certifications, authorities, and plublishers. -CPSecurityDescription=Use this to configure security settings. -CPDebuggingDescription=Enable options here to help with debugging -CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. - -# Control Panel - Buttons -CPButAbout=About... -CPButNetworkSettings=Network Settings... -CPButSettings=Settings... -CPButView=View... -CPButCertificates=Certificates... - -# Control Panel - Headers -CPHead=IcedTea Web Control Panel -CPHeadAbout=About -CPHeadNetworkSettings=Network Proxy Settings -CPHeadTempInternetFiles=Temporary Internet Files -CPHeadJRESettings=Java Runtime Environment Settings -CPHeadCertificates=Certificates -CPHeadDebugging=Debugging Settings -CPHeadDesktopIntegration=Desktop Integrations -CPHeadSecurity=Security Settings - -# Control Panel - Tabs -CPTabAbout=About IcedTea-Web -CPTabCache=Cache -CPTabCertificate=Certificates -CPTabClassLoader=Class Loaders -CPTabDebugging=Debugging -CPTabDesktopIntegration=Desktop Integration -CPTabNetwork=Network -CPTabRuntimes=Runtimes -CPTabSecurity=Security - -# Control Panel - AboutPanel -CPAboutInfo=This is the control panel for setting deployments.properties.
Not all options will take effect until implemented.
The use of multiple JREs is currently unsupported.
- -# Control Panel - AdvancedProxySettings -APSDialogTitle=Network Settings -APSServersPanel=Servers -APSProxyTypeLabel=Type -APSProxyAddressLabel=Proxy Address -APSProxyPortLabel=Proxy Port -APSLabelHTTP=HTTP -APSLabelSecure=Secure -APSLabelFTP=FTP -APSLabelSocks=Socks -APSSameProxyForAllProtocols=Use the same proxy server for all protocols. -APSExceptionsLabel=Exceptions -APSExceptionsDescription=Do not use proxy server for addresses beginning with -APSExceptionInstruction=Separate each entry with a semicolon. - -# Control Panel - DebugginPanel -DPEnableTracing=Enable tracing -DPEnableLogging=Enable logging -DPDisable=Disable -DPHide=Hide on startup -DPShow=Show on startup -DPJavaConsole=Java Console - -# Control Panel - DesktopShortcutPanel -DSPNeverCreate=Never create -DSPAlwaysAllow=Always allow -DSPAskUser=Ask user -DSPAskIfHinted=Ask if hinted -DSPAlwaysIfHinted=Always if hinted - -# Control Panel - NetworkSettingsPanel -NSDescription-1=Unknown Setting. -NSDescription0=Use direct connection. -NSDescription1=Override browser proxy settings. -NSDescription2=Use automatic proxy configuration script at the specified location. -NSDescription3=Use proxy settings from your default browser to connect to the internet. -NSAddress=Address -NSPort=Port -NSAdvanced=Advanced -NSBypassLocal=Bypass proxy server for local addresses -NSDirectConnection=Direct connection -NSManualProxy=Manual proxy server -NSAutoProxy=Automatic proxy configuration script -NSBrowserProxy=Use browser settings -NSScriptLocation=Script location - -# Control Panel - SecurityGeneralPanel -SGPAllowUserGrantSigned=Allow users to grant permissions to signed content -SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority -SGPUseBrowserKeystore=Use certificates and keys in browser keystore (Unsupported) -SGPUsePersonalCertOneMatch=Use personal certificate automatically if only one matches server request (Unsupported) -SGPWarnCertHostMismatch=Warn if site certificate does not match hostname -SGPShowValid=Show site certificate even if it is valid (Unsupported) -SGPShowSandboxWarning=Show sandbox warning banner -SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests -SGPCheckCertRevocationList=Check certificates for revocation using Certificate Revocation Lists (CRLs) (Unsupported) -SGPEnableOnlineCertValidate=Enable online certificate validation (Unsupported) -SGPEnableTrustedPublisherList=Enable list of trusted publishers (Unsupported) -SGPEnableBlacklistRevocation=Enable blacklist revocation check (Unsupported) -SGPEnableCachingPassword=Enable caching password for authentication (Unsupported) -SGPUseSSL2=Use SSL 2.0 compatible ClientHello format (Unsupported) -SGPUseSSL3=Use SSL 3.0 (Unsupported) -SGPUseTLS1=Use TLS 1.0 (Unsupported) - -# Control Panel - TemporaryInternetFilesPanel -TIFPEnableCache=Keep temporary files on my computer -TIFPLocation=Location -TIFPLocationLabel=Select the location where temporary files are kept -TIFPChange=Change -TIFPDiskSpace=Disk space -TIFPCompressionLevel=Select the compression level for JAR files -TIFPNone=None -TIFPMax=Max -TIFPCacheSize=Set the amount of disk space for storing temporary files -TIFPDeleteFiles=Delete files -TIFPViewFiles=View files... - -# Control Panel - Cache Viewer -CVCPDialogTitle=Cache Viewer -CVCPButRefresh=Refresh -CVCPButDelete=Delete -CVCPColLastModified=Last Modified -CVCPColSize=Size (Bytes) -CVCPColDomain=Domain -CVCPColType=Type -CVCPColPath=Path -CVCPColName=Name - -# Control Panel - Misc. -CPJRESupport=IcedTea-Web currently does not support the use of multiple JREs. -CPInvalidPort=Invalid port number given.\n[Valid port numbers are 1-65535] -CPInvalidPortTitle=Error on input. - -# command line control panel -CLNoInfo=No information avaiable (is this a valid option?). -CLValue=Value: {0} -CLValueSource=Source: {0} -CLDescription=Description: {0} -CLUnknownCommand=Unknown command {0} -CLUnknownProperty=Unknown property-name "{0}" -CLWarningUnknownProperty=WARNING: Unknown property name "{0}" - creating new property -CLNoIssuesFound=No issues found. -CLIncorrectValue=Property "{0}" has incorrect value "{1}". Possible values {2}. -CLListDescription=Shows a list of all property names and values that are in use by IcedTea-Web -CLGetDescription=Shows the value for property-name -CLSetDescription=Sets the property-name to value if possible. The value is checked for being valid. If the administrator has locked the property, this will have no effect -CLResetDescription=Resets the value for property-name to it\'s default value -CLInfoDescription=Shows more information about the given property -CLCheckDescription=Shows any properties that have been defined but are not recognized by IcedTea Web -CLHelpDescription=The itweb-settings tool allows a user to modify, view and check configuration. \nTo use the GUI, do not pass any arguments. To use the CLI mode, pass in the approrpiate command and parameters. For help with a particular command, try: {0} command help +# Default (English) UI messages for netx +# L=Launcher, B=Boot, P=Parser, C=cache S=security +# +# General +NullParameter=Null parameter +ButAllow=Allow +ButBrowse=Browse... +ButCancel=\ Cancel\ +ButClose=Close +ButCopy=Copy to Clipboard +ButMoreInformation=More Information... +ButOk=OK +ButProceed=Proceed +ButRun=Run +ButApply=Apply +ButDone=Done +ButShowDetails=Show Details +ButHideDetails=Hide Details + +AFileOnTheMachine=a file on the machine +AlwaysAllowAction=Always allow this action +Usage=Usage: +Error=Error + +Continue=Do you want to continue? +Field=Field +From=From +Name=Name +Password=Password: +Publisher=Publisher +Unknown= +Username=Username: +Value=Value +Version=Version + +# LS - Severity +LSMinor=Minor +LSFatal=Fatal + +# LC - Category +LCSystem=System Error From dbhole at icedtea.classpath.org Mon Jan 7 08:56:09 2013 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Mon, 07 Jan 2013 16:56:09 +0000 Subject: /hg/icedtea-web: Converted Messages.properties to Unix format Message-ID: changeset 02981a272327 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=02981a272327 author: Deepak Bhole date: Mon Jan 07 11:47:32 2013 -0500 Converted Messages.properties to Unix format diffstat: ChangeLog | 5 + netx/net/sourceforge/jnlp/resources/Messages.properties | 950 ++++++++-------- 2 files changed, 480 insertions(+), 475 deletions(-) diffs (truncated from 966 to 500 lines): diff -r e335e39c382b -r 02981a272327 ChangeLog --- a/ChangeLog Fri Jan 04 12:32:15 2013 -0500 +++ b/ChangeLog Mon Jan 07 11:47:32 2013 -0500 @@ -1,3 +1,8 @@ +2013-01-07 Deepak Bhole + + * netx/net/sourceforge/jnlp/resources/Messages.properties: Converted to + Unix format. + 2013-01-04 Adam Domurad * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: diff -r e335e39c382b -r 02981a272327 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Jan 04 12:32:15 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan 07 11:47:32 2013 -0500 @@ -1,475 +1,475 @@ -# Default (English) UI messages for netx -# L=Launcher, B=Boot, P=Parser, C=cache S=security -# -# General -NullParameter=Null parameter -ButAllow=Allow -ButBrowse=Browse... -ButCancel=\ Cancel\ -ButClose=Close -ButCopy=Copy to Clipboard -ButMoreInformation=More Information... -ButOk=OK -ButProceed=Proceed -ButRun=Run -ButApply=Apply -ButDone=Done -ButShowDetails=Show Details -ButHideDetails=Hide Details - -AFileOnTheMachine=a file on the machine -AlwaysAllowAction=Always allow this action -Usage=Usage: -Error=Error - -Continue=Do you want to continue? -Field=Field -From=From -Name=Name -Password=Password: -Publisher=Publisher -Unknown= -Username=Username: -Value=Value -Version=Version - -# LS - Severity -LSMinor=Minor -LSFatal=Fatal - -# LC - Category -LCSystem=System Error -LCExternalLaunch=External Launch Error -LCFileFormat=File Format Error -LCReadError=Read Error -LCClient=Application Error -LCLaunching=Launch Error -LCNotSupported=Unsupported Feature -LCInit=Initialization Error - -LAllThreadGroup=All JNLP applications -LNullUpdatePolicy=Update policy cannot be null. - -LThreadInterrupted=Thread interrupted while waiting for file to launch. -LThreadInterruptedInfo= -LCouldNotLaunch=Could not launch JNLP file. -LCouldNotLaunchInfo= -LCantRead=Could not read or parse the JNLP file. -LCantReadInfo= -LNullLocation=Could not determine .jnlp file location. -LNullLocationInfo=An attempt was made to launch a JNLP file in another JVM, but the file could not be located. In order to launch in an external JVM, the runtime must be able to locate the .jnlp file either in the local filesystem or on a server. -LNetxJarMissing=Could not determine location of netx.jar. -LNetxJarMissingInfo=An attempt was made to lauch a JNLP file in another JVM, but the netx.jar could not be located. In order to launch in an external JVM, the runtime must be able to locate the netx.jar file. -LNotToSpec=JNLP file not strictly to spec. -LNotToSpecInfo=The JNLP file contains data that is prohibited by the JNLP specification. The runtime can attempt to ignore the invalid information and continue launching the file. -LNotApplication=Not an application file. -LNotApplicationInfo=An attempt was made to load a non-application file as an application. -LNotApplet=Not an applet file. -LNotAppletInfo=An attempt was made to load a non-applet file as an applet. -LNoInstallers=Installers not supported. -LNoInstallersInfo=JNLP installer files are not yet supported. -LInitApplet=Could not initialize applet. -LInitAppletInfo= -LInitApplication=Could not initialize application. -LInitApplicationInfo= -LNotLaunchable=Not a launchable JNLP file. -LNotLaunchableInfo=File must be a JNLP application, applet, or installer type. -LCantDetermineMainClass=Unknown Main-Class. -LCantDetermineMainClassInfo=Could not determine the main class for this application. -LUnsignedJarWithSecurity=Cannot grant permissions to unsigned jars. -LUnsignedJarWithSecurityInfo=Application requested security permissions, but jars are not signed. -LSignedJNLPAppDifferentCerts=The JNLP application is not fully signed by a single cert. -LSignedJNLPAppDifferentCertsInfo=The JNLP application has its components individually signed, however there must be a common signer to all entries. -LSignedAppJarUsingUnsignedJar=Signed application using unsigned jars. -LSignedAppJarUsingUnsignedJarInfo=The main application jar is signed, but some of the jars it is using aren't. -LSignedJNLPFileDidNotMatch=The signed JNLP file did not match the launching JNLP file. -LNoSecInstance=Error: No security instance for {0}. The application may have trouble continuing -LCertFoundIn={0} found in cacerts ({1}) -LSingleInstanceExists=Another instance of this applet already exists and only one may be run at the same time. - -JNotApplet=File is not an applet. -JNotApplication=File is not an application. -JNotComponent=File is not a component. -JNotInstaller=File is not an installer. -JInvalidExtensionDescriptor=Extension does not refer to a component or installer (name={1}, location={2}). - -LNotVerified=Jars not verified. -LCancelOnUserRequest=Canceled on user request. -LFatalVerification=A fatal error occurred while trying to verify jars. -LFatalVerificationInfo= - -LNotVerifiedDialog=Not all jars could be verified. -LAskToContinue=Would you still like to continue running this application? - -# Parser -PInvalidRoot=Root node is not a jnlp node -PNoResources=No resources section defined -PUntrustedNative=nativelib element cannot be specified unless a trusted environment is requested. -PExtensionHasJ2SE=j2se element cannot be specified in a component extension file. -PInnerJ2SE=j2se element cannot be specified within a j2se element. -PTwoMains=Duplicate main JAR defined in a resources element (there can be only one) -PNativeHasMain=Cannot specify main attribute on native JARs. -PNoInfoElement=No information section defined. -PMissingTitle=title -PMissingVendor=vendor -PMissingElement=The {0} section has not been defined for your locale nor does a default value exist in the JNLP file. -PTwoDescriptions=Duplicate description of kind {0} -PSharing=Element "sharing-allowed" is illegal in a standard JNLP file -PTwoSecurity=Only one security element allowed per JNLPFile. -PEmptySecurity=Security element specified but does not contain a permissions element. -PTwoDescriptors=Only one application descriptor element allowed per JNLPFile. -PTwoDesktops=Only one desktop element allowed -PTwoMenus=Only one menu element allowed -PTwoTitles=Only one title element allowed -PTwoIcons=Only one icon element allowed -PTwoUpdates=Only one update element is allowed -PUnknownApplet=Unknown Applet -PBadWidth=Invalid applet width. -PBadHeight=Invalid applet height. -PUrlNotInCodebase=Relative URL does not specify a subdirectory of the codebase. (node={0}, href={1}, base={2}) -PBadRelativeUrl=Invalid relative URL (node={0}, href={1}, base={2}) -PBadNonrelativeUrl=Invalid non-relative URL (node={0}, href={1}) -PNeedsAttribute=The {0} element must specify a {1} attribute. -PBadXML=Invalid XML document syntax. -PBadHeapSize=Invalid value for heap size ({0}) - -# Runtime -BLaunchAbout=Launching about window... -BNeedsFile=Must specify a .jnlp file -RNoAboutJnlp=Unable to find about.jnlp -BFileLoc=JNLP file location -BBadProp=Incorrect property format {0} (should be key=value) -BBadParam=Incorrect parameter format {0} (should be name=value) -BNoDir=Directory {0} does not exist. -BNoCodeOrObjectApplet=Applet tag must specify a 'code' or 'object' attribute. -RNoResource=Missing Resource: {0} -RShutdown=This exception to prevent shutdown of JVM, but the process has been terminated. -RExitTaken=Exit class already set and caller is not exit class. -RCantReplaceSM=Changing the SecurityManager is not allowed. -RCantCreateFile=Cant create file {0} -RCantDeleteFile=Cant delete file {0} -RRemoveRPermFailed=Removing read permission on file {0} failed -RRemoveWPermFailed=Removing write permissions on file {0} failed -RRemoveXPermFailed=Removing execute permissions on file {0} failed -RGetRPermFailed=Acquiring read permissions on file {0} failed -RGetWPermFailed=Acquiring write permissions on file {0} failed -RGetXPermFailed=Acquiring execute permissions on file {0} failed -RCantCreateDir=Cant create directory {0} -RCantRename=Cant rename {0} to {1} -RDenyStopped=Stopped applications have no permissions. -RExitNoApp=Can not exit the JVM because the current application cannot be determined. -RNoLockDir=Unable to create locks directory ({0}) -RNestedJarExtration=Unable to extract nested jar. -RUnexpected=Unexpected {0} at {1} -RConfigurationError=Fatal error while reading the configuration -RConfigurationFatal=ERROR: a fatal error has occurred while loading configuration. Perhaps a global configuration was required but could not be found -RPRoxyPacNotSupported=Using Proxy Auto Config (PAC) files is not supported. -RProxyFirefoxNotFound=Unable to use Firefox's proxy settings. Using "DIRECT" as proxy type. -RProxyFirefoxOptionNotImplemented=Browser proxy option "{0}" ({1}) not supported yet. -RBrowserLocationPromptTitle=Browser Location -RBrowserLocationPromptMessage=Specify Browser Location -RBrowserLocationPromptMessageWithReason=Specify Browser Location (the browser command "{0}" is invalid). - -# Boot options, message should be shorter than this ----------------> -BOUsage=javaws [-run-options] -BOUsage2=javaws [-control-options] -BOJnlp = Location of JNLP file to launch (url or file). -BOArg = Adds an application argument before launching. -BOParam = Adds an applet parameter before launching. -BOProperty = Sets a system property before launching. -BOUpdate = Update check if seconds since last checked. -BOLicense = Display the GPL license and exit. -BOVerbose = Enable verbose output. -BOAbout = Shows a sample application. -BONosecurity= Disables the secure runtime environment. -BONoupdate = Disables checking for updates. -BOHeadless = Disables download window, other UIs. -BOStrict = Enables strict checking of JNLP file format. -BOViewer = Shows the trusted certificate viewer. -BXnofork = Do not create another JVM. -BXclearcache= Clean the JNLP application cache. -BOHelp = Print this message and exit. - -# Cache -CAutoGen=automatically generated - do not edit -CNotCacheable={0} is not a cacheable resource -CDownloading=Downloading -CComplete=Complete -CChooseCache=Choose a cache directory... -CChooseCacheInfo=Netx needs a location for storing cache files. -CChooseCacheDir=Cache directory -CCannotClearCache=Can not clear cache at this time -CFakeCache=Cache is corrupt. Fixing. -CFakedCache=Cache is corrupt and has been fixed. It is strongly recommended that you run 'javaws -Xclearcache' and rerun your application as soon as possible. - -# Security -SFileReadAccess=The application has requested read access to {0}. Do you want to allow this action? -SFileWriteAccess=The application has requested write access to {0}. Do you want to allow this action? -SDesktopShortcut=The application has requested permission to create a desktop launcher. Do you want to allow this action? -SSigUnverified=The application's digital signature cannot be verified. Do you want to run the application? -SSigVerified=The application's digital signature has been verified. Do you want to run the application? -SSignatureError=The application's digital signature has an error. Do you want to run the application? -SUntrustedSource=The digital signature could not be verified by a trusted source. Only run if you trust the origin of the application. -SWarnFullPermissionsIgnorePolicy=The code executed will be given full permissions, ignoring any java policies you may have. -STrustedSource=The digital signature has been validated by a trusted source. -SClipboardReadAccess=The application has requested read-only access to the system clipboard. Do you want to allow this action? -SClipboardWriteAccess=The application has requested write-only access to the system clipboard. Do you want to allow this action? -SPrinterAccess=The application has requested printer access. Do you want to allow this action? -SNetworkAccess=The application has requested permission to establish connections to {0}. Do you want to allow this action? -SNoAssociatedCertificate= -SUnverified=(unverified) -SAlwaysTrustPublisher=Always trust content from this publisher -SHttpsUnverified=The website's HTTPS certificate cannot be verified. -SNotAllSignedSummary=Only parts of this application code are signed. -SNotAllSignedDetail=This application contains both signed and unsigned code. While signed code is safe if you trust the provider, unsigned code may imply code outside of the trusted provider's control. -SNotAllSignedQuestion=Do you wish to proceed and run this application anyway? -SAuthenticationPrompt=The {0} server at {1} is requesting authentication. It says "{2}" -SJNLPFileIsNotSigned=This application contains a digital signature in which the launching JNLP file is not signed. - -# Security - used for the More Information dialog -SBadKeyUsage=Resources contain entries whose signer certificate's KeyUsage extension doesn't allow code signing. -SBadExtendedKeyUsage=Resources contain entries whose signer certificate's ExtendedKeyUsage extension doesn't allow code signing. -SBadNetscapeCertType=Resources contain entries whose signer certificate's NetscapeCertType extension doesn't allow code signing. -SHasExpiredCert=The digital signature has expired. -SHasExpiringCert=Resources contain entries whose signer certificate will expire within six months. -SNotYetValidCert=Resources contain entries whose signer certificate is not yet valid. -SUntrustedCertificate=The digital signature was generated with an untrusted certificate. -STrustedCertificate=The digital signature was generated with a trusted certificate. -SCNMisMatch=The expected hostname for this certificate is: "{0}"
The address being connected to is: "{1}" -SRunWithoutRestrictions=This application will be run without the security restrictions normally provided by java. -SCertificateDetails=Certificate Details - -# Security - certificate information -SIssuer=Issuer -SSerial=Serial -SMD5Fingerprint=MD5 Fingerprint -SSHA1Fingerprint=SHA1 Fingerprint -SSignature=Signature -SSignatureAlgorithm=Signature Algorithm -SSubject=Subject -SValidity=Validity - -# Certificate Viewer -CVCertificateViewer=Certificates -CVCertificateType=Certificate Type -CVDetails=Details -CVExport=Export -CVExportPasswordMessage=Enter password to protect key file: -CVImport=Import -CVImportPasswordMessage=Enter password to access file: -CVIssuedBy=Issued By -CVIssuedTo=Issued To -CVPasswordTitle=Authentication Required -CVRemove=Remove -CVRemoveConfirmMessage=Are you sure you want to remove the selected certificate? -CVRemoveConfirmTitle=Confirmation - Remove Certificate? -CVUser=User -CVSystem=System - -#KeyStores: see KeyStores.java -KS=KeyStore -KSCerts=Trusted Certificates -KSJsseCerts=Trusted JSSE Certificates -KSCaCerts=Trusted Root CA Certificates -KSJsseCaCerts=Trusted JSSE Root CA Certificates, -KSClientCerts=Client Authentication Certificates - -# Deployment Configuration messages -DCIncorrectValue=Property "{0}" has incorrect value "{1}". Possible values {2}. -DCInternal=Internal error: {0} -DCSourceInternal= -DCUnknownSettingWithName=Property "{0}" is unknown. - -# Value Validator messages. Messages should follow "Possible values ..." -VVPossibleValues=Possible values {0} -VVPossibleBooleanValues=are {0} or {1} -VVPossibleFileValues=include the absolute location of a file - it must begin with a / -VVPossibleRangedIntegerValues=are in range {0} to {1} (inclusive) -VVPossibleUrlValues=include any valid url (eg http://icedtea.classpath.org/hg/) - -# Control Panel - Main -CPMainDescriptionShort=Configure IcedTea-Web -CPMainDescriptionLong=Configure how the browser plugin (IcedTeaNPPlugin) and javaws (NetX) work - -# Control Panel - Tab Descriptions -CPAboutDescription=View version information about Icedtea Control Panel. -CPNetworkSettingsDescription=Configure network settings, including how IcedTea-Web connects to the internet and whether to use any proxies. -CPTempInternetFilesDescription=Java stores application data for faster execution the next time you run it. -CPJRESettingsDescription=View and manage Java Runtime Environment versions and settings for Java applications and applets. -CPCertificatesDescription=Use certificates to positively identify yourself, certifications, authorities, and plublishers. -CPSecurityDescription=Use this to configure security settings. -CPDebuggingDescription=Enable options here to help with debugging -CPDesktopIntegrationDescription=Set whether or not to allow creation of desktop shortcut. -CPJVMPluginArguments=Set JVM arguments for plugin. - -# Control Panel - Buttons -CPButAbout=About... -CPButNetworkSettings=Network Settings... -CPButSettings=Settings... -CPButView=View... -CPButCertificates=Certificates... - -# Control Panel - Headers -CPHead=IcedTea Web Control Panel -CPHeadAbout=About -CPHeadNetworkSettings=Network Proxy Settings -CPHeadTempInternetFiles=Temporary Internet Files -CPHeadJRESettings=Java Runtime Environment Settings -CPHeadCertificates=Certificates -CPHeadDebugging=Debugging Settings -CPHeadDesktopIntegration=Desktop Integrations -CPHeadSecurity=Security Settings -CPHeadJVMSettings=JVM Settings - -# Control Panel - Tabs -CPTabAbout=About IcedTea-Web -CPTabCache=Cache -CPTabCertificate=Certificates -CPTabClassLoader=Class Loaders -CPTabDebugging=Debugging -CPTabDesktopIntegration=Desktop Integration -CPTabNetwork=Network -CPTabRuntimes=Runtimes -CPTabSecurity=Security -CPTabJVMSettings=JVM Settings - -# Control Panel - AboutPanel -CPAboutInfo=This is the control panel for setting deployments.properties.
Not all options will take effect until implemented.
The use of multiple JREs is currently unsupported.
- -# Control Panel - AdvancedProxySettings -APSDialogTitle=Network Settings -APSServersPanel=Servers -APSProxyTypeLabel=Type -APSProxyAddressLabel=Proxy Address -APSProxyPortLabel=Proxy Port -APSLabelHTTP=HTTP -APSLabelSecure=Secure -APSLabelFTP=FTP -APSLabelSocks=Socks -APSSameProxyForAllProtocols=Use the same proxy server for all protocols. -APSExceptionsLabel=Exceptions -APSExceptionsDescription=Do not use proxy server for addresses beginning with -APSExceptionInstruction=Separate each entry with a semicolon. - -# Control Panel - DebugginPanel -DPEnableTracing=Enable tracing -DPEnableLogging=Enable logging -DPDisable=Disable -DPHide=Hide on startup -DPShow=Show on startup -DPJavaConsole=Java Console - -# Control Panel - DesktopShortcutPanel -DSPNeverCreate=Never create -DSPAlwaysAllow=Always allow -DSPAskUser=Ask user -DSPAskIfHinted=Ask if hinted -DSPAlwaysIfHinted=Always if hinted - -# Control Panel - NetworkSettingsPanel -NSDescription-1=Unknown Setting. -NSDescription0=Use direct connection. -NSDescription1=Override browser proxy settings. -NSDescription2=Use automatic proxy configuration script at the specified location. -NSDescription3=Use proxy settings from your default browser to connect to the internet. -NSAddress=Address -NSPort=Port -NSAdvanced=Advanced -NSBypassLocal=Bypass proxy server for local addresses -NSDirectConnection=Direct connection -NSManualProxy=Manual proxy server -NSAutoProxy=Automatic proxy configuration script -NSBrowserProxy=Use browser settings -NSScriptLocation=Script location - -# Control Panel - SecurityGeneralPanel -SGPAllowUserGrantSigned=Allow users to grant permissions to signed content -SGPAllowUserGrantUntrust=Allow users to grant permissions to content from an untrusted authority -SGPUseBrowserKeystore=Use certificates and keys in browser keystore (Unsupported) -SGPUsePersonalCertOneMatch=Use personal certificate automatically if only one matches server request (Unsupported) -SGPWarnCertHostMismatch=Warn if site certificate does not match hostname -SGPShowValid=Show site certificate even if it is valid (Unsupported) -SGPShowSandboxWarning=Show sandbox warning banner -SGPAllowUserAcceptJNLPSecurityRequests=Allow user to accept JNLP security requests -SGPCheckCertRevocationList=Check certificates for revocation using Certificate Revocation Lists (CRLs) (Unsupported) -SGPEnableOnlineCertValidate=Enable online certificate validation (Unsupported) -SGPEnableTrustedPublisherList=Enable list of trusted publishers (Unsupported) -SGPEnableBlacklistRevocation=Enable blacklist revocation check (Unsupported) -SGPEnableCachingPassword=Enable caching password for authentication (Unsupported) -SGPUseSSL2=Use SSL 2.0 compatible ClientHello format (Unsupported) -SGPUseSSL3=Use SSL 3.0 (Unsupported) -SGPUseTLS1=Use TLS 1.0 (Unsupported) - -# Control Panel - TemporaryInternetFilesPanel -TIFPEnableCache=Keep temporary files on my computer -TIFPLocation=Location -TIFPLocationLabel=Select the location where temporary files are kept -TIFPChange=Change -TIFPDiskSpace=Disk space -TIFPCompressionLevel=Select the compression level for JAR files -TIFPNone=None -TIFPMax=Max -TIFPCacheSize=Set the amount of disk space for storing temporary files -TIFPDeleteFiles=Delete files -TIFPViewFiles=View files... - -# Control Panel - Cache Viewer -CVCPDialogTitle=Cache Viewer -CVCPButRefresh=Refresh -CVCPButDelete=Delete -CVCPColLastModified=Last Modified -CVCPColSize=Size (Bytes) -CVCPColDomain=Domain -CVCPColType=Type -CVCPColPath=Path -CVCPColName=Name - -# Control Panel - Misc. -CPJRESupport=IcedTea-Web currently does not support the use of multiple JREs. -CPInvalidPort=Invalid port number given.\n[Valid port numbers are 1-65535] -CPInvalidPortTitle=Error on input. - -# command line control panel -CLNoInfo=No information avaiable (is this a valid option?). -CLValue=Value: {0} -CLValueSource=Source: {0} -CLDescription=Description: {0} -CLUnknownCommand=Unknown command {0} -CLUnknownProperty=Unknown property-name "{0}" -CLWarningUnknownProperty=WARNING: Unknown property name "{0}" - creating new property -CLNoIssuesFound=No issues found. -CLIncorrectValue=Property "{0}" has incorrect value "{1}". Possible values {2}. -CLListDescription=Shows a list of all property names and values that are in use by IcedTea-Web -CLGetDescription=Shows the value for property-name -CLSetDescription=Sets the property-name to value if possible. The value is checked for being valid. If the administrator has locked the property, this will have no effect -CLResetDescription=Resets the value for property-name to it\'s default value -CLInfoDescription=Shows more information about the given property -CLCheckDescription=Shows any properties that have been defined but are not recognized by IcedTea Web -CLHelpDescription=The itweb-settings tool allows a user to modify, view and check configuration. \nTo use the GUI, do not pass any arguments. To use the CLI mode, pass in the approrpiate command and parameters. For help with a particular command, try: {0} command help - -# splash screen related -SPLASHerror = Click here for details. Serious exception occurred. -SPLASH_ERROR = ERROR -SPLASHtitle = Title -SPLASHvendor = Vendor -SPLASHhomepage = Homepage -SPLASHdescription = Description -SPLASHClose= Close -SPLASHclosewAndCopyException = Close and copy StackTrace to clipboard -SPLASHexOccured = Sorry, a serious exception occurred... -SPLASHHome = Home -SPLASHcantCopyEx = Can not copy exception -SPLASHnoExRecorded = No exception recorded -SPLASHmainL1 = For even more information you can visit {0} and follow the steps to obtain information and fill bug -SPLASHurl = http://icedtea.classpath.org/wiki/IcedTea-Web#Filing_bugs -SPLASHurlLooks = http://icedtea.classpath.org/wiki/IcedTea-Web -SPLASHmainL3 = Sorry no more information available, try to launch browser from command line and watch output. -SPLASHcloseAndCopyShorter = Close and copy to clipboard -SPLASHmainL4 = We have noticed exception written below, for even more information try to launch browser from command line and watch output -SPLASHexWas = Exception was: -SPLASHcfl = Can't follow link to -SPLASHvendorsInfo = Information from vendor of your application -SPLASHanotherInfo = Another available info -SPLASHdefaultHomepage = Unspecified homepage, verify source rather -SPLASHerrorInInformation = Error during loading of information element, verify source rather -SPLASHmissingInformation = Information element is missing, verify source rather +# Default (English) UI messages for netx +# L=Launcher, B=Boot, P=Parser, C=cache S=security +# +# General +NullParameter=Null parameter +ButAllow=Allow +ButBrowse=Browse... +ButCancel=\ Cancel\ +ButClose=Close From adomurad at redhat.com Mon Jan 7 09:38:10 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 07 Jan 2013 12:38:10 -0500 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EAFB5A.9000104@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> <50EAE14D.5050505@redhat.com> <50EAEE24.2080804@redhat.com> <50EAFB5A.9000104@redhat.com> Message-ID: <50EB0802.8030803@redhat.com> On 01/07/2013 11:44 AM, Jiri Vanek wrote: > On 01/07/2013 04:47 PM, Adam Domurad wrote: >> On 01/07/2013 09:53 AM, Jiri Vanek wrote: >>>> [.. rest snipped..] >>> Isn't missing updated junit patch here? >> >> Sorry, was awaiting your advice -- if you did not like this >> security-manager-in-constructor change >> than the unit test would not be valid, a quite different approach >> would have to be used. >> >>> >>> Thanx for looking into it. >>> J. >>> >> >> >> patch attached, >> -Adam >> >> jsfix-unittest2.patch >> >> >> diff --git >> a/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java >> b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java >> new file mode 100644 >> --- /dev/null >> +++ >> b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java >> @@ -0,0 +1,49 @@ >> +/* JSObjectUnboxPermission.java >> + Copyright (C) 2012 Red Hat >> + >> +This file is part of IcedTea. >> + >> +IcedTea is free software; you can redistribute it and/or modify >> +it under the terms of the GNU General Public License as published by >> +the Free Software Foundation; either version 2, or (at your option) >> +any later version. >> + >> +IcedTea is distributed in the hope that it will be useful, but >> +WITHOUT ANY WARRANTY; without even the implied warranty of >> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> +General Public License for more details. >> + >> +You should have received a copy of the GNU General Public License >> +along with IcedTea; see the file COPYING. If not, write to the >> +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >> Boston, MA >> +02110-1301 USA. >> + >> +Linking this library statically or dynamically with other modules is >> +making a combined work based on this library. Thus, the terms and >> +conditions of the GNU General Public License cover the whole >> +combination. >> + >> +As a special exception, the copyright holders of this library give you >> +permission to link this library with independent modules to produce an >> +executable, regardless of the license terms of these independent >> +modules, and to copy and distribute the resulting executable under >> +terms of your choice, provided that you also meet, for each linked >> +independent module, the terms and conditions of the license of that >> +module. An independent module is a module which is not derived from >> +or based on this library. If you modify this library, you may extend >> +this exception to your version of the library, but you are not >> +obligated to do so. If you do not wish to do so, delete this >> +exception statement from your version. */ >> + >> +package netscape.javascript; >> + >> +import java.security.BasicPermission; >> + >> +/** >> + * Permission to access internal reference of JSObject >> + */ >> +public class JSObjectUnboxPermission extends BasicPermission { >> + public JSObjectUnboxPermission() { >> + super("JSObjectUnbox"); >> + } >> +} >> diff --git >> a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >> @@ -53,7 +53,6 @@ import java.security.Permissions; >> import java.security.PrivilegedAction; >> import java.security.ProtectionDomain; >> import java.util.ArrayList; >> -import java.util.Arrays; >> import java.util.Hashtable; >> import java.util.List; >> import java.util.Map; >> @@ -241,16 +240,6 @@ public class PluginAppletSecurityContext >> public PluginAppletSecurityContext(int identifier) { >> this.identifier = identifier; >> >> - // We need a security manager.. and since there is a good >> chance that >> - // an applet will be loaded at some point, we should make it >> the SM >> - // that JNLPRuntime will try to install >> - if (System.getSecurityManager() == null) { >> - JNLPRuntime.initialize(/* isApplication */false); >> - JNLPRuntime.setDefaultLaunchHandler(new >> DefaultLaunchHandler(System.err)); >> - } >> - >> - JNLPRuntime.disableExit(); >> - >> URL u = null; >> try { >> u = new URL("file://"); >> diff --git a/plugin/icedteanp/java/sun/applet/PluginMain.java >> b/plugin/icedteanp/java/sun/applet/PluginMain.java >> --- a/plugin/icedteanp/java/sun/applet/PluginMain.java >> +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java >> @@ -73,6 +73,7 @@ import java.net.ProxySelector; >> import java.util.Enumeration; >> import java.util.Properties; >> >> +import net.sourceforge.jnlp.DefaultLaunchHandler; >> import net.sourceforge.jnlp.config.DeploymentConfiguration; >> import net.sourceforge.jnlp.runtime.JNLPRuntime; >> import net.sourceforge.jnlp.security.JNLPAuthenticator; >> @@ -106,6 +107,15 @@ public class PluginMain { >> // must be called before JNLPRuntime.initialize() >> JNLPRuntime.setRedirectStreams(redirectStreams); >> >> + // We need a security manager for >> PluginAppletSecurityContext, >> + // so we ensure it is initialized >> + if (System.getSecurityManager() == null) { >> + JNLPRuntime.initialize(/* isApplication */false); >> + JNLPRuntime.setDefaultLaunchHandler(new >> DefaultLaunchHandler(System.err)); >> + } >> + >> + JNLPRuntime.disableExit(); >> + >> PluginAppletSecurityContext sc = new >> PluginAppletSecurityContext(0); >> sc.prePopulateLCClasses(); > > Well, I'm still not comfortable with this change. > I'm not sure which security parts can be affected:-/ I really would > like to know Jana's opinion here. > Do you mind to move it to separate method? I have attached a patch that is more refactoring-proof. It is based on bypassing installation via package-private constructor. Note there is no security risk if this is 'bypassed' once it has already occurred. > [.. snip ..] >> > Thanks, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: jsfix-unittest3.patch Type: text/x-patch Size: 9812 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130107/125da2d5/jsfix-unittest3.patch From adomurad at redhat.com Mon Jan 7 11:00:03 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 07 Jan 2013 14:00:03 -0500 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50EADE9F.3000101@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> <50EADE9F.3000101@redhat.com> Message-ID: <50EB1B33.4020605@redhat.com> On 01/07/2013 09:41 AM, Jiri Vanek wrote: > On 01/04/2013 05:35 PM, Adam Domurad wrote: >> On 01/03/2013 11:07 AM, Jiri Vanek wrote: >>> Hi! >>> >>> This patch is adding "show details" to download indicator. For One >>> jar jnlp files it behaviour is >>> unaffected. For Multiple jars there is just one progress bar, but >>> can be shown "old stile" >>> detailed one via clicking to "Show details". Then can be >>> minimalised by "hide details". Button is >>> localised. >>> >>> The button is nasty not nice.. Any better idea? but still this is >>> better then previous approach. >>> >>> Looking forward to have this inside! >>> >>> Best rigards >>> J. >> >> Thanks for looking into this! I was actually comparing our download >> indicator to proprietary just >> yesterday, while staring at multiple jars downloading. The average >> user does not want to know about >> the jars being downloaded, in fact I think such information can look >> scary :-). >> >>> diff -r 9549226afa8f >>> netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>> --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>> Thu Jan 03 09:54:16 2013 +0100 >>> +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>> Thu Jan 03 17:07:28 2013 +0100 >>> @@ -62,6 +62,7 @@ >>> >>> /** shared constraint */ >>> static GridBagConstraints vertical; >>> + static GridBagConstraints verticalNoClean; >>> static GridBagConstraints verticalIndent; >>> static { >>> vertical = new GridBagConstraints(); >>> @@ -70,8 +71,12 @@ >>> vertical.fill = GridBagConstraints.HORIZONTAL; >>> vertical.anchor = GridBagConstraints.WEST; >>> >>> + verticalNoClean = new GridBagConstraints(); >>> + verticalNoClean.weightx = 1.0; >>> + >>> verticalIndent = (GridBagConstraints) vertical.clone(); >>> verticalIndent.insets = new Insets(0, 10, 3, 0); >>> + >> >> Nit: These two blank lines (and all the ones added below) have tabs :-) >> >>> } >>> >>> /** >>> @@ -114,15 +119,15 @@ >>> >>> frame.getContentPane().add(result, vertical); >>> frame.pack(); >>> - >>> if (!frame.isVisible()) { >>> - Dimension screenSize = >>> Toolkit.getDefaultToolkit().getScreenSize(); >>> - Insets insets = >>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>> >>> - Dimension screen = new Dimension(screenSize.width - >>> insets.left, >>> - screenSize.height - insets.top); >>> - frame.setLocation(screen.width - frame.getWidth(), >>> - screen.height - frame.getHeight()); >>> + placeFrameToLowerRight(); >>> } >>> + result.addComponentListener(new ComponentAdapter() { >>> + @Override >>> + public void componentResized(ComponentEvent e) { >>> + placeFrameToLowerRight(); >>> + } >>> + }); >>> >>> frame.setVisible(true); >>> >>> @@ -131,6 +136,32 @@ >>> } >>> >>> /** >>> + * The insets are calculated differently during first appearance >>> + * and during another appearance in case of some configurations. >>> + * >>> + * So the first value is stored to avoid jumping of window >>> during later packing >>> + * of frame. >>> + * >>> + * However the second calculation is more correct:( >>> + * >>> + * This is affecting only multiple monitors which have >>> different assets. >>> + * The underlying issue is that >>> Toolkit.getDefaultToolkit().getScreenInsets >>> + * is returning assets for "random" monitor. >>> + */ >>> + Dimension screen = null; >>> + >>> + private void placeFrameToLowerRight() throws HeadlessException { >>> + if (screen == null) { >>> + Dimension screenSize = >>> Toolkit.getDefaultToolkit().getScreenSize(); >>> + Insets insets = >>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>> >>> + screen = new Dimension(screenSize.width - insets.left, >>> + screenSize.height - insets.top); >>> + } >>> + frame.setLocation(screen.width - frame.getWidth(), >>> + screen.height - frame.getHeight()); >>> + } >>> + >>> + /** >>> * Remove a download service listener that was obtained by >>> * calling the getDownloadListener method from the shared >>> * download info window. >>> @@ -163,12 +194,26 @@ >>> * Groups the url progress in a panel. >>> */ >>> static class DownloadPanel extends JPanel implements >>> DownloadServiceListener { >>> - >>> + private static enum States{ >>> + oneJAr, collapsed, detailed; >> >> Enums should be all-caps >> >>> + >>> + } >>> + >>> + private static final String DETAILS=R("ButShowDetails"); >>> + private static final String HIDE_DETAILS=R("ButHideDetails"); >>> /** the download name */ >>> private String downloadName; >>> >>> /** Downloading part: */ >>> private JLabel header = new JLabel(); >>> + /** Show/hide details button: */ >>> + private JButton details = new JButton(DETAILS); >>> + /** used instead of details button in case of one jar*/ >>> + private JLabel delimiter = new JLabel(""); >>> + /** all already created progress bars*/ >>> + private List progressPanels = new >>> ArrayList(); >>> + private States state=States.oneJAr; >>> + private ProgressPanel mainProgressPanel; >>> >>> /** list of URLs being downloaded */ >>> private List urls = new ArrayList(); >>> @@ -176,6 +221,7 @@ >>> /** list of ProgressPanels */ >>> private List panels = new >>> ArrayList(); >>> >>> + >> >> Nit: two blank lines are unnecessary. >> >>> /** >>> * Create a new download panel for with the specified download >>> * name. >>> @@ -184,9 +230,35 @@ >>> setLayout(new GridBagLayout()); >>> >>> this.downloadName = downloadName; >>> - this.add(header, vertical); >>> + this.add(header, verticalNoClean); >>> header.setFont(header.getFont().deriveFont(Font.BOLD)); >>> - >>> + this.add(delimiter, vertical); >>> + details.addActionListener(new ActionListener() { >>> + @Override >>> + public void actionPerformed(ActionEvent e) { >>> + if (state == States.detailed) { >>> + state = States.collapsed; >>> + details.setText(DETAILS); >>> + for (ProgressPanel progressPanel : >>> progressPanels) { >>> + remove(progressPanel); >>> + } >>> + add(mainProgressPanel, verticalIndent); >>> + synchronized (frameMutex) { >>> + frame.pack(); >>> + } >>> + } else { >>> + state = States.detailed; >>> + details.setText(HIDE_DETAILS); >>> + remove(mainProgressPanel); >>> + for (ProgressPanel progressPanel : >>> progressPanels) { >>> + add(progressPanel, verticalIndent); >>> + } >>> + synchronized (frameMutex) { >>> + frame.pack(); >>> + } >>> + } >>> + } >>> + }); >>> setOverallPercent(0); >>> } >>> >>> @@ -196,14 +268,25 @@ >>> protected void addProgressPanel(URL url, String version) { >>> if (!urls.contains(url)) { >>> ProgressPanel panel = new ProgressPanel(url, version); >>> - >>> - add(panel, verticalIndent); >>> + if (state != States.collapsed) { >>> + add(panel, verticalIndent); >>> + } >>> + progressPanels.add(panel); >>> + urls.add(url); >>> + panels.add(panel); >>> + if (panels.size() == 2){ >> >> Small comment here would be good explaining why this 'magic number' >> >>> + remove(panels.get(0)); >>> + remove(panels.get(1)); >>> + remove(delimiter); >>> + add(details,vertical); >>> + mainProgressPanel=new ProgressPanel(); >>> + add(mainProgressPanel, verticalIndent); >>> + state=States.collapsed; >>> + } >>> synchronized (frameMutex) { >>> frame.pack(); >>> } >>> >>> - urls.add(url); >>> - panels.add(panel); >>> } >>> } >>> >>> @@ -219,10 +302,10 @@ >>> addProgressPanel(url, version); >>> >>> setOverallPercent(overallPercent); >>> - >>> ProgressPanel panel = >>> panels.get(urls.indexOf(url)); >>> panel.setProgress(readSoFar, total); >>> panel.repaint(); >>> + >>> } >>> }; >>> SwingUtilities.invokeLater(r); >>> @@ -230,12 +313,28 @@ >>> >>> /** >>> * Sets the overall percent completed. >>> + * should be called via invokeLater >>> */ >>> public void setOverallPercent(int percent) { >>> // don't get whole string from resource and sub in >>> // values because it'll be doing a MessageFormat for >>> // each update. >>> header.setText(downloading + " " + downloadName + ": " >>> + percent + "% " + complete + >>> "."); >>> + Container c = header.getParent(); >>> + //we need to adapt nbboth panels and also frame to new >>> length of header text >> >> nbboth > both >> >>> + while (c != null) { >>> + c.invalidate(); >>> + c.validate(); >>> + if (c instanceof Window){ >>> + ((Window) c).pack(); >>> + } >>> + c=c.getParent(); >>> + } >>> + >>> + if (mainProgressPanel != null) { >>> + mainProgressPanel.setProgress(percent, 100); >>> + mainProgressPanel.repaint(); >>> + } >>> } >>> >>> /** >>> @@ -276,12 +375,28 @@ >>> >>> private long total; >>> private long readSoFar; >>> + private Dimension size = new Dimension(80, 15); >>> >>> + ProgressPanel() { >>> + bar.setMinimumSize(size); >>> + bar.setPreferredSize(size); >>> + bar.setOpaque(false); >>> + >>> + setLayout(new GridBagLayout()); >>> + >>> + GridBagConstraints gbc = new GridBagConstraints(); >>> + styleGridBagConstraints(gbc); >>> + add(bar, gbc); >>> + } >>> + >>> ProgressPanel(URL url, String version) { >>> - JLabel location = new JLabel(" " + url.getHost() + "/" >>> + url.getFile()); >>> + this(" " + url.getHost() + "/" + url.getFile(),version); >>> + } >>> + ProgressPanel(String caption, String version) { >>> + JLabel location = new JLabel(caption); >>> >>> - bar.setMinimumSize(new Dimension(80, 15)); >>> - bar.setPreferredSize(new Dimension(80, 15)); >>> + bar.setMinimumSize(size); >>> + bar.setPreferredSize(size); >>> bar.setOpaque(false); >>> >>> setLayout(new GridBagLayout()); >>> @@ -291,12 +406,8 @@ >>> gbc.fill = GridBagConstraints.NONE; >>> gbc.gridwidth = GridBagConstraints.RELATIVE; >>> add(bar, gbc); >>> - >>> - gbc.insets = new Insets(0, 3, 0, 0); >>> - gbc.weightx = 1.0; >>> - gbc.fill = GridBagConstraints.HORIZONTAL; >>> - gbc.gridwidth = GridBagConstraints.REMAINDER; >>> - gbc.anchor = GridBagConstraints.WEST; >>> + >>> + styleGridBagConstraints(gbc); >>> add(location, gbc); >>> } >>> >>> @@ -325,6 +436,14 @@ >>> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >>> } >>> } >>> + >>> + private void styleGridBagConstraints(GridBagConstraints gbc) { >>> + gbc.insets = new Insets(0, 3, 0, 0); >>> + gbc.weightx = 1.0; >>> + gbc.fill = GridBagConstraints.HORIZONTAL; >>> + gbc.gridwidth = GridBagConstraints.REMAINDER; >>> + gbc.anchor = GridBagConstraints.WEST; >>> + } >>> }; >>> >>> } >> >> Code looks OK nits aside. > > Thanx for nits. Should be fixed now >> >> As for button ... yes it is nasty. IMO maybe we can take different >> approach here. The people >> interested in how the individual jars are downloading would mainly be >> 1. us trying to fix jar >> loading issues, 2. developers looking into jar loading issues. >> >> So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this >> on/off ? It can be argued it is >> a bit hard for developers to access, but it isn't any easier to >> access this information from oracle >> plugin. > > I think I don't like this idea :( No problem, but can you elaborate why not? > I have added an attempt to use an icon, And I must say it is much > better. Btw, I have created this icon.. so no wonders here :) But > looks quite cool :) It looks OK :-) The glass part could use some transparency. There should be a slightly different icon from going from detailed ->compact. > >> >> As well, I would be very happy to see the loading bar integrated with >> the splash screen (if splash >> screen is on). I believe this would nicely complement the user >> friendliness of the splash screen. > > You mean to sync progress on progress bar with the one in splash? Or > also showing the downlaoded resources somehow and show details button > in splash? I was thinking always have progress bar on splash, and have detailed view hide/show the download bars in corner. IMO this is good for now, except: 1. visual glitches such as http://i.imgur.com/Oveuh.png (with text flickering from middle to top every frame). As well on dual monitors expanding/compacting view constantly changed screens for me. 2. A different style button/icon from going detailed->compact. > > Sounds reasonable, but definitely as different changeset. > > > Thanx for review an ideas, > J. Happy hacking, -Adam From ptisnovs at icedtea.classpath.org Tue Jan 8 01:50:37 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 08 Jan 2013 09:50:37 +0000 Subject: /hg/rhino-tests: Added new tests for methods GetCanonicalName() ... Message-ID: changeset 7f25cbe3c551 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=7f25cbe3c551 author: Pavel Tisnovsky date: Tue Jan 08 10:53:46 2013 +0100 Added new tests for methods GetCanonicalName() and getAnnotation(). Fixed spelling. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/SimpleScriptContextClassTest.java | 44 +++++++++++++++++-- 2 files changed, 45 insertions(+), 5 deletions(-) diffs (110 lines): diff -r 87019bd63c13 -r 7f25cbe3c551 ChangeLog --- a/ChangeLog Mon Jan 07 10:57:47 2013 +0100 +++ b/ChangeLog Tue Jan 08 10:53:46 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-08 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleScriptContextClassTest.java: + Added new test for a method GetCanonicalName() getAnnotation(). + Fixed spelling. + 2013-01-07 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r 87019bd63c13 -r 7f25cbe3c551 src/org/RhinoTests/SimpleScriptContextClassTest.java --- a/src/org/RhinoTests/SimpleScriptContextClassTest.java Mon Jan 07 10:57:47 2013 +0100 +++ b/src/org/RhinoTests/SimpleScriptContextClassTest.java Tue Jan 08 10:53:46 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -267,6 +268,15 @@ } /** + * Test for method javax.script.SimpleScriptContext.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.simpleScriptContextClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.SimpleScriptContext", + "Method javax.script.SimpleScriptContext.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.SimpleScriptContext.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -487,7 +497,7 @@ */ protected void testGetDeclaredMethods() { // following methods should be declared - final String[] declaredMethodsThatShouldExists_jdk6 = { + final String[] declaredMethodsThatShouldExist_jdk6 = { "public int javax.script.SimpleScriptContext.getAttributesScope(java.lang.String)", "public java.io.Reader javax.script.SimpleScriptContext.getReader()", "public java.io.Writer javax.script.SimpleScriptContext.getErrorWriter()", @@ -504,7 +514,7 @@ "public void javax.script.SimpleScriptContext.setWriter(java.io.Writer)", }; - final String[] declaredMethodsThatShouldExists_jdk7 = { + final String[] declaredMethodsThatShouldExist_jdk7 = { "public int javax.script.SimpleScriptContext.getAttributesScope(java.lang.String)", "public java.io.Reader javax.script.SimpleScriptContext.getReader()", "public java.io.Writer javax.script.SimpleScriptContext.getErrorWriter()", @@ -528,9 +538,10 @@ for (Method method : declaredMethods) { methodsAsString.add(method.toString()); } - String[] declaredMethodsThatShouldExists = getJavaVersion() < 7 ? declaredMethodsThatShouldExists_jdk6 : declaredMethodsThatShouldExists_jdk7; + + String[] declaredMethodsThatShouldExist = getJavaVersion() < 7 ? declaredMethodsThatShouldExist_jdk6 : declaredMethodsThatShouldExist_jdk7; // check if all required methods really exists - for (String methodThatShouldExists : declaredMethodsThatShouldExists) { + for (String methodThatShouldExists : declaredMethodsThatShouldExist) { assertTrue(methodsAsString.contains(methodThatShouldExists), "declared method " + methodThatShouldExists + " not found"); } @@ -589,6 +600,29 @@ } /** + * Test for method javax.script.SimpleScriptContext.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.simpleScriptContextClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** * Test for instanceof operator applied to a class javax.script.SimpleScriptContext */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Tue Jan 8 02:43:17 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 08 Jan 2013 10:43:17 +0000 Subject: /hg/gfx-test: Four helper methods used by bitmap-related tests a... Message-ID: changeset 7d09ee4ca61e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=7d09ee4ca61e author: Pavel Tisnovsky date: Tue Jan 08 11:46:26 2013 +0100 Four helper methods used by bitmap-related tests added into CommonBitmapOperations.java. diffstat: ChangeLog | 7 + src/org/gfxtest/framework/CommonBitmapOperations.java | 107 +++++++++++++++++- src/org/gfxtest/framework/ImageFactory.java | 2 +- 3 files changed, 114 insertions(+), 2 deletions(-) diffs (148 lines): diff -r f58d79d0af5e -r 7d09ee4ca61e ChangeLog --- a/ChangeLog Mon Jan 07 11:45:55 2013 +0100 +++ b/ChangeLog Tue Jan 08 11:46:26 2013 +0100 @@ -1,3 +1,10 @@ +2013-01-08 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + Four helper methods used by bitmap-related tests added. + * src/org/gfxtest/framework/ImageFactory.java: + Updated (c) year. + 2013-01-07 Pavel Tisnovsky * src/org/gfxtest/framework/ImageFactory.java: diff -r f58d79d0af5e -r 7d09ee4ca61e src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Mon Jan 07 11:45:55 2013 +0100 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Tue Jan 08 11:46:26 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011, 2012 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -1409,4 +1409,109 @@ // BitBlt with custom scaling return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; } + + /** + * Create new buffered image containing horizontal grayscale gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithHorizontalGrayscaleGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalGrayscaleGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal grayscale gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithHorizontalGrayscaleGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalGrayscaleGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical grayscale gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithVerticalGrayscaleGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalGrayscaleGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical grayscale gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithVerticalGrayscaleGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalGrayscaleGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + } diff -r f58d79d0af5e -r 7d09ee4ca61e src/org/gfxtest/framework/ImageFactory.java --- a/src/org/gfxtest/framework/ImageFactory.java Mon Jan 07 11:45:55 2013 +0100 +++ b/src/org/gfxtest/framework/ImageFactory.java Tue Jan 08 11:46:26 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011, 2012 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. From jvanek at redhat.com Tue Jan 8 07:54:05 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 08 Jan 2013 16:54:05 +0100 Subject: [rfc][icedtea-web] centre of dialogues to centre of active monitor Message-ID: <50EC411D.9010702@redhat.com> All dialogues in ITW are centred into middle of ALL monitors, which is really nasty. During splashscreen development I have centred into middle of default screen. Well better but not perfect. That time Omair suggested to centr into middle of active screen - active here is the one where is cursor. Well I have finally come with something like this:) -------------- next part -------------- A non-text attachment was scrubbed... Name: centeringOfDialogs.patch Type: text/x-patch Size: 10985 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130108/f21c9c6b/centeringOfDialogs.patch From jvanek at redhat.com Tue Jan 8 07:58:17 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 08 Jan 2013 16:58:17 +0100 Subject: [rfc][icedtea-web] fixinf of desktop icon behaviour In-Reply-To: <50E46AF4.10702@redhat.com> References: <50D488DC.4000507@redhat.com> <50D49692.7050007@zafena.se> <50D4B0AD.2030309@redhat.com> <50D8615D.5080708@redhat.com> <50D8C05C.80501@redhat.com> <50DDD3B8.2080606@redhat.com> <50E46AF4.10702@redhat.com> Message-ID: <50EC4219.3000008@redhat.com> On 01/02/2013 06:14 PM, Jiri Vanek wrote: > On 12/28/2012 06:15 PM, Adam Domurad wrote: >> On 12/24/2012 03:51 PM, Jiri Vanek wrote: >>> On 12/24/2012 03:06 PM, Jiri Vanek wrote: >>>> On 12/21/2012 07:55 PM, Jiri Vanek wrote: >>>>> On 12/21/2012 06:04 PM, Xerxes R?nby wrote: >>>>>> 2012-12-21 17:05, Jiri Vanek skrev: >>>>>>> Hi! This is fix for http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 - JNLP >>>>>>> applications will prompt for creating desktop shortcuts every time they are run >>>>>>> >>>>>>> When I have seen Omairs original patch it was too much complicated, So I want at least to try >>>>>>> this one. >>>>>>> It is pretty simple. The disadvantage however is: >>>>>>> + public File getFinalLinuxDesktopIconFile() { >>>>>>> + return new >>>>>>> File(System.getProperty("user.home")+"/Desktop/"+getDesktopIconFinalName()+".desktop"); >>>>>>> + } >>>>>>> >>>>>>> to be dependent on System.getProperty("user.home")+"/Desktop/" and .desktop suffix. >>>>>>> >>>>>>> However .. can it be enough? >>>>>>> >>>>>>> The second patch is for testing purposes of this case which I would like to push forward as >>>>>>> soon as possible. >>>>>>> >>>>>>> J. >>>>>> >>>>>> This will be broken on non-english systems. >>>>>> >>>>>> The name of the Desktop folder gets localized on many distributions. >>>>>> For example the Desktop folder is called Skrivbord on Swedish user systems. >>>>>> The configuration of the user desktop folder location is set in the >>>>>> ~/.config/user-dirs.dirs >>>>>> >>>>>> On my system this file contains: >>>>>> xranby at xranby-ESPRIMO-P7935:~/.config$ cat user-dirs.dirs >>>>>> # This file is written by xdg-user-dirs-update >>>>>> # If you want to change or add directories, just edit the line you're >>>>>> # interested in. All local changes will be retained on the next run >>>>>> # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped >>>>>> # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an >>>>>> # absolute path. No other format is supported. >>>>>> # >>>>>> XDG_DESKTOP_DIR="$HOME/Skrivbord" >>>>>> XDG_DOWNLOAD_DIR="$HOME/H?mtningar" >>>>>> XDG_TEMPLATES_DIR="$HOME/Mallar" >>>>>> XDG_PUBLICSHARE_DIR="$HOME/Publikt" >>>>>> XDG_DOCUMENTS_DIR="$HOME/Dokument" >>>>>> XDG_MUSIC_DIR="$HOME/Musik" >>>>>> XDG_PICTURES_DIR="$HOME/Bilder" >>>>>> XDG_VIDEOS_DIR="$HOME/Video" >>>>>> >>>>> >>>>> I see.. This is very valid point and I have hoped to hear something like this. >>>>> Do you think it is correct to get this information from ~/.config/user-dirs.dirs ? >>>>> It sound good enough to me to parse it... As it is standartized in freedesktop.org. >>>>> >>>>> Thanx for reply, >>>>> >>>>> J. >>>> >>>> So here is improved version which is parsing fro ~/.config/user-dirs.dirs. >>>> >>>> J. >>> >>> >>> This is little bit better and is taking care for all possible variables. Instead all this parsing >>> and substitutions simple exec of echo $(xdg-user-dir DESKTOP) is possible. And it maybe more >>> bullet proof. However I would like avoid Sytem.exec wheres possible. >>> >>> J. >>> >> >> thanks, comments inline >> >>> diff -r a16da8b96a0f netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java > ... >>> return iconSize; >>> } >>> >>> + public File getShortcutTmpFile() { >>> + File shortcutFile = new >>> File(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) + >>> File.separator + FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); >> >> bit of a mouthful, a temporary variable here for the user directory would be good. > > as you wish > >> >>> + return shortcutFile; >>> + } >>> + >>> /** >>> * Set the icon size to use for the desktop shortcut >>> * >>> @@ -148,9 +162,7 @@ >>> * Install this XDesktopEntry into the user's desktop as a launcher >>> */ >>> private void installDesktopLauncher() { >>> - File shortcutFile = new File(JNLPRuntime.getConfiguration() >>> - .getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) >>> - + File.separator + FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); >>> + File shortcutFile = getShortcutTmpFile(); >>> try { >>> >>> if (!shortcutFile.getParentFile().isDirectory() && >>> !shortcutFile.getParentFile().mkdirs()) { >>> @@ -234,4 +246,80 @@ >>> } >>> } >>> >>> + public String getDesktopIconFinalName() { >> > > as you wish :) > >> I don't understand what is 'final' about it ? Why can it simply not be called the icon name? >> >>> + return sanitize(file.getTitle()); >>> + } >>> + >>> + public File getFinalLinuxDesktopIconFile() { >> >> Similarly I don't understand what makes this the final linux desktop icon file, vs >> 'getLinuxDesktopIconFile' > > similarly O:) > >> >>> + return new File(findFreedesktopOrgDesktopPathCatch() + getDesktopIconFinalName() + >>> ".desktop"); >>> + } >>> + >>> + public static String findFreedesktopOrgDesktopPathCatch() { >> >> I'm all for splitting into many small methods, but I don't know how I feel about >> findFreedesktopOrgDesktopPathCatch, findFreedesktopOrgDesktopPath, getFreedesktopOrgDesktopPathFrom >> all being public, separate methods. I think just inlining all the logic into one >> findFreedesktopOrgDesktopPath() method suffices, also the name 'findFreedesktopOrgDesktopPathCatch' >> says too much about the implementation IMO. >> >>> + try { >>> + return findFreedesktopOrgDesktopPath(); >>> + } catch (Exception ex) { >> >> I think catching Exception is (almost) always a bad idea, it can silence even array-out-of-bounds. I >> think IOException suffices. > > I really would like to have this cas safe block. However I have added printStackTrace. > >> >>> + return System.getProperty("user.home") + "/Desktop/"; >>> + } >>> + } >>> + >>> + public static String findFreedesktopOrgDesktopPath() throws IOException { >>> + File userDirs = new File(System.getProperty("user.home") + "/.config/user-dirs.dirs"); >>> + if (!userDirs.exists()) { >>> + return System.getProperty("user.home") + "/Desktop/"; >>> + } >>> + return getFreedesktopOrgDesktopPathFrom(userDirs); >>> + } >>> + >>> + public static String getFreedesktopOrgDesktopPathFrom(File userDirs) throws IOException { >>> + BufferedReader r = new BufferedReader(new FileReader(userDirs)); >>> + try { >>> + return getFreedesktopOrgDesktopPathFrom(r); >>> + } finally { >>> + r.close(); >>> + } >>> + >>> + } >>> + >>> + public static final String XDG_DESKTOP_DIR = "XDG_DESKTOP_DIR"; >>> + >>> + public static String getFreedesktopOrgDesktopPathFrom(BufferedReader r) throws IOException { >> >> This is a helper method and shouldn't be public IMO. > > As much of this methods as possible have been made private. Except this one :) > To keep it testable I let it package private. >> >>> + while (true) { >>> + String s = r.readLine(); >>> + if (s == null) { >>> + throw new IOException("End of user-dirs found, but no " + XDG_DESKTOP_DIR + " key >>> found"); >>> + } >>> + s = s.trim(); >>> + if (s.startsWith(XDG_DESKTOP_DIR)) { >>> + if (!s.contains("=")) { >>> + throw new IOException(XDG_DESKTOP_DIR + " have no value"); >> >> s/have/has/ > > thanks. > >> >>> + } >>> + String[] ss = s.split("="); >> >> rename 'ss' to 'keyvalue' or something, and the reason ss[1] is used will be clearer IMO. > > done. To keyAndvalue >> >>> + ss[1] = ss[1].trim(); >>> + return evaluateVariables(ss[1]); >>> + } >>> + } >>> + } >>> + >>> + private static String evaluateVariables(String orig) { >>> + >>> + Set> env = System.getenv().entrySet(); >>> + List> envVariables = new ArrayList> (env); >>> + Collections.sort(envVariables, new Comparator>(){ >>> + >>> + @Override >>> + public int compare(Entry o1, Entry o2) { >>> + return o2.getKey().length()-o1.getKey().length(); >>> + } >>> + }); >>> + while (true) { >>> + String before = orig; >>> + for (Entry entry : envVariables) { >>> + orig=orig.replaceAll("\\$"+entry.getKey(), entry.getValue()); >>> + } >>> + if (before.equals(orig)) { >>> + return orig; >>> + } >>> + } >>> + >>> + } >>> } >>> diff -r a16da8b96a0f tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java >>> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >>> +++ b/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java Mon Dec 24 21:38:14 2012 >>> +0100 >>> @@ -0,0 +1,59 @@ >>> +/* >>> + * To change this template, choose Tools | Templates >>> + * and open the template in the editor. >>> + */ >> >> Netbeans user are you ? Anyway this should be gone. > > Argh... Added correct header. >> >>> +package net.sourceforge.jnlp.util; >>> + >>> +import java.io.BufferedReader; >>> +import java.io.IOException; >>> +import java.io.StringReader; >>> +import org.junit.Assert; >>> +import org.junit.Test; >>> + >>> +public class XDesktopEntryTest { >>> + >>> + private String des1 = "/my/little/Desktop"; >>> + private String des2name = "Plocha"; >>> + private String des2Res = System.getProperty("user.home") + "/" + des2name; >>> + private String des2 = "$HOME" + "/" + des2name; >>> + private String src1 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des1; >>> + private String src2 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des1; >>> + private String src3 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des1; >>> + private String src4 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des2; >>> + private String src5 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des2; >>> + private String src6 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des2; >>> + >>> + @Test >>> + public void getFreedesktopOrgDesktopPathFromtestSimple() throws IOException { >>> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >>> StringReader(src1))); >>> + Assert.assertEquals(s, des1); >>> + } >>> + >>> + @Test >>> + public void getFreedesktopOrgDesktopPathFromtestSpaced() throws IOException { >>> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >>> StringReader(src2))); >>> + Assert.assertEquals(s, des1); >>> + } >>> + >>> + @Test(expected = IOException.class) >>> + public void getFreedesktopOrgDesktopPathFromtestCommented() throws IOException { >>> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >>> StringReader(src3))); >>> + } >>> + >>> + @Test >>> + public void getFreedesktopOrgDesktopPathFromtestSimpleWithHome() throws IOException { >>> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >>> StringReader(src4))); >>> + Assert.assertEquals(s, des2Res); >>> + } >>> + >>> + @Test >>> + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHome() throws IOException { >>> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >>> StringReader(src5))); >>> + Assert.assertEquals(s, des2Res); >>> + } >>> + >>> + @Test(expected = IOException.class) >>> + public void getFreedesktopOrgDesktopPathFromtestCommentedWithHome() throws IOException { >>> + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new >>> StringReader(src6))); >>> + } >>> +} >> >> Test looks OK > > of course :) > >> >> Just one additional comment, as Omair pointed out his patch had nice functionality when a desktop >> icon was deleted (it did not prompt again for desktop icon to be created). It is worth considering. > > See the separate sub-thread oook? Especially last record - http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-January/021278.html (Unless Omair will somehow negate it. > ping? > Thank you very much for review! > J. From jvanek at redhat.com Tue Jan 8 08:06:38 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 08 Jan 2013 17:06:38 +0100 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50EB1B33.4020605@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> <50EADE9F.3000101@redhat.com> <50EB1B33.4020605@redhat.com> Message-ID: <50EC440E.2080409@redhat.com> On 01/07/2013 08:00 PM, Adam Domurad wrote: > On 01/07/2013 09:41 AM, Jiri Vanek wrote: >> On 01/04/2013 05:35 PM, Adam Domurad wrote: >>> On 01/03/2013 11:07 AM, Jiri Vanek wrote: >>>> Hi! >>>> >>>> This patch is adding "show details" to download indicator. For One jar jnlp files it behaviour is >>>> unaffected. For Multiple jars there is just one progress bar, but can be shown "old stile" >>>> detailed one via clicking to "Show details". Then can be minimalised by "hide details". Button is >>>> localised. >>>> >>>> The button is nasty not nice.. Any better idea? but still this is better then previous approach. >>>> >>>> Looking forward to have this inside! >>>> >>>> Best rigards >>>> J. >>> >>> Thanks for looking into this! I was actually comparing our download indicator to proprietary just >>> yesterday, while staring at multiple jars downloading. The average user does not want to know about >>> the jars being downloaded, in fact I think such information can look scary :-). >>> >>>> diff -r 9549226afa8f netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>>> --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 09:54:16 2013 +0100 >>>> +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 17:07:28 2013 +0100 >>>> @@ -62,6 +62,7 @@ >>>> >>>> /** shared constraint */ >>>> static GridBagConstraints vertical; >>>> + static GridBagConstraints verticalNoClean; >>>> static GridBagConstraints verticalIndent; >>>> static { >>>> vertical = new GridBagConstraints(); >>>> @@ -70,8 +71,12 @@ >>>> vertical.fill = GridBagConstraints.HORIZONTAL; >>>> vertical.anchor = GridBagConstraints.WEST; >>>> >>>> + verticalNoClean = new GridBagConstraints(); >>>> + verticalNoClean.weightx = 1.0; >>>> + >>>> verticalIndent = (GridBagConstraints) vertical.clone(); >>>> verticalIndent.insets = new Insets(0, 10, 3, 0); >>>> + >>> >>> Nit: These two blank lines (and all the ones added below) have tabs :-) >>> >>>> } >>>> >>>> /** >>>> @@ -114,15 +119,15 @@ >>>> >>>> frame.getContentPane().add(result, vertical); >>>> frame.pack(); >>>> - >>>> if (!frame.isVisible()) { >>>> - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>> - Insets insets = >>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>> - Dimension screen = new Dimension(screenSize.width - insets.left, >>>> - screenSize.height - insets.top); >>>> - frame.setLocation(screen.width - frame.getWidth(), >>>> - screen.height - frame.getHeight()); >>>> + placeFrameToLowerRight(); >>>> } >>>> + result.addComponentListener(new ComponentAdapter() { >>>> + @Override >>>> + public void componentResized(ComponentEvent e) { >>>> + placeFrameToLowerRight(); >>>> + } >>>> + }); >>>> >>>> frame.setVisible(true); >>>> >>>> @@ -131,6 +136,32 @@ >>>> } >>>> >>>> /** >>>> + * The insets are calculated differently during first appearance >>>> + * and during another appearance in case of some configurations. >>>> + * >>>> + * So the first value is stored to avoid jumping of window during later packing >>>> + * of frame. >>>> + * >>>> + * However the second calculation is more correct:( >>>> + * >>>> + * This is affecting only multiple monitors which have different assets. >>>> + * The underlying issue is that Toolkit.getDefaultToolkit().getScreenInsets >>>> + * is returning assets for "random" monitor. >>>> + */ >>>> + Dimension screen = null; >>>> + >>>> + private void placeFrameToLowerRight() throws HeadlessException { >>>> + if (screen == null) { >>>> + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>> + Insets insets = >>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>> + screen = new Dimension(screenSize.width - insets.left, >>>> + screenSize.height - insets.top); >>>> + } >>>> + frame.setLocation(screen.width - frame.getWidth(), >>>> + screen.height - frame.getHeight()); >>>> + } >>>> + >>>> + /** >>>> * Remove a download service listener that was obtained by >>>> * calling the getDownloadListener method from the shared >>>> * download info window. >>>> @@ -163,12 +194,26 @@ >>>> * Groups the url progress in a panel. >>>> */ >>>> static class DownloadPanel extends JPanel implements DownloadServiceListener { >>>> - >>>> + private static enum States{ >>>> + oneJAr, collapsed, detailed; >>> >>> Enums should be all-caps >>> >>>> + >>>> + } >>>> + >>>> + private static final String DETAILS=R("ButShowDetails"); >>>> + private static final String HIDE_DETAILS=R("ButHideDetails"); >>>> /** the download name */ >>>> private String downloadName; >>>> >>>> /** Downloading part: */ >>>> private JLabel header = new JLabel(); >>>> + /** Show/hide details button: */ >>>> + private JButton details = new JButton(DETAILS); >>>> + /** used instead of details button in case of one jar*/ >>>> + private JLabel delimiter = new JLabel(""); >>>> + /** all already created progress bars*/ >>>> + private List progressPanels = new ArrayList(); >>>> + private States state=States.oneJAr; >>>> + private ProgressPanel mainProgressPanel; >>>> >>>> /** list of URLs being downloaded */ >>>> private List urls = new ArrayList(); >>>> @@ -176,6 +221,7 @@ >>>> /** list of ProgressPanels */ >>>> private List panels = new ArrayList(); >>>> >>>> + >>> >>> Nit: two blank lines are unnecessary. >>> >>>> /** >>>> * Create a new download panel for with the specified download >>>> * name. >>>> @@ -184,9 +230,35 @@ >>>> setLayout(new GridBagLayout()); >>>> >>>> this.downloadName = downloadName; >>>> - this.add(header, vertical); >>>> + this.add(header, verticalNoClean); >>>> header.setFont(header.getFont().deriveFont(Font.BOLD)); >>>> - >>>> + this.add(delimiter, vertical); >>>> + details.addActionListener(new ActionListener() { >>>> + @Override >>>> + public void actionPerformed(ActionEvent e) { >>>> + if (state == States.detailed) { >>>> + state = States.collapsed; >>>> + details.setText(DETAILS); >>>> + for (ProgressPanel progressPanel : progressPanels) { >>>> + remove(progressPanel); >>>> + } >>>> + add(mainProgressPanel, verticalIndent); >>>> + synchronized (frameMutex) { >>>> + frame.pack(); >>>> + } >>>> + } else { >>>> + state = States.detailed; >>>> + details.setText(HIDE_DETAILS); >>>> + remove(mainProgressPanel); >>>> + for (ProgressPanel progressPanel : progressPanels) { >>>> + add(progressPanel, verticalIndent); >>>> + } >>>> + synchronized (frameMutex) { >>>> + frame.pack(); >>>> + } >>>> + } >>>> + } >>>> + }); >>>> setOverallPercent(0); >>>> } >>>> >>>> @@ -196,14 +268,25 @@ >>>> protected void addProgressPanel(URL url, String version) { >>>> if (!urls.contains(url)) { >>>> ProgressPanel panel = new ProgressPanel(url, version); >>>> - >>>> - add(panel, verticalIndent); >>>> + if (state != States.collapsed) { >>>> + add(panel, verticalIndent); >>>> + } >>>> + progressPanels.add(panel); >>>> + urls.add(url); >>>> + panels.add(panel); >>>> + if (panels.size() == 2){ >>> >>> Small comment here would be good explaining why this 'magic number' >>> >>>> + remove(panels.get(0)); >>>> + remove(panels.get(1)); >>>> + remove(delimiter); >>>> + add(details,vertical); >>>> + mainProgressPanel=new ProgressPanel(); >>>> + add(mainProgressPanel, verticalIndent); >>>> + state=States.collapsed; >>>> + } >>>> synchronized (frameMutex) { >>>> frame.pack(); >>>> } >>>> >>>> - urls.add(url); >>>> - panels.add(panel); >>>> } >>>> } >>>> >>>> @@ -219,10 +302,10 @@ >>>> addProgressPanel(url, version); >>>> >>>> setOverallPercent(overallPercent); >>>> - >>>> ProgressPanel panel = panels.get(urls.indexOf(url)); >>>> panel.setProgress(readSoFar, total); >>>> panel.repaint(); >>>> + >>>> } >>>> }; >>>> SwingUtilities.invokeLater(r); >>>> @@ -230,12 +313,28 @@ >>>> >>>> /** >>>> * Sets the overall percent completed. >>>> + * should be called via invokeLater >>>> */ >>>> public void setOverallPercent(int percent) { >>>> // don't get whole string from resource and sub in >>>> // values because it'll be doing a MessageFormat for >>>> // each update. >>>> header.setText(downloading + " " + downloadName + ": " + percent + "% " + complete + >>>> "."); >>>> + Container c = header.getParent(); >>>> + //we need to adapt nbboth panels and also frame to new length of header text >>> >>> nbboth > both >>> >>>> + while (c != null) { >>>> + c.invalidate(); >>>> + c.validate(); >>>> + if (c instanceof Window){ >>>> + ((Window) c).pack(); >>>> + } >>>> + c=c.getParent(); >>>> + } >>>> + >>>> + if (mainProgressPanel != null) { >>>> + mainProgressPanel.setProgress(percent, 100); >>>> + mainProgressPanel.repaint(); >>>> + } >>>> } >>>> >>>> /** >>>> @@ -276,12 +375,28 @@ >>>> >>>> private long total; >>>> private long readSoFar; >>>> + private Dimension size = new Dimension(80, 15); >>>> >>>> + ProgressPanel() { >>>> + bar.setMinimumSize(size); >>>> + bar.setPreferredSize(size); >>>> + bar.setOpaque(false); >>>> + >>>> + setLayout(new GridBagLayout()); >>>> + >>>> + GridBagConstraints gbc = new GridBagConstraints(); >>>> + styleGridBagConstraints(gbc); >>>> + add(bar, gbc); >>>> + } >>>> + >>>> ProgressPanel(URL url, String version) { >>>> - JLabel location = new JLabel(" " + url.getHost() + "/" + url.getFile()); >>>> + this(" " + url.getHost() + "/" + url.getFile(),version); >>>> + } >>>> + ProgressPanel(String caption, String version) { >>>> + JLabel location = new JLabel(caption); >>>> >>>> - bar.setMinimumSize(new Dimension(80, 15)); >>>> - bar.setPreferredSize(new Dimension(80, 15)); >>>> + bar.setMinimumSize(size); >>>> + bar.setPreferredSize(size); >>>> bar.setOpaque(false); >>>> >>>> setLayout(new GridBagLayout()); >>>> @@ -291,12 +406,8 @@ >>>> gbc.fill = GridBagConstraints.NONE; >>>> gbc.gridwidth = GridBagConstraints.RELATIVE; >>>> add(bar, gbc); >>>> - >>>> - gbc.insets = new Insets(0, 3, 0, 0); >>>> - gbc.weightx = 1.0; >>>> - gbc.fill = GridBagConstraints.HORIZONTAL; >>>> - gbc.gridwidth = GridBagConstraints.REMAINDER; >>>> - gbc.anchor = GridBagConstraints.WEST; >>>> + >>>> + styleGridBagConstraints(gbc); >>>> add(location, gbc); >>>> } >>>> >>>> @@ -325,6 +436,14 @@ >>>> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >>>> } >>>> } >>>> + >>>> + private void styleGridBagConstraints(GridBagConstraints gbc) { >>>> + gbc.insets = new Insets(0, 3, 0, 0); >>>> + gbc.weightx = 1.0; >>>> + gbc.fill = GridBagConstraints.HORIZONTAL; >>>> + gbc.gridwidth = GridBagConstraints.REMAINDER; >>>> + gbc.anchor = GridBagConstraints.WEST; >>>> + } >>>> }; >>>> >>>> } >>> >>> Code looks OK nits aside. >> >> Thanx for nits. Should be fixed now >>> >>> As for button ... yes it is nasty. IMO maybe we can take different approach here. The people >>> interested in how the individual jars are downloading would mainly be 1. us trying to fix jar >>> loading issues, 2. developers looking into jar loading issues. >>> >>> So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this on/off ? It can be argued it is >>> a bit hard for developers to access, but it isn't any easier to access this information from oracle >>> plugin. >> >> I think I don't like this idea :( > > No problem, but can you elaborate why not? When it took to long to downld application, I'm happy to see whats going on. Maybe I can spot some 3rd party jar to be stuck and then I can ping them. And I definitely do not want to look for environmetn variables. > >> I have added an attempt to use an icon, And I must say it is much better. Btw, I have created this icon.. so no wonders here :) But looks quite cool :) > > It looks OK :-) The glass part could use some transparency. blah :) > There should be a slightly different icon from going from detailed ->compact. As you wish, however, I do not like the red cross I have added :( > >> >>> >>> As well, I would be very happy to see the loading bar integrated with the splash screen (if splash >>> screen is on). I believe this would nicely complement the user friendliness of the splash screen. >> >> You mean to sync progress on progress bar with the one in splash? Or also showing the downlaoded resources somehow and show details button in splash? > > I was thinking always have progress bar on splash, and have detailed view hide/show the download bars in corner. IMO this is good for now, except: I agree. It can came in some future. > 1. visual glitches such as http://i.imgur.com/Oveuh.png (with text flickering from middle to top every frame). As well on dual monitors expanding/compacting view constantly changed screens for me. Well I was not able to reproduce today :-/ However I have changed the implementation and So I hope that it will behave better in your configuration. Please note, now this patch is depending on [rfc][icedtea-web] centre of dialogues to centre of active monitor. Sorry for inconvenience here:( > 2. A different style button/icon from going detailed->compact. How different? (in context of this patch/in global)? yah, happy hacking :) J. -------------- next part -------------- A non-text attachment was scrubbed... Name: magnifyGlass-small.png Type: image/png Size: 1008 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130108/ee79310d/magnifyGlass-small.png -------------- next part -------------- A non-text attachment was scrubbed... Name: redCross-small.png Type: image/png Size: 930 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130108/ee79310d/redCross-small.png -------------- next part -------------- A non-text attachment was scrubbed... Name: cmpactDownloadIndicator.patch Type: text/x-patch Size: 12557 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130108/ee79310d/cmpactDownloadIndicator.patch From bugzilla-daemon at icedtea.classpath.org Tue Jan 8 18:04:51 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 09 Jan 2013 02:04:51 +0000 Subject: [Bug 1250] New: In Minecraft I set tnt off and the server crashes. Why? Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1250 Bug ID: 1250 Summary: In Minecraft I set tnt off and the server crashes. Why? Classification: Unclassified Product: IcedTea Version: unspecified Hardware: 64-bit OS: Linux Status: NEW Severity: critical Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: dylanjefferyryan at gmail.com CC: unassigned at icedtea.classpath.org Created attachment 815 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=815&action=edit This is the error log. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130109/a17d5134/attachment.html From ptisnovs at icedtea.classpath.org Wed Jan 9 01:43:53 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 09 Jan 2013 09:43:53 +0000 Subject: /hg/rhino-tests: Added three new tests for methods GetCanonicalN... Message-ID: changeset 90f140ca1129 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=90f140ca1129 author: Pavel Tisnovsky date: Wed Jan 09 10:47:01 2013 +0100 Added three new tests for methods GetCanonicalName(), getAnnotation() and getComponentType() into SimpleBindingsClassTest.java. diffstat: ChangeLog | 6 +++ src/org/RhinoTests/SimpleBindingsClassTest.java | 43 ++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletions(-) diffs (87 lines): diff -r 7f25cbe3c551 -r 90f140ca1129 ChangeLog --- a/ChangeLog Tue Jan 08 10:53:46 2013 +0100 +++ b/ChangeLog Wed Jan 09 10:47:01 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-09 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleBindingsClassTest.java: + Added three new tests for methods GetCanonicalName(), getAnnotation() and + getComponentType(). + 2013-01-08 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: diff -r 7f25cbe3c551 -r 90f140ca1129 src/org/RhinoTests/SimpleBindingsClassTest.java --- a/src/org/RhinoTests/SimpleBindingsClassTest.java Tue Jan 08 10:53:46 2013 +0100 +++ b/src/org/RhinoTests/SimpleBindingsClassTest.java Wed Jan 09 10:47:01 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.SimpleBindings.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.simpleBindingsClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.SimpleBindings", + "Method javax.script.SimpleBindings.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.SimpleBindings.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -578,6 +588,37 @@ } /** + * Test for method javax.script.SimpleBindings.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.simpleBindingsClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.simpleBindingsClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** + * Test for method javax.script.SimpleBindings.getClass().getComponentType() + */ + protected void testGetComponentType() { + Class cls = this.simpleBindingsClass.getComponentType(); + assertNull(cls, "getComponentType() should returns null"); + } + + /** * Test for instanceof operator applied to a class javax.script.SimpleBindings */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Wed Jan 9 02:07:01 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 09 Jan 2013 10:07:01 +0000 Subject: /hg/gfx-test: Added eight new tests to the test suite src/org/gf... Message-ID: changeset a243dee26a99 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=a243dee26a99 author: Pavel Tisnovsky date: Wed Jan 09 11:10:10 2013 +0100 Added eight new tests to the test suite src/org/gfxtest/testsuites/BitBltUsingBgColor.java. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColor.java | 122 ++++++++++++++++++++- 2 files changed, 126 insertions(+), 1 deletions(-) diffs (151 lines): diff -r 7d09ee4ca61e -r a243dee26a99 ChangeLog --- a/ChangeLog Tue Jan 08 11:46:26 2013 +0100 +++ b/ChangeLog Wed Jan 09 11:10:10 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-09 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: + Added eight new tests to this test suite. + 2013-01-08 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r 7d09ee4ca61e -r a243dee26a99 src/org/gfxtest/testsuites/BitBltUsingBgColor.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Tue Jan 08 11:46:26 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Wed Jan 09 11:10:10 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011, 2012 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -766,6 +766,126 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.black. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundBlack(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.black); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.blue. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundBlue(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.blue); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.green. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundGreen(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.green); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundCyan(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.cyan); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.red. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundRed(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.red); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundMagenta(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.magenta); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundYellow(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.yellow); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_RGB. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntRGBbackgroundWhite(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntRGB(image, graphics2d, Color.white); + } + + /** * Entry point to the test suite. * * @param args not used in this case From jvanek at redhat.com Wed Jan 9 02:30:42 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 09 Jan 2013 11:30:42 +0100 Subject: More troubles in icedtea-web javascript date hellpers methods Message-ID: <50ED46D2.8010208@redhat.com> Every 31th, last day in mont (not 30,not 28/29) ara failing those two tests: 0141 dateRange 0142 dateRange Well, with closed eyes it is acceptable, however, since 2013 is constantly failing 0131 dateRange More investigations on todo list ;( J. ps: helpers;) From adomurad at redhat.com Wed Jan 9 06:42:31 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 09 Jan 2013 09:42:31 -0500 Subject: [rfc][icedtea-web] fixinf of desktop icon behaviour In-Reply-To: <50E46AF4.10702@redhat.com> References: <50D488DC.4000507@redhat.com> <50D49692.7050007@zafena.se> <50D4B0AD.2030309@redhat.com> <50D8615D.5080708@redhat.com> <50D8C05C.80501@redhat.com> <50DDD3B8.2080606@redhat.com> <50E46AF4.10702@redhat.com> Message-ID: <50ED81D7.4020904@redhat.com> On 01/02/2013 12:14 PM, Jiri Vanek wrote: > [..snip..] >>> >> >> thanks, comments inline >> >>> diff -r a16da8b96a0f >>> netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java > ... >>> return iconSize; >>> } >>> >>> + public File getShortcutTmpFile() { >>> + File shortcutFile = new >>> File(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) >>> + >>> File.separator + FileUtils.sanitizeFileName(file.getTitle()) + >>> ".desktop"); >> >> bit of a mouthful, a temporary variable here for the user directory >> would be good. > > as you wish > >> >>> + return shortcutFile; >>> + } >>> + >>> /** >>> * Set the icon size to use for the desktop shortcut >>> * >>> @@ -148,9 +162,7 @@ >>> * Install this XDesktopEntry into the user's desktop as a >>> launcher >>> */ >>> private void installDesktopLauncher() { >>> - File shortcutFile = new File(JNLPRuntime.getConfiguration() >>> - .getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) >>> - + File.separator + >>> FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); >>> + File shortcutFile = getShortcutTmpFile(); >>> try { >>> >>> if (!shortcutFile.getParentFile().isDirectory() && >>> !shortcutFile.getParentFile().mkdirs()) { >>> @@ -234,4 +246,80 @@ >>> } >>> } >>> >>> + public String getDesktopIconFinalName() { >> > > as you wish :) Thanks. > >> I don't understand what is 'final' about it ? Why can it simply not >> be called the icon name? >> >>> + return sanitize(file.getTitle()); >>> + } >>> + >>> + public File getFinalLinuxDesktopIconFile() { >> >> Similarly I don't understand what makes this the final linux desktop >> icon file, vs >> 'getLinuxDesktopIconFile' > > similarly O:) > >> >>> + return new File(findFreedesktopOrgDesktopPathCatch() + >>> getDesktopIconFinalName() + >>> ".desktop"); >>> + } >>> + >>> + public static String findFreedesktopOrgDesktopPathCatch() { >> >> I'm all for splitting into many small methods, but I don't know how I >> feel about >> findFreedesktopOrgDesktopPathCatch, findFreedesktopOrgDesktopPath, >> getFreedesktopOrgDesktopPathFrom >> all being public, separate methods. I think just inlining all the >> logic into one >> findFreedesktopOrgDesktopPath() method suffices, also the name >> 'findFreedesktopOrgDesktopPathCatch' >> says too much about the implementation IMO. >> >>> + try { >>> + return findFreedesktopOrgDesktopPath(); >>> + } catch (Exception ex) { >> >> I think catching Exception is (almost) always a bad idea, it can >> silence even array-out-of-bounds. I >> think IOException suffices. > > I really would like to have this cas safe block. However I have added > printStackTrace. > >> >>> + return System.getProperty("user.home") + "/Desktop/"; >>> + } >>> + } >>> + >>> + public static String findFreedesktopOrgDesktopPath() throws >>> IOException { >>> + File userDirs = new File(System.getProperty("user.home") + >>> "/.config/user-dirs.dirs"); >>> + if (!userDirs.exists()) { >>> + return System.getProperty("user.home") + "/Desktop/"; >>> + } >>> + return getFreedesktopOrgDesktopPathFrom(userDirs); >>> + } >>> + >>> + public static String getFreedesktopOrgDesktopPathFrom(File >>> userDirs) throws IOException { >>> + BufferedReader r = new BufferedReader(new >>> FileReader(userDirs)); >>> + try { >>> + return getFreedesktopOrgDesktopPathFrom(r); >>> + } finally { >>> + r.close(); >>> + } >>> + >>> + } >>> + >>> + public static final String XDG_DESKTOP_DIR = "XDG_DESKTOP_DIR"; >>> + >>> + public static String >>> getFreedesktopOrgDesktopPathFrom(BufferedReader r) throws IOException { >> >> This is a helper method and shouldn't be public IMO. > > As much of this methods as possible have been made private. Except > this one :) > To keep it testable I let it package private. Yep. >> >>> + while (true) { >>> + String s = r.readLine(); >>> + if (s == null) { >>> + throw new IOException("End of user-dirs found, but >>> no " + XDG_DESKTOP_DIR + " key >>> found"); >>> + } >>> + s = s.trim(); >>> + if (s.startsWith(XDG_DESKTOP_DIR)) { >>> + if (!s.contains("=")) { >>> + throw new IOException(XDG_DESKTOP_DIR + " have >>> no value"); >> >> s/have/has/ > > thanks. > >> >>> + } >>> + String[] ss = s.split("="); >> >> rename 'ss' to 'keyvalue' or something, and the reason ss[1] is used >> will be clearer IMO. > > done. To keyAndvalue >> >>> + ss[1] = ss[1].trim(); >>> + return evaluateVariables(ss[1]); >>> + } >>> + } >>> + } >>> + >>> + private static String evaluateVariables(String orig) { >>> + >>> + Set> env = System.getenv().entrySet(); >>> + List> envVariables = new >>> ArrayList> (env); >>> + Collections.sort(envVariables, new Comparator>> String>>(){ >>> + >>> + @Override >>> + public int compare(Entry o1, >>> Entry o2) { >>> + return o2.getKey().length()-o1.getKey().length(); >>> + } >>> + }); >>> + while (true) { >>> + String before = orig; >>> + for (Entry entry : envVariables) { >>> + orig=orig.replaceAll("\\$"+entry.getKey(), >>> entry.getValue()); >>> + } >>> + if (before.equals(orig)) { >>> + return orig; >>> + } >>> + } >>> + >>> + } >>> } >>> diff -r a16da8b96a0f >>> tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java >>> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >>> +++ >>> b/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java >>> Mon Dec 24 21:38:14 2012 >>> +0100 >>> @@ -0,0 +1,59 @@ >>> +/* >>> + * To change this template, choose Tools | Templates >>> + * and open the template in the editor. >>> + */ >> >> Netbeans user are you ? Anyway this should be gone. > > Argh... Added correct header. >> [..snip..] > >> >> Just one additional comment, as Omair pointed out his patch had nice >> functionality when a desktop >> icon was deleted (it did not prompt again for desktop icon to be >> created). It is worth considering. > > See the separate sub-thread oook? Especially last record - > http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-January/021278.html > (Unless Omair will somehow negate it. Noted. Patch is OK as is. > > Thank you very much for review! > J. Thanks for update. > diff -r a16da8b96a0f > netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java > --- a/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java Mon > Dec 24 13:58:31 2012 +0100 > +++ b/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java Wed > Jan 02 18:13:30 2013 +0100 > @@ -17,6 +17,7 @@ > package net.sourceforge.jnlp.runtime; > > import java.awt.Window; > +import java.io.File; > import java.net.URL; > import java.security.AccessControlContext; > import java.security.AccessController; > @@ -146,7 +147,14 @@ > private void addMenuAndDesktopEntries() { > XDesktopEntry entry = new XDesktopEntry(file); > ShortcutDesc sd = file.getInformation().getShortcut(); > - > + File possibleDesktopFile = entry.getLinuxDesktopIconFile(); > + if (possibleDesktopFile.exists()) { > + if (JNLPRuntime.isDebug()) { > + System.out.println("ApplicationInstance.addMenuAndDesktopEntries(): > file - " > + + possibleDesktopFile.getAbsolutePath() + " > already exists. Not proceeding with desktop additions"); > + } > + return; > + } > if (shouldCreateShortcut(sd)) { > entry.createDesktopShortcut(); > } > diff -r a16da8b96a0f netx/net/sourceforge/jnlp/util/XDesktopEntry.java > --- a/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Mon Dec 24 > 13:58:31 2012 +0100 > +++ b/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Wed Jan 02 > 18:13:30 2013 +0100 > @@ -16,16 +16,24 @@ > > package net.sourceforge.jnlp.util; > > +import java.io.BufferedReader; > import java.io.File; > import java.io.FileNotFoundException; > import java.io.FileOutputStream; > +import java.io.FileReader; > import java.io.IOException; > import java.io.OutputStreamWriter; > import java.io.Reader; > import java.io.StringReader; > import java.net.URL; > import java.nio.charset.Charset; > +import java.util.ArrayList; > import java.util.Arrays; > +import java.util.Collections; > +import java.util.Comparator; > +import java.util.List; > +import java.util.Map.Entry; > +import java.util.Set; > > import net.sourceforge.jnlp.IconDesc; > import net.sourceforge.jnlp.JNLPFile; > @@ -48,6 +56,7 @@ > > public static final String JAVA_ICON_NAME = "java"; > > + Nit: extra line > private JNLPFile file = null; > private int iconSize = -1; > private String iconLocation = null; > @@ -78,7 +87,7 @@ > > String fileContents = "[Desktop Entry]\n"; > fileContents += "Version=1.0\n"; > - fileContents += "Name=" + sanitize(file.getTitle()) + "\n"; > + fileContents += "Name=" + getDesktopIconName() + "\n"; > fileContents += "GenericName=Java Web Start Application\n"; > fileContents += "Comment=" + > sanitize(file.getInformation().getDescription()) + "\n"; > fileContents += "Type=Application\n"; > @@ -122,6 +131,12 @@ > return iconSize; > } > > + public File getShortcutTmpFile() { > + String userTmp = > JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR); > + File shortcutFile = new File(userTmp + File.separator + > FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); > + return shortcutFile; > + } > + > /** > * Set the icon size to use for the desktop shortcut > * > @@ -148,9 +163,7 @@ > * Install this XDesktopEntry into the user's desktop as a launcher > */ > private void installDesktopLauncher() { > - File shortcutFile = new File(JNLPRuntime.getConfiguration() > - .getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) > - + File.separator + > FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); > + File shortcutFile = getShortcutTmpFile(); > try { > > if (!shortcutFile.getParentFile().isDirectory() && > !shortcutFile.getParentFile().mkdirs()) { > @@ -234,4 +247,81 @@ > } > } > > + public String getDesktopIconName() { > + return sanitize(file.getTitle()); > + } > + > + public File getLinuxDesktopIconFile() { > + return new File(findFreedesktopOrgDesktopPathCatch() + > getDesktopIconName() + ".desktop"); > + } > + > + private static String findFreedesktopOrgDesktopPathCatch() { > + try { > + return findFreedesktopOrgDesktopPath(); > + } catch (Exception ex) { > + ex.printStackTrace(); OK, fair enough. (catching Exception still evil IMO) > + return System.getProperty("user.home") + "/Desktop/"; > + } > + } > + > + private static String findFreedesktopOrgDesktopPath() throws > IOException { > + File userDirs = new File(System.getProperty("user.home") + > "/.config/user-dirs.dirs"); > + if (!userDirs.exists()) { > + return System.getProperty("user.home") + "/Desktop/"; > + } > + return getFreedesktopOrgDesktopPathFrom(userDirs); > + } > + > + private static String getFreedesktopOrgDesktopPathFrom(File > userDirs) throws IOException { > + BufferedReader r = new BufferedReader(new FileReader(userDirs)); > + try { > + return getFreedesktopOrgDesktopPathFrom(r); > + } finally { > + r.close(); > + } > + > + } > + > + static final String XDG_DESKTOP_DIR = "XDG_DESKTOP_DIR"; > + > + static String getFreedesktopOrgDesktopPathFrom(BufferedReader r) > throws IOException { > + while (true) { > + String s = r.readLine(); > + if (s == null) { > + throw new IOException("End of user-dirs found, but no > " + XDG_DESKTOP_DIR + " key found"); > + } > + s = s.trim(); > + if (s.startsWith(XDG_DESKTOP_DIR)) { > + if (!s.contains("=")) { > + throw new IOException(XDG_DESKTOP_DIR + " has no > value"); > + } > + String[] keyAndValue = s.split("="); > + keyAndValue[1] = keyAndValue[1].trim(); > + return evaluateLinuxVariables(keyAndValue[1]); > + } > + } > + } > + > + private static String evaluateLinuxVariables(String orig) { > + > + Set> env = System.getenv().entrySet(); > + List> envVariables = new > ArrayList> (env); > + Collections.sort(envVariables, new Comparator String>>(){ > + > + @Override > + public int compare(Entry o1, > Entry o2) { > + return o2.getKey().length()-o1.getKey().length(); > + } > + }); > + while (true) { > + String before = orig; > + for (Entry entry : envVariables) { > + orig=orig.replaceAll("\\$"+entry.getKey(), > entry.getValue()); > + } > + if (before.equals(orig)) { > + return orig; > + } > + } > + > + } > } > diff -r a16da8b96a0f > tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ b/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java > Wed Jan 02 18:13:30 2013 +0100 > @@ -0,0 +1,91 @@ > +/* > +Copyright (C) 2012 Red Hat, Inc. > + > +This file is part of IcedTea. > + > +IcedTea is free software; you can redistribute it and/or > +modify it under the terms of the GNU General Public License as > published by > +the Free Software Foundation, version 2. > + > +IcedTea is distributed in the hope that it will be useful, > +but WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with IcedTea; see the file COPYING. If not, write to > +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > Boston, MA > +02110-1301 USA. > + > +Linking this library statically or dynamically with other modules is > +making a combined work based on this library. Thus, the terms and > +conditions of the GNU General Public License cover the whole > +combination. > + > +As a special exception, the copyright holders of this library give you > +permission to link this library with independent modules to produce an > +executable, regardless of the license terms of these independent > +modules, and to copy and distribute the resulting executable under > +terms of your choice, provided that you also meet, for each linked > +independent module, the terms and conditions of the license of that > +module. An independent module is a module which is not derived from > +or based on this library. If you modify this library, you may extend > +this exception to your version of the library, but you are not > +obligated to do so. If you do not wish to do so, delete this > +exception statement from your version. > +*/ > +package net.sourceforge.jnlp.util; > + > +import java.io.BufferedReader; > +import java.io.IOException; > +import java.io.StringReader; > +import org.junit.Assert; > +import org.junit.Test; > + > +public class XDesktopEntryTest { > + > + private String des1 = "/my/little/Desktop"; > + private String des2name = "Plocha"; > + private String des2Res = System.getProperty("user.home") + "/" + > des2name; > + private String des2 = "$HOME" + "/" + des2name; > + private String src1 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des1; > + private String src2 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = > " + des1; > + private String src3 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " > + des1; > + private String src4 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des2; > + private String src5 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = > " + des2; > + private String src6 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " > + des2; > + > + @Test > + public void getFreedesktopOrgDesktopPathFromtestSimple() throws > IOException { > + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new > BufferedReader(new StringReader(src1))); > + Assert.assertEquals(s, des1); > + } > + > + @Test > + public void getFreedesktopOrgDesktopPathFromtestSpaced() throws > IOException { > + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new > BufferedReader(new StringReader(src2))); > + Assert.assertEquals(s, des1); > + } > + > + @Test(expected = IOException.class) > + public void getFreedesktopOrgDesktopPathFromtestCommented() > throws IOException { > + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new > BufferedReader(new StringReader(src3))); > + } > + > + @Test > + public void getFreedesktopOrgDesktopPathFromtestSimpleWithHome() > throws IOException { > + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new > BufferedReader(new StringReader(src4))); > + Assert.assertEquals(s, des2Res); > + } > + > + @Test > + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHome() > throws IOException { > + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new > BufferedReader(new StringReader(src5))); > + Assert.assertEquals(s, des2Res); > + } > + > + @Test(expected = IOException.class) > + public void > getFreedesktopOrgDesktopPathFromtestCommentedWithHome() throws > IOException { > + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new > BufferedReader(new StringReader(src6))); > + } > +} OK for HEAD, thanks for the solution. -Adam From ptisnovs at redhat.com Wed Jan 9 09:18:05 2013 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Wed, 9 Jan 2013 12:18:05 -0500 (EST) Subject: Fwd: [rfc][icedtea-web] synchronised logger In-Reply-To: <50CF2EB0.7060503@redhat.com> Message-ID: <762863752.2091710.1357751885463.JavaMail.root@redhat.com> Hi Jiri, this change looks ok to me. Please push into HEAD. Cheers, Pavel ----- Jiri Vanek wrote: > Hi! > > For obvious reasons, The logger must be synchronised, otherwise, when some (or even similar) java > is hanging in time of hook execution, then flush is not correct due to ConcurrentModification > exception and so lost. > > Because of killing in testing this happens. > > J. > > From jvanek at icedtea.classpath.org Wed Jan 9 09:46:13 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 09 Jan 2013 17:46:13 +0000 Subject: /hg/icedtea-web: Logging methods made synchronized Message-ID: changeset d95b456959e5 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=d95b456959e5 author: Jiri Vanek date: Wed Jan 09 18:32:08 2013 +0100 Logging methods made synchronized diffstat: ChangeLog | 8 +++ tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java | 23 ++++++--- 2 files changed, 22 insertions(+), 9 deletions(-) diffs (98 lines): diff -r 02981a272327 -r d95b456959e5 ChangeLog --- a/ChangeLog Mon Jan 07 11:47:32 2013 -0500 +++ b/ChangeLog Wed Jan 09 18:32:08 2013 +0100 @@ -1,3 +1,11 @@ +2013-01-09 Jiri Vanek + + Logging methods made synchronized + * tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java: + (processLogs) (getDefaultLoggingBottleneck) (writeXmlLog) (addToXmlLog) + (modifyMethodWithForBrowser) (setLoggedBrowser) (logIntoPlaintextLog) + made synchronised + 2013-01-07 Deepak Bhole * netx/net/sourceforge/jnlp/resources/Messages.properties: Converted to diff -r 02981a272327 -r d95b456959e5 tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java --- a/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java Mon Jan 07 11:47:32 2013 -0500 +++ b/tests/test-extensions/net/sourceforge/jnlp/LoggingBottleneck.java Wed Jan 09 18:32:08 2013 +0100 @@ -45,6 +45,7 @@ import java.io.OutputStreamWriter; import java.io.Writer; import java.lang.reflect.Method; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; @@ -80,10 +81,10 @@ * map of classes, each have map of methods, each have errorlist, outLIst, and allList (allist contains also not std or err messages) * class.testMethod.logs */ - final Map> processLogs = new HashMap>(100); + final Map> processLogs = Collections.synchronizedMap(new HashMap>(1000)); private boolean added = false; - public static LoggingBottleneck getDefaultLoggingBottleneck() { + synchronized public static LoggingBottleneck getDefaultLoggingBottleneck() { if (loggingBottleneck == null) { loggingBottleneck = new LoggingBottleneck(); } @@ -101,11 +102,15 @@ } } - void writeXmlLog() throws FileNotFoundException, IOException { + synchronized void writeXmlLog() throws FileNotFoundException, IOException { writeXmlLog(DEFAULT_LOG_FILE); } - void writeXmlLog(File f) throws FileNotFoundException, IOException { + synchronized void writeXmlLog(File f) throws FileNotFoundException, IOException { + writeXmlLog(f, Collections.unmodifiableMap(processLogs)); + } + + synchronized static void writeXmlLog(File f, Map> processLogs) throws FileNotFoundException, IOException { Writer w = new OutputStreamWriter(new FileOutputStream(f)); Set>> classes = processLogs.entrySet(); w.write("<" + LOGS_ELEMENT + ">"); @@ -127,7 +132,7 @@ w.close(); } - void addToXmlLog(String message, boolean printToOut, boolean printToErr, StackTraceElement ste) { + synchronized void addToXmlLog(String message, boolean printToOut, boolean printToErr, StackTraceElement ste) { Map classLog = processLogs.get(ste.getClassName()); if (classLog == null) { classLog = new HashMap(50); @@ -157,7 +162,7 @@ methodLog.add(printToErr, printToOut, message); } - public String modifyMethodWithForBrowser(String methodBrowseredName, String className) { + synchronized public String modifyMethodWithForBrowser(String methodBrowseredName, String className) { try { Class clazz = Class.forName(className); /* @@ -180,11 +185,11 @@ return methodBrowseredName; } - public void setLoggedBrowser(String loggedBrowser) { + synchronized public void setLoggedBrowser(String loggedBrowser) { this.loggedBrowser = loggedBrowser; } - public void logIntoPlaintextLog(String message, boolean printToOut, boolean printToErr) { + synchronized public void logIntoPlaintextLog(String message, boolean printToOut, boolean printToErr) { try { if (printToOut) { LoggingBottleneck.getDefaultLoggingBottleneck().stdout(message); @@ -216,7 +221,7 @@ DEFAULT_STDLOGS_WRITER.flush(); } - public static String clearChars(String ss) { + synchronized public static String clearChars(String ss) { StringBuilder s = new StringBuilder(ss); for (int i = 0; i < s.length(); i++) { char q = s.charAt(i); From adomurad at redhat.com Wed Jan 9 10:53:25 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 09 Jan 2013 13:53:25 -0500 Subject: [rfc][icedtea-web] centre of dialogues to centre of active monitor In-Reply-To: <50EC411D.9010702@redhat.com> References: <50EC411D.9010702@redhat.com> Message-ID: <50EDBCA5.7020003@redhat.com> On 01/08/2013 10:54 AM, Jiri Vanek wrote: > All dialogues in ITW are centred into middle of ALL monitors, which is > really nasty. > During splashscreen development I have centred into middle of default > screen. Well better but not perfect. > That time Omair suggested to centr into middle of active screen - > active here is the one where is cursor. > Well I have finally come with something like this:) > > This looks OK to me, although I still get the dialog pop-ups flashing on the wrong screen sometimes, before appearing on the correct one. Comments on impl class: > +public class ScreenFinder { > + > + public static GraphicsDevice getCurrentScreen() { > + Point p = MouseInfo.getPointerInfo().getLocation(); > + return getScreenOnCoords(p); > + > + } > + public static Rectangle getCurrentScreenSizeWithoutBounds() { > + Point p = MouseInfo.getPointerInfo().getLocation(); > + return getScreenOnCoordsWithutBounds(p); > + > + } > + > + public static void centerWindowsToCurrentScreen(Window w) { > + Rectangle bounds = getCurrentScreenSizeWithoutBounds(); > + w.setLocation(bounds.x + (bounds.width - w.getWidth())/2, > + bounds.y + (bounds.height - w.getHeight())/2); > + > + } > + > + public static GraphicsDevice getScreenOnCoords(Point point) { > + GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment(); > + GraphicsDevice[] devices = e.getScreenDevices(); > + GraphicsDevice result = null; > + //now get the configuration(s) for each device > + for (GraphicsDevice device : devices) { > + //GraphicsConfiguration[] configurations = device.getConfigurations(); > + //or? If you've settled on default device, I'd prefer to just simply use it. > + GraphicsConfiguration[] configurations = new GraphicsConfiguration[]{device.getDefaultConfiguration()}; > + for (GraphicsConfiguration config : configurations) { > + Rectangle gcBounds = config.getBounds(); > + if (gcBounds.contains(point)) { > + result = device; > + } > + } > + } > + if (result == null) { > + //not found, get the default display > + result = e.getDefaultScreenDevice(); > + } > + return result; > + } > + > + public static Rectangle getScreenOnCoordsWithutBounds(Point p) { > + GraphicsDevice device = getScreenOnCoords(p); > + Rectangle screenSize = device.getDefaultConfiguration().getBounds(); > + Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(device.getDefaultConfiguration()); > + return new Rectangle((int)screenSize.getX()+insets.left, (int)screenSize.getY()+insets.top, (int)screenSize.getWidth()-insets.left, (int)screenSize.getHeight()-insets.bottom); I'd prefer 4 temporary variables for these coordinates. > + } > + > + > +} OK to push otherwise, though. Thanks, -Adam From adomurad at redhat.com Wed Jan 9 11:08:14 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 09 Jan 2013 14:08:14 -0500 Subject: [rfc][icedtea-web] centre of dialogues to centre of active monitor In-Reply-To: <50EDBCA5.7020003@redhat.com> References: <50EC411D.9010702@redhat.com> <50EDBCA5.7020003@redhat.com> Message-ID: <50EDC01E.5000103@redhat.com> On 01/09/2013 01:53 PM, Adam Domurad wrote: > On 01/08/2013 10:54 AM, Jiri Vanek wrote: >> All dialogues in ITW are centred into middle of ALL monitors, which >> is really nasty. >> During splashscreen development I have centred into middle of default >> screen. Well better but not perfect. >> That time Omair suggested to centr into middle of active screen - >> active here is the one where is cursor. >> Well I have finally come with something like this:) >> >> > This looks OK to me, although I still get the dialog pop-ups flashing > on the wrong screen sometimes, before appearing on the correct one. > > Comments on impl class: >> +public class ScreenFinder { >> + >> + public static GraphicsDevice getCurrentScreen() { >> + Point p = MouseInfo.getPointerInfo().getLocation(); >> + return getScreenOnCoords(p); >> + >> + } >> + public static Rectangle getCurrentScreenSizeWithoutBounds() { >> + Point p = MouseInfo.getPointerInfo().getLocation(); >> + return getScreenOnCoordsWithutBounds(p); >> + >> + } >> + >> + public static void centerWindowsToCurrentScreen(Window w) { >> + Rectangle bounds = getCurrentScreenSizeWithoutBounds(); >> + w.setLocation(bounds.x + (bounds.width - w.getWidth())/2, >> + bounds.y + (bounds.height - w.getHeight())/2); >> + >> + } >> + >> + public static GraphicsDevice getScreenOnCoords(Point point) { >> + GraphicsEnvironment e = >> GraphicsEnvironment.getLocalGraphicsEnvironment(); >> + GraphicsDevice[] devices = e.getScreenDevices(); >> + GraphicsDevice result = null; >> + //now get the configuration(s) for each device >> + for (GraphicsDevice device : devices) { >> + //GraphicsConfiguration[] configurations = >> device.getConfigurations(); >> + //or? > > If you've settled on default device, I'd prefer to just simply use it. > >> + GraphicsConfiguration[] configurations = new >> GraphicsConfiguration[]{device.getDefaultConfiguration()}; >> + for (GraphicsConfiguration config : configurations) { >> + Rectangle gcBounds = config.getBounds(); >> + if (gcBounds.contains(point)) { >> + result = device; >> + } >> + } >> + } >> + if (result == null) { >> + //not found, get the default display >> + result = e.getDefaultScreenDevice(); >> + } >> + return result; >> + } >> + >> + public static Rectangle getScreenOnCoordsWithutBounds(Point p) { >> + GraphicsDevice device = getScreenOnCoords(p); >> + Rectangle screenSize = >> device.getDefaultConfiguration().getBounds(); >> + Insets insets = >> Toolkit.getDefaultToolkit().getScreenInsets(device.getDefaultConfiguration()); >> + return new Rectangle((int)screenSize.getX()+insets.left, >> (int)screenSize.getY()+insets.top, >> (int)screenSize.getWidth()-insets.left, >> (int)screenSize.getHeight()-insets.bottom); > > I'd prefer 4 temporary variables for these coordinates. > >> + } >> + >> + >> +} > > OK to push otherwise, though. > > Thanks, > -Adam Hmm actually as well, the "Fatal: Launch Error: " shows up for me on wrong monitor. -Adam From adomurad at redhat.com Wed Jan 9 11:45:39 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 09 Jan 2013 14:45:39 -0500 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50EC440E.2080409@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> <50EADE9F.3000101@redhat.com> <50EB1B33.4020605@redhat.com> <50EC440E.2080409@redhat.com> Message-ID: <50EDC8E3.8060505@redhat.com> On 01/08/2013 11:06 AM, Jiri Vanek wrote: > On 01/07/2013 08:00 PM, Adam Domurad wrote: >> On 01/07/2013 09:41 AM, Jiri Vanek wrote: >>> On 01/04/2013 05:35 PM, Adam Domurad wrote: >>>> On 01/03/2013 11:07 AM, Jiri Vanek wrote: >>>>> Hi! >>>>> >>>>> This patch is adding "show details" to download indicator. For One >>>>> jar jnlp files it behaviour is >>>>> unaffected. For Multiple jars there is just one progress bar, but >>>>> can be shown "old stile" >>>>> detailed one via clicking to "Show details". Then can be >>>>> minimalised by "hide details". Button is >>>>> localised. >>>>> >>>>> The button is nasty not nice.. Any better idea? but still this is >>>>> better then previous approach. >>>>> >>>>> Looking forward to have this inside! >>>>> >>>>> Best rigards >>>>> J. >>>> >>>> Thanks for looking into this! I was actually comparing our download >>>> indicator to proprietary just >>>> yesterday, while staring at multiple jars downloading. The average >>>> user does not want to know about >>>> the jars being downloaded, in fact I think such information can >>>> look scary :-). >>>> >>>>> diff -r 9549226afa8f >>>>> netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>>>> --- >>>>> a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>>>> Thu Jan 03 09:54:16 2013 +0100 >>>>> +++ >>>>> b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>>>> Thu Jan 03 17:07:28 2013 +0100 >>>>> @@ -62,6 +62,7 @@ >>>>> >>>>> /** shared constraint */ >>>>> static GridBagConstraints vertical; >>>>> + static GridBagConstraints verticalNoClean; >>>>> static GridBagConstraints verticalIndent; >>>>> static { >>>>> vertical = new GridBagConstraints(); >>>>> @@ -70,8 +71,12 @@ >>>>> vertical.fill = GridBagConstraints.HORIZONTAL; >>>>> vertical.anchor = GridBagConstraints.WEST; >>>>> >>>>> + verticalNoClean = new GridBagConstraints(); >>>>> + verticalNoClean.weightx = 1.0; >>>>> + >>>>> verticalIndent = (GridBagConstraints) vertical.clone(); >>>>> verticalIndent.insets = new Insets(0, 10, 3, 0); >>>>> + >>>> >>>> Nit: These two blank lines (and all the ones added below) have tabs >>>> :-) >>>> >>>>> } >>>>> >>>>> /** >>>>> @@ -114,15 +119,15 @@ >>>>> >>>>> frame.getContentPane().add(result, vertical); >>>>> frame.pack(); >>>>> - >>>>> if (!frame.isVisible()) { >>>>> - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>>> - Insets insets = >>>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>>> >>>>> - Dimension screen = new Dimension(screenSize.width - insets.left, >>>>> - screenSize.height - insets.top); >>>>> - frame.setLocation(screen.width - frame.getWidth(), >>>>> - screen.height - frame.getHeight()); >>>>> + placeFrameToLowerRight(); >>>>> } >>>>> + result.addComponentListener(new ComponentAdapter() { >>>>> + @Override >>>>> + public void componentResized(ComponentEvent e) { >>>>> + placeFrameToLowerRight(); >>>>> + } >>>>> + }); >>>>> >>>>> frame.setVisible(true); >>>>> >>>>> @@ -131,6 +136,32 @@ >>>>> } >>>>> >>>>> /** >>>>> + * The insets are calculated differently during first appearance >>>>> + * and during another appearance in case of some configurations. >>>>> + * >>>>> + * So the first value is stored to avoid jumping of window during >>>>> later packing >>>>> + * of frame. >>>>> + * >>>>> + * However the second calculation is more correct:( >>>>> + * >>>>> + * This is affecting only multiple monitors which have different >>>>> assets. >>>>> + * The underlying issue is that >>>>> Toolkit.getDefaultToolkit().getScreenInsets >>>>> + * is returning assets for "random" monitor. >>>>> + */ >>>>> + Dimension screen = null; >>>>> + >>>>> + private void placeFrameToLowerRight() throws HeadlessException { >>>>> + if (screen == null) { >>>>> + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>>> + Insets insets = >>>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>>> >>>>> + screen = new Dimension(screenSize.width - insets.left, >>>>> + screenSize.height - insets.top); >>>>> + } >>>>> + frame.setLocation(screen.width - frame.getWidth(), >>>>> + screen.height - frame.getHeight()); >>>>> + } >>>>> + >>>>> + /** >>>>> * Remove a download service listener that was obtained by >>>>> * calling the getDownloadListener method from the shared >>>>> * download info window. >>>>> @@ -163,12 +194,26 @@ >>>>> * Groups the url progress in a panel. >>>>> */ >>>>> static class DownloadPanel extends JPanel implements >>>>> DownloadServiceListener { >>>>> - >>>>> + private static enum States{ >>>>> + oneJAr, collapsed, detailed; >>>> >>>> Enums should be all-caps >>>> >>>>> + >>>>> + } >>>>> + >>>>> + private static final String DETAILS=R("ButShowDetails"); >>>>> + private static final String HIDE_DETAILS=R("ButHideDetails"); >>>>> /** the download name */ >>>>> private String downloadName; >>>>> >>>>> /** Downloading part: */ >>>>> private JLabel header = new JLabel(); >>>>> + /** Show/hide details button: */ >>>>> + private JButton details = new JButton(DETAILS); >>>>> + /** used instead of details button in case of one jar*/ >>>>> + private JLabel delimiter = new JLabel(""); >>>>> + /** all already created progress bars*/ >>>>> + private List progressPanels = new >>>>> ArrayList(); >>>>> + private States state=States.oneJAr; >>>>> + private ProgressPanel mainProgressPanel; >>>>> >>>>> /** list of URLs being downloaded */ >>>>> private List urls = new ArrayList(); >>>>> @@ -176,6 +221,7 @@ >>>>> /** list of ProgressPanels */ >>>>> private List panels = new ArrayList(); >>>>> >>>>> + >>>> >>>> Nit: two blank lines are unnecessary. >>>> >>>>> /** >>>>> * Create a new download panel for with the specified download >>>>> * name. >>>>> @@ -184,9 +230,35 @@ >>>>> setLayout(new GridBagLayout()); >>>>> >>>>> this.downloadName = downloadName; >>>>> - this.add(header, vertical); >>>>> + this.add(header, verticalNoClean); >>>>> header.setFont(header.getFont().deriveFont(Font.BOLD)); >>>>> - >>>>> + this.add(delimiter, vertical); >>>>> + details.addActionListener(new ActionListener() { >>>>> + @Override >>>>> + public void actionPerformed(ActionEvent e) { >>>>> + if (state == States.detailed) { >>>>> + state = States.collapsed; >>>>> + details.setText(DETAILS); >>>>> + for (ProgressPanel progressPanel : progressPanels) { >>>>> + remove(progressPanel); >>>>> + } >>>>> + add(mainProgressPanel, verticalIndent); >>>>> + synchronized (frameMutex) { >>>>> + frame.pack(); >>>>> + } >>>>> + } else { >>>>> + state = States.detailed; >>>>> + details.setText(HIDE_DETAILS); >>>>> + remove(mainProgressPanel); >>>>> + for (ProgressPanel progressPanel : progressPanels) { >>>>> + add(progressPanel, verticalIndent); >>>>> + } >>>>> + synchronized (frameMutex) { >>>>> + frame.pack(); >>>>> + } >>>>> + } >>>>> + } >>>>> + }); >>>>> setOverallPercent(0); >>>>> } >>>>> >>>>> @@ -196,14 +268,25 @@ >>>>> protected void addProgressPanel(URL url, String version) { >>>>> if (!urls.contains(url)) { >>>>> ProgressPanel panel = new ProgressPanel(url, version); >>>>> - >>>>> - add(panel, verticalIndent); >>>>> + if (state != States.collapsed) { >>>>> + add(panel, verticalIndent); >>>>> + } >>>>> + progressPanels.add(panel); >>>>> + urls.add(url); >>>>> + panels.add(panel); >>>>> + if (panels.size() == 2){ >>>> >>>> Small comment here would be good explaining why this 'magic number' >>>> >>>>> + remove(panels.get(0)); >>>>> + remove(panels.get(1)); >>>>> + remove(delimiter); >>>>> + add(details,vertical); >>>>> + mainProgressPanel=new ProgressPanel(); >>>>> + add(mainProgressPanel, verticalIndent); >>>>> + state=States.collapsed; >>>>> + } >>>>> synchronized (frameMutex) { >>>>> frame.pack(); >>>>> } >>>>> >>>>> - urls.add(url); >>>>> - panels.add(panel); >>>>> } >>>>> } >>>>> >>>>> @@ -219,10 +302,10 @@ >>>>> addProgressPanel(url, version); >>>>> >>>>> setOverallPercent(overallPercent); >>>>> - >>>>> ProgressPanel panel = panels.get(urls.indexOf(url)); >>>>> panel.setProgress(readSoFar, total); >>>>> panel.repaint(); >>>>> + >>>>> } >>>>> }; >>>>> SwingUtilities.invokeLater(r); >>>>> @@ -230,12 +313,28 @@ >>>>> >>>>> /** >>>>> * Sets the overall percent completed. >>>>> + * should be called via invokeLater >>>>> */ >>>>> public void setOverallPercent(int percent) { >>>>> // don't get whole string from resource and sub in >>>>> // values because it'll be doing a MessageFormat for >>>>> // each update. >>>>> header.setText(downloading + " " + downloadName + ": " + percent + >>>>> "% " + complete + >>>>> "."); >>>>> + Container c = header.getParent(); >>>>> + //we need to adapt nbboth panels and also frame to new length of >>>>> header text >>>> >>>> nbboth > both >>>> >>>>> + while (c != null) { >>>>> + c.invalidate(); >>>>> + c.validate(); >>>>> + if (c instanceof Window){ >>>>> + ((Window) c).pack(); >>>>> + } >>>>> + c=c.getParent(); >>>>> + } >>>>> + >>>>> + if (mainProgressPanel != null) { >>>>> + mainProgressPanel.setProgress(percent, 100); >>>>> + mainProgressPanel.repaint(); >>>>> + } >>>>> } >>>>> >>>>> /** >>>>> @@ -276,12 +375,28 @@ >>>>> >>>>> private long total; >>>>> private long readSoFar; >>>>> + private Dimension size = new Dimension(80, 15); >>>>> >>>>> + ProgressPanel() { >>>>> + bar.setMinimumSize(size); >>>>> + bar.setPreferredSize(size); >>>>> + bar.setOpaque(false); >>>>> + >>>>> + setLayout(new GridBagLayout()); >>>>> + >>>>> + GridBagConstraints gbc = new GridBagConstraints(); >>>>> + styleGridBagConstraints(gbc); >>>>> + add(bar, gbc); >>>>> + } >>>>> + >>>>> ProgressPanel(URL url, String version) { >>>>> - JLabel location = new JLabel(" " + url.getHost() + "/" + >>>>> url.getFile()); >>>>> + this(" " + url.getHost() + "/" + url.getFile(),version); >>>>> + } >>>>> + ProgressPanel(String caption, String version) { >>>>> + JLabel location = new JLabel(caption); >>>>> >>>>> - bar.setMinimumSize(new Dimension(80, 15)); >>>>> - bar.setPreferredSize(new Dimension(80, 15)); >>>>> + bar.setMinimumSize(size); >>>>> + bar.setPreferredSize(size); >>>>> bar.setOpaque(false); >>>>> >>>>> setLayout(new GridBagLayout()); >>>>> @@ -291,12 +406,8 @@ >>>>> gbc.fill = GridBagConstraints.NONE; >>>>> gbc.gridwidth = GridBagConstraints.RELATIVE; >>>>> add(bar, gbc); >>>>> - >>>>> - gbc.insets = new Insets(0, 3, 0, 0); >>>>> - gbc.weightx = 1.0; >>>>> - gbc.fill = GridBagConstraints.HORIZONTAL; >>>>> - gbc.gridwidth = GridBagConstraints.REMAINDER; >>>>> - gbc.anchor = GridBagConstraints.WEST; >>>>> + >>>>> + styleGridBagConstraints(gbc); >>>>> add(location, gbc); >>>>> } >>>>> >>>>> @@ -325,6 +436,14 @@ >>>>> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >>>>> } >>>>> } >>>>> + >>>>> + private void styleGridBagConstraints(GridBagConstraints gbc) { >>>>> + gbc.insets = new Insets(0, 3, 0, 0); >>>>> + gbc.weightx = 1.0; >>>>> + gbc.fill = GridBagConstraints.HORIZONTAL; >>>>> + gbc.gridwidth = GridBagConstraints.REMAINDER; >>>>> + gbc.anchor = GridBagConstraints.WEST; >>>>> + } >>>>> }; >>>>> >>>>> } >>>> >>>> Code looks OK nits aside. >>> >>> Thanx for nits. Should be fixed now >>>> >>>> As for button ... yes it is nasty. IMO maybe we can take different >>>> approach here. The people >>>> interested in how the individual jars are downloading would mainly >>>> be 1. us trying to fix jar >>>> loading issues, 2. developers looking into jar loading issues. >>>> >>>> So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this >>>> on/off ? It can be argued it is >>>> a bit hard for developers to access, but it isn't any easier to >>>> access this information from oracle >>>> plugin. >>> >>> I think I don't like this idea :( >> >> No problem, but can you elaborate why not? > > When it took to long to downld application, I'm happy to see whats > going on. Maybe I can spot some 3rd party jar to be stuck and then I > can ping them. And I definitely do not want to look for environmetn > variables. >> >>> I have added an attempt to use an icon, And I must say it is much >>> better. Btw, I have created this icon.. so no wonders here :) But >>> looks quite cool :) >> >> It looks OK :-) The glass part could use some transparency. > blah :) > >> There should be a slightly different icon from going from detailed >> ->compact. > As you wish, however, I do not like the red cross I have added :( > >> >>> >>>> >>>> As well, I would be very happy to see the loading bar integrated >>>> with the splash screen (if splash >>>> screen is on). I believe this would nicely complement the user >>>> friendliness of the splash screen. >>> >>> You mean to sync progress on progress bar with the one in splash? Or >>> also showing the downlaoded resources somehow and show details >>> button in splash? >> >> I was thinking always have progress bar on splash, and have detailed >> view hide/show the download bars in corner. IMO this is good for now, >> except: > I agree. It can came in some future. > >> 1. visual glitches such as http://i.imgur.com/Oveuh.png (with text >> flickering from middle to top every frame). As well on dual monitors >> expanding/compacting view constantly changed screens for me. > Well I was not able to reproduce today :-/ > However I have changed the implementation and So I hope that it will > behave better in your configuration. > > Please note, now this patch is depending on [rfc][icedtea-web] centre > of dialogues to centre of active monitor. > Sorry for inconvenience here:( > >> 2. A different style button/icon from going detailed->compact. > > How different? (in context of this patch/in global)? Just a different icon, like you added. patch: > diff -r 02981a272327 > netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java > --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java > Mon Jan 07 11:47:32 2013 -0500 > +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java > Tue Jan 08 15:26:23 2013 +0100 > @@ -29,6 +29,7 @@ > > import net.sourceforge.jnlp.runtime.*; > import net.sourceforge.jnlp.util.ImageResources; > +import net.sourceforge.jnlp.util.ScreenFinder; > > /** > * Show the progress of downloads. > @@ -62,6 +63,7 @@ > > /** shared constraint */ > static GridBagConstraints vertical; > + static GridBagConstraints verticalNoClean; > static GridBagConstraints verticalIndent; > static { > vertical = new GridBagConstraints(); > @@ -70,6 +72,9 @@ > vertical.fill = GridBagConstraints.HORIZONTAL; > vertical.anchor = GridBagConstraints.WEST; > > + verticalNoClean = new GridBagConstraints(); > + verticalNoClean.weightx = 1.0; > + > verticalIndent = (GridBagConstraints) vertical.clone(); > verticalIndent.insets = new Insets(0, 10, 3, 0); > } > @@ -101,9 +106,7 @@ > > synchronized (frameMutex) { > if (frame == null) { > - frame = new JFrame(downloading + "..."); > - frame.setIconImages(ImageResources.INSTANCE.getApplicationImages()); > - frame.getContentPane().setLayout(new GridBagLayout()); > + frame=createDownloadIndicatorFrame(true); > } > > if (resources != null) { > @@ -114,15 +117,13 @@ > > frame.getContentPane().add(result, vertical); > frame.pack(); > - > - if (!frame.isVisible()) { > - Dimension screenSize = > Toolkit.getDefaultToolkit().getScreenSize(); > - Insets insets = > Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); > - Dimension screen = new Dimension(screenSize.width - > insets.left, > - screenSize.height - insets.top); > - frame.setLocation(screen.width - frame.getWidth(), > - screen.height - frame.getHeight()); > - } > + placeFrameToLowerRight(); > + result.addComponentListener(new ComponentAdapter() { > + @Override > + public void componentResized(ComponentEvent e) { > + placeFrameToLowerRight(); > + } > + }); > > frame.setVisible(true); > > @@ -130,6 +131,23 @@ > } > } > > + public static JFrame createDownloadIndicatorFrame(boolean > undecorated) throws HeadlessException { > + JFrame f = new JFrame(downloading + "..."); > + f.setUndecorated(undecorated); > + f.setIconImages(ImageResources.INSTANCE.getApplicationImages()); > + f.getContentPane().setLayout(new GridBagLayout()); > + return f; > + } > + > + /** > + * This places indicator to lower rigt corner of active monitor. s/rigt/right/ > + */ > + private static void placeFrameToLowerRight() throws > HeadlessException { > + Rectangle bounds = > ScreenFinder.getCurrentScreenSizeWithoutBounds(); > + frame.setLocation(bounds.width+bounds.x - frame.getWidth(), > + bounds.height+bounds.y - frame.getHeight()); > + } > + > /** > * Remove a download service listener that was obtained by > * calling the getDownloadListener method from the shared > @@ -163,13 +181,31 @@ > * Groups the url progress in a panel. > */ > static class DownloadPanel extends JPanel implements > DownloadServiceListener { > + private final DownloadPanel self; > > + private static enum States{ > + ONE_JAR, COLLAPSED, DETAILED; > + } > + > + private static final String DETAILS=R("ButShowDetails"); > + private static final String HIDE_DETAILS=R("ButHideDetails"); > /** the download name */ > private String downloadName; > - > /** Downloading part: */ > private JLabel header = new JLabel(); > - > + /** Show/hide detailsButton button: */ > + private final JButton detailsButton; > + private static final URL magnifyGlassUrl = > ClassLoader.getSystemResource("net/sourceforge/jnlp/resources/magnifyGlass-small.png"); > + private static final URL redCrossUrl = > ClassLoader.getSystemResource("net/sourceforge/jnlp/resources/redCross-small.png"); > + private static final Icon magnifyGlassIcon = new > ImageIcon(magnifyGlassUrl); > + private static final Icon redCrossIcon = new > ImageIcon(redCrossUrl); > + /** used instead of detailsButton button in case of one jar*/ > + private JLabel delimiter = new JLabel(""); > + /** all already created progress bars*/ > + private List progressPanels = new > ArrayList(); > + private States state=States.ONE_JAR; > + private ProgressPanel mainProgressPanel; > + > /** list of URLs being downloaded */ > private List urls = new ArrayList(); > > @@ -181,12 +217,52 @@ > * name. > */ > protected DownloadPanel(String downloadName) { > + self = this; > setLayout(new GridBagLayout()); > + this.downloadName = downloadName; > + this.add(header, verticalNoClean); > + header.setFont(header.getFont().deriveFont(Font.BOLD)); > + this.add(delimiter, vertical); > + detailsButton = new JButton(magnifyGlassIcon); > + int w = magnifyGlassIcon.getIconWidth(); > + int h = magnifyGlassIcon.getIconHeight(); > + detailsButton.setPreferredSize(new Dimension(w + 2, h + 2)); > + detailsButton.addActionListener(new ActionListener() { > + @Override > + public void actionPerformed(ActionEvent e) { > + if (state == States.DETAILED) { > + state = States.COLLAPSED; > + detailsButton.setToolTipText(DETAILS); > + detailsButton.setIcon(magnifyGlassIcon); > + for (ProgressPanel progressPanel : > progressPanels) { > + remove(progressPanel); > + } > + add(mainProgressPanel, verticalIndent); > + recreateFrame(true); > + } else { > + state = States.DETAILED; > + detailsButton.setToolTipText(HIDE_DETAILS); > + detailsButton.setIcon(redCrossIcon); > + remove(mainProgressPanel); > + for (ProgressPanel progressPanel : > progressPanels) { > + add(progressPanel, verticalIndent); > + } > + recreateFrame(false); > + } > + } > > - this.downloadName = downloadName; > - this.add(header, vertical); > - header.setFont(header.getFont().deriveFont(Font.BOLD)); > - > + public void recreateFrame(boolean undecorated) throws > HeadlessException { > + JFrame oldFrame = frame; > + frame = createDownloadIndicatorFrame(undecorated); > + frame.getContentPane().add(self, vertical); > + synchronized (frameMutex) { > + frame.pack(); > + placeFrameToLowerRight(); > + } > + frame.setVisible(true); > + oldFrame.dispose(); > + } > + }); > setOverallPercent(0); > } > > @@ -196,14 +272,31 @@ > protected void addProgressPanel(URL url, String version) { > if (!urls.contains(url)) { > ProgressPanel panel = new ProgressPanel(url, version); > - > - add(panel, verticalIndent); > + if (state != States.COLLAPSED) { > + add(panel, verticalIndent); > + } > + progressPanels.add(panel); > + urls.add(url); > + panels.add(panel); > + //download indicator does not know about added jars > + //When just one is added then it behaves as was > costumed (and no show detail button) Sorry, I do not understand this last sentence (at least not the way its worded). > + //when secoond one is added, then it already knows > that there will s/secoond/second/ > + //be two or more jars, so it swap to collapsed state > in count of two. > + //no later, no sooner > + if (panels.size() == 2){ > + remove(panels.get(0)); > + remove(panels.get(1)); > + remove(delimiter); > + add(detailsButton,vertical); > + mainProgressPanel=new ProgressPanel(); > + add(mainProgressPanel, verticalIndent); > + state=States.COLLAPSED; > + } > synchronized (frameMutex) { > frame.pack(); > + placeFrameToLowerRight(); > } > > - urls.add(url); > - panels.add(panel); > } > } > > @@ -219,10 +312,10 @@ > addProgressPanel(url, version); > > setOverallPercent(overallPercent); > - > ProgressPanel panel = panels.get(urls.indexOf(url)); > panel.setProgress(readSoFar, total); > panel.repaint(); > + > } > }; > SwingUtilities.invokeLater(r); > @@ -230,12 +323,27 @@ > > /** > * Sets the overall percent completed. > + * should be called via invokeLater > */ > public void setOverallPercent(int percent) { > // don't get whole string from resource and sub in > // values because it'll be doing a MessageFormat for > // each update. > header.setText(downloading + " " + downloadName + ": " + > percent + "% " + complete + "."); > + Container c = header.getParent(); > + //we need to adapt both panels and also frame to new > length of header text > + while (c != null) { > + c.invalidate(); > + c.validate(); > + if (c instanceof Window){ > + ((Window) c).pack(); > + } > + c=c.getParent(); > + } > + if (mainProgressPanel != null) { > + mainProgressPanel.setProgress(percent, 100); > + mainProgressPanel.repaint(); > + } > } > > /** > @@ -276,12 +384,28 @@ > > private long total; > private long readSoFar; > + private Dimension size = new Dimension(80, 15); > > + ProgressPanel() { > + bar.setMinimumSize(size); > + bar.setPreferredSize(size); > + bar.setOpaque(false); > + > + setLayout(new GridBagLayout()); > + > + GridBagConstraints gbc = new GridBagConstraints(); > + styleGridBagConstraints(gbc); > + add(bar, gbc); > + } > + > ProgressPanel(URL url, String version) { > - JLabel location = new JLabel(" " + url.getHost() + "/" + > url.getFile()); > + this(" " + url.getHost() + "/" + url.getFile(),version); > + } > + ProgressPanel(String caption, String version) { > + JLabel location = new JLabel(caption); > > - bar.setMinimumSize(new Dimension(80, 15)); > - bar.setPreferredSize(new Dimension(80, 15)); > + bar.setMinimumSize(size); > + bar.setPreferredSize(size); > bar.setOpaque(false); > > setLayout(new GridBagLayout()); > @@ -291,12 +415,8 @@ > gbc.fill = GridBagConstraints.NONE; > gbc.gridwidth = GridBagConstraints.RELATIVE; > add(bar, gbc); > - > - gbc.insets = new Insets(0, 3, 0, 0); > - gbc.weightx = 1.0; > - gbc.fill = GridBagConstraints.HORIZONTAL; > - gbc.gridwidth = GridBagConstraints.REMAINDER; > - gbc.anchor = GridBagConstraints.WEST; > + > + styleGridBagConstraints(gbc); > add(location, gbc); > } > > @@ -325,6 +445,14 @@ > g.fillRect(x + 1, y + 1, divide - 1, h - 1); > } > } > + > + private void styleGridBagConstraints(GridBagConstraints gbc) { > + gbc.insets = new Insets(0, 3, 0, 0); > + gbc.weightx = 1.0; > + gbc.fill = GridBagConstraints.HORIZONTAL; > + gbc.gridwidth = GridBagConstraints.REMAINDER; > + gbc.anchor = GridBagConstraints.WEST; > + } > }; > > } Attached are two alternate icons. They are from here http://opengameart.org/content/forum-controls and are in the public domain. The magnifying glass can go compact->detailed, and the left&up arrow can go detailed->compact. Maybe get rid of the surrounding buttons as well (or make them more subtle) ? happy hacking -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: arrow-small.png Type: image/png Size: 423 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130109/0be38fcb/arrow-small.png -------------- next part -------------- A non-text attachment was scrubbed... Name: magnify-small.png Type: image/png Size: 754 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130109/0be38fcb/magnify-small.png From adomurad at redhat.com Wed Jan 9 12:05:24 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 09 Jan 2013 15:05:24 -0500 Subject: [rfc][icedtea-web] Rewrite of MethodOverloadResolver In-Reply-To: <50CB8F6E.8060207@redhat.com> References: <50CB8F6E.8060207@redhat.com> Message-ID: <50EDCD84.1030104@redhat.com> On 12/14/2012 03:43 PM, Adam Domurad wrote: > Thought I'd do a simple patch to turn the test code embedded in > MethodOverloadResolver into a a proper unit test ... unfortunately, my > small look into this class lead me to find many subtle bugs -- and > coincidentally decide to do it properly. Lots of corner cases covered, > and it could probably use unit tests even still, but its a major > improvement and I'm a bit tired of looking at it so I'm posting it. > > Some broken things I uncovered included improper overloading order, > method/argument situations that would error-out if they ever occurred > (but were valid), and the fact that the JSObject used throughout the > class was actually a dummy value used at the bottom of the class. The > code was also made a lot cleaner in the process, in the interest of > 'doing it right' while fixing it. > ChangeLog: > 2012-12-14 Adam Domurad > > Rewrite of MethodOverloadResolver with detailed unittests. > * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java: > Rewritten to reduce duplicated code, fix very subtle bugs in > never-tested codepaths, obey spec properly. Introduced new helper > types > where Object[] arrays with special-meaning positions were passed > around. > * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: > Updated to work with newly introduced types / refactored overload > resolver. > * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: > In-depth > unit tests of hairy details of method overloading in JS<->Java. > > Ping? -Adam From ptisnovs at icedtea.classpath.org Thu Jan 10 00:29:40 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 10 Jan 2013 08:29:40 +0000 Subject: /hg/rhino-tests: Added three new tests for methods GetCanonicalN... Message-ID: changeset 7df6314535c9 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=7df6314535c9 author: Pavel Tisnovsky date: Thu Jan 10 09:32:48 2013 +0100 Added three new tests for methods GetCanonicalName(), getConstructor() and getDeclaredConstructor() into RhinoTests/BindingsClassTest.java. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/BindingsClassTest.java | 72 ++++++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletions(-) diffs (116 lines): diff -r 90f140ca1129 -r 7df6314535c9 ChangeLog --- a/ChangeLog Wed Jan 09 10:47:01 2013 +0100 +++ b/ChangeLog Thu Jan 10 09:32:48 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-10 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Added three new tests for methods GetCanonicalName(), getConstructor() and + getDeclaredConstructor(). + 2013-01-09 Pavel Tisnovsky * src/org/RhinoTests/SimpleBindingsClassTest.java: diff -r 90f140ca1129 -r 7df6314535c9 src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Wed Jan 09 10:47:01 2013 +0100 +++ b/src/org/RhinoTests/BindingsClassTest.java Thu Jan 10 09:32:48 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.Bindings.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.bindingsClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.Bindings", + "Method javax.script.Bindings.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.Bindings.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -314,6 +324,66 @@ } /** + * Test for method javax.script.Bindings.getClass().getConstructor() + */ + protected void testGetConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.bindingsClass.getConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.Bindings.getClass().getDeclaredConstructor() + */ + protected void testGetDeclaredConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.bindingsClass.getDeclaredConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.Bindings.getClass().getFields() */ protected void testGetFields() { From jvanek at redhat.com Thu Jan 10 00:31:01 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 10 Jan 2013 09:31:01 +0100 Subject: [rfc][icedtea-web] centre of dialogues to centre of active monitor In-Reply-To: <50EDC01E.5000103@redhat.com> References: <50EC411D.9010702@redhat.com> <50EDBCA5.7020003@redhat.com> <50EDC01E.5000103@redhat.com> Message-ID: <50EE7C45.7080101@redhat.com> On 01/09/2013 08:08 PM, Adam Domurad wrote: > On 01/09/2013 01:53 PM, Adam Domurad wrote: >> On 01/08/2013 10:54 AM, Jiri Vanek wrote: >>> All dialogues in ITW are centred into middle of ALL monitors, which is really nasty. >>> During splashscreen development I have centred into middle of default screen. Well better but not >>> perfect. >>> That time Omair suggested to centr into middle of active screen - active here is the one where is >>> cursor. >>> Well I have finally come with something like this:) >>> >>> >> This looks OK to me, although I still get the dialog pop-ups flashing on the wrong screen >> sometimes, before appearing on the correct one. >> >> Comments on impl class: >>> +public class ScreenFinder { >>> + >>> + public static GraphicsDevice getCurrentScreen() { >>> + Point p = MouseInfo.getPointerInfo().getLocation(); >>> + return getScreenOnCoords(p); >>> + >>> + } >>> + public static Rectangle getCurrentScreenSizeWithoutBounds() { >>> + Point p = MouseInfo.getPointerInfo().getLocation(); >>> + return getScreenOnCoordsWithutBounds(p); >>> + >>> + } >>> + >>> + public static void centerWindowsToCurrentScreen(Window w) { >>> + Rectangle bounds = getCurrentScreenSizeWithoutBounds(); >>> + w.setLocation(bounds.x + (bounds.width - w.getWidth())/2, >>> + bounds.y + (bounds.height - w.getHeight())/2); >>> + >>> + } >>> + >>> + public static GraphicsDevice getScreenOnCoords(Point point) { >>> + GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment(); >>> + GraphicsDevice[] devices = e.getScreenDevices(); >>> + GraphicsDevice result = null; >>> + //now get the configuration(s) for each device >>> + for (GraphicsDevice device : devices) { >>> + //GraphicsConfiguration[] configurations = device.getConfigurations(); >>> + //or? >> >> If you've settled on default device, I'd prefer to just simply use it. >> >>> + GraphicsConfiguration[] configurations = new >>> GraphicsConfiguration[]{device.getDefaultConfiguration()}; >>> + for (GraphicsConfiguration config : configurations) { >>> + Rectangle gcBounds = config.getBounds(); >>> + if (gcBounds.contains(point)) { >>> + result = device; >>> + } >>> + } >>> + } >>> + if (result == null) { >>> + //not found, get the default display >>> + result = e.getDefaultScreenDevice(); >>> + } >>> + return result; >>> + } >>> + >>> + public static Rectangle getScreenOnCoordsWithutBounds(Point p) { >>> + GraphicsDevice device = getScreenOnCoords(p); >>> + Rectangle screenSize = device.getDefaultConfiguration().getBounds(); >>> + Insets insets = >>> Toolkit.getDefaultToolkit().getScreenInsets(device.getDefaultConfiguration()); >>> + return new Rectangle((int)screenSize.getX()+insets.left, >>> (int)screenSize.getY()+insets.top, (int)screenSize.getWidth()-insets.left, >>> (int)screenSize.getHeight()-insets.bottom); >> >> I'd prefer 4 temporary variables for these coordinates. >> >>> + } >>> + >>> + >>> +} >> >> OK to push otherwise, though. >> >> Thanks, >> -Adam > > Hmm actually as well, the "Fatal: Launch Error: " shows up for me on wrong monitor. Yap, that is true. There are(were) three types of dialogues in icedtea web. Classical dialogues centerd by internal java implementation. Imho nothing we should touch. (but yes, they can confuse usser by waiting on different screen). I guess those dialogues are centred to middle of default screen. Our dialogues, which were centred into middle of all screens. Nasty, fixed by above patch. Our dialogues, however centred to somewhere else. Those should be probably found and fixed too. Waiting with push to future IRC discussion. Thanx, J. From ptisnovs at icedtea.classpath.org Thu Jan 10 00:54:56 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 10 Jan 2013 08:54:56 +0000 Subject: /hg/gfx-test: Added four helper methods used to create test imag... Message-ID: changeset 96a64caaddec in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=96a64caaddec author: Pavel Tisnovsky date: Thu Jan 10 09:57:59 2013 +0100 Added four helper methods used to create test images into ImageFactory.java. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/ImageFactory.java | 166 ++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+), 0 deletions(-) diffs (186 lines): diff -r a243dee26a99 -r 96a64caaddec ChangeLog --- a/ChangeLog Wed Jan 09 11:10:10 2013 +0100 +++ b/ChangeLog Thu Jan 10 09:57:59 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-10 Pavel Tisnovsky + + * src/org/gfxtest/framework/ImageFactory.java: + Added four helper methods used to create test images. + 2013-01-09 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: diff -r a243dee26a99 -r 96a64caaddec src/org/gfxtest/framework/ImageFactory.java --- a/src/org/gfxtest/framework/ImageFactory.java Wed Jan 09 11:10:10 2013 +0100 +++ b/src/org/gfxtest/framework/ImageFactory.java Thu Jan 10 09:57:59 2013 +0100 @@ -733,4 +733,170 @@ // return buffered image containing computed color pattern return image; } + + /** + * Create image containing red gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalRedGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 16); + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing red gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalRedGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 16); + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing red to blue gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalRedToBlueGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int invrgb = 255 - rgb; + int color = (0xff << 24) | (rgb << 16) | invrgb; + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing red to blue gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalRedToBlueGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int invrgb = 255 - rgb; + int color = (0xff << 24) | (rgb << 16) | invrgb; + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } } From jvanek at icedtea.classpath.org Thu Jan 10 04:18:16 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 10 Jan 2013 12:18:16 +0000 Subject: /hg/icedtea-web: First part of fix of recreating desktop icon Message-ID: changeset 1b86028e546b in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=1b86028e546b author: Jiri Vanek date: Thu Jan 10 13:18:45 2013 +0100 First part of fix of recreating desktop icon Another fix can be addition of buttons like always/never diffstat: ChangeLog | 20 + NEWS | 1 + netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java | 10 +- netx/net/sourceforge/jnlp/util/XDesktopEntry.java | 119 ++++++- tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java | 188 ++++++++++ 5 files changed, 333 insertions(+), 5 deletions(-) diffs (423 lines): diff -r d95b456959e5 -r 1b86028e546b ChangeLog --- a/ChangeLog Wed Jan 09 18:32:08 2013 +0100 +++ b/ChangeLog Thu Jan 10 13:18:45 2013 +0100 @@ -1,3 +1,23 @@ +2013-01-09 Jiri Vanek + + First part of fix of recreating desktop icon + * NEWS: mentioned PR725 + * netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java: + (addMenuAndDesktopEntries)added check for already existing icon + * netx/net/sourceforge/jnlp/util/XDesktopEntry.java: Added methods for + digging the already existing icon from system + (getShortcutTmpFile) tmpfile fo generating the desktop icon + (getDesktopIconName) for getting filename from application title + (findFreedesktopOrgDesktopPathCatch) public method to find final desktop file + (findFreedesktopOrgDesktopPath) to get into ~/.config/user-dirs.dirs + (getFreedesktopOrgDesktopPathFrom) to find XDG_DESKTOP_DIR value + (filterQuotes) to handle simple quotations + (evaluateLinuxVariables) to handle possible variables in XDG_DESKTOP_DIR + value + * tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java: + New tests focused on parsing of desktop location from stream (variables + and quotations) + 2013-01-09 Jiri Vanek Logging methods made synchronized diff -r d95b456959e5 -r 1b86028e546b NEWS --- a/NEWS Wed Jan 09 18:32:08 2013 +0100 +++ b/NEWS Thu Jan 10 13:18:45 2013 +0100 @@ -16,6 +16,7 @@ - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings * NetX - PR1027: DownloadService is not supported by IcedTea-Web + - PR725: JNLP applications will prompt for creating desktop shortcuts every time they are run * Plugin - PR1106: Buffer overflow in plugin table- - PR1166: Embedded JNLP File is not supported in applet tag diff -r d95b456959e5 -r 1b86028e546b netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java --- a/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java Wed Jan 09 18:32:08 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/ApplicationInstance.java Thu Jan 10 13:18:45 2013 +0100 @@ -17,6 +17,7 @@ package net.sourceforge.jnlp.runtime; import java.awt.Window; +import java.io.File; import java.net.URL; import java.security.AccessControlContext; import java.security.AccessController; @@ -146,7 +147,14 @@ private void addMenuAndDesktopEntries() { XDesktopEntry entry = new XDesktopEntry(file); ShortcutDesc sd = file.getInformation().getShortcut(); - + File possibleDesktopFile = entry.getLinuxDesktopIconFile(); + if (possibleDesktopFile.exists()) { + if (JNLPRuntime.isDebug()) { + System.out.println("ApplicationInstance.addMenuAndDesktopEntries(): file - " + + possibleDesktopFile.getAbsolutePath() + " already exists. Not proceeding with desktop additions"); + } + return; + } if (shouldCreateShortcut(sd)) { entry.createDesktopShortcut(); } diff -r d95b456959e5 -r 1b86028e546b netx/net/sourceforge/jnlp/util/XDesktopEntry.java --- a/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Wed Jan 09 18:32:08 2013 +0100 +++ b/netx/net/sourceforge/jnlp/util/XDesktopEntry.java Thu Jan 10 13:18:45 2013 +0100 @@ -16,16 +16,25 @@ package net.sourceforge.jnlp.util; +import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileReader; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.StringReader; import java.net.URL; import java.nio.charset.Charset; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; import net.sourceforge.jnlp.IconDesc; import net.sourceforge.jnlp.JNLPFile; @@ -78,7 +87,7 @@ String fileContents = "[Desktop Entry]\n"; fileContents += "Version=1.0\n"; - fileContents += "Name=" + sanitize(file.getTitle()) + "\n"; + fileContents += "Name=" + getDesktopIconName() + "\n"; fileContents += "GenericName=Java Web Start Application\n"; fileContents += "Comment=" + sanitize(file.getInformation().getDescription()) + "\n"; fileContents += "Type=Application\n"; @@ -122,6 +131,12 @@ return iconSize; } + public File getShortcutTmpFile() { + String userTmp = JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR); + File shortcutFile = new File(userTmp + File.separator + FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); + return shortcutFile; + } + /** * Set the icon size to use for the desktop shortcut * @@ -148,9 +163,7 @@ * Install this XDesktopEntry into the user's desktop as a launcher */ private void installDesktopLauncher() { - File shortcutFile = new File(JNLPRuntime.getConfiguration() - .getProperty(DeploymentConfiguration.KEY_USER_TMP_DIR) - + File.separator + FileUtils.sanitizeFileName(file.getTitle()) + ".desktop"); + File shortcutFile = getShortcutTmpFile(); try { if (!shortcutFile.getParentFile().isDirectory() && !shortcutFile.getParentFile().mkdirs()) { @@ -234,4 +247,102 @@ } } + public String getDesktopIconName() { + return sanitize(file.getTitle()); + } + + public File getLinuxDesktopIconFile() { + return new File(findFreedesktopOrgDesktopPathCatch() + "/" + getDesktopIconName() + ".desktop"); + } + + private static String findFreedesktopOrgDesktopPathCatch() { + try { + return findFreedesktopOrgDesktopPath(); + } catch (Exception ex) { + ex.printStackTrace(); + return System.getProperty("user.home") + "/Desktop/"; + } + } + + /** + * Instead of having all this parsing of user-dirs.dirs and replacing + * variables we can execute `echo $(xdg-user-dir DESKTOP)` and it will do + * all the job in case approaches below become failing + * + * @return variables (if declared) and quotation marks (unless escaped) free + * path + * @throws IOException if no file do not exists or key with desktop do not + * exists + */ + private static String findFreedesktopOrgDesktopPath() throws IOException { + File userDirs = new File(System.getProperty("user.home") + "/.config/user-dirs.dirs"); + if (!userDirs.exists()) { + return System.getProperty("user.home") + "/Desktop/"; + } + return getFreedesktopOrgDesktopPathFrom(userDirs); + } + + private static String getFreedesktopOrgDesktopPathFrom(File userDirs) throws IOException { + BufferedReader r = new BufferedReader(new FileReader(userDirs)); + try { + return getFreedesktopOrgDesktopPathFrom(r); + } finally { + r.close(); + } + + } + static final String XDG_DESKTOP_DIR = "XDG_DESKTOP_DIR"; + + static String getFreedesktopOrgDesktopPathFrom(BufferedReader r) throws IOException { + while (true) { + String s = r.readLine(); + if (s == null) { + throw new IOException("End of user-dirs found, but no " + XDG_DESKTOP_DIR + " key found"); + } + s = s.trim(); + if (s.startsWith(XDG_DESKTOP_DIR)) { + if (!s.contains("=")) { + throw new IOException(XDG_DESKTOP_DIR + " has no value"); + } + String[] keyAndValue = s.split("="); + keyAndValue[1] = keyAndValue[1].trim(); + String filteredQuotes = filterQuotes(keyAndValue[1]); + return evaluateLinuxVariables(filteredQuotes); + } + } + } + private static final String MIC = "MAGIC_QUOTIN_ITW_CONSTANT_FOR_DUMMIES"; + + private static String filterQuotes(String string) { + //get rid of " but not of + String s = string.replaceAll("\\\\\"", MIC); + s = s.replaceAll("\"", ""); + s = s.replaceAll(MIC, "\\\""); + return s; + } + + private static String evaluateLinuxVariables(String orig) { + return evaluateLinuxVariables(orig, System.getenv()); + } + + private static String evaluateLinuxVariables(String orig, Map variables) { + Set> env = variables.entrySet(); + List> envVariables = new ArrayList>(env); + Collections.sort(envVariables, new Comparator>() { + @Override + public int compare(Entry o1, Entry o2) { + return o2.getKey().length() - o1.getKey().length(); + } + }); + while (true) { + String before = orig; + for (Entry entry : envVariables) { + orig = orig.replaceAll("\\$" + entry.getKey(), entry.getValue()); + } + if (before.equals(orig)) { + return orig; + } + } + + } } diff -r d95b456959e5 -r 1b86028e546b tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/util/XDesktopEntryTest.java Thu Jan 10 13:18:45 2013 +0100 @@ -0,0 +1,188 @@ +/* + Copyright (C) 2012 Red Hat, Inc. + + This file is part of IcedTea. + + IcedTea is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + IcedTea is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with IcedTea; see the file COPYING. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. + */ +package net.sourceforge.jnlp.util; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.StringReader; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import net.sourceforge.jnlp.ServerAccess; +import net.sourceforge.jnlp.annotations.KnownToFail; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +public class XDesktopEntryTest { + + private static final String des1 = "/my/little/Desktop"; + private static final String des2name = "Plocha"; + private static final String des2Res = System.getProperty("user.home") + "/" + des2name; + private static final String HOME = "HOME"; + private static final String des2 = "$" + HOME + "/" + des2name; + private static final String des7 = "\"$" + HOME + "/" + des2name + "\""; + private static final String des7res = System.getProperty("user.home") + "/" + des2name; + private static final String des8 = "\\\"$" + HOME + "/" + des2name + "\\\""; + private static final String des8res = "\"" + System.getProperty("user.home") + "/" + des2name + "\""; + private static final String des9 = "\"$" + HOME + "/\\\"" + des2name + "\\\"\""; + private static final String des9res = System.getProperty("user.home") + "/\"" + des2name + "\""; + private static final String src1 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des1; + private static final String src2 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des1; + private static final String src3 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des1; + private static final String src4 = XDesktopEntry.XDG_DESKTOP_DIR + "=" + des2; + private static final String src5 = " " + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des2; + private static final String src6 = "#" + XDesktopEntry.XDG_DESKTOP_DIR + " = " + des2; + private static final String src7 = XDesktopEntry.XDG_DESKTOP_DIR + " = " + des7; + private static final String src8 = XDesktopEntry.XDG_DESKTOP_DIR + " = " + des8; + private static final String src9 = XDesktopEntry.XDG_DESKTOP_DIR + " = " + des9; + private static Map backupedEnv; + + @BeforeClass + public static void ensureHomeVaribale() throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException, ClassNotFoundException { + ServerAccess.logOutputReprint("Environment"); + envToString(); + Map env = System.getenv(); + if (env.containsKey(HOME)) { + backupedEnv = null; + } else { + backupedEnv = env; + Map m = new HashMap(env); + m.put(HOME, System.getProperty("user.home")); + fakeEnvironment(m); + ServerAccess.logOutputReprint("Hacked environment"); + envToString(); + } + } + + @AfterClass + public static void restoreHomeVaribale() throws NoSuchFieldException, IllegalAccessException, IllegalArgumentException, ClassNotFoundException { + Map env = System.getenv(); + if (backupedEnv != null) { + fakeEnvironment(backupedEnv); + ServerAccess.logOutputReprint("Restored environment"); + envToString(); + } + } + + private static void fakeEnvironment(Map m) throws NoSuchFieldException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException { + Class processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment"); + Field env = processEnvironmentClass.getDeclaredField("theUnmodifiableEnvironment"); + env.setAccessible(true); + // remove final modifier from field + Field modifiersField = Field.class.getDeclaredField("modifiers"); + modifiersField.setAccessible(true); + modifiersField.setInt(env, env.getModifiers() & ~Modifier.FINAL); + env.set(null, m); + } + + @Test + @KnownToFail + public void testHomeVariable() { + Assert.assertTrue("Variable home must be in environment of this run, is not", System.getenv().containsKey(HOME)); + Assert.assertNull("Variable home should be declared before test run, but was not and so is faked. This should be ok and is thrown just for record. See output of ensureHomeVaribale and restoreHomeVaribale", backupedEnv); + } + + @Test + public void getFreedesktopOrgDesktopPathFromtestSimple() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src1))); + Assert.assertEquals(s, des1); + } + + @Test + public void getFreedesktopOrgDesktopPathFromtestSpaced() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src2))); + Assert.assertEquals(s, des1); + } + + @Test(expected = IOException.class) + public void getFreedesktopOrgDesktopPathFromtestCommented() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src3))); + } + + @Test + public void getFreedesktopOrgDesktopPathFromtestSimpleWithHome() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src4))); + Assert.assertEquals(s, des2Res); + } + + @Test + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHome() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src5))); + Assert.assertEquals(s, des2Res); + } + + @Test + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHomeAndQuotes() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src7))); + Assert.assertEquals(s, des7res); + } + + @Test + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHomeAndEscapedQuotes() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src8))); + Assert.assertEquals(s, des8res); + } + @Test + public void getFreedesktopOrgDesktopPathFromtestSpacedWithHomeAndMixedQuotes() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src9))); + Assert.assertEquals(s, des9res); + } + + @Test(expected = IOException.class) + public void getFreedesktopOrgDesktopPathFromtestCommentedWithHome() throws IOException { + String s = XDesktopEntry.getFreedesktopOrgDesktopPathFrom(new BufferedReader(new StringReader(src6))); + } + + private static void envToString() { + mapToString(System.getenv()); + } + + private static void mapToString(Map variables) { + Set> env = variables.entrySet(); + for (Map.Entry entry : env) { + ServerAccess.logOutputReprint(entry.getKey() + " = " + entry.getValue()); + } + } +} \ No newline at end of file From jvanek at redhat.com Thu Jan 10 04:27:19 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 10 Jan 2013 13:27:19 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EB0802.8030803@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> <50EAE14D.5050505@redhat.com> <50EAEE24.2080804@redhat.com> <50EAFB5A.9000104@redhat.com> <50EB0802.8030803@redhat.com> Message-ID: <50EEB3A7.1010401@redhat.com> Well I'm ok with current implementation and testing. Lets wait for Jana's final word. She promissed to check today evening/yesterday. J. From jvanek at redhat.com Thu Jan 10 06:33:00 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 10 Jan 2013 15:33:00 +0100 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50EDC8E3.8060505@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> <50EADE9F.3000101@redhat.com> <50EB1B33.4020605@redhat.com> <50EC440E.2080409@redhat.com> <50EDC8E3.8060505@redhat.com> Message-ID: <50EED11C.8060504@redhat.com> On 01/09/2013 08:45 PM, Adam Domurad wrote: > On 01/08/2013 11:06 AM, Jiri Vanek wrote: >> On 01/07/2013 08:00 PM, Adam Domurad wrote: >>> On 01/07/2013 09:41 AM, Jiri Vanek wrote: >>>> On 01/04/2013 05:35 PM, Adam Domurad wrote: >>>>> On 01/03/2013 11:07 AM, Jiri Vanek wrote: >>>>>> Hi! >>>>>> >>>>>> This patch is adding "show details" to download indicator. For One jar jnlp files it behaviour is >>>>>> unaffected. For Multiple jars there is just one progress bar, but can be shown "old stile" >>>>>> detailed one via clicking to "Show details". Then can be minimalised by "hide details". Button is >>>>>> localised. >>>>>> >>>>>> The button is nasty not nice.. Any better idea? but still this is better then previous approach. >>>>>> >>>>>> Looking forward to have this inside! >>>>>> >>>>>> Best rigards >>>>>> J. >>>>> >>>>> Thanks for looking into this! I was actually comparing our download indicator to proprietary just >>>>> yesterday, while staring at multiple jars downloading. The average user does not want to know >>>>> about >>>>> the jars being downloaded, in fact I think such information can look scary :-). >>>>> >>>>>> diff -r 9549226afa8f netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>>>>> --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 09:54:16 2013 >>>>>> +0100 >>>>>> +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 17:07:28 2013 >>>>>> +0100 >>>>>> @@ -62,6 +62,7 @@ >>>>>> >>>>>> /** shared constraint */ >>>>>> static GridBagConstraints vertical; >>>>>> + static GridBagConstraints verticalNoClean; >>>>>> static GridBagConstraints verticalIndent; >>>>>> static { >>>>>> vertical = new GridBagConstraints(); >>>>>> @@ -70,8 +71,12 @@ >>>>>> vertical.fill = GridBagConstraints.HORIZONTAL; >>>>>> vertical.anchor = GridBagConstraints.WEST; >>>>>> >>>>>> + verticalNoClean = new GridBagConstraints(); >>>>>> + verticalNoClean.weightx = 1.0; >>>>>> + >>>>>> verticalIndent = (GridBagConstraints) vertical.clone(); >>>>>> verticalIndent.insets = new Insets(0, 10, 3, 0); >>>>>> + >>>>> >>>>> Nit: These two blank lines (and all the ones added below) have tabs :-) >>>>> >>>>>> } >>>>>> >>>>>> /** >>>>>> @@ -114,15 +119,15 @@ >>>>>> >>>>>> frame.getContentPane().add(result, vertical); >>>>>> frame.pack(); >>>>>> - >>>>>> if (!frame.isVisible()) { >>>>>> - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>>>> - Insets insets = >>>>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>>>> - Dimension screen = new Dimension(screenSize.width - insets.left, >>>>>> - screenSize.height - insets.top); >>>>>> - frame.setLocation(screen.width - frame.getWidth(), >>>>>> - screen.height - frame.getHeight()); >>>>>> + placeFrameToLowerRight(); >>>>>> } >>>>>> + result.addComponentListener(new ComponentAdapter() { >>>>>> + @Override >>>>>> + public void componentResized(ComponentEvent e) { >>>>>> + placeFrameToLowerRight(); >>>>>> + } >>>>>> + }); >>>>>> >>>>>> frame.setVisible(true); >>>>>> >>>>>> @@ -131,6 +136,32 @@ >>>>>> } >>>>>> >>>>>> /** >>>>>> + * The insets are calculated differently during first appearance >>>>>> + * and during another appearance in case of some configurations. >>>>>> + * >>>>>> + * So the first value is stored to avoid jumping of window during later packing >>>>>> + * of frame. >>>>>> + * >>>>>> + * However the second calculation is more correct:( >>>>>> + * >>>>>> + * This is affecting only multiple monitors which have different assets. >>>>>> + * The underlying issue is that Toolkit.getDefaultToolkit().getScreenInsets >>>>>> + * is returning assets for "random" monitor. >>>>>> + */ >>>>>> + Dimension screen = null; >>>>>> + >>>>>> + private void placeFrameToLowerRight() throws HeadlessException { >>>>>> + if (screen == null) { >>>>>> + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>>>> + Insets insets = >>>>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>>>> + screen = new Dimension(screenSize.width - insets.left, >>>>>> + screenSize.height - insets.top); >>>>>> + } >>>>>> + frame.setLocation(screen.width - frame.getWidth(), >>>>>> + screen.height - frame.getHeight()); >>>>>> + } >>>>>> + >>>>>> + /** >>>>>> * Remove a download service listener that was obtained by >>>>>> * calling the getDownloadListener method from the shared >>>>>> * download info window. >>>>>> @@ -163,12 +194,26 @@ >>>>>> * Groups the url progress in a panel. >>>>>> */ >>>>>> static class DownloadPanel extends JPanel implements DownloadServiceListener { >>>>>> - >>>>>> + private static enum States{ >>>>>> + oneJAr, collapsed, detailed; >>>>> >>>>> Enums should be all-caps >>>>> >>>>>> + >>>>>> + } >>>>>> + >>>>>> + private static final String DETAILS=R("ButShowDetails"); >>>>>> + private static final String HIDE_DETAILS=R("ButHideDetails"); >>>>>> /** the download name */ >>>>>> private String downloadName; >>>>>> >>>>>> /** Downloading part: */ >>>>>> private JLabel header = new JLabel(); >>>>>> + /** Show/hide details button: */ >>>>>> + private JButton details = new JButton(DETAILS); >>>>>> + /** used instead of details button in case of one jar*/ >>>>>> + private JLabel delimiter = new JLabel(""); >>>>>> + /** all already created progress bars*/ >>>>>> + private List progressPanels = new ArrayList(); >>>>>> + private States state=States.oneJAr; >>>>>> + private ProgressPanel mainProgressPanel; >>>>>> >>>>>> /** list of URLs being downloaded */ >>>>>> private List urls = new ArrayList(); >>>>>> @@ -176,6 +221,7 @@ >>>>>> /** list of ProgressPanels */ >>>>>> private List panels = new ArrayList(); >>>>>> >>>>>> + >>>>> >>>>> Nit: two blank lines are unnecessary. >>>>> >>>>>> /** >>>>>> * Create a new download panel for with the specified download >>>>>> * name. >>>>>> @@ -184,9 +230,35 @@ >>>>>> setLayout(new GridBagLayout()); >>>>>> >>>>>> this.downloadName = downloadName; >>>>>> - this.add(header, vertical); >>>>>> + this.add(header, verticalNoClean); >>>>>> header.setFont(header.getFont().deriveFont(Font.BOLD)); >>>>>> - >>>>>> + this.add(delimiter, vertical); >>>>>> + details.addActionListener(new ActionListener() { >>>>>> + @Override >>>>>> + public void actionPerformed(ActionEvent e) { >>>>>> + if (state == States.detailed) { >>>>>> + state = States.collapsed; >>>>>> + details.setText(DETAILS); >>>>>> + for (ProgressPanel progressPanel : progressPanels) { >>>>>> + remove(progressPanel); >>>>>> + } >>>>>> + add(mainProgressPanel, verticalIndent); >>>>>> + synchronized (frameMutex) { >>>>>> + frame.pack(); >>>>>> + } >>>>>> + } else { >>>>>> + state = States.detailed; >>>>>> + details.setText(HIDE_DETAILS); >>>>>> + remove(mainProgressPanel); >>>>>> + for (ProgressPanel progressPanel : progressPanels) { >>>>>> + add(progressPanel, verticalIndent); >>>>>> + } >>>>>> + synchronized (frameMutex) { >>>>>> + frame.pack(); >>>>>> + } >>>>>> + } >>>>>> + } >>>>>> + }); >>>>>> setOverallPercent(0); >>>>>> } >>>>>> >>>>>> @@ -196,14 +268,25 @@ >>>>>> protected void addProgressPanel(URL url, String version) { >>>>>> if (!urls.contains(url)) { >>>>>> ProgressPanel panel = new ProgressPanel(url, version); >>>>>> - >>>>>> - add(panel, verticalIndent); >>>>>> + if (state != States.collapsed) { >>>>>> + add(panel, verticalIndent); >>>>>> + } >>>>>> + progressPanels.add(panel); >>>>>> + urls.add(url); >>>>>> + panels.add(panel); >>>>>> + if (panels.size() == 2){ >>>>> >>>>> Small comment here would be good explaining why this 'magic number' >>>>> >>>>>> + remove(panels.get(0)); >>>>>> + remove(panels.get(1)); >>>>>> + remove(delimiter); >>>>>> + add(details,vertical); >>>>>> + mainProgressPanel=new ProgressPanel(); >>>>>> + add(mainProgressPanel, verticalIndent); >>>>>> + state=States.collapsed; >>>>>> + } >>>>>> synchronized (frameMutex) { >>>>>> frame.pack(); >>>>>> } >>>>>> >>>>>> - urls.add(url); >>>>>> - panels.add(panel); >>>>>> } >>>>>> } >>>>>> >>>>>> @@ -219,10 +302,10 @@ >>>>>> addProgressPanel(url, version); >>>>>> >>>>>> setOverallPercent(overallPercent); >>>>>> - >>>>>> ProgressPanel panel = panels.get(urls.indexOf(url)); >>>>>> panel.setProgress(readSoFar, total); >>>>>> panel.repaint(); >>>>>> + >>>>>> } >>>>>> }; >>>>>> SwingUtilities.invokeLater(r); >>>>>> @@ -230,12 +313,28 @@ >>>>>> >>>>>> /** >>>>>> * Sets the overall percent completed. >>>>>> + * should be called via invokeLater >>>>>> */ >>>>>> public void setOverallPercent(int percent) { >>>>>> // don't get whole string from resource and sub in >>>>>> // values because it'll be doing a MessageFormat for >>>>>> // each update. >>>>>> header.setText(downloading + " " + downloadName + ": " + percent + "% " + complete + >>>>>> "."); >>>>>> + Container c = header.getParent(); >>>>>> + //we need to adapt nbboth panels and also frame to new length of header text >>>>> >>>>> nbboth > both >>>>> >>>>>> + while (c != null) { >>>>>> + c.invalidate(); >>>>>> + c.validate(); >>>>>> + if (c instanceof Window){ >>>>>> + ((Window) c).pack(); >>>>>> + } >>>>>> + c=c.getParent(); >>>>>> + } >>>>>> + >>>>>> + if (mainProgressPanel != null) { >>>>>> + mainProgressPanel.setProgress(percent, 100); >>>>>> + mainProgressPanel.repaint(); >>>>>> + } >>>>>> } >>>>>> >>>>>> /** >>>>>> @@ -276,12 +375,28 @@ >>>>>> >>>>>> private long total; >>>>>> private long readSoFar; >>>>>> + private Dimension size = new Dimension(80, 15); >>>>>> >>>>>> + ProgressPanel() { >>>>>> + bar.setMinimumSize(size); >>>>>> + bar.setPreferredSize(size); >>>>>> + bar.setOpaque(false); >>>>>> + >>>>>> + setLayout(new GridBagLayout()); >>>>>> + >>>>>> + GridBagConstraints gbc = new GridBagConstraints(); >>>>>> + styleGridBagConstraints(gbc); >>>>>> + add(bar, gbc); >>>>>> + } >>>>>> + >>>>>> ProgressPanel(URL url, String version) { >>>>>> - JLabel location = new JLabel(" " + url.getHost() + "/" + url.getFile()); >>>>>> + this(" " + url.getHost() + "/" + url.getFile(),version); >>>>>> + } >>>>>> + ProgressPanel(String caption, String version) { >>>>>> + JLabel location = new JLabel(caption); >>>>>> >>>>>> - bar.setMinimumSize(new Dimension(80, 15)); >>>>>> - bar.setPreferredSize(new Dimension(80, 15)); >>>>>> + bar.setMinimumSize(size); >>>>>> + bar.setPreferredSize(size); >>>>>> bar.setOpaque(false); >>>>>> >>>>>> setLayout(new GridBagLayout()); >>>>>> @@ -291,12 +406,8 @@ >>>>>> gbc.fill = GridBagConstraints.NONE; >>>>>> gbc.gridwidth = GridBagConstraints.RELATIVE; >>>>>> add(bar, gbc); >>>>>> - >>>>>> - gbc.insets = new Insets(0, 3, 0, 0); >>>>>> - gbc.weightx = 1.0; >>>>>> - gbc.fill = GridBagConstraints.HORIZONTAL; >>>>>> - gbc.gridwidth = GridBagConstraints.REMAINDER; >>>>>> - gbc.anchor = GridBagConstraints.WEST; >>>>>> + >>>>>> + styleGridBagConstraints(gbc); >>>>>> add(location, gbc); >>>>>> } >>>>>> >>>>>> @@ -325,6 +436,14 @@ >>>>>> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >>>>>> } >>>>>> } >>>>>> + >>>>>> + private void styleGridBagConstraints(GridBagConstraints gbc) { >>>>>> + gbc.insets = new Insets(0, 3, 0, 0); >>>>>> + gbc.weightx = 1.0; >>>>>> + gbc.fill = GridBagConstraints.HORIZONTAL; >>>>>> + gbc.gridwidth = GridBagConstraints.REMAINDER; >>>>>> + gbc.anchor = GridBagConstraints.WEST; >>>>>> + } >>>>>> }; >>>>>> >>>>>> } >>>>> >>>>> Code looks OK nits aside. >>>> >>>> Thanx for nits. Should be fixed now >>>>> >>>>> As for button ... yes it is nasty. IMO maybe we can take different approach here. The people >>>>> interested in how the individual jars are downloading would mainly be 1. us trying to fix jar >>>>> loading issues, 2. developers looking into jar loading issues. >>>>> >>>>> So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this on/off ? It can be argued >>>>> it is >>>>> a bit hard for developers to access, but it isn't any easier to access this information from >>>>> oracle >>>>> plugin. >>>> >>>> I think I don't like this idea :( >>> >>> No problem, but can you elaborate why not? >> >> When it took to long to downld application, I'm happy to see whats going on. Maybe I can spot some >> 3rd party jar to be stuck and then I can ping them. And I definitely do not want to look for >> environmetn variables. >>> >>>> I have added an attempt to use an icon, And I must say it is much better. Btw, I have created >>>> this icon.. so no wonders here :) But looks quite cool :) >>> >>> It looks OK :-) The glass part could use some transparency. >> blah :) >> >>> There should be a slightly different icon from going from detailed ->compact. >> As you wish, however, I do not like the red cross I have added :( >> >>> >>>> >>>>> >>>>> As well, I would be very happy to see the loading bar integrated with the splash screen (if splash >>>>> screen is on). I believe this would nicely complement the user friendliness of the splash screen. >>>> >>>> You mean to sync progress on progress bar with the one in splash? Or also showing the downlaoded >>>> resources somehow and show details button in splash? >>> >>> I was thinking always have progress bar on splash, and have detailed view hide/show the download >>> bars in corner. IMO this is good for now, except: >> I agree. It can came in some future. >> >>> 1. visual glitches such as http://i.imgur.com/Oveuh.png (with text flickering from middle to top >>> every frame). As well on dual monitors expanding/compacting view constantly changed screens for me. >> Well I was not able to reproduce today :-/ >> However I have changed the implementation and So I hope that it will behave better in your >> configuration. >> >> Please note, now this patch is depending on [rfc][icedtea-web] centre of dialogues to centre of >> active monitor. >> Sorry for inconvenience here:( >> >>> 2. A different style button/icon from going detailed->compact. >> >> How different? (in context of this patch/in global)? > > Just a different icon, like you added. > > patch: >> diff -r 02981a272327 netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >> --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Mon Jan 07 11:47:32 2013 -0500 >> +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Tue Jan 08 15:26:23 2013 +0100 >> @@ -29,6 +29,7 @@ >> >> import net.sourceforge.jnlp.runtime.*; >> import net.sourceforge.jnlp.util.ImageResources; >> +import net.sourceforge.jnlp.util.ScreenFinder; >> >> /** >> * Show the progress of downloads. >> @@ -62,6 +63,7 @@ >> >> /** shared constraint */ >> static GridBagConstraints vertical; >> + static GridBagConstraints verticalNoClean; >> static GridBagConstraints verticalIndent; >> static { >> vertical = new GridBagConstraints(); >> @@ -70,6 +72,9 @@ >> vertical.fill = GridBagConstraints.HORIZONTAL; >> vertical.anchor = GridBagConstraints.WEST; >> >> + verticalNoClean = new GridBagConstraints(); >> + verticalNoClean.weightx = 1.0; >> + >> verticalIndent = (GridBagConstraints) vertical.clone(); >> verticalIndent.insets = new Insets(0, 10, 3, 0); >> } >> @@ -101,9 +106,7 @@ >> >> synchronized (frameMutex) { >> if (frame == null) { >> - frame = new JFrame(downloading + "..."); >> - frame.setIconImages(ImageResources.INSTANCE.getApplicationImages()); >> - frame.getContentPane().setLayout(new GridBagLayout()); >> + frame=createDownloadIndicatorFrame(true); >> } >> >> if (resources != null) { >> @@ -114,15 +117,13 @@ >> >> frame.getContentPane().add(result, vertical); >> frame.pack(); >> - >> - if (!frame.isVisible()) { >> - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >> - Insets insets = >> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >> - Dimension screen = new Dimension(screenSize.width - insets.left, >> - screenSize.height - insets.top); >> - frame.setLocation(screen.width - frame.getWidth(), >> - screen.height - frame.getHeight()); >> - } >> + placeFrameToLowerRight(); >> + result.addComponentListener(new ComponentAdapter() { >> + @Override >> + public void componentResized(ComponentEvent e) { >> + placeFrameToLowerRight(); >> + } >> + }); >> >> frame.setVisible(true); >> >> @@ -130,6 +131,23 @@ >> } >> } >> >> + public static JFrame createDownloadIndicatorFrame(boolean undecorated) throws >> HeadlessException { >> + JFrame f = new JFrame(downloading + "..."); >> + f.setUndecorated(undecorated); >> + f.setIconImages(ImageResources.INSTANCE.getApplicationImages()); >> + f.getContentPane().setLayout(new GridBagLayout()); >> + return f; >> + } >> + >> + /** >> + * This places indicator to lower rigt corner of active monitor. > > s/rigt/right/ > >> + */ >> + private static void placeFrameToLowerRight() throws HeadlessException { >> + Rectangle bounds = ScreenFinder.getCurrentScreenSizeWithoutBounds(); >> + frame.setLocation(bounds.width+bounds.x - frame.getWidth(), >> + bounds.height+bounds.y - frame.getHeight()); >> + } >> + >> /** >> * Remove a download service listener that was obtained by >> * calling the getDownloadListener method from the shared >> @@ -163,13 +181,31 @@ >> * Groups the url progress in a panel. >> */ >> static class DownloadPanel extends JPanel implements DownloadServiceListener { >> + private final DownloadPanel self; >> >> + private static enum States{ >> + ONE_JAR, COLLAPSED, DETAILED; >> + } >> + >> + private static final String DETAILS=R("ButShowDetails"); >> + private static final String HIDE_DETAILS=R("ButHideDetails"); >> /** the download name */ >> private String downloadName; >> - >> /** Downloading part: */ >> private JLabel header = new JLabel(); >> - >> + /** Show/hide detailsButton button: */ >> + private final JButton detailsButton; >> + private static final URL magnifyGlassUrl = >> ClassLoader.getSystemResource("net/sourceforge/jnlp/resources/magnifyGlass-small.png"); >> + private static final URL redCrossUrl = >> ClassLoader.getSystemResource("net/sourceforge/jnlp/resources/redCross-small.png"); >> + private static final Icon magnifyGlassIcon = new ImageIcon(magnifyGlassUrl); >> + private static final Icon redCrossIcon = new ImageIcon(redCrossUrl); >> + /** used instead of detailsButton button in case of one jar*/ >> + private JLabel delimiter = new JLabel(""); >> + /** all already created progress bars*/ >> + private List progressPanels = new ArrayList(); >> + private States state=States.ONE_JAR; >> + private ProgressPanel mainProgressPanel; >> + >> /** list of URLs being downloaded */ >> private List urls = new ArrayList(); >> >> @@ -181,12 +217,52 @@ >> * name. >> */ >> protected DownloadPanel(String downloadName) { >> + self = this; >> setLayout(new GridBagLayout()); >> + this.downloadName = downloadName; >> + this.add(header, verticalNoClean); >> + header.setFont(header.getFont().deriveFont(Font.BOLD)); >> + this.add(delimiter, vertical); >> + detailsButton = new JButton(magnifyGlassIcon); >> + int w = magnifyGlassIcon.getIconWidth(); >> + int h = magnifyGlassIcon.getIconHeight(); >> + detailsButton.setPreferredSize(new Dimension(w + 2, h + 2)); >> + detailsButton.addActionListener(new ActionListener() { >> + @Override >> + public void actionPerformed(ActionEvent e) { >> + if (state == States.DETAILED) { >> + state = States.COLLAPSED; >> + detailsButton.setToolTipText(DETAILS); >> + detailsButton.setIcon(magnifyGlassIcon); >> + for (ProgressPanel progressPanel : progressPanels) { >> + remove(progressPanel); >> + } >> + add(mainProgressPanel, verticalIndent); >> + recreateFrame(true); >> + } else { >> + state = States.DETAILED; >> + detailsButton.setToolTipText(HIDE_DETAILS); >> + detailsButton.setIcon(redCrossIcon); >> + remove(mainProgressPanel); >> + for (ProgressPanel progressPanel : progressPanels) { >> + add(progressPanel, verticalIndent); >> + } >> + recreateFrame(false); >> + } >> + } >> >> - this.downloadName = downloadName; >> - this.add(header, vertical); >> - header.setFont(header.getFont().deriveFont(Font.BOLD)); >> - >> + public void recreateFrame(boolean undecorated) throws HeadlessException { >> + JFrame oldFrame = frame; >> + frame = createDownloadIndicatorFrame(undecorated); >> + frame.getContentPane().add(self, vertical); >> + synchronized (frameMutex) { >> + frame.pack(); >> + placeFrameToLowerRight(); >> + } >> + frame.setVisible(true); >> + oldFrame.dispose(); >> + } >> + }); >> setOverallPercent(0); >> } >> >> @@ -196,14 +272,31 @@ >> protected void addProgressPanel(URL url, String version) { >> if (!urls.contains(url)) { >> ProgressPanel panel = new ProgressPanel(url, version); >> - >> - add(panel, verticalIndent); >> + if (state != States.COLLAPSED) { >> + add(panel, verticalIndent); >> + } >> + progressPanels.add(panel); >> + urls.add(url); >> + panels.add(panel); >> + //download indicator does not know about added jars >> + //When just one is added then it behaves as was costumed (and no show detail button) > > Sorry, I do not understand this last sentence (at least not the way its worded). > >> + //when secoond one is added, then it already knows that there will > > s/secoond/second/ > >> + //be two or more jars, so it swap to collapsed state in count of two. >> + //no later, no sooner >> + if (panels.size() == 2){ >> + remove(panels.get(0)); >> + remove(panels.get(1)); >> + remove(delimiter); >> + add(detailsButton,vertical); >> + mainProgressPanel=new ProgressPanel(); >> + add(mainProgressPanel, verticalIndent); >> + state=States.COLLAPSED; >> + } >> synchronized (frameMutex) { >> frame.pack(); >> + placeFrameToLowerRight(); >> } >> >> - urls.add(url); >> - panels.add(panel); >> } >> } >> >> @@ -219,10 +312,10 @@ >> addProgressPanel(url, version); >> >> setOverallPercent(overallPercent); >> - >> ProgressPanel panel = panels.get(urls.indexOf(url)); >> panel.setProgress(readSoFar, total); >> panel.repaint(); >> + >> } >> }; >> SwingUtilities.invokeLater(r); >> @@ -230,12 +323,27 @@ >> >> /** >> * Sets the overall percent completed. >> + * should be called via invokeLater >> */ >> public void setOverallPercent(int percent) { >> // don't get whole string from resource and sub in >> // values because it'll be doing a MessageFormat for >> // each update. >> header.setText(downloading + " " + downloadName + ": " + percent + "% " + complete + >> "."); >> + Container c = header.getParent(); >> + //we need to adapt both panels and also frame to new length of header text >> + while (c != null) { >> + c.invalidate(); >> + c.validate(); >> + if (c instanceof Window){ >> + ((Window) c).pack(); >> + } >> + c=c.getParent(); >> + } >> + if (mainProgressPanel != null) { >> + mainProgressPanel.setProgress(percent, 100); >> + mainProgressPanel.repaint(); >> + } >> } >> >> /** >> @@ -276,12 +384,28 @@ >> >> private long total; >> private long readSoFar; >> + private Dimension size = new Dimension(80, 15); >> >> + ProgressPanel() { >> + bar.setMinimumSize(size); >> + bar.setPreferredSize(size); >> + bar.setOpaque(false); >> + >> + setLayout(new GridBagLayout()); >> + >> + GridBagConstraints gbc = new GridBagConstraints(); >> + styleGridBagConstraints(gbc); >> + add(bar, gbc); >> + } >> + >> ProgressPanel(URL url, String version) { >> - JLabel location = new JLabel(" " + url.getHost() + "/" + url.getFile()); >> + this(" " + url.getHost() + "/" + url.getFile(),version); >> + } >> + ProgressPanel(String caption, String version) { >> + JLabel location = new JLabel(caption); >> >> - bar.setMinimumSize(new Dimension(80, 15)); >> - bar.setPreferredSize(new Dimension(80, 15)); >> + bar.setMinimumSize(size); >> + bar.setPreferredSize(size); >> bar.setOpaque(false); >> >> setLayout(new GridBagLayout()); >> @@ -291,12 +415,8 @@ >> gbc.fill = GridBagConstraints.NONE; >> gbc.gridwidth = GridBagConstraints.RELATIVE; >> add(bar, gbc); >> - >> - gbc.insets = new Insets(0, 3, 0, 0); >> - gbc.weightx = 1.0; >> - gbc.fill = GridBagConstraints.HORIZONTAL; >> - gbc.gridwidth = GridBagConstraints.REMAINDER; >> - gbc.anchor = GridBagConstraints.WEST; >> + >> + styleGridBagConstraints(gbc); >> add(location, gbc); >> } >> >> @@ -325,6 +445,14 @@ >> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >> } >> } >> + >> + private void styleGridBagConstraints(GridBagConstraints gbc) { >> + gbc.insets = new Insets(0, 3, 0, 0); >> + gbc.weightx = 1.0; >> + gbc.fill = GridBagConstraints.HORIZONTAL; >> + gbc.gridwidth = GridBagConstraints.REMAINDER; >> + gbc.anchor = GridBagConstraints.WEST; >> + } >> }; >> >> } > > Attached are two alternate icons. They are from here http://opengameart.org/content/forum-controls > and are in the public domain. ok.. I dont like the aluminium magnify glass :) I was thinking about some simple + and - also - you can see how it resulted at "*2.png versions" not nice:( then I took your arrow idea and I think the result is pretty nice. What do you think now? (just note, smaller arrow and bigger arrow are intentional:) > > The magnifying glass can go compact->detailed, and the left&up arrow can go detailed->compact. Maybe > get rid of the surrounding buttons as well (or make them more subtle) ? What do you mean? > Patch with updated names of icons and fixed typos attached. -------------- next part -------------- A non-text attachment was scrubbed... Name: showDownloadDetails.png Type: image/png Size: 860 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/a5999764/showDownloadDetails.png -------------- next part -------------- A non-text attachment was scrubbed... Name: hideDownloadDetails.png Type: image/png Size: 862 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/a5999764/hideDownloadDetails.png -------------- next part -------------- A non-text attachment was scrubbed... Name: magnifyGlass-small2.png Type: image/png Size: 1193 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/a5999764/magnifyGlass-small2.png -------------- next part -------------- A non-text attachment was scrubbed... Name: redCross-small2.png Type: image/png Size: 1027 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/a5999764/redCross-small2.png -------------- next part -------------- A non-text attachment was scrubbed... Name: cmpactDownloadIndicator2.patch Type: text/x-patch Size: 12564 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/a5999764/cmpactDownloadIndicator2.patch From adomurad at redhat.com Thu Jan 10 07:56:46 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 10 Jan 2013 10:56:46 -0500 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50EED11C.8060504@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> <50EADE9F.3000101@redhat.com> <50EB1B33.4020605@redhat.com> <50EC440E.2080409@redhat.com> <50EDC8E3.8060505@redhat.com> <50EED11C.8060504@redhat.com> Message-ID: <50EEE4BE.5010008@redhat.com> On 01/10/2013 09:33 AM, Jiri Vanek wrote: [ .. large snip .. ] > On 01/09/2013 08:45 PM, Adam Domurad wrote: >> On 01/08/2013 11:06 AM, Jiri Vanek wrote: >>> + //When just one is added then it behaves as was >>> costumed (and no show detail button) >> >> Sorry, I do not understand this last sentence (at least not the way >> its worded). Ok you explained it on IRC :-) but still needs to be fixed. "When only one jar is downloaded then its progress is shown, and there is no show detail button" makes sense to me. (assuming I interpreted correctly, I haven't seen it with a 1-jar download yet) >>> + //be two or more jars, so it swap to collapsed >>> state in count of two. >>> + //no later, no sooner >>> + if (panels.size() == 2){ >>> + remove(panels.get(0)); >>> + remove(panels.get(1)); >>> + remove(delimiter); >>> + add(detailsButton,vertical); >>> + mainProgressPanel=new ProgressPanel(); >>> + add(mainProgressPanel, verticalIndent); >>> + state=States.COLLAPSED; >>> + } >>> synchronized (frameMutex) { >>> frame.pack(); >>> + placeFrameToLowerRight(); >>> } >>> >>> - urls.add(url); >>> - panels.add(panel); >>> } >>> } >>> >>> @@ -219,10 +312,10 @@ >>> addProgressPanel(url, version); >>> >>> setOverallPercent(overallPercent); >>> - >>> ProgressPanel panel = >>> panels.get(urls.indexOf(url)); >>> panel.setProgress(readSoFar, total); >>> panel.repaint(); >>> + >>> } >>> }; >>> SwingUtilities.invokeLater(r); >>> @@ -230,12 +323,27 @@ >>> >>> /** >>> * Sets the overall percent completed. >>> + * should be called via invokeLater >>> */ >>> public void setOverallPercent(int percent) { >>> // don't get whole string from resource and sub in >>> // values because it'll be doing a MessageFormat for >>> // each update. >>> header.setText(downloading + " " + downloadName + ": " >>> + percent + "% " + complete + >>> "."); >>> + Container c = header.getParent(); >>> + //we need to adapt both panels and also frame to new >>> length of header text >>> + while (c != null) { >>> + c.invalidate(); >>> + c.validate(); >>> + if (c instanceof Window){ >>> + ((Window) c).pack(); >>> + } >>> + c=c.getParent(); >>> + } >>> + if (mainProgressPanel != null) { >>> + mainProgressPanel.setProgress(percent, 100); >>> + mainProgressPanel.repaint(); >>> + } >>> } >>> >>> /** >>> @@ -276,12 +384,28 @@ >>> >>> private long total; >>> private long readSoFar; >>> + private Dimension size = new Dimension(80, 15); >>> >>> + ProgressPanel() { >>> + bar.setMinimumSize(size); >>> + bar.setPreferredSize(size); >>> + bar.setOpaque(false); >>> + >>> + setLayout(new GridBagLayout()); >>> + >>> + GridBagConstraints gbc = new GridBagConstraints(); >>> + styleGridBagConstraints(gbc); >>> + add(bar, gbc); >>> + } >>> + >>> ProgressPanel(URL url, String version) { >>> - JLabel location = new JLabel(" " + url.getHost() + "/" >>> + url.getFile()); >>> + this(" " + url.getHost() + "/" + url.getFile(),version); >>> + } >>> + ProgressPanel(String caption, String version) { >>> + JLabel location = new JLabel(caption); >>> >>> - bar.setMinimumSize(new Dimension(80, 15)); >>> - bar.setPreferredSize(new Dimension(80, 15)); >>> + bar.setMinimumSize(size); >>> + bar.setPreferredSize(size); >>> bar.setOpaque(false); >>> >>> setLayout(new GridBagLayout()); >>> @@ -291,12 +415,8 @@ >>> gbc.fill = GridBagConstraints.NONE; >>> gbc.gridwidth = GridBagConstraints.RELATIVE; >>> add(bar, gbc); >>> - >>> - gbc.insets = new Insets(0, 3, 0, 0); >>> - gbc.weightx = 1.0; >>> - gbc.fill = GridBagConstraints.HORIZONTAL; >>> - gbc.gridwidth = GridBagConstraints.REMAINDER; >>> - gbc.anchor = GridBagConstraints.WEST; >>> + >>> + styleGridBagConstraints(gbc); >>> add(location, gbc); >>> } >>> >>> @@ -325,6 +445,14 @@ >>> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >>> } >>> } >>> + >>> + private void styleGridBagConstraints(GridBagConstraints gbc) { >>> + gbc.insets = new Insets(0, 3, 0, 0); >>> + gbc.weightx = 1.0; >>> + gbc.fill = GridBagConstraints.HORIZONTAL; >>> + gbc.gridwidth = GridBagConstraints.REMAINDER; >>> + gbc.anchor = GridBagConstraints.WEST; >>> + } >>> }; >>> >>> } >> >> Attached are two alternate icons. They are from here >> http://opengameart.org/content/forum-controls >> and are in the public domain. > > ok.. I dont like the aluminium magnify glass :) Whatever works :-) > > I was thinking about some simple + and - also - you can see how it > resulted at "*2.png versions" not nice:( > > then I took your arrow idea and I think the result is pretty nice. > > What do you think now? It's good now, I like it. > > (just note, smaller arrow and bigger arrow are intentional:) >> >> The magnifying glass can go compact->detailed, and the left&up arrow >> can go detailed->compact. Maybe >> get rid of the surrounding buttons as well (or make them more subtle) ? > > What do you mean? Just having a clickable image seems better to me than having the swing button. >> > > Patch with updated names of icons and fixed typos attached. > It's good now though, please do push! (just fix that one sentence). -Adam From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 08:52:21 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 16:52:21 +0000 Subject: [Bug 1251] New: getResource failures on swing EDT caused by AppContext having wrong classloader Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251 Bug ID: 1251 Summary: getResource failures on swing EDT caused by AppContext having wrong classloader Classification: Unclassified Product: IcedTea-Web Version: hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: adomurad at redhat.com CC: unassigned at icedtea.classpath.org Probable cause of PR840[1] This is a regression. During refactoring, the setContextClassLoader seems to have been dropped from initialization like so: > Thread.currentThread().setContextClassLoader(jnlpclassloader); > SunToolkit.createNewAppContext(); Setting the context classloader like this is important for resources loaded from Swing threads. The AppContext captures the context classloader and periodically will override the swing thread context classloader. This causes getResource to return null in swing threads, mysteriously. [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=840 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/8efc8f1b/attachment.html From jvanek at icedtea.classpath.org Thu Jan 10 08:56:59 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 10 Jan 2013 16:56:59 +0000 Subject: /hg/icedtea-web: All IcedTea-Web dialogues are centered to middl... Message-ID: changeset 3e4b40d47487 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=3e4b40d47487 author: Jiri Vanek date: Thu Jan 10 17:57:19 2013 +0100 All IcedTea-Web dialogues are centered to middle of active screen Active screen in this context is the one, where the mouse is presented or default when no mouse presention detected. Patch is affecteing only IcedTea-Web custom dialogues. diffstat: ChangeLog | 14 + NEWS | 1 + netx/net/sourceforge/jnlp/JNLPSplashScreen.java | 8 +- netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java | 6 +- netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java | 6 +- netx/net/sourceforge/jnlp/security/SecurityDialog.java | 7 +- netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java | 7 +- netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java | 3 +- netx/net/sourceforge/jnlp/util/ScreenFinder.java | 100 ++++++++++ 9 files changed, 128 insertions(+), 24 deletions(-) diffs (281 lines): diff -r 1b86028e546b -r 3e4b40d47487 ChangeLog --- a/ChangeLog Thu Jan 10 13:18:45 2013 +0100 +++ b/ChangeLog Thu Jan 10 17:57:19 2013 +0100 @@ -1,3 +1,17 @@ +2013-01-10 Jiri Vanek + + All IcedTea-Web dialogues are centered to middle of active screen + * NEWS: mentioned this feature + * netx/net/sourceforge/jnlp/JNLPSplashScreen.java: + * netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java: + * netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java: + * netx/net/sourceforge/jnlp/security/SecurityDialog.java: + * netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java: + * netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java: + Dialogues in above classes made centering to active screen + * netx/net/sourceforge/jnlp/util/ScreenFinder.java: New file, utility + class which can find active monitor and center dialogue into it. + 2013-01-09 Jiri Vanek First part of fix of recreating desktop icon diff -r 1b86028e546b -r 3e4b40d47487 NEWS --- a/NEWS Thu Jan 10 13:18:45 2013 +0100 +++ b/NEWS Thu Jan 10 17:57:19 2013 +0100 @@ -11,6 +11,7 @@ New in release 1.4 (2012-XX-XX): * Added cs_CZ localisation * Splash screen for javaws and plugin +* All IcedTea-Web dialogues are centered to middle of active screen * Security updates - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/JNLPSplashScreen.java --- a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java Thu Jan 10 13:18:45 2013 +0100 +++ b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java Thu Jan 10 17:57:19 2013 +0100 @@ -43,6 +43,7 @@ import java.awt.Graphics2D; import java.awt.Image; import java.awt.Insets; +import java.awt.Rectangle; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; @@ -53,6 +54,7 @@ import net.sourceforge.jnlp.splashscreen.SplashUtils; import net.sourceforge.jnlp.splashscreen.parts.InformationElement; import net.sourceforge.jnlp.util.ImageResources; +import net.sourceforge.jnlp.util.ScreenFinder; public class JNLPSplashScreen extends JDialog { @@ -145,11 +147,7 @@ setMaximumSize(new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE)); setSize(new Dimension(minimumWidth, minimumHeight)); setPreferredSize(new Dimension(minimumWidth, minimumHeight)); - // Centering to middle of Toolkit.getDefaultToolkit().getScreenSize() - // centers to the middle of all monitors. Let's center to the middle - // of the primary monitor instead. - // TODO center on the 'current' monitor to meet user expectation - setLocationRelativeTo(null); + ScreenFinder.centerWindowsToCurrentScreen(this); } @Override diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java --- a/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java Thu Jan 10 13:18:45 2013 +0100 +++ b/netx/net/sourceforge/jnlp/controlpanel/AdvancedProxySettingsDialog.java Thu Jan 10 17:57:19 2013 +0100 @@ -32,6 +32,7 @@ import net.sourceforge.jnlp.config.DeploymentConfiguration; import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.util.ImageResources; +import net.sourceforge.jnlp.util.ScreenFinder; /** * This dialog provides a means for user to edit more of the proxy settings. @@ -106,10 +107,7 @@ * Center the dialog box. */ private void centerDialog() { - Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension dialogSize = getSize(); - - setLocation((screen.width - dialogSize.width) / 2, (screen.height - dialogSize.height) / 2); + ScreenFinder.centerWindowsToCurrentScreen(this); } /** diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java --- a/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java Thu Jan 10 13:18:45 2013 +0100 +++ b/netx/net/sourceforge/jnlp/controlpanel/CacheViewer.java Thu Jan 10 17:57:19 2013 +0100 @@ -31,6 +31,7 @@ import net.sourceforge.jnlp.config.DeploymentConfiguration; import net.sourceforge.jnlp.runtime.Translator; import net.sourceforge.jnlp.util.ImageResources; +import net.sourceforge.jnlp.util.ScreenFinder; /** * This class will provide a visual way of viewing cache. @@ -113,9 +114,6 @@ * Center the dialog box. */ private void centerDialog() { - Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension dialogSize = getSize(); - - setLocation((screen.width - dialogSize.width) / 2, (screen.height - dialogSize.height) / 2); + ScreenFinder.centerWindowsToCurrentScreen(this); } } diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/security/SecurityDialog.java --- a/netx/net/sourceforge/jnlp/security/SecurityDialog.java Thu Jan 10 13:18:45 2013 +0100 +++ b/netx/net/sourceforge/jnlp/security/SecurityDialog.java Thu Jan 10 17:57:19 2013 +0100 @@ -52,6 +52,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.List; +import net.sourceforge.jnlp.util.ScreenFinder; /** * Provides methods for showing security warning dialogs for a wide range of @@ -312,11 +313,7 @@ } private static void centerDialog(JDialog dialog) { - Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension dialogSize = dialog.getSize(); - - dialog.setLocation((screen.width - dialogSize.width) / 2, - (screen.height - dialogSize.height) / 2); + ScreenFinder.centerWindowsToCurrentScreen(dialog); } private void selectDefaultButton() { diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java --- a/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java Thu Jan 10 13:18:45 2013 +0100 +++ b/netx/net/sourceforge/jnlp/security/viewer/CertificateViewer.java Thu Jan 10 17:57:19 2013 +0100 @@ -52,6 +52,7 @@ import net.sourceforge.jnlp.runtime.JNLPRuntime; import net.sourceforge.jnlp.util.ImageResources; +import net.sourceforge.jnlp.util.ScreenFinder; public class CertificateViewer extends JDialog { @@ -94,11 +95,7 @@ } private void centerDialog() { - Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); - Dimension dialogSize = getSize(); - - setLocation((screen.width - dialogSize.width) / 2, - (screen.height - dialogSize.height) / 2); + ScreenFinder.centerWindowsToCurrentScreen(this); } public static void showCertificateViewer() throws Exception { diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java --- a/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Thu Jan 10 13:18:45 2013 +0100 +++ b/netx/net/sourceforge/jnlp/splashscreen/impls/defaultsplashscreen2012/BasePainter.java Thu Jan 10 17:57:19 2013 +0100 @@ -58,6 +58,7 @@ import net.sourceforge.jnlp.splashscreen.parts.BasicComponentSplashScreen; import net.sourceforge.jnlp.splashscreen.parts.InfoItem; import net.sourceforge.jnlp.splashscreen.parts.InformationElement; +import net.sourceforge.jnlp.util.ScreenFinder; public class BasePainter implements Observer { @@ -281,7 +282,7 @@ showInfo = false; } } - if (Math.min(h, w) < Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 10) { + if (Math.min(h, w) < ScreenFinder.getCurrentScreenSizeWithoutBounds().getHeight() / 10) { showNiceTexts = false; } else { showNiceTexts = true; diff -r 1b86028e546b -r 3e4b40d47487 netx/net/sourceforge/jnlp/util/ScreenFinder.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netx/net/sourceforge/jnlp/util/ScreenFinder.java Thu Jan 10 17:57:19 2013 +0100 @@ -0,0 +1,100 @@ +/* ScreenFinder.java +Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ +package net.sourceforge.jnlp.util; + +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.Insets; +import java.awt.MouseInfo; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.Window; + +public class ScreenFinder { + + public static GraphicsDevice getCurrentScreen() { + Point p = MouseInfo.getPointerInfo().getLocation(); + return getScreenOnCoords(p); + + } + public static Rectangle getCurrentScreenSizeWithoutBounds() { + Point p = MouseInfo.getPointerInfo().getLocation(); + return getScreenOnCoordsWithutBounds(p); + + } + + public static void centerWindowsToCurrentScreen(Window w) { + Rectangle bounds = getCurrentScreenSizeWithoutBounds(); + w.setLocation(bounds.x + (bounds.width - w.getWidth())/2, + bounds.y + (bounds.height - w.getHeight())/2); + + } + + public static GraphicsDevice getScreenOnCoords(Point point) { + GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice[] devices = e.getScreenDevices(); + GraphicsDevice result = null; + //now get the configuration(s) for each device + for (GraphicsDevice device : devices) { + //GraphicsConfiguration[] configurations = device.getConfigurations(); + //or? + GraphicsConfiguration[] configurations = new GraphicsConfiguration[]{device.getDefaultConfiguration()}; + for (GraphicsConfiguration config : configurations) { + Rectangle gcBounds = config.getBounds(); + if (gcBounds.contains(point)) { + result = device; + } + } + } + if (result == null) { + //not found, get the default display + result = e.getDefaultScreenDevice(); + } + return result; + } + + public static Rectangle getScreenOnCoordsWithutBounds(Point p) { + GraphicsDevice device = getScreenOnCoords(p); + Rectangle screenSize = device.getDefaultConfiguration().getBounds(); + Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(device.getDefaultConfiguration()); + return new Rectangle((int)screenSize.getX()+insets.left, (int)screenSize.getY()+insets.top, (int)screenSize.getWidth()-insets.left, (int)screenSize.getHeight()-insets.bottom); + } + + +} From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 09:27:02 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 17:27:02 +0000 Subject: [Bug 725] JNLP applications will prompt for creating desktop shortcuts every time they are run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 JiriVanek changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|omajid at redhat.com |jvanek at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/237a349e/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 09:28:55 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 17:28:55 +0000 Subject: [Bug 725] JNLP applications will prompt for creating desktop shortcuts every time they are run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 JiriVanek changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #9 from JiriVanek --- by http://icedtea.classpath.org/hg/icedtea-web/rev/1b86028e546b when icon exists, then user will not be asked again. When he deletes it, he wel be asked again. Somefuture work like always/never button can come in future. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/aa6b75c6/attachment.html From jvanek at icedtea.classpath.org Thu Jan 10 09:31:21 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Thu, 10 Jan 2013 17:31:21 +0000 Subject: /hg/icedtea-web: Download indicator made compact for more then o... Message-ID: changeset 4118632d3c49 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=4118632d3c49 author: Jiri Vanek date: Thu Jan 10 18:23:06 2013 +0100 Download indicator made compact for more then one jar diffstat: ChangeLog | 14 + NEWS | 1 + netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java | 193 ++++++++- netx/net/sourceforge/jnlp/resources/hideDownloadDetails.png | Bin netx/net/sourceforge/jnlp/resources/showDownloadDetails.png | Bin 5 files changed, 176 insertions(+), 32 deletions(-) diffs (353 lines): diff -r 3e4b40d47487 -r 4118632d3c49 ChangeLog --- a/ChangeLog Thu Jan 10 17:57:19 2013 +0100 +++ b/ChangeLog Thu Jan 10 18:23:06 2013 +0100 @@ -1,3 +1,17 @@ +2013-01-10 Jiri Vanek + + Download indicator made compact for more then one jar + * NEWS: mentioned this feature + * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java: + (DownloadPanel) inner class were rewritten to support collapsed/detailed + for more then one jar in queue. + (frame) window is recreated each time state is changed (preventing errors + on some X configurations) and is positioned to lower left corner of + active screen. + * netx/net/sourceforge/jnlp/resources/hideDownloadDetails.png + * adding netx/net/sourceforge/jnlp/resources/showDownloadDetails.pn h + Icons for "to collapsed state" and "to detailed state" + 2013-01-10 Jiri Vanek All IcedTea-Web dialogues are centered to middle of active screen diff -r 3e4b40d47487 -r 4118632d3c49 NEWS --- a/NEWS Thu Jan 10 17:57:19 2013 +0100 +++ b/NEWS Thu Jan 10 18:23:06 2013 +0100 @@ -12,6 +12,7 @@ * Added cs_CZ localisation * Splash screen for javaws and plugin * All IcedTea-Web dialogues are centered to middle of active screen +* Download indicator made compact for more then one jar * Security updates - CVE-2012-3422, RH840592: Potential read from an uninitialized memory location - CVE-2012-3423, RH841345: Incorrect handling of not 0-terminated strings diff -r 3e4b40d47487 -r 4118632d3c49 netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 10 17:57:19 2013 +0100 +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 10 18:23:06 2013 +0100 @@ -29,6 +29,7 @@ import net.sourceforge.jnlp.runtime.*; import net.sourceforge.jnlp.util.ImageResources; +import net.sourceforge.jnlp.util.ScreenFinder; /** * Show the progress of downloads. @@ -62,6 +63,7 @@ /** shared constraint */ static GridBagConstraints vertical; + static GridBagConstraints verticalNoClean; static GridBagConstraints verticalIndent; static { vertical = new GridBagConstraints(); @@ -70,6 +72,9 @@ vertical.fill = GridBagConstraints.HORIZONTAL; vertical.anchor = GridBagConstraints.WEST; + verticalNoClean = new GridBagConstraints(); + verticalNoClean.weightx = 1.0; + verticalIndent = (GridBagConstraints) vertical.clone(); verticalIndent.insets = new Insets(0, 10, 3, 0); } @@ -101,9 +106,7 @@ synchronized (frameMutex) { if (frame == null) { - frame = new JFrame(downloading + "..."); - frame.setIconImages(ImageResources.INSTANCE.getApplicationImages()); - frame.getContentPane().setLayout(new GridBagLayout()); + frame=createDownloadIndicatorFrame(true); } if (resources != null) { @@ -114,15 +117,13 @@ frame.getContentPane().add(result, vertical); frame.pack(); - - if (!frame.isVisible()) { - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); - Dimension screen = new Dimension(screenSize.width - insets.left, - screenSize.height - insets.top); - frame.setLocation(screen.width - frame.getWidth(), - screen.height - frame.getHeight()); - } + placeFrameToLowerRight(); + result.addComponentListener(new ComponentAdapter() { + @Override + public void componentResized(ComponentEvent e) { + placeFrameToLowerRight(); + } + }); frame.setVisible(true); @@ -130,6 +131,23 @@ } } + public static JFrame createDownloadIndicatorFrame(boolean undecorated) throws HeadlessException { + JFrame f = new JFrame(downloading + "..."); + f.setUndecorated(undecorated); + f.setIconImages(ImageResources.INSTANCE.getApplicationImages()); + f.getContentPane().setLayout(new GridBagLayout()); + return f; + } + + /** + * This places indicator to lower right corner of active monitor. + */ + private static void placeFrameToLowerRight() throws HeadlessException { + Rectangle bounds = ScreenFinder.getCurrentScreenSizeWithoutBounds(); + frame.setLocation(bounds.width+bounds.x - frame.getWidth(), + bounds.height+bounds.y - frame.getHeight()); + } + /** * Remove a download service listener that was obtained by * calling the getDownloadListener method from the shared @@ -163,13 +181,31 @@ * Groups the url progress in a panel. */ static class DownloadPanel extends JPanel implements DownloadServiceListener { + private final DownloadPanel self; + private static enum States{ + ONE_JAR, COLLAPSED, DETAILED; + } + + private static final String DETAILS=R("ButShowDetails"); + private static final String HIDE_DETAILS=R("ButHideDetails"); /** the download name */ private String downloadName; - /** Downloading part: */ private JLabel header = new JLabel(); - + /** Show/hide detailsButton button: */ + private final JButton detailsButton; + private static final URL magnifyGlassUrl = ClassLoader.getSystemResource("net/sourceforge/jnlp/resources/showDownloadDetails.png"); + private static final URL redCrossUrl = ClassLoader.getSystemResource("net/sourceforge/jnlp/resources/hideDownloadDetails.png"); + private static final Icon magnifyGlassIcon = new ImageIcon(magnifyGlassUrl); + private static final Icon redCrossIcon = new ImageIcon(redCrossUrl); + /** used instead of detailsButton button in case of one jar*/ + private JLabel delimiter = new JLabel(""); + /** all already created progress bars*/ + private List progressPanels = new ArrayList(); + private States state=States.ONE_JAR; + private ProgressPanel mainProgressPanel; + /** list of URLs being downloaded */ private List urls = new ArrayList(); @@ -181,12 +217,52 @@ * name. */ protected DownloadPanel(String downloadName) { + self = this; setLayout(new GridBagLayout()); + this.downloadName = downloadName; + this.add(header, verticalNoClean); + header.setFont(header.getFont().deriveFont(Font.BOLD)); + this.add(delimiter, vertical); + detailsButton = new JButton(magnifyGlassIcon); + int w = magnifyGlassIcon.getIconWidth(); + int h = magnifyGlassIcon.getIconHeight(); + detailsButton.setPreferredSize(new Dimension(w + 2, h + 2)); + detailsButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if (state == States.DETAILED) { + state = States.COLLAPSED; + detailsButton.setToolTipText(DETAILS); + detailsButton.setIcon(magnifyGlassIcon); + for (ProgressPanel progressPanel : progressPanels) { + remove(progressPanel); + } + add(mainProgressPanel, verticalIndent); + recreateFrame(true); + } else { + state = States.DETAILED; + detailsButton.setToolTipText(HIDE_DETAILS); + detailsButton.setIcon(redCrossIcon); + remove(mainProgressPanel); + for (ProgressPanel progressPanel : progressPanels) { + add(progressPanel, verticalIndent); + } + recreateFrame(false); + } + } - this.downloadName = downloadName; - this.add(header, vertical); - header.setFont(header.getFont().deriveFont(Font.BOLD)); - + public void recreateFrame(boolean undecorated) throws HeadlessException { + JFrame oldFrame = frame; + frame = createDownloadIndicatorFrame(undecorated); + frame.getContentPane().add(self, vertical); + synchronized (frameMutex) { + frame.pack(); + placeFrameToLowerRight(); + } + frame.setVisible(true); + oldFrame.dispose(); + } + }); setOverallPercent(0); } @@ -196,14 +272,32 @@ protected void addProgressPanel(URL url, String version) { if (!urls.contains(url)) { ProgressPanel panel = new ProgressPanel(url, version); - - add(panel, verticalIndent); + if (state != States.COLLAPSED) { + add(panel, verticalIndent); + } + progressPanels.add(panel); + urls.add(url); + panels.add(panel); + //download indicator does not know about added jars + //When only one jar is added to downlaod queue then its progress is + //shown, and there is no show detail button. + //When second one is added, then it already knows that there will + //be two or more jars, so it swap to collapsed state in count of two. + //no later, no sooner + if (panels.size() == 2){ + remove(panels.get(0)); + remove(panels.get(1)); + remove(delimiter); + add(detailsButton,vertical); + mainProgressPanel=new ProgressPanel(); + add(mainProgressPanel, verticalIndent); + state=States.COLLAPSED; + } synchronized (frameMutex) { frame.pack(); + placeFrameToLowerRight(); } - urls.add(url); - panels.add(panel); } } @@ -219,10 +313,10 @@ addProgressPanel(url, version); setOverallPercent(overallPercent); - ProgressPanel panel = panels.get(urls.indexOf(url)); panel.setProgress(readSoFar, total); panel.repaint(); + } }; SwingUtilities.invokeLater(r); @@ -230,12 +324,27 @@ /** * Sets the overall percent completed. + * should be called via invokeLater */ public void setOverallPercent(int percent) { // don't get whole string from resource and sub in // values because it'll be doing a MessageFormat for // each update. header.setText(downloading + " " + downloadName + ": " + percent + "% " + complete + "."); + Container c = header.getParent(); + //we need to adapt both panels and also frame to new length of header text + while (c != null) { + c.invalidate(); + c.validate(); + if (c instanceof Window){ + ((Window) c).pack(); + } + c=c.getParent(); + } + if (mainProgressPanel != null) { + mainProgressPanel.setProgress(percent, 100); + mainProgressPanel.repaint(); + } } /** @@ -276,12 +385,28 @@ private long total; private long readSoFar; + private Dimension size = new Dimension(80, 15); + ProgressPanel() { + bar.setMinimumSize(size); + bar.setPreferredSize(size); + bar.setOpaque(false); + + setLayout(new GridBagLayout()); + + GridBagConstraints gbc = new GridBagConstraints(); + styleGridBagConstraints(gbc); + add(bar, gbc); + } + ProgressPanel(URL url, String version) { - JLabel location = new JLabel(" " + url.getHost() + "/" + url.getFile()); + this(" " + url.getHost() + "/" + url.getFile(),version); + } + ProgressPanel(String caption, String version) { + JLabel location = new JLabel(caption); - bar.setMinimumSize(new Dimension(80, 15)); - bar.setPreferredSize(new Dimension(80, 15)); + bar.setMinimumSize(size); + bar.setPreferredSize(size); bar.setOpaque(false); setLayout(new GridBagLayout()); @@ -291,12 +416,8 @@ gbc.fill = GridBagConstraints.NONE; gbc.gridwidth = GridBagConstraints.RELATIVE; add(bar, gbc); - - gbc.insets = new Insets(0, 3, 0, 0); - gbc.weightx = 1.0; - gbc.fill = GridBagConstraints.HORIZONTAL; - gbc.gridwidth = GridBagConstraints.REMAINDER; - gbc.anchor = GridBagConstraints.WEST; + + styleGridBagConstraints(gbc); add(location, gbc); } @@ -325,6 +446,14 @@ g.fillRect(x + 1, y + 1, divide - 1, h - 1); } } + + private void styleGridBagConstraints(GridBagConstraints gbc) { + gbc.insets = new Insets(0, 3, 0, 0); + gbc.weightx = 1.0; + gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.gridwidth = GridBagConstraints.REMAINDER; + gbc.anchor = GridBagConstraints.WEST; + } }; } diff -r 3e4b40d47487 -r 4118632d3c49 netx/net/sourceforge/jnlp/resources/hideDownloadDetails.png Binary file netx/net/sourceforge/jnlp/resources/hideDownloadDetails.png has changed diff -r 3e4b40d47487 -r 4118632d3c49 netx/net/sourceforge/jnlp/resources/showDownloadDetails.png Binary file netx/net/sourceforge/jnlp/resources/showDownloadDetails.png has changed From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 09:54:44 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 17:54:44 +0000 Subject: [Bug 725] JNLP applications will prompt for creating desktop shortcuts every time they are run In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=725 --- Comment #10 from Toni Spets --- While this fix is a great improvement, it's not "in line" with the official Oracle JRE Web Start implementation. It seems the real thing does not reprompt you about the shortcut after the first dialog even if you remove it. The only way to recreate the icon(s) is to make sure both (desktop and menu) shortcuts are removed and then use the Cache Viewer to recreate them. itweb-settings doesn't seem to have a proper cache viewer at this point so this commit is better than the original behaviour as it would make it impossible for the user to recover from a missing icon. Thank you for fixing this. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/7be88f9f/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 10:56:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 18:56:43 +0000 Subject: [Bug 1234] Regression: Interacting with SweetHome3D brings classloading issue In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1234 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|omajid at redhat.com |adomurad at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/88b29615/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 10:57:00 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 18:57:00 +0000 Subject: [Bug 1251] getResource failures on swing EDT caused by AppContext having wrong classloader In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|omajid at redhat.com |adomurad at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/fd37fbe8/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 11:00:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 19:00:33 +0000 Subject: [Bug 1251] getResource failures on swing EDT caused by AppContext having wrong classloader In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251 --- Comment #1 from Adam Domurad --- *** Bug 1234 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/4b242647/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 11:00:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 19:00:33 +0000 Subject: [Bug 1234] Regression: Interacting with SweetHome3D brings classloading issue In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1234 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Adam Domurad --- Should have added information to this instead of creating http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1251 in hindsight. 1251 causes this bug. Marking this one as duplicate as the other one has more information. *** This bug has been marked as a duplicate of bug 1251 *** -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/c718a161/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 14:12:27 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 22:12:27 +0000 Subject: [Bug 1252] New: icedtea-web-1.3 on icedtea-2.3.3 with seamonkey-2.13.2 plugin not detected Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1252 Bug ID: 1252 Summary: icedtea-web-1.3 on icedtea-2.3.3 with seamonkey-2.13.2 plugin not detected Classification: Unclassified Product: IcedTea-Web Version: unspecified Hardware: all OS: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: jzb2 at aexorsyst.com CC: unassigned at icedtea.classpath.org -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/436b93ab/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 10 14:24:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 10 Jan 2013 22:24:39 +0000 Subject: [Bug 1252] icedtea-web-1.3 on icedtea-2.3.3 with seamonkey-2.13.2 plugin not detected In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1252 --- Comment #1 from John --- In package icedtea-web-1.3, IcedTeaPlugin.so builds against icetea-2.3.3 (OpenJDK-1.7.9_09) as long as MOZILLA_CFLAGS="-I/usr/include/seamonkey-2.13.2" and MOZILLA_LIBS="-L/usr/lib/seamonkey-2.13.2" is specified even without mozilla-*.pc pkgconfig file, but despite trying various plugin names, locations, symlinks, etc. the plugin is simply not listed on the Addons-Manager/Plugins tab of seamonkey. Testing on java.com indicates that java is not enabled in seamonkey. I have gnash/gnash-plugin built and installed on the same system, and gnash-plugin is listed as a valid plugin (and works), so some plugins do work with seamonkey and icedtea-2.3.3. Have not tried others. Don't know, but that's probably irrelevant. Furthermore, the seamonkey pluginreg.dat file gets this appended to it after restart after IcedTeaPlugin.so is installed: [INVALID] /usr/lib/mozilla/plugins/libjavaplugin.so:$ 1357845686000:$ Note that the "libjavaplugin.so" is but a symlink to IcedTeaPlugin.so. I've tried various names, symlinks, etc. with no difference in behaviour. This is on a pure 64-bit system (no /usr/lib64), based on BLFS (linuxfromscratch.org). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130110/32079703/attachment.html From helpcrypto at gmail.com Fri Jan 11 01:54:30 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Fri, 11 Jan 2013 10:54:30 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EEB3A7.1010401@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> <50EAE14D.5050505@redhat.com> <50EAEE24.2080804@redhat.com> <50EAFB5A.9000104@redhat.com> <50EB0802.8030803@redhat.com> <50EEB3A7.1010401@redhat.com> Message-ID: I'm nervous and excited.... :P On Thu, Jan 10, 2013 at 1:27 PM, Jiri Vanek wrote: > Well I'm ok with current implementation and testing. Lets wait for Jana's > final word. She promissed to check today evening/yesterday. > > J. > From ptisnovs at icedtea.classpath.org Fri Jan 11 02:23:02 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 11 Jan 2013 10:23:02 +0000 Subject: /hg/rhino-tests: New tests added methods getConstructor(), getDe... Message-ID: changeset eb0943f105e6 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=eb0943f105e6 author: Pavel Tisnovsky date: Fri Jan 11 11:26:11 2013 +0100 New tests added methods getConstructor(), getDeclaredConstructor() and getDeclaredFields into src/org/RhinoTests/AbstractScriptEngineClassTest.java. diffstat: ChangeLog | 14 +- src/org/RhinoTests/AbstractScriptEngineClassTest.java | 97 +++++++++++++++++++ 2 files changed, 107 insertions(+), 4 deletions(-) diffs (153 lines): diff -r 7df6314535c9 -r eb0943f105e6 ChangeLog --- a/ChangeLog Thu Jan 10 09:32:48 2013 +0100 +++ b/ChangeLog Fri Jan 11 11:26:11 2013 +0100 @@ -1,25 +1,31 @@ +2013-01-11 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + New tests added methods getConstructor(), getDeclaredConstructor() + and getDeclaredFields. + 2013-01-10 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: - Added three new tests for methods GetCanonicalName(), getConstructor() and + Added three new tests for methods getCanonicalName(), getConstructor() and getDeclaredConstructor(). 2013-01-09 Pavel Tisnovsky * src/org/RhinoTests/SimpleBindingsClassTest.java: - Added three new tests for methods GetCanonicalName(), getAnnotation() and + Added three new tests for methods getCanonicalName(), getAnnotation() and getComponentType(). 2013-01-08 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: - Added new test for a method GetCanonicalName() getAnnotation(). + Added new test for a method getCanonicalName() getAnnotation(). Fixed spelling. 2013-01-07 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: - Added new test for a method GetCanonicalName(). + Added new test for a method getCanonicalName(). Updated tests GetFields(), GetDeclaredFields() and GetField(). 2012-12-21 Pavel Tisnovsky diff -r 7df6314535c9 -r eb0943f105e6 src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Thu Jan 10 09:32:48 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Fri Jan 11 11:26:11 2013 +0100 @@ -347,6 +347,74 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getConstructor() + */ + protected void testGetConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + constructorsThatShouldExist_jdk6.put("javax.script.AbstractScriptEngine", new Class[] {}); + constructorsThatShouldExist_jdk6.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {}); + constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.abstractScriptEngineClass.getConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getDeclaredConstructor() + */ + protected void testGetDeclaredConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + constructorsThatShouldExist_jdk6.put("javax.script.AbstractScriptEngine", new Class[] {}); + constructorsThatShouldExist_jdk6.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {}); + constructorsThatShouldExist_jdk7.put("javax.script.AbstractScriptEngine", new Class[] {javax.script.Bindings.class}); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.abstractScriptEngineClass.getDeclaredConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.AbstractScriptEngine.getClass().getFields() */ protected void testGetFields() { @@ -459,6 +527,35 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getDeclaredField() + */ + protected void testGetDeclaredField() { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { + "context", + }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + "context", + }; + + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + + // check if all required declared fields really exists + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + try { + Field field = this.abstractScriptEngineClass.getDeclaredField(declaredFieldThatShouldExists); + String fieldName = field.getName(); + assertTrue(fieldName.equals(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.AbstractScriptEngine.getClass().getMethods() */ protected void testGetMethods() { From ptisnovs at icedtea.classpath.org Fri Jan 11 03:16:43 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 11 Jan 2013 11:16:43 +0000 Subject: /hg/gfx-test: Helper methods added into CommonBitmapOperations.j... Message-ID: changeset bad6e5f050f5 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=bad6e5f050f5 author: Pavel Tisnovsky date: Fri Jan 11 12:19:51 2013 +0100 Helper methods added into CommonBitmapOperations.java. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/CommonBitmapOperations.java | 104 ++++++++++++++++++ 2 files changed, 109 insertions(+), 0 deletions(-) diffs (124 lines): diff -r 96a64caaddec -r bad6e5f050f5 ChangeLog --- a/ChangeLog Thu Jan 10 09:57:59 2013 +0100 +++ b/ChangeLog Fri Jan 11 12:19:51 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-11 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + Helper methods added into CommonBitmapOperations.java. + 2013-01-10 Pavel Tisnovsky * src/org/gfxtest/framework/ImageFactory.java: diff -r 96a64caaddec -r bad6e5f050f5 src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Thu Jan 10 09:57:59 2013 +0100 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Fri Jan 11 12:19:51 2013 +0100 @@ -1514,4 +1514,108 @@ return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; } + /** + * Create new buffered image containing horizontal red gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithHorizontalRedGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalRedGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal red gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithHorizontalredGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalRedGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical red gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithVerticalRedGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalRedGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical red gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithVerticalRedGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalRedGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + } From bugzilla-daemon at icedtea.classpath.org Fri Jan 11 05:38:50 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 11 Jan 2013 13:38:50 +0000 Subject: [Bug 1250] In Minecraft I set tnt off and the server crashes. Why? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1250 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #815|application/octet-stream |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130111/bfa493ea/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Jan 11 05:42:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 11 Jan 2013 13:42:19 +0000 Subject: [Bug 1250] In Minecraft I set tnt off and the server crashes. Why? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1250 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Hardware|64-bit |x86_64 Version|unspecified |6-1.11.5 --- Comment #1 from Andrew John Hughes --- I don't know. All I can tell from the attachment is that it crashed in Minecraft code, not the JDK, so I suggest reporting it to the developers of Minecraft. But before that, you should reproduce this with debuginfo installed and explain how to reproduce it in the bug report. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130111/9f9bb51f/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Jan 11 05:42:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 11 Jan 2013 13:42:41 +0000 Subject: [Bug 1250] In Minecraft I set tnt off and the server crashes. Why? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1250 --- Comment #2 from Andrew John Hughes --- Also, I would suggest not running applications as root. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130111/7f41ae88/attachment.html From bugzilla-daemon at icedtea.classpath.org Fri Jan 11 05:43:03 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 11 Jan 2013 13:43:03 +0000 Subject: [Bug 1250] In Minecraft I set tnt off and the server crashes. Why? In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1250 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|critical |normal -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130111/b6a72850/attachment.html From gnu.andrew at redhat.com Fri Jan 11 06:29:07 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 11 Jan 2013 09:29:07 -0500 (EST) Subject: [2.3 BACKPORT] 7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts In-Reply-To: <1212908476.3456075.1357913718417.JavaMail.root@redhat.com> Message-ID: <1467458711.3464671.1357914547354.JavaMail.root@redhat.com> The fix for 7197906 is in IcedTea7 HotSpot HEAD but not in our last release branch, 2.3. It applies pretty cleanly to 2.3 and builds. I'd like to include it in 2.3 so it goes out with the security update next month, rather than waiting for 7u12 at the end of April (http://openjdk.java.net/projects/jdk7u/releases/7u12.html) Is this ok for backport? It's also probable it will be backported to 2.1 & IcedTea6 as well, if it applies cleanly, so we're fully covered. I'll post separately for these. Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: 7197906-2.3.patch Type: text/x-patch Size: 2130 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130111/b2667286/7197906-2.3.patch From gnu.andrew at redhat.com Fri Jan 11 06:31:06 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 11 Jan 2013 09:31:06 -0500 (EST) Subject: [2.3 BACKPORT] 7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts In-Reply-To: <1467458711.3464671.1357914547354.JavaMail.root@redhat.com> Message-ID: <1447616015.3466118.1357914666338.JavaMail.root@redhat.com> ----- Original Message ----- > The fix for 7197906 is in IcedTea7 HotSpot HEAD but not in our last > release > branch, 2.3. It applies pretty cleanly to 2.3 and builds. I'd like > to include > it in 2.3 so it goes out with the security update next month, rather > than > waiting for 7u12 at the end of April > (http://openjdk.java.net/projects/jdk7u/releases/7u12.html) > > Is this ok for backport? > > It's also probable it will be backported to 2.1 & IcedTea6 as well, > if it > applies cleanly, so we're fully covered. I'll post separately for > these. > > Thanks, > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > FYI: This is the original review thread: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2012-September/005070.html -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From bugzilla-daemon at icedtea.classpath.org Fri Jan 11 08:56:03 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 11 Jan 2013 16:56:03 +0000 Subject: [Bug 1253] New: JNLP applets run on Swing EDT thread Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1253 Bug ID: 1253 Summary: JNLP applets run on Swing EDT thread Classification: Unclassified Product: IcedTea-Web Version: hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: adomurad at redhat.com CC: unassigned at icedtea.classpath.org This problem affects only javaws applets (ie JNLP files with applet-desc instead of application-desc). The start() init() etc methods of the Applet class used run on the Swing EDT thread. This means that Swing is essentially broken. A very simple reproducer is: EventQueue.invokeAndWait(new Runnable() { void run() {} } ); This will hang the applet. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130111/96c66e71/attachment.html From andrew at icedtea.classpath.org Fri Jan 11 09:12:10 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 11 Jan 2013 17:12:10 +0000 Subject: /hg/icedtea6: Explicitly test for the presence of Classpath bug ... Message-ID: changeset de38248f4db4 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=de38248f4db4 author: Andrew John Hughes date: Fri Jan 11 17:11:43 2013 +0000 Explicitly test for the presence of Classpath bug PR43389 and only pre-build StandardMBean if present. 2013-01-11 Andrew John Hughes * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of javax.management.StandardMBean dependent on the 1.6 constructors being missing. * acinclude.m4: (IT_CHECK_FOR_CLASS): Write class toString() output to System.err rather than throwing it away. It then appears in config.log and may be useful in debugging. (IT_CHECK_FOR_METHOD): Fix documentation and add System.err output as for IT_CHECK_FOR_CLASS. (IT_CHECK_FOR_CONSTRUCTOR): New macro to test for the presence of a specific constructor. Works with both private & protected constructors by using a subclass for the compile test. * configure.ac: Add IT_CHECK_FOR_CONSTRUCTOR calls for the two javax.management.StandardMBean constructors added in 1.6. diffstat: ChangeLog | 21 ++++++++++++++++ Makefile.am | 14 ++++++++-- acinclude.m4 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- configure.ac | 5 +++ 4 files changed, 108 insertions(+), 9 deletions(-) diffs (189 lines): diff -r cea49ba2afcd -r de38248f4db4 ChangeLog --- a/ChangeLog Wed Nov 28 14:42:31 2012 +0000 +++ b/ChangeLog Fri Jan 11 17:11:43 2013 +0000 @@ -1,3 +1,24 @@ +2013-01-11 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion + of javax.management.StandardMBean dependent on + the 1.6 constructors being missing. + * acinclude.m4: + (IT_CHECK_FOR_CLASS): Write class toString() output + to System.err rather than throwing it away. It then + appears in config.log and may be useful in debugging. + (IT_CHECK_FOR_METHOD): Fix documentation and add + System.err output as for IT_CHECK_FOR_CLASS. + (IT_CHECK_FOR_CONSTRUCTOR): New macro to test for + the presence of a specific constructor. Works + with both private & protected constructors by + using a subclass for the compile test. + * configure.ac: + Add IT_CHECK_FOR_CONSTRUCTOR calls for the + two javax.management.StandardMBean constructors + added in 1.6. + 2012-11-28 Andrew John Hughes * javac.in: diff -r cea49ba2afcd -r de38248f4db4 Makefile.am --- a/Makefile.am Wed Nov 28 14:42:31 2012 +0000 +++ b/Makefile.am Fri Jan 11 17:11:43 2013 +0000 @@ -63,12 +63,9 @@ # Sources used from OpenJDK. -# PR42003 - javax.swing.plaf.basic.BasicDirectoryModel -# PR43389 - javax.management.StandardMBean # PR54274 - sun.security.other requires missing X509CRLSelector methods # PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field ICEDTEA_BOOTSTRAP_CLASSES = \ - $(SHARE)/javax/management/StandardMBean.java \ $(SHARE)/java/security/cert/X509CRLSelector.java \ $(SHARE)/java/security/cert/X509CertSelector.java \ $(SHARE)/javax/security/sasl/Sasl.java \ @@ -88,6 +85,17 @@ endif endif +# PR43389 - javax.management.StandardMBean +if LACKS_JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/management/StandardMBean.java +else +if LACKS_JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_THREE_ARG +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/management/StandardMBean.java +endif +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) diff -r cea49ba2afcd -r de38248f4db4 acinclude.m4 --- a/acinclude.m4 Wed Nov 28 14:42:31 2012 +0000 +++ b/acinclude.m4 Fri Jan 11 17:11:43 2013 +0000 @@ -1306,7 +1306,7 @@ { public static void main(String[] args) { - $2.class.toString(); + System.err.println("Class found: " + $2.class); } } ] @@ -1781,11 +1781,12 @@ ]) dnl Generic macro to check for a Java method -dnl Takes four arguments: the name of the macro, -dnl the name of the class, the method signature -dnl and an example call to the method. The macro name -dnl is usually the name of the class with '.' -dnl replaced by '_' and all letters capitalised. +dnl Takes five arguments: the name of the macro, +dnl the name of the method, the name of the class, +dnl the method signature and an example call to the +dnl method. The macro name is usually the name of +dnl the class with '.' replaced by '_' and all letters +dnl capitalised. dnl e.g. IT_CHECK_FOR_METHOD([JAVA_UTIL_REGEX_MATCHER_QUOTEREPLACEMENT],[java.util.regex.Matcher.quoteReplacement],[java.util.rgex.Matcher],["quoteReplacement",String.class],java.util.regex.Matcher.quoteReplacement("Blah")) AC_DEFUN([IT_CHECK_FOR_METHOD],[ AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) @@ -1806,6 +1807,7 @@ try { Method m = cl.getDeclaredMethod($4); + System.err.println("Method found: " + m); } catch (NoSuchMethodException e) { @@ -1873,3 +1875,66 @@ AC_SUBST(USING_ECJ) AC_PROVIDE([$0])dnl ]) + +dnl Generic macro to check for a Java constructor +dnl Takes four arguments: the name of the macro, +dnl the name of the class, the method signature +dnl and an example call to the method. The macro name +dnl is usually the name of the class with '.' +dnl replaced by '_' and all letters capitalised. +dnl e.g. IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true]) +AC_DEFUN([IT_CHECK_FOR_CONSTRUCTOR],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) +AC_CACHE_CHECK([if $2($3) is missing], it_cv_$1, [ +CLASS=Test.java +BYTECODE=$(echo $CLASS|sed 's#\.java##') +mkdir tmp.$$ +cd tmp.$$ +cat << \EOF > $CLASS +[/* [#]line __oline__ "configure" */ +import java.lang.reflect.Constructor; + +public class Test +{ + public static void main(String[] args) + { + Class cl = $2.class; + try + { + Constructor cons = cl.getDeclaredConstructor($3); + System.err.println("Constructor found: " + cons); + } + catch (NoSuchMethodException e) + { + System.exit(-1); + } + } + + private class TestCons extends $2 + { + TestCons() + { + super($4); + } + } + +} + +] +EOF +if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_$1=no; + else + it_cv_$1=yes; + fi +else + it_cv_$1=yes; +fi +]) +rm -f $CLASS *.class +cd .. +rmdir tmp.$$ +AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes") +AC_PROVIDE([$0])dnl +]) diff -r cea49ba2afcd -r de38248f4db4 configure.ac --- a/configure.ac Wed Nov 28 14:42:31 2012 +0000 +++ b/configure.ac Fri Jan 11 17:11:43 2013 +0000 @@ -57,6 +57,7 @@ IT_DISABLE_LANGTOOLS_TESTS IT_DISABLE_JDK_TESTS +#PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure IT_CHECK_FOR_METHOD([JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER], [javax.swing.plaf.basic.BasicDirectoryModel.addPropertyChangeListener(PropertyChangeListener)], [javax.swing.plaf.basic.BasicDirectoryModel], @@ -73,6 +74,10 @@ [new com.sun.corba.se.impl.logging.ORBUtilSystemException(null).ioExceptionOnClose(new InternalError())] ) +# PR43389 - javax.management.StandardMBean +IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true]) +IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_THREE_ARG],[javax.management.StandardMBean],[Object.class,Class.class,Boolean.TYPE],[new Object(), Object.class, true]) + # Use xvfb-run if found to run gui tests (check-jdk). AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], []) AC_SUBST(XVFB_RUN_CMD) From jfabriko at redhat.com Fri Jan 11 10:20:29 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Fri, 11 Jan 2013 19:20:29 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50E72F25.1030903@redhat.com> References: <50B92039.4070304@redhat.com> <50E6AD9E.9040100@redhat.com> <50E72F25.1030903@redhat.com> Message-ID: <50F057ED.5080308@redhat.com> Hello Adam, the behaviour of icedtea-web with and without patches jsfix3.patch and jsfix-unittest3.patch : - interactive tests for Liveconnect - the same results - new Adam's version of reproducer JSObjectFromEval on FF and Opera: with patches : passed, without patches: failed - my not yet oficially included reproducers of J->JS communication: basicly the same behaviour with and without the patches Best regards, Jana On 01/04/2013 08:36 PM, Adam Domurad wrote: > On 01/04/2013 05:23 AM, Jiri Vanek wrote: >> [.. snipped..] > > As you suggested, I have separated the cosmetic changes and pushed them. > It did prove quite tricky, though. > >>> >>> diff --git a/NEWS b/NEWS >>> --- a/NEWS >>> +++ b/NEWS >>> @@ -19,6 +19,7 @@ New in release 1.4 (2012-XX-XX): >>> * Plugin >>> - PR1106: Buffer overflow in plugin table- >>> - PR1166: Embedded JNLP File is not supported in applet tag >>> + - PR1198: JSObject is not passed to javascript correctly >>> * Common >>> - PR1049: Extension jnlp's signed jar with the content of only >>> META-INF/* is considered >>> - PR955: regression: SweetHome3D fails to run >>> diff --git a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc >>> @@ -131,7 +131,7 @@ JavaRequestProcessor::newMessageOnBus(co >>> !message_parts->at(4)->find("GetObjectArrayElement")) >>> { >>> >>> - if (!message_parts->at(5)->find("literalreturn")) >>> + if (!message_parts->at(5)->find("literalreturn") || >>> !message_parts->at(5)->find("jsobject")) >>> { >>> // literal returns don't have a corresponding >>> jni id >>> result->return_identifier = 0; >>> diff --git a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc >>> @@ -413,7 +413,7 @@ PluginRequestProcessor::setMember(std::v >>> member = (NPVariant*) >>> (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); >>> propertyNameID = *(message_parts->at(6)); >>> >>> - if (*(message_parts->at(7)) == "literalreturn") >>> + if (*(message_parts->at(7)) == "literalreturn" || >>> *(message_parts->at(7)) == "jsobject" ) >>> { >>> value.append(*(message_parts->at(7))); >>> value.append(" "); >>> diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc >>> b/plugin/icedteanp/IcedTeaPluginUtils.cc >>> --- a/plugin/icedteanp/IcedTeaPluginUtils.cc >>> +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc >>> @@ -776,6 +776,14 @@ javaStringResultToNPVariant(const std::s >>> } >>> >>> static bool >>> +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* >>> variant) >>> +{ >>> + NPVariant* result_variant = (NPVariant*) >>> IcedTeaPluginUtilities::stringToJSID(js_id); >>> + *variant = *result_variant; >>> + return true; >>> +} >> >> It returns always true?? Maybe void or *variant? > > I left this accidentally after it could no longer fail, made it void. > >> >>> + >>> +static bool >>> javaObjectResultToNPVariant(NPP instance, const std::string& >>> jobject_id, NPVariant* variant) >>> { >>> // Reference the class object so we can construct an NPObject >>> with it and the instance >>> @@ -811,9 +819,14 @@ IcedTeaPluginUtilities::javaResultToNPVa >>> std::string* java_value, NPVariant* variant) >>> { >>> int literal_n = sizeof("literalreturn"); // Accounts for one >>> space char >>> + int jsobject_n = sizeof("jsobject"); // Accounts for one space char >>> + >>> if (strncmp("literalreturn ", java_value->c_str(), literal_n) >>> == 0) >>> { >>> javaPrimitiveResultToNPVariant(java_value->substr(literal_n), variant); >>> + } else if (strncmp("jsobject ", java_value->c_str(), jsobject_n) >>> == 0) >>> + { >>> + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), >>> variant); >>> } else >>> { >>> std::string jobject_id = *java_value; >>> > [... long snip...] >>> public void setJSMember(JSObject js, String memb, Object val) { >>> - String typeName = val.getClass().getName(); >>> - System.out.println("setJSMember: passed '" + typeName + "'"); >> Not worthy to keep in debug? >> Anyway - cosmetic change. See my comment lower. > > No, this was part of the expected reproducer output. It was removed from > the checks because the type is dependent on the browser. It was causing > failures on some browsers. I have pushed it with my cosmetic changes > anyway. > >>> js.setMember(memb, val); >>> } >>> } >>> \ No newline at end of file >>> diff --git >>> a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> >>> --- >>> a/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> >>> +++ >>> b/tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java >>> >>> @@ -40,7 +40,6 @@ import static org.junit.Assert.assertTru >>> import net.sourceforge.jnlp.ProcessResult; >>> import net.sourceforge.jnlp.ServerAccess.AutoClose; >>> import net.sourceforge.jnlp.annotations.Bug; >>> -import net.sourceforge.jnlp.annotations.KnownToFail; >>> import net.sourceforge.jnlp.annotations.NeedsDisplay; >>> import net.sourceforge.jnlp.annotations.TestInBrowsers; >>> import net.sourceforge.jnlp.browsertesting.BrowserTest; >>> @@ -51,40 +50,37 @@ import org.junit.Test; >>> >>> public class JSObjectFromEvalTest extends BrowserTest { >>> >>> - private static final String END_STRING = >>> AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >>> + private static final String END_STRING = >>> AutoOkClosingListener.MAGICAL_OK_CLOSING_STRING; >>> >>> - private static final String JAVA_CREATE = "Java create\n"; >>> - private static final String JS_CREATE = "JS create\n"; >>> - private static final String JAVA_SET = "Java set\n"; >>> - private static final String PASSED_INTEGER = "setJSMember: >>> passed 'java.lang.Integer'\n"; >>> - private static final String CORRECT_VALUE = "obj.test = 0"; >>> + private static final String JAVA_CREATE = "Java create\n"; >>> + private static final String JS_CREATE = "JS create\n"; >>> + private static final String JAVA_SET = "Java set\n"; >>> + private static final String CORRECT_VALUE = "obj.test = 0"; >>> >>> - @Test >>> - @TestInBrowsers(testIn = { Browsers.all }) >>> - @NeedsDisplay >>> - @Bug(id = { "PR1198" }) >>> - @KnownToFail >>> - public void testJSObjectSetMemberIsSet() throws Exception { >>> - ProcessResult pr = >>> server.executeBrowser("/JSObjectFromEval.html", >>> - AutoClose.CLOSE_ON_BOTH); >>> + @Test >>> + @TestInBrowsers(testIn = { Browsers.all }) >>> + @NeedsDisplay >>> + @Bug(id = { "PR1198" }) >>> + public void testJSObjectSetMemberIsSet() throws Exception { >>> + ProcessResult pr = >>> server.executeBrowser("/JSObjectFromEval.html", >>> + AutoClose.CLOSE_ON_BOTH); >>> >>> - String expectedJSCreateOutput = JS_CREATE + JAVA_SET + >>> PASSED_INTEGER >>> - + CORRECT_VALUE; >>> - String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >>> - + PASSED_INTEGER + CORRECT_VALUE; >>> + String expectedJSCreateOutput = JS_CREATE + JAVA_SET + >>> CORRECT_VALUE; >>> + String expectedJavaCreateOutput = JAVA_CREATE + JAVA_SET >>> + + CORRECT_VALUE; >>> >>> - // No reason JS create should fail, this is mostly a sanity >>> check: >>> - assertTrue("stdout should contain 'JS create [...] " + >>> CORRECT_VALUE >>> - + "' but did not.", >>> pr.stdout.contains(expectedJSCreateOutput)); >>> + // No reason JS create should fail, this is mostly a sanity >>> check: >>> + assertTrue("stdout should contain 'JS create [...] " + >>> CORRECT_VALUE >>> + + "' but did not.", >>> pr.stdout.contains(expectedJSCreateOutput)); >>> >>> - // Demonstrates PR1198: >>> - assertTrue("stdout should contain 'Java create [...] " + >>> CORRECT_VALUE >>> - + "' but did not.", >>> - pr.stdout.contains(expectedJavaCreateOutput)); >>> + // Demonstrates PR1198: >>> + assertTrue("stdout should contain 'Java create [...] " + >>> CORRECT_VALUE >>> + + "' but did not.", >>> + pr.stdout.contains(expectedJavaCreateOutput)); >>> >>> - // Make sure we got to the end of the script >>> - assertTrue("stdout should contain '" + END_STRING + "' but >>> did not.", >>> - pr.stdout.contains(END_STRING)); >>> - } >>> + // Make sure we got to the end of the script >>> + assertTrue("stdout should contain '" + END_STRING + "' but >>> did not.", >>> + pr.stdout.contains(END_STRING)); >>> + } >>> >>> } >> >> Cosmetic changes - normlay I'm for smughling small cosmetich changes >> which were found during coding, especially somnething like >> > - buf >> > - .append(" " >> > - + Integer >> > - .toString(((int) b[i])& 0x0ff, 16)); >> > + buf.append(" " + Integer.toString(((int) >> b[i])& 0x0ff, 16)); >> >> :)) >> >> into patch. But there is one whole refacotred file and little bit >> more. If you will be willing can you separate the changes? You can >> push the comsetic changes directly. >> >> Well and then you will start to hate me with removing of KnowToFail... >> Thanx for fix. >> J. >> >> >> ps: Try to check js<->java automated tests and manual liveConnect >> testuite. I think there wil be some hddien fixes by this aptch. Adnd >> With some luck also no regressions;) Maybe jana Can meassure those >> results for you. She is th eguru of liveConnect testing afterall.. >> pps: Dont take me wrong, this is really nice cleanup and fix. > > Will do. > > Attached is an updated patch, with some cleanup removed (since it was > pushed) and the fixes from my unit test patch added. > See my reply to unit test review though -- I need some additional advice > on what to do about the security manager problem. > > Happy hacking, > -Adam From ptisnovs at icedtea.classpath.org Mon Jan 14 01:24:23 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 14 Jan 2013 09:24:23 +0000 Subject: /hg/rhino-tests: Added two new tests getMethod() and getDeclared... Message-ID: changeset cf26ea1499fc in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=cf26ea1499fc author: Pavel Tisnovsky date: Mon Jan 14 10:27:29 2013 +0100 Added two new tests getMethod() and getDeclaredMethod() into test suite AbstractScriptEngineClassTest.java. diffstat: ChangeLog | 5 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 144 +++++++++++++++++- 2 files changed, 141 insertions(+), 8 deletions(-) diffs (209 lines): diff -r eb0943f105e6 -r cf26ea1499fc ChangeLog --- a/ChangeLog Fri Jan 11 11:26:11 2013 +0100 +++ b/ChangeLog Mon Jan 14 10:27:29 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-12 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + Added two new tests: getMethod() and getDeclaredMethod(). + 2013-01-11 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r eb0943f105e6 -r cf26ea1499fc src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Fri Jan 11 11:26:11 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Mon Jan 14 10:27:29 2013 +0100 @@ -560,7 +560,7 @@ */ protected void testGetMethods() { // following methods should be inherited - final String[] methodsThatShouldExists_jdk6 = { + final String[] methodsThatShouldExist_jdk6 = { "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException", "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String,javax.script.ScriptContext) throws javax.script.ScriptException", "public abstract javax.script.Bindings javax.script.ScriptEngine.createBindings()", @@ -586,7 +586,7 @@ "public void javax.script.AbstractScriptEngine.setContext(javax.script.ScriptContext)", }; - final String[] methodsThatShouldExists_jdk7 = { + final String[] methodsThatShouldExist_jdk7 = { "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException", "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String,javax.script.ScriptContext) throws javax.script.ScriptException", "public abstract javax.script.Bindings javax.script.ScriptEngine.createBindings()", @@ -619,9 +619,9 @@ for (Method method : methods) { methodsAsString.add(method.toString()); } - String[] methodsThatShouldExists = getJavaVersion() < 7 ? methodsThatShouldExists_jdk6 : methodsThatShouldExists_jdk7; + String[] methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; // check if all required methods really exists - for (String methodThatShouldExists : methodsThatShouldExists) { + for (String methodThatShouldExists : methodsThatShouldExist) { assertTrue(methodsAsString.contains(methodThatShouldExists), "method " + methodThatShouldExists + " not found"); } @@ -632,7 +632,7 @@ */ protected void testGetDeclaredMethods() { // following methods should be declared - final String[] declaredMethodsThatShouldExists_jdk6 = { + final String[] declaredMethodsThatShouldExist_jdk6 = { "protected javax.script.ScriptContext javax.script.AbstractScriptEngine.getScriptContext(javax.script.Bindings)", "public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException", "public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException", @@ -646,7 +646,7 @@ "public void javax.script.AbstractScriptEngine.setContext(javax.script.ScriptContext)", }; - final String[] declaredMethodsThatShouldExists_jdk7 = { + final String[] declaredMethodsThatShouldExist_jdk7 = { "protected javax.script.ScriptContext javax.script.AbstractScriptEngine.getScriptContext(javax.script.Bindings)", "public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException", "public java.lang.Object javax.script.AbstractScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException", @@ -667,15 +667,143 @@ for (Method method : declaredMethods) { methodsAsString.add(method.toString()); } - String[] declaredMethodsThatShouldExists = getJavaVersion() < 7 ? declaredMethodsThatShouldExists_jdk6 : declaredMethodsThatShouldExists_jdk7; + String[] declaredMethodsThatShouldExist = getJavaVersion() < 7 ? declaredMethodsThatShouldExist_jdk6 : declaredMethodsThatShouldExist_jdk7; // check if all required methods really exists - for (String methodThatShouldExists : declaredMethodsThatShouldExists) { + for (String methodThatShouldExists : declaredMethodsThatShouldExist) { assertTrue(methodsAsString.contains(methodThatShouldExists), "declared method " + methodThatShouldExists + " not found"); } } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getMethod() + */ + protected void testGetMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("getContext", new Class[] {}); + methodsThatShouldExist_jdk6.put("setContext", new Class[] {javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk6.put("getBindings", new Class[] {int.class}); + methodsThatShouldExist_jdk6.put("setBindings", new Class[] {javax.script.Bindings.class, int.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.io.Reader.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.lang.String.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.io.Reader.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("wait", new Class[] {long.class}); + methodsThatShouldExist_jdk6.put("wait", new Class[] {long.class, int.class}); + methodsThatShouldExist_jdk6.put("wait", new Class[] {}); + methodsThatShouldExist_jdk6.put("hashCode", new Class[] {}); + methodsThatShouldExist_jdk6.put("getClass", new Class[] {}); + methodsThatShouldExist_jdk6.put("equals", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("toString", new Class[] {}); + methodsThatShouldExist_jdk6.put("notify", new Class[] {}); + methodsThatShouldExist_jdk6.put("notifyAll", new Class[] {}); + methodsThatShouldExist_jdk6.put("getFactory", new Class[] {}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.lang.String.class, javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.io.Reader.class, javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk6.put("createBindings", new Class[] {}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("getContext", new Class[] {}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.lang.String.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.io.Reader.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.io.Reader.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getBindings", new Class[] {int.class}); + methodsThatShouldExist_jdk7.put("setBindings", new Class[] {javax.script.Bindings.class, int.class}); + methodsThatShouldExist_jdk7.put("setContext", new Class[] {javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk7.put("wait", new Class[] {long.class, int.class}); + methodsThatShouldExist_jdk7.put("wait", new Class[] {long.class}); + methodsThatShouldExist_jdk7.put("wait", new Class[] {}); + methodsThatShouldExist_jdk7.put("equals", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("toString", new Class[] {}); + methodsThatShouldExist_jdk7.put("hashCode", new Class[] {}); + methodsThatShouldExist_jdk7.put("getClass", new Class[] {}); + methodsThatShouldExist_jdk7.put("notify", new Class[] {}); + methodsThatShouldExist_jdk7.put("notifyAll", new Class[] {}); + methodsThatShouldExist_jdk7.put("getFactory", new Class[] {}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.io.Reader.class, javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.lang.String.class, javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk7.put("createBindings", new Class[] {}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.abstractScriptEngineClass.getMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getDeclaredMethod() + */ + protected void testGetDeclaredMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("getContext", new Class[] {}); + methodsThatShouldExist_jdk6.put("setContext", new Class[] {javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk6.put("getBindings", new Class[] {int.class}); + methodsThatShouldExist_jdk6.put("setBindings", new Class[] {javax.script.Bindings.class, int.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.io.Reader.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.lang.String.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.io.Reader.class}); + methodsThatShouldExist_jdk6.put("eval", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk6.put("getScriptContext", new Class[] {javax.script.Bindings.class}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("get", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("getContext", new Class[] {}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.lang.String.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.io.Reader.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.io.Reader.class, javax.script.Bindings.class}); + methodsThatShouldExist_jdk7.put("eval", new Class[] {java.lang.String.class}); + methodsThatShouldExist_jdk7.put("getBindings", new Class[] {int.class}); + methodsThatShouldExist_jdk7.put("setBindings", new Class[] {javax.script.Bindings.class, int.class}); + methodsThatShouldExist_jdk7.put("setContext", new Class[] {javax.script.ScriptContext.class}); + methodsThatShouldExist_jdk7.put("getScriptContext", new Class[] {javax.script.Bindings.class}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.abstractScriptEngineClass.getDeclaredMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.AbstractScriptEngine.getClass().getAnnotations() */ protected void testGetAnnotations() { From ptisnovs at icedtea.classpath.org Mon Jan 14 02:10:45 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 14 Jan 2013 10:10:45 +0000 Subject: /hg/gfx-test: Added eight new tests to the test suite BitBltUsin... Message-ID: changeset 2a073104d1e2 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=2a073104d1e2 author: Pavel Tisnovsky date: Mon Jan 14 11:13:54 2013 +0100 Added eight new tests to the test suite BitBltUsingBgColor. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColor.java | 120 +++++++++++++++++++++ 2 files changed, 125 insertions(+), 0 deletions(-) diffs (142 lines): diff -r bad6e5f050f5 -r 2a073104d1e2 ChangeLog --- a/ChangeLog Fri Jan 11 12:19:51 2013 +0100 +++ b/ChangeLog Mon Jan 14 11:13:54 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-14 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: + Added eight new tests to this test suite. + 2013-01-11 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r bad6e5f050f5 -r 2a073104d1e2 src/org/gfxtest/testsuites/BitBltUsingBgColor.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Fri Jan 11 12:19:51 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Mon Jan 14 11:13:54 2013 +0100 @@ -886,6 +886,126 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.black. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundBlack(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.black); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.blue. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundBlue(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.blue); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.green. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundGreen(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.green); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundCyan(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.cyan); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.red. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundRed(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.red); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundMagenta(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.magenta); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundYellow(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.yellow); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGBbackgroundWhite(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGB(image, graphics2d, Color.white); + } + + /** * Entry point to the test suite. * * @param args not used in this case From andrew at icedtea.classpath.org Mon Jan 14 12:13:19 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 20:13:19 +0000 Subject: /hg/icedtea7: 3 new changesets Message-ID: changeset 7d1c8d7548ac in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=7d1c8d7548ac author: Andrew John Hughes date: Mon Jan 14 18:54:27 2013 +0000 Remove EC source code prior to build (already disabled during build using DISABLE_INTREE_EC=true) and make all removals verbose. 2013-01-14 Andrew John Hughes * fsg.sh: Remove source code for the EC provider which isn't built. Make the removals verbose so they appear in logs as with remove-intree-libraries.sh. changeset c2c1c1c2d74b in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=c2c1c1c2d74b author: Andrew John Hughes date: Mon Jan 14 19:36:24 2013 +0000 Make sure the destination directory for tz.properties exists before copying it. 2013-01-14 Andrew John Hughes (add-tzdata-support): Only copy tz.properties if destination exists. Do it verbosely. (clean-add-tzdata-support): Only remove tz.properties if present and do so verbosely. (add-tzdata-support-debug): Same as add-tzdata-support but for debug. (clean-add-tzdata-support-debug): Same as clean-add-tzdata-support but for debug. (add-tzdata-support-boot): Same as add-tzdata-support but for bootstrap. (clean-add-tzdata-support-boot): Same as clean-add-tzdata-support but for bootstrap. changeset 0ec29918b804 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=0ec29918b804 author: Andrew John Hughes date: Mon Jan 14 20:12:21 2013 +0000 Update NEWS to include all OpenJDK changesets since 2.3.3 and other bug fixes from the forest. 2013-01-14 Andrew John Hughes * NEWS: Update with upstream OpenJDK changesets and other bug fixes added since the last release (2.3.3). diffstat: ChangeLog | 30 ++ Makefile.am | 30 +- NEWS | 666 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- fsg.sh | 39 ++- 4 files changed, 738 insertions(+), 27 deletions(-) diffs (truncated from 875 to 500 lines): diff -r 2836b3c6739b -r 0ec29918b804 ChangeLog --- a/ChangeLog Fri Jan 04 14:59:32 2013 +0100 +++ b/ChangeLog Mon Jan 14 20:12:21 2013 +0000 @@ -1,3 +1,33 @@ +2013-01-14 Andrew John Hughes + + * NEWS: + Update with upstream OpenJDK changesets and other + bug fixes added since the last release (2.3.3). + +2013-01-14 Andrew John Hughes + + * Makefile.am: + (add-tzdata-support): Only copy tz.properties if + destination exists. Do it verbosely. + (clean-add-tzdata-support): Only remove tz.properties + if present and do so verbosely. + (add-tzdata-support-debug): Same as add-tzdata-support + but for debug. + (clean-add-tzdata-support-debug): Same as + clean-add-tzdata-support but for debug. + (add-tzdata-support-boot): Same as add-tzdata-support + but for bootstrap. + (clean-add-tzdata-support-boot): Same as + clean-add-tzdata-support but for bootstrap. + +2013-01-14 Andrew John Hughes + + * fsg.sh: + Remove source code for the EC provider which + isn't built. Make the removals verbose so + they appear in logs as with + remove-intree-libraries.sh. + 2013-01-04 Pavel Tisnovsky * patches/boot/use_target_6_for_bootstrap_classes.patch: diff -r 2836b3c6739b -r 0ec29918b804 Makefile.am --- a/Makefile.am Fri Jan 04 14:59:32 2013 +0100 +++ b/Makefile.am Mon Jan 14 20:12:21 2013 +0000 @@ -1781,13 +1781,17 @@ stamps/add-tzdata-support.stamp: stamps/icedtea.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ; \ + fi endif touch stamps/add-tzdata-support.stamp clean-add-tzdata-support: - rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support.stamp stamps/icedtea-debug.stamp: stamps/bootstrap-directory-symlink-stage2.stamp \ @@ -1879,13 +1883,17 @@ stamps/add-tzdata-support-debug.stamp: stamps/icedtea-debug.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; \ + fi endif touch stamps/add-tzdata-support-debug.stamp clean-add-tzdata-support-debug: - rm -f $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support-debug.stamp stamps/icedtea-stage2.stamp: stamps/icedtea.stamp stamps/add-cacao.stamp \ @@ -1983,13 +1991,17 @@ stamps/add-tzdata-support-boot.stamp: stamps/icedtea-boot.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + if [ -e $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; \ + fi endif touch stamps/add-tzdata-support-boot.stamp clean-add-tzdata-support-boot: - rm -f $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(BOOT_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support-boot.stamp stamps/icedtea-stage1.stamp: stamps/icedtea-boot.stamp \ diff -r 2836b3c6739b -r 0ec29918b804 NEWS --- a/NEWS Fri Jan 04 14:59:32 2013 +0100 +++ b/NEWS Mon Jan 14 20:12:21 2013 +0000 @@ -12,13 +12,673 @@ New in release 2.4 (2012-XX-XX): +OpenJDK + - PR1209, S7170638: Use DTRACE_PROBE[N] in JNI Set and SetStatic Field. + - PR1206, S7201205: Add Makefile configuration option to build with unlimited crypto in OpenJDK + - S2202276: Swing HTML parser can't properly decode codepoints outside the Unicode Plane 0 into a surrogate pair + - S4310381: Text in multi-row/col JTabbedPane tabs can be truncated/clipped + - S4631925: JColor Chooser is not fully accessible + - S4988100: oop_verify_old_oop appears to be dead + - S6294277: java -Xdebug crashes on SourceDebugExtension attribute larger than 64K + - S6310967: SA: jstack -m produce failures in output + - S6340864: Implement vectorization optimizations in hotspot-server + - S6610897: New constructor in sun.tools.java.ClassPath builds a path using File.separator instead of File.pathSeparator + - S6625113: Add the normalize and rmkw perl script to the openjdk repository or openjdk site? + - S6633549: (dc) Include-mode filtering of IPv6 sources does not block datagrams on Linux + - S6658428: C2 doesn't inline java method if corresponding intrinsic failed to inline. + - S6671481: NPE at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection + - S6677625: Move platform specific flags from globals.hpp to globals_.hpp + - S6711908: JVM needs direct access to some annotations + - S6720349: (ch) Channels tests depending on hosts inside Sun + - S6789984: JPasswordField can not receive keyboard input + - S6818524: G1: use ergonomic resizing of PLABs + - S6910461: Register allocator may insert spill code at wrong insertion index + - S6910464: Lookupswitch and Tableswitch default branches not recognized as safepoints + - S6921087: G1: remove per-GC-thread expansion tables from the fine-grain remembered sets + - S6924259: Remove String.count/String.offset + - S6938583: Unexpected NullPointerException by InputContext.endComposition() + - S6948101: java/rmi/transport/pinLastArguments/PinLastArguments.java failing intermittently + - S6952814: sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/InterruptedIO.java failing in PIT + - S6953455: CookieStore.add() cannot handle null URI parameter, contrary to the API + - S6965150: TEST_BUG: java/nio/channels/AsynchronousSocketChannel/Basic.java takes too long + - S6983728: JSR 292 remove argument count limitations + - S6984705: JSR 292 method handle creation should not go through JNI + - S6988099: jvmti demos missing Publisher (COMPANY resource) in dlls/exes on windows + - S6995781: Native Memory Tracking (Phase 1) + - S6997116: The case automatically failed due to java.lang.ClassCastException. + - S7017818: NLS: JConsoleResources.java cannot be handled by translation team + - S7023639: JSR 292 method handle invocation needs a fast path for compiled code + - S7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement() + - S7024118: possible hardcoded mnemonic for JFileChooser metal and motif l&f + - S7025938: Add bitmap mime type to content-types.properties + - S7032018: The file list in JFileChooser does not have an accessible name + - S7032436: When running with the Nimbus look and feel, the JFileChooser does not display mnemonics + - S7041879: G1: introduce stress testing parameter to cause frequent evacuation failures + - S7049024: DnD fails with JTextArea and JTextField + - S7053586: TEST: runtime/7020373/Test7020373.sh fails on 64-bit platforms + - S7054918: jdk_security1 test target cleanup + - S7055065: NullPointerException when sorting JTable with empty cell + - S7055362: jdk_security2 test target cleanup + - S7055363: jdk_security3 test target cleanup + - S7056731: Race condition in CORBA code causes re-use of ABORTed connections + - S7057320: test/java/util/concurrent/Executors/AutoShutdown.java failing intermittently + - S7058630: JSR 292 method handle proxy violates contract for Object methods + - S7058651: JSR 292 unit tests need a refresh + - S7063674: Wrong results from basic comparisons after calls to Long.bitCount(long) + - S7068471: NPE in sun.font.FontConfigManager.getFontConfigFont() when libfontconfig.so is not installed + - S7068625: Testing 8 bytes of card table entries at a time speeds up card-scanning + - S7072120: No mac os x support in several regression tests + - S7076791: closed/javax/swing/JColorChooser/Test6827032.java failed on windows + - S7083664: TEST_BUG: test hard code of using c:/temp but this dir might not exist + - S7084560: Crash in net.dll + - S7087357: JSR 292: remove obsolete code after 7085860 + - S7087658: MethodHandles.Lookup.findVirtual is confused by interface methods that are multiply inherited + - S7087969: GarbageCollectorMXBean notification contains ticks vs millis + - S7089131: test/java/lang/invoke/InvokeGenericTest.java does not compile + - S7089914: Focus on image icons are not visible in javaws cache with high contrast mode + - S7093328: JVMTI: jvmtiPrimitiveFieldCallback always report 0's for static primitives + - S7094176: (tz) Incorrect TimeZone display name when DST not applicable / disabled + - S7100054: (porting) Native code should include fcntl.h and unistd.h rather than sys/fcntl.h and sys/unistd.h + - S7102106: TEST_BUG: sun/security/util/Oid/S11N.sh should be modified + - S7103665: HeapWord*ParallelScavengeHeap::failed_mem_allocate(unsigned long,bool)+0x97 + - S7104161: test/sun/tools/jinfo/Basic.sh fails on Ubuntu + - S7104209: Cleanup and remove librmi (native library) + - S7104577: Changes for 7104209 cause many RMI tests to fail + - S7105640: Unix printing does not check the result of exec'd lpr/lp command + - S7107613: scalability blocker in javax.crypto.CryptoPermissions + - S7107616: scalability blocker in javax.crypto.JceSecurityManager + - S7107957: AWT: Native code should include fcntl.h and unistd.h rather than sys/fcntl.h and sys/unistd.h + - S7109878: The instanceKlass EnclosingMethhod attribute fields can be folded into the _inner_class field. + - S7110104: It should be possible to stop and start JMX Agent at runtime + - S7110151: Use underlying platform's zlib library for Java zlib support + - S7110720: Issue with vm config file loadingIssue with vm config file loading + - S7113017: Use POSIX compliant include file headers in sun/awt/medialib/mlib_types.h + - S7114678: G1: various small fixes, code cleanup, and refactoring + - S7115070: (fs) lookupPrincipalByName/lookupPrincipalByGroupName should treat ESRCH as not found + - S7116786: RFE: Detailed information on VerifyErrors + - S7117167: Misc warnings in java.lang.invoke and sun.invoke.* + - S7118280: The gbyc00102 JCK7 test causes an assert in JVM 7.0 fastdebug mode + - S7118907: InetAddress.isReachable() should return false if sendto fails with EHOSTUNREACH + - S7119644: Increase superword's vector size up to 256 bits + - S7120481: storeStore barrier in constructor with final field + - S7121314: Behavior mismatch between AbstractCollection.toArray(T[] ) and its spec + - S7123170: JCK vm/jvmti/ResourceExhausted/resexh001/resexh00101/ tests fails since 7u4 b02 + - S7123767: Wrong tooltip location in Multi-Monitor configurations + - S7123926: Some CTW test crash: !_control.contains(ctrl) + - S7124242: [macosx] Test doesn't work because of the frame round corners in the LaF + - S7124244: [macosx] Shaped windows support + - S7124347: [macosx] java.lang.InternalError: not implemented yet on call Graphics2D.drawRenderedImage + - S7124375: [macosx] Focus isn't transfered as expected between components + - S7124513: [macosx] Support NSTexturedBackgroundWindowMask/different titlebar styles to create unified toolbar + - S7127687: MethodType leaks memory due to interning + - S7127697: G1: remove dead code after recent concurrent mark changes + - S7127792: Add the ability to change an existing PeriodicTask's execution interval + - S7128512: Javadoc typo in java.lang.invoke.MethodHandle + - S7129029: (fs) Unix file system provider should be buildable on platforms that don't support O_NOFOLLOW + - S7129034: VM crash with a field setter method with a filterArguments + - S7129401: PPC: runtime/7100935/TestShortArraycopy.java fails + - S7129715: MAC: SIGBUS in nsk stress test + - S7129723: MAC: Some regression tests need to recognize Mac OS X platform + - S7129724: MAC: Core file location is wrong in crash report + - S7129742: Unable to view focus in Non-Editable TextArea + - S7129800: [macosx] Regression test OverrideRedirectWindowActivationTest fails due to timing issue + - S7130404: [macosx] "os.arch" value should be "x86_64" for compatibility with Apple JDK6 + - S7130915: File.equals does not give expected results when path contains Non-English characters on Mac OS X + - S7130974: G1: Remove G1ParCopyHelper + - S7131629: Generalize the CMS free list code + - S7132070: Use a mach_port_t as the OSThread thread_id rather than pthread_t on BSD/OSX + - S7132247: java/rmi/registry/readTest/readTest.sh failing with Cygwin + - S7132889: (se) AbstractSelectableChannel.register and configureBlocking not safe from asynchronous close + - S7132924: (dc) DatagramChannel.disconnect throws SocketException with IPv4 socket and IPv6 enabled [macosx] + - S7133111: libsaproc debug print should be printed as unsigned long to fit large numbers on 64bit platform + - S7133857: exp() and pow() should use the x87 ISA on x86 + - S7141244: build-infra merge: Include $(SPEC) in makefiles and make variables overridable + - S7141246: build-infra merge: Introduce new JVM_VARIANT* to control which kind of jvm gets built + - S7142596: RMI JPRT tests are failing + - S7142641: -Xshared:on fails on ARM + - S7143490: G1: Remove HeapRegion::_top_at_conc_mark_count + - S7143511: G1: Another instance of high GC Worker Other time (50ms) + - S7143858: G1: Back to back young GCs with the second GC having a minimally sized eden + - S7144328: Improper commandlines for -XX:+-UnlockCommercialFeatures require proper warning/error messages + - S7144861: speed up RMI activation tests + - S7145024: Crashes in ucrypto related to C2 + - S7145358: SA throws ClassCastException for partially loaded ConstantPool + - S7145441: G1: collection set chooser-related cleanup + - S7146246: G1: expose some of the -XX flags that drive which old regions to collect during mixed GCs + - S7146424: Wildcard expansion for single entry classpath + - S7146442: assert(false) failed: bad AD file + - S7146506: (fc) Add EACCES check to the return of fcntl native method + - S7146572: enableInputMethod(false) does not work in the TextArea and TextField on the linux platform + - S7146700: new hotspot build - hs24-b01 + - S7146763: Warnings cleanup in the sun.rmi and related packages + - S7147064: assert(allocates2(pc)) failed: not in CodeBuffer memory: 0xffffffff778d9d60 <= 0xffffffff778da69c + - S7147408: [macosx] Add autodelay to fix a regression test + - S7147416: LogCompilation tool does not work with post parse inlining + - S7147464: Java crashed while executing method with over 8k of dneg operations + - S7147724: G1: hang in SurrogateLockerThread::manipulatePLL + - S7147740: add assertions to check stack alignment on VM entry from generated code (x64) + - S7147744: CTW: assert(false) failed: infinite EA connection graph build + - S7147806: G1: Crash in vm bootstrap when running with -XX:+UseG1GC -XX:-UsePerfData + - S7148109: C2 compiler consumes too much heap resources + - S7148126: ConstantPoolCacheEntry::print prints to wrong stream + - S7148152: Add whitebox testing API to HotSpot + - S7148486: At a method handle call returning with an exception may call the runtime with misaligned stack (x64) + - S7148488: Whitebox tests for the Diagnostic Framework Parser + - S7148664: new hotspot build - hs24-b02 + - S7149068: java/awt/Window/Grab/GrabTest.java failed + - S7150046: SIGILL on sparcv9 fastdebug + - S7150051: incorrect oopmap in critical native + - S7150058: Allocate symbols from null boot loader to an arena for NMT + - S7150327: new hotspot build - hs24-b03 + - S7150390: JFR test crashed on assert(_jni_lock_count == count) failed: must be equal + - S7150454: add release jdk7u4 to jprt.properties + - S7150594: VM chash in JCK api/java_awt/Image/ConvolveOp/ tests for 64 bit jdk8 on linux. + - S7150899: remove unused build.targets lines from jprt.properties + - S7151089: PS NUMA: NUMA allocator should not attempt to free pages when using SHM large pages + - S7151348: Build breaks due to warning clean up in sun.rmi.*(7146763) + - S7151427: Fix the potential memory leak in error handling code in X11SurfaceData.c + - S7151434: java -jar -XX crashes java launcher + - S7151532: DCmd for hotspot native memory tracking + - S7152007: Fix warnings in sun/rmi/rmic + - S7152031: Hotspot needs updated xawt path [macosx] + - S7152121: Krb5LoginModule no longer handles keyTabNames with "file:" prefix + - S7152183: TEST_BUG: java/lang/ProcessBuilder/Basic.java failing intermittently [sol] + - S7152206: anti-delta the fix for 7152031 + - S7152519: Dependency on non-POSIX header file causes portability problem + - S7152700: new hotspot build - hs24-b04 + - S7152791: wbapi tests fail on cygwin + - S7152800: All tests using the attach API fail with "well-known file is not secure" on Mac OS X + - S7152811: Issues in client compiler + - S7152948: DatagramDispatcher.c should memset msghdr to make it portable to other platforms + - S7152954: G1: Native memory leak during full GCs + - S7152955: print_method crashes with null root + - S7152957: VM crashes with assert(false) failed: bad AD file + - S7152961: InlineTree::should_not_inline may exit prematurely + - S7153339: InternalError when drawLine with Xor and Antialiasing + - S7153343: Dependency on non-POSIX header file causes portability problem + - S7153374: ARM ONLY .. linking problem with new compilers.. Need to use -fPIC + - S7154030: java.awt.Component.hide() does not repaint parent component + - S7154333: JVM fails to start if -XX:+AggressiveHeap is set + - S7154517: Build error in hotspot-gc without precompiled headers + - S7154638: Change download.oracle.com to docs.oracle.com in jdk/make/docs/Makefile + - S7154641: Servicability agent should work on platforms other than x86, sparc + - S7154670: The instanceKlass _implementors[] and _nof_implementors are not needed for non-interface klass. + - S7154706: new hotspot build - hs23-b05 + - S7154724: jdk7u4 test properties missing from jprt.properties + - S7154778: [macosx] NSView-based implementation of sun.awt.EmbeddedFrame + - S7154997: assert(false) failed: not G1 barrier raw StoreP + - S7155168: java/util/TimeZone/Bug6912560.java: expected Asia/Tokyo + - S7155298: Editable TextArea/TextField are blocking GUI applications from exit + - S7155300: Include pthread.h on all POSIX platforms except Solaris to improve portability + - S7155453: [macosx] re-enable jbb tests in JPRT + - S7155887: ComboBox does not display focus outline in GTK L&F + - S7156659: new hotspot build - hs24-b06 + - S7156729: PPC: R_PPC_REL24 relocation error related to some libraries built without -fPIC + - S7156764: Remove unused size parameter from some CollectedHeap methods + - S7156873: (zipfs) FileSystems.newFileSystem(uri, env) fails for uri with escaped octets + - S7156960: Incorrect copyright headers in parts of the Serviceability agent + - S7157073: G1: type change size_t -> uint for region counts / indexes + - S7157141: crash in 64 bit with corrupted oops + - S7157365: jruby/bench.bench_timeout crashes with JVM internal error + - S7157695: Add windows implementation of socket interface + - S7157734: hotspot test scripts not testing 64-bit JVM under JPRT/JTREG. + - S7158137: new hotspot build - hs24-b07 + - S7158329: NPE in sun.security.krb5.Credentials.acquireDefaultCreds() + - S7158457: division by zero in adaptiveweightedaverage + - S7158552: The instanceKlsss::_host_klass is only needed for anonymous class for JSR 292 support. + - S7158682: G1: Handle leak when running nsk.sysdict tests + - S7158807: Revise stack management with volatile call sites + - S7158988: jvm crashes while debugging on x86_32 and x86_64 + - S7159041: Fix for 7152519 causing build breakage. + - S7159772: instanceKlass::all_fields_count() returns incorrect total field count + - S7159842: new hotspot build - hs24-b08 + - S7159982: ZipFile uses static for error message when malformed zip file encountered + - S7160161: Missed safepoint in non-Counted loop + - S7160252: (prefs) NodeAddedEvent was not delivered when new node add when new Node + - S7160467: Fix test for 7158988 + - S7160539: JDeveloper crashes on 64-bit Windows + - S7160570: Intrinsification support for tracing framework + - S7160609: [macosx] JDK crash in libjvm.dylib ( C [GeForceGLDriver+0x675a] gldAttachDrawable+0x941) + - S7160610: Unknown Native Code compilation issue + - S7160613: VerifyRememberedSets doesn't work with CompressedOops + - S7160677: missing else in fix for 7152811 + - S7160728: Introduce an extra logging level for G1 logging + - S7160757: Problem with hotspot/runtime_classfile + - S7160924: jvmti: GetPhase returns incorrect phase before VMInit event is issued + - S7160951: ActionListener called twice for JMenuItem using ScreenMenuBar + - S7160951: [macosx] ActionListener called twice for JMenuItem using ScreenMenuBar + - S7161229: PriorityBlockingQueue keeps hard reference to last removed element + - S7161282: Move test/sun/tools/classpath/RMICClassPathTest.java to a more appropriate location + - S7161437: [macosx] awt.FileDialog doesn't respond appropriately for mac when selecting folders + - S7161545: G1: Minor cleanups to the G1 logging + - S7161732: Improve handling of thread_id in OSThread + - S7161796: PhaseStringOpts::fetch_static_field tries to fetch field from the Klass instead of the mirror + - S7162063: libsaproc debug print should format size_t correctly on 64bit platform + - S7162094: LateInlineCallGenerator::do_late_inline crashed on uninitialized _call_node + - S7162144: Missing AWT thread in headless mode in 7u4 b06 + - S7162488: VM not printing unknown -XX options + - S7162726: Wrong filter predicate of visible locals in SA JSJavaFrame + - S7162955: Attach api on Solaris, too many open files + - S7163117: Agent can't connect to process on Mac OSX + - S7163193: new hotspot build - hs24-b09 + - S7163198: Tightened package accessibility + - S7163534: VM could crashes assert(false) failed: infinite EA connection graph build + - S7163848: G1: Log GC Cause for a GC + - S7163863: Updated projectcreator + - S7163865: Performance improvement for DateFormatSymbols.getZoneIndex(String) + - S7163874: InetAddress.isReachable should support pinging 0.0.0.0 + - S7164144: Fix variable naming style in freeBlockDictionary.* and binaryTreeDictionary* + - S7164191: properties.putAll API may fail with ConcurrentModifcationException on multi-thread scenario + - S7164344: enabling ZIP_DEBUGINFO_FILES causes unexpected test failures on Solaris and Windows + - S7165722: Invalid path in MemoryMonitor demo's README.txt + - S7165755: OS Information much longer on linux than other platforms + - S7166048: Remove the embeded epoll data structure. + - S7166055: Javadoc for WeakHashMap contains misleading advice + - S7166498: JVM crash in ClassVerifier + - S7166615: new hotspot build - hs24-b10 + - S7166894: Add gc cause to GC logging for all collectors + - S7166896: DocumentBuilder.parse(String uri) is not IPv6 enabled. It throws MalformedURLException + - S7166955: (pack200) JNI_GetCreatedJavaVMs needs additional checking + - S7167069: 6 VM flags crash the VM when queried via jinfo + - S7167142: Consider a warning when finding a .hotspotrc or .hotspot_compiler file that isn't used + - S7167254: Crash on OSX in Enumerator.nextElement() with compressed oops + - S7167266: missing copyright notes in 3rd party code + - S7167406: (Zero) Fix for InvokeDynamic needed + - S7167437: Can't build on linux without precompiled headers + - S7167593: Changed get_source.sh to allow for getting full oracle jdk repo forest + - S7167625: Adjustments for SE-Embedded build process + - S7167780: Hang javasoft.sqe.tests.api.javax.swing.Timer.Ctor2Tests + - S7167976: Fix broken get_source.sh script + - S7168144: No appropriate CCC request for changes introduced by 7154030 + - S7168172: (fs) Files.isReadable slow on Windows + - S7168247: new hotspot build - hs24-b11 + - S7168280: Eliminate the generic signature index slot from field array for field without generic signature. + - S7168294: G1: Some Full GCs incorrectly report GC cause as "No GC" + - S7168848: Add test to check that humongous object allocation path also checks the heap occupancy. + - S7169056: Add gigabyte unit to proper_unit_for_byte_size() and byte_size_in_proper_unit() + - S7169062: CMS: Assertion failed with -XX:+ObjectAlignmentInBytes=64 + - S7169102: 7165060 merge lost changes to make/windows/makefiles/defs.make + - S7169111: Unreadable menu bar with Ambiance theme in GTK L&F + - S7169395: Exception throws due to the changes in JDK 7 object tranversal and break backward compatibility + - S7169409: enabling ZIP_DEBUGINFO_FILES causes unexpected test failures on Windows X86 + - S7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool) + - S7169934: pow(x,y) or x64 computes incorrect result when x<0 and y is an odd integer + - S7170006: new hotspot build - hs24-b12 + - S7170010: conditional "ZIP_DEBUGINFO_FILES ?= 0" setting is not reliable on Windows + - S7170053: crash in C2 when using -XX:+CountCompiledCalls + - S7170091: Fix missing wait between repo cloning in hgforest.sh + - S7170145: C1 doesn't respect the JMM with volatile field loads + - S7170197: Update JPRT default build targets to support embedded builds + - S7170275: os::print_os_info needs to know about Windows 8 + - S7170463: C2 should recognize "obj.getClass() == A.class" code pattern + - S7170655: Frame size does not follow font size change with XToolkit + - S7170657: [macosx] There seems to be no keyboard/mouse action to select non-contiguous items in List + - S7170996: IME composition window does not disappear when file dialog is closed : Japanese WinXP + - S7171028: dots are missed in the datetime for Slovanian + - S7171045: [macosx] There are no enter or exit events reported against 8b39 for MouseEventsDuringDrag. + - S7171422: Change 7161732 breaks SA on Windows + - S7171703: JNI DefineClass crashes client VM when first parameter is NULL + - S7171812: [macosx] Views keep scrolling back to the drag position after DnD + - S7171824: assert(_offset >= 1) failed: illegal call to offset() + - S7171853: new hotspot build - hs24-b13 + - S7171890: C1: add Class.isInstance intrinsic + - S7171936: LOG_G incorrectly defined in globalDefinitions.hpp + - S7172149: ArrayIndexOutOfBoundsException from Signature.verify + - S7172177: test/java/util/TimeZone/DstTzTest.java failing on all platforms + - S7172187: [macosx] JAWT native CALayer not positioned over Canvas + - S7172226: HotSpot fails to build with GCC 4.7 because of stricter c++ argument dependent lookup + - S7172279: G1: Clean up TraceGen0Time and TraceGen1Time data gathering + - S7172388: G1: _total_full_collections should not be incremented for concurrent cycles + - S7172708: 32/64 bit type issues on Windows after Mac OS X port + - S7172826: (se) Selector based on the Solaris event port mechanism + - S7172843: C1: fix "assert(has_printable_bci()) failed: _printable_bci should have been set" + - S7172967: Eliminate constMethod's _method backpointer to methodOop. + - S7173044: MemoryMonitor hangs if getMax method in MemoryUsage object returns -1 + - S7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable + - S7173438: new hotspot build - hs24-b14 + - S7173460: G1: java/lang/management/MemoryMXBean/CollectionUsageThreshold.java failes with G1 + - S7173494: some jdk tests are not run in test/Makefile + - S7173635: jprt.properties should include release jdk7u6 + - S7173712: G1: Duplicated code in G1UpdateRSOrPushRefOopClosure::do_oop_nv() + - S7173959: Jvm crashed during coherence exabus (tmb) testing + - S7174218: remove AtomicLongCSImpl intrinsics + - S7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework + - S7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere + - S7174532: jdk/test/java/lang/Math/WorstCaseTests.java failing on x86 + - S7174884: C1: failures after 7171890: assert(cur_state != NULL) failed: state_before must be set + - S7174887: Deadlock in jndi ldap connection cleanup + - S7174928: JSR 292: unresolved invokedynamic call sites deopt and osr infinitely + - S7175133: jinfo failed to get system properties after 6924259 + - S7175183: [macosx] Objective-C exception thrown when switching monitor configuration + - S7175515: new hotspot build - hs24-b15 + - S7175616: Port fix for TimeZone from JDK 8 to JDK 7 + - S7175707: [macosx] PIT: 8 b43 Not running on AppKit thread issue again + - S7175775: Disable SA options in jinfo/Basic.java test until SA updated for new hash and String count/offset + - S7175914: Usage of gcc with precompiled headers produces wrong build dependencies + - S7176485: (bf) Allow temporary buffer cache to grow to IOV_MAX + - S7176856: add the JRE name to the error log + - S7177003: C1: LogCompilation support + - S7177040: Deadlock between PostEventQueue.noEvents, EventQueue.isDispatchThread and SwingUtilities.invokeLater + - S7177128: SA cannot get correct system properties after 7126277 + - S7177144: [macosx] Drag and drop not working (regression in 7u6) + - S7177173: [macosx] JFrame.setExtendedState(JFrame.MAXIMIZED_BOTH) not working as expected in JDK 7 + - S7177307: fix fo CR7158800 doesn't contain Test7158800.sh + - S7177409: Perf regression in JVM_GetClassDeclaredFields after generic signature changes. + - S7177917: Failed test java/lang/Math/PowTests.java + - S7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear() + - S7178079: REGRESSION: Some AWT Drag-n-Drop tests fail since JDK 7u6 b13 + - S7178113: build environment change + - S7178145: Change constMethodOop::_exception_table to optionally inlined u2 table. + - S7178280: Failed new vector regression tests + - S7178324: Crash when compiling for(i : x) try(AutoCloseable x = ...) {} + - S7178361: G1: Make sure that PrintGC and PrintGCDetails use the same timing for the GC pause + - S7178363: G1: Remove the serial code for PrintGCDetails and make it a special case of the parallel code + - S7178649: TEST BUG: BadKdc3.java needs improvement to ignore the unlikely but possible timeout + - S7178667: ALT_EXPORT_PATH does not export server jvm on macosx + - S7178670: runtime/7158800/BadUtf8.java fails in SymbolTable::rehash_table + - S7178703: Fix handling of quoted arguments and better error messages in dcmd + - S7178846: IterateThroughHeap: heap_iteration_callback passes a negative size + - S7179138: Incorrect result with String concatenation optimization + - S7179305: (fs) Method name sun.nio.fs.UnixPath.getPathForExecptionMessage is misspelled + - S7179383: MaxDirectMemorySize argument parsing is broken for values >2G + - S7179759: ENV: Nightly fails during jdk copiyng for solaris platforms after FDS unzipping + - S7179879: SSLSocket connect times out instead of throwing socket closed exception + - S7179908: Fork hs23.3 hsx from hs22.2 for jdk7u7 and reinitialize build number + - S7180621: Hashtable has incorrect alternative hashing threshold default value + - S7180769: assert(tboth->klass_is_exact()) failed: klass should be exact + - S7180882: new hotspot build - hs24-b16 + - S7180884: new hotspot build - hs23.2-b09 + - S7180906: Javadoc tool does not apply parameter -nosince + - S7180907: Jarsigner -verify fails if rsa file used sha-256 with authenticated attributes + - S7180914: Compilation warning after: 7172967: Eliminate the constMethod's _method backpointer to the methodOop. + - S7181027: [macosx] Unable to use headless mode + - S7181175: Enable builds on Windows with MinGW/MSYS + - S7181199: [macosx] Startup is much slower in headless mode for apps using Fonts + - S7181200: JVM new hashing code breaks SA in product mode + - S7181320: javac NullPointerException for switch labels with cast to String expressions + - S7181353: Update error message to distinguish native OOM and java OOM in net + - S7181438: [OGL] Incorrect alpha used, during blit from SW to the texture. + - S7181494: cleanup avx and vectors code + - S7181632: nsk classLoad001_14 failure and CompileTheWorld crash after 7178145. + - S7181658: CTW: assert(t->meet(t0) == t) failed: Not monotonic + - S7181986: NMT ON: Assertion failure when running jdi ExpiredRequestDeletionTest From andrew at icedtea.classpath.org Mon Jan 14 15:05:38 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:05:38 +0000 Subject: /hg/release/icedtea7-forest-2.2: Added tag icedtea-2.2.4 for cha... Message-ID: changeset 431257be5014 in /hg/release/icedtea7-forest-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2?cmd=changeset;node=431257be5014 author: andrew date: Mon Jan 14 22:54:01 2013 +0000 Added tag icedtea-2.2.4 for changeset 32574ae3c2be diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 32574ae3c2be -r 431257be5014 .hgtags --- a/.hgtags Tue Oct 16 21:31:05 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:01 2013 +0000 @@ -177,3 +177,4 @@ 49a6fc8f712f3f04d4e49e379cfc3d111b21182e icedtea-2.2.1 0b776ef594741d3c316eb6b7b4e2b53a23f5b942 icedtea-2.2.2 0fd1b10097bd083b99466e104e2eecbfa1f24f1a icedtea-2.2.3 +32574ae3c2be6473eacf254d524442f8f7fd64d4 icedtea-2.2.4 From andrew at icedtea.classpath.org Mon Jan 14 15:05:45 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:05:45 +0000 Subject: /hg/release/icedtea7-forest-2.2/corba: Added tag icedtea-2.2.4 f... Message-ID: changeset f90e1b6ccfb6 in /hg/release/icedtea7-forest-2.2/corba details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/corba?cmd=changeset;node=f90e1b6ccfb6 author: andrew date: Mon Jan 14 22:54:02 2013 +0000 Added tag icedtea-2.2.4 for changeset 12fee4f9ac22 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 12fee4f9ac22 -r f90e1b6ccfb6 .hgtags --- a/.hgtags Tue Oct 16 21:31:06 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:02 2013 +0000 @@ -177,3 +177,4 @@ 22e1e47a3e4f5cac81e0a8b4b635752fb1fdb571 icedtea-2.2.1 38deb372c569b4c824bd3913567c0ea5844e34a9 icedtea-2.2.2 64c5506f4a4b50657ce32a68dbf4c6aecd07e4bf icedtea-2.2.3 +12fee4f9ac222e28ca0e7d4e4475c4c6f92a50bf icedtea-2.2.4 From andrew at icedtea.classpath.org Mon Jan 14 15:06:01 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:06:01 +0000 Subject: /hg/release/icedtea7-forest-2.2/langtools: Added tag icedtea-2.2... Message-ID: changeset 206668cf21e5 in /hg/release/icedtea7-forest-2.2/langtools details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/langtools?cmd=changeset;node=206668cf21e5 author: andrew date: Mon Jan 14 22:54:04 2013 +0000 Added tag icedtea-2.2.4 for changeset e96efe42e3d5 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r e96efe42e3d5 -r 206668cf21e5 .hgtags --- a/.hgtags Tue Oct 16 21:31:09 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:04 2013 +0000 @@ -178,3 +178,4 @@ f855bdb3753765a59b638693137cde16ce1267c3 icedtea-2.2.1 beea46c7086b21ae604bfaec7f6ffb615f652e88 icedtea-2.2.2 f5e3d40e7849fb0b52d0d2ac2238f072c86fd2cc icedtea-2.2.3 +e96efe42e3d541f791f82f23c7465337cefea46e icedtea-2.2.4 From andrew at icedtea.classpath.org Mon Jan 14 15:06:12 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:06:12 +0000 Subject: /hg/release/icedtea7-forest-2.2/jdk: 3 new changesets Message-ID: changeset 468ca19978a3 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=468ca19978a3 author: jrose date: Thu Jan 10 19:22:29 2013 -0800 8004933: Improve MethodHandle interaction with libraries 8006017: Improve lookup resolutions Reviewed-by: ahgross changeset 819c4d521119 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=819c4d521119 author: jrose date: Fri Jan 11 17:53:41 2013 -0800 8006125: Update MethodHandles library interactions Reviewed-by: mchung, jdn, ahgross changeset 8fccb53fef83 in /hg/release/icedtea7-forest-2.2/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jdk?cmd=changeset;node=8fccb53fef83 author: andrew date: Mon Jan 14 22:54:05 2013 +0000 Added tag icedtea-2.2.4 for changeset 819c4d521119 diffstat: .hgtags | 1 + src/share/classes/java/lang/invoke/MethodHandleNatives.java | 15 +++++++++++++ src/share/classes/sun/reflect/misc/MethodUtil.java | 6 +++++ 3 files changed, 22 insertions(+), 0 deletions(-) diffs (49 lines): diff -r 4cf358fd012a -r 8fccb53fef83 .hgtags --- a/.hgtags Tue Oct 16 21:31:13 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:05 2013 +0000 @@ -181,3 +181,4 @@ 1870f7528cbf59c29224dab4ff84514aee20875e icedtea-2.2.1 5ec35e1b30b02b11a13cbebaa8e23520c5ca89cc icedtea-2.2.2 08baf77fec47a067341cf890a2e4c4a4917b9f09 icedtea-2.2.3 +819c4d5211199bf71811e69bde95b39434da384b icedtea-2.2.4 diff -r 4cf358fd012a -r 8fccb53fef83 src/share/classes/java/lang/invoke/MethodHandleNatives.java --- a/src/share/classes/java/lang/invoke/MethodHandleNatives.java Tue Oct 16 21:31:13 2012 +0100 +++ b/src/share/classes/java/lang/invoke/MethodHandleNatives.java Mon Jan 14 22:54:05 2013 +0000 @@ -418,6 +418,21 @@ return defc == sun.misc.Unsafe.class; case "lookup": return defc == java.lang.invoke.MethodHandles.class; + case "findStatic": + case "findVirtual": + case "findConstructor": + case "findSpecial": + case "findGetter": + case "findSetter": + case "findStaticGetter": + case "findStaticSetter": + case "bind": + case "unreflect": + case "unreflectSpecial": + case "unreflectConstructor": + case "unreflectGetter": + case "unreflectSetter": + return defc == java.lang.invoke.MethodHandles.Lookup.class; case "invoke": return defc == java.lang.reflect.Method.class; case "get": diff -r 4cf358fd012a -r 8fccb53fef83 src/share/classes/sun/reflect/misc/MethodUtil.java --- a/src/share/classes/sun/reflect/misc/MethodUtil.java Tue Oct 16 21:31:13 2012 +0100 +++ b/src/share/classes/sun/reflect/misc/MethodUtil.java Mon Jan 14 22:54:05 2013 +0000 @@ -256,6 +256,12 @@ public static Object invoke(Method m, Object obj, Object[] params) throws InvocationTargetException, IllegalAccessException { if (m.getDeclaringClass().equals(AccessController.class) || + (m.getDeclaringClass().equals(java.lang.invoke.MethodHandles.class) + && m.getName().equals("lookup")) || + (m.getDeclaringClass().equals(java.lang.invoke.MethodHandles.Lookup.class) + && (m.getName().startsWith("find") || + m.getName().startsWith("bind") || + m.getName().startsWith("unreflect"))) || m.getDeclaringClass().equals(Method.class)) throw new InvocationTargetException( new UnsupportedOperationException("invocation not supported")); From andrew at icedtea.classpath.org Mon Jan 14 15:26:16 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:16 +0000 Subject: /hg/release/icedtea7-forest-2.3: Added tag icedtea-2.3.4 for cha... Message-ID: changeset 8bd8e70d4a03 in /hg/release/icedtea7-forest-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3?cmd=changeset;node=8bd8e70d4a03 author: andrew date: Mon Jan 14 22:24:55 2013 +0000 Added tag icedtea-2.3.4 for changeset 301e79a966b4 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 301e79a966b4 -r 8bd8e70d4a03 .hgtags --- a/.hgtags Tue Oct 16 21:36:34 2012 +0100 +++ b/.hgtags Mon Jan 14 22:24:55 2013 +0000 @@ -210,3 +210,4 @@ 2783cace584cbfa3ed52774185859faf41569f8e icedtea-2.3.1 a3fa5d49d528c32ad5d4b49e7241696a672ffe18 icedtea-2.3.2 acba2d30209d19a87dbc0d2a6e366f09f01a210d icedtea-2.3.3 +301e79a966b4627af0113e30f65409baf9ebf1ce icedtea-2.3.4 From andrew at icedtea.classpath.org Mon Jan 14 15:26:22 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:22 +0000 Subject: /hg/release/icedtea7-forest-2.3/corba: Added tag icedtea-2.3.4 f... Message-ID: changeset dc9234e25ab0 in /hg/release/icedtea7-forest-2.3/corba details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/corba?cmd=changeset;node=dc9234e25ab0 author: andrew date: Mon Jan 14 22:24:57 2013 +0000 Added tag icedtea-2.3.4 for changeset 9a95d714d136 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 9a95d714d136 -r dc9234e25ab0 .hgtags --- a/.hgtags Tue Oct 16 21:36:34 2012 +0100 +++ b/.hgtags Mon Jan 14 22:24:57 2013 +0000 @@ -210,3 +210,4 @@ 2b1d2e9aea3270eb30e7a1ac2a02c5584acc404c icedtea-2.3.1 e9b200124386d2dceba0f2641316e8c6499f9966 icedtea-2.3.2 7fae6a3a68c71b9b13144e92969b8ad625cf9814 icedtea-2.3.3 +9a95d714d136b6a22bab1e8365ab3bce7a8b1ddf icedtea-2.3.4 From andrew at icedtea.classpath.org Mon Jan 14 15:26:28 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:28 +0000 Subject: /hg/release/icedtea7-forest-2.3/jaxp: Added tag icedtea-2.3.4 fo... Message-ID: changeset aa3654afea12 in /hg/release/icedtea7-forest-2.3/jaxp details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jaxp?cmd=changeset;node=aa3654afea12 author: andrew date: Mon Jan 14 22:24:57 2013 +0000 Added tag icedtea-2.3.4 for changeset f45296ac69be diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r f45296ac69be -r aa3654afea12 .hgtags --- a/.hgtags Tue Oct 16 21:36:36 2012 +0100 +++ b/.hgtags Mon Jan 14 22:24:57 2013 +0000 @@ -210,3 +210,4 @@ 20e3c00ca7ae9649a40b385223a6c3b0d1155b93 icedtea-2.3.1 9bd1d8e8b802a8e22637c8a2e0acad9c9cb4a114 icedtea-2.3.2 ee4bd94136ece0fed96b7b8d18f4d99f74fbd326 icedtea-2.3.3 +f45296ac69be649f775ac878387e96fd16504b81 icedtea-2.3.4 From andrew at icedtea.classpath.org Mon Jan 14 15:26:34 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:34 +0000 Subject: /hg/release/icedtea7-forest-2.3/jaxws: Added tag icedtea-2.3.4 f... Message-ID: changeset 7182233cc27e in /hg/release/icedtea7-forest-2.3/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jaxws?cmd=changeset;node=7182233cc27e author: andrew date: Mon Jan 14 22:24:58 2013 +0000 Added tag icedtea-2.3.4 for changeset 03f54ef33914 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 03f54ef33914 -r 7182233cc27e .hgtags --- a/.hgtags Tue Oct 16 21:36:37 2012 +0100 +++ b/.hgtags Mon Jan 14 22:24:58 2013 +0000 @@ -210,3 +210,4 @@ 410de4b438cf005c78611209ffa0799d89be1e19 icedtea-2.3.1 9a744f20cfc52e19f66956e5d406c23910ed4cb4 icedtea-2.3.2 c89c6ac953e7f30780e74b4bc153fee4dd330179 icedtea-2.3.3 +03f54ef339144764e218c6548c237e06d54d5ac7 icedtea-2.3.4 From andrew at icedtea.classpath.org Mon Jan 14 15:26:40 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:40 +0000 Subject: /hg/release/icedtea7-forest-2.3/langtools: Added tag icedtea-2.3... Message-ID: changeset 946195011b30 in /hg/release/icedtea7-forest-2.3/langtools details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/langtools?cmd=changeset;node=946195011b30 author: andrew date: Mon Jan 14 22:24:59 2013 +0000 Added tag icedtea-2.3.4 for changeset ec73c6927fb7 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r ec73c6927fb7 -r 946195011b30 .hgtags --- a/.hgtags Tue Oct 16 21:36:38 2012 +0100 +++ b/.hgtags Mon Jan 14 22:24:59 2013 +0000 @@ -210,3 +210,4 @@ 4ccca0a55ed66de7e7482b5f2a9222ec44bea699 icedtea-2.3.1 0cf6181d44db827cb1a341f5936ce43cc489fd08 icedtea-2.3.2 867d5041bee60ea67ee56c5990a82a0215cc4959 icedtea-2.3.3 +ec73c6927fb72f1034cde0be9dadb4eaffd6b338 icedtea-2.3.4 From andrew at icedtea.classpath.org Mon Jan 14 15:26:47 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:47 +0000 Subject: /hg/release/icedtea7-forest-2.3/hotspot: 2 new changesets Message-ID: changeset 87f0aa7a8f8f in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=87f0aa7a8f8f author: brutisso date: Thu Sep 13 21:20:26 2012 +0200 7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts Reviewed-by: brutisso, johnc, ysr Contributed-by: Hal Mo changeset beecf0b9e760 in /hg/release/icedtea7-forest-2.3/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot?cmd=changeset;node=beecf0b9e760 author: andrew date: Mon Jan 14 22:25:00 2013 +0000 Added tag icedtea-2.3.4 for changeset 87f0aa7a8f8f diffstat: .hgtags | 1 + src/share/vm/gc_implementation/g1/concurrentMark.cpp | 2 +- src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp | 2 +- src/share/vm/memory/blockOffsetTable.hpp | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diffs (44 lines): diff -r d2d0a106917c -r beecf0b9e760 .hgtags --- a/.hgtags Tue Oct 16 21:36:40 2012 +0100 +++ b/.hgtags Mon Jan 14 22:25:00 2013 +0000 @@ -331,3 +331,4 @@ c798442fa4c00ad251f6cbe989d32485845bf247 icedtea-2.3.1 2a413d946cb1acdcbe1110098f79b7a1f267bf75 icedtea-2.3.2 0885feeea95caa8b92f46234872f0c3839d8850b icedtea-2.3.3 +87f0aa7a8f8f0209148ad0746a3486d9cf16ebaa icedtea-2.3.4 diff -r d2d0a106917c -r beecf0b9e760 src/share/vm/gc_implementation/g1/concurrentMark.cpp --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Oct 16 21:36:40 2012 +0100 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Mon Jan 14 22:25:00 2013 +0000 @@ -116,7 +116,7 @@ #ifndef PRODUCT bool CMBitMapRO::covers(ReservedSpace rs) const { // assert(_bm.map() == _virtual_space.low(), "map inconsistency"); - assert(((size_t)_bm.size() * (size_t)(1 << _shifter)) == _bmWordSize, + assert(((size_t)_bm.size() * ((size_t)1 << _shifter)) == _bmWordSize, "size inconsistency"); return _bmStartWord == (HeapWord*)(rs.base()) && _bmWordSize == rs.size()>>LogHeapWordSize; diff -r d2d0a106917c -r beecf0b9e760 src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp --- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Tue Oct 16 21:36:40 2012 +0100 +++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp Mon Jan 14 22:25:00 2013 +0000 @@ -520,7 +520,7 @@ if (_max_fine_entries == 0) { assert(_mod_max_fine_entries_mask == 0, "Both or none."); size_t max_entries_log = (size_t)log2_long((jlong)G1RSetRegionEntries); - _max_fine_entries = (size_t)(1 << max_entries_log); + _max_fine_entries = (size_t)1 << max_entries_log; _mod_max_fine_entries_mask = _max_fine_entries - 1; #if SAMPLE_FOR_EVICTION assert(_fine_eviction_sample_size == 0 diff -r d2d0a106917c -r beecf0b9e760 src/share/vm/memory/blockOffsetTable.hpp --- a/src/share/vm/memory/blockOffsetTable.hpp Tue Oct 16 21:36:40 2012 +0100 +++ b/src/share/vm/memory/blockOffsetTable.hpp Mon Jan 14 22:25:00 2013 +0000 @@ -289,7 +289,7 @@ }; static size_t power_to_cards_back(uint i) { - return (size_t)(1 << (LogBase * i)); + return (size_t)1 << (LogBase * i); } static size_t power_to_words_back(uint i) { return power_to_cards_back(i) * N_words; From andrew at icedtea.classpath.org Mon Jan 14 15:26:55 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:26:55 +0000 Subject: /hg/release/icedtea7-forest-2.3/jdk: 3 new changesets Message-ID: changeset 3e82baeb1b08 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=3e82baeb1b08 author: jrose date: Thu Jan 10 19:22:29 2013 -0800 8004933: Improve MethodHandle interaction with libraries 8006017: Improve lookup resolutions Reviewed-by: ahgross changeset 363064d27367 in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=363064d27367 author: jrose date: Fri Jan 11 17:53:41 2013 -0800 8006125: Update MethodHandles library interactions Reviewed-by: mchung, jdn, ahgross changeset 96d4f04f2b7c in /hg/release/icedtea7-forest-2.3/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/jdk?cmd=changeset;node=96d4f04f2b7c author: andrew date: Mon Jan 14 22:25:02 2013 +0000 Added tag icedtea-2.3.4 for changeset 363064d27367 diffstat: .hgtags | 1 + src/share/classes/java/lang/invoke/MethodHandleNatives.java | 15 +++++++++++++ src/share/classes/sun/reflect/misc/MethodUtil.java | 6 +++++ 3 files changed, 22 insertions(+), 0 deletions(-) diffs (49 lines): diff -r 5ec94d162f05 -r 96d4f04f2b7c .hgtags --- a/.hgtags Tue Oct 16 21:36:45 2012 +0100 +++ b/.hgtags Mon Jan 14 22:25:02 2013 +0000 @@ -218,3 +218,4 @@ 0000000000000000000000000000000000000000 icedtea-2.3.2 64ec99488219da2565d3eea0a53ffb4854c87fbe icedtea-2.3.2 6d4f9b2e4a51be218c0d0a1b10cd8469d8ca3cdc icedtea-2.3.3 +363064d273675e7ba3417583ee9e4f220bd4e1c9 icedtea-2.3.4 diff -r 5ec94d162f05 -r 96d4f04f2b7c src/share/classes/java/lang/invoke/MethodHandleNatives.java --- a/src/share/classes/java/lang/invoke/MethodHandleNatives.java Tue Oct 16 21:36:45 2012 +0100 +++ b/src/share/classes/java/lang/invoke/MethodHandleNatives.java Mon Jan 14 22:25:02 2013 +0000 @@ -418,6 +418,21 @@ return defc == sun.misc.Unsafe.class; case "lookup": return defc == java.lang.invoke.MethodHandles.class; + case "findStatic": + case "findVirtual": + case "findConstructor": + case "findSpecial": + case "findGetter": + case "findSetter": + case "findStaticGetter": + case "findStaticSetter": + case "bind": + case "unreflect": + case "unreflectSpecial": + case "unreflectConstructor": + case "unreflectGetter": + case "unreflectSetter": + return defc == java.lang.invoke.MethodHandles.Lookup.class; case "invoke": return defc == java.lang.reflect.Method.class; case "get": diff -r 5ec94d162f05 -r 96d4f04f2b7c src/share/classes/sun/reflect/misc/MethodUtil.java --- a/src/share/classes/sun/reflect/misc/MethodUtil.java Tue Oct 16 21:36:45 2012 +0100 +++ b/src/share/classes/sun/reflect/misc/MethodUtil.java Mon Jan 14 22:25:02 2013 +0000 @@ -256,6 +256,12 @@ public static Object invoke(Method m, Object obj, Object[] params) throws InvocationTargetException, IllegalAccessException { if (m.getDeclaringClass().equals(AccessController.class) || + (m.getDeclaringClass().equals(java.lang.invoke.MethodHandles.class) + && m.getName().equals("lookup")) || + (m.getDeclaringClass().equals(java.lang.invoke.MethodHandles.Lookup.class) + && (m.getName().startsWith("find") || + m.getName().startsWith("bind") || + m.getName().startsWith("unreflect"))) || m.getDeclaringClass().equals(Method.class)) throw new InvocationTargetException( new UnsupportedOperationException("invocation not supported")); From andrew at icedtea.classpath.org Mon Jan 14 15:37:07 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:07 +0000 Subject: /hg/release/icedtea7-forest-2.1: Added tag icedtea-2.1.4 for cha... Message-ID: changeset bc612c7c99ec in /hg/release/icedtea7-forest-2.1 details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1?cmd=changeset;node=bc612c7c99ec author: andrew date: Mon Jan 14 22:22:10 2013 +0000 Added tag icedtea-2.1.4 for changeset f89009ada191 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r f89009ada191 -r bc612c7c99ec .hgtags --- a/.hgtags Tue Oct 16 21:32:54 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:10 2013 +0000 @@ -150,3 +150,4 @@ 22cc03983e209c70d9d3476529de084122ed4313 icedtea-2.1.1 7f3d1172a6a4f6e885c8ae2b6a5d6a5265f17532 icedtea-2.1.2 1e3893e92a164926556f0bde7aea8cf93a73a403 icedtea-2.1.3 +f89009ada191aa33887530d70c039f0b8fee6070 icedtea-2.1.4 From andrew at icedtea.classpath.org Mon Jan 14 15:37:14 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:14 +0000 Subject: /hg/release/icedtea7-forest-2.1/corba: Added tag icedtea-2.1.4 f... Message-ID: changeset fccd14ecf86c in /hg/release/icedtea7-forest-2.1/corba details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/corba?cmd=changeset;node=fccd14ecf86c author: andrew date: Mon Jan 14 22:22:11 2013 +0000 Added tag icedtea-2.1.4 for changeset 79ee8535bc51 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 79ee8535bc51 -r fccd14ecf86c .hgtags --- a/.hgtags Tue Oct 16 21:32:55 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:11 2013 +0000 @@ -150,3 +150,4 @@ 338c21646c7616e63483a9e8fa7c517931706b95 icedtea-2.1.1 8c5573b22489182901b2fafaec3950b1c09a6851 icedtea-2.1.2 5fb07c08e9e8c7b62395b0dc5f5a95086a7bb718 icedtea-2.1.3 +79ee8535bc518acf1156438967170004cc1eaab4 icedtea-2.1.4 From andrew at icedtea.classpath.org Mon Jan 14 15:37:19 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:19 +0000 Subject: /hg/release/icedtea7-forest-2.1/jaxp: Added tag icedtea-2.1.4 fo... Message-ID: changeset fb08c190f504 in /hg/release/icedtea7-forest-2.1/jaxp details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jaxp?cmd=changeset;node=fb08c190f504 author: andrew date: Mon Jan 14 22:22:11 2013 +0000 Added tag icedtea-2.1.4 for changeset 77e7219c7424 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 77e7219c7424 -r fb08c190f504 .hgtags --- a/.hgtags Tue Oct 16 21:32:56 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:11 2013 +0000 @@ -150,3 +150,4 @@ 7a8825b15df6a22c6d338d73f228186033c82ed0 icedtea-2.1.1 a812eed5797d5725785e45a13ed767fd1b067018 icedtea-2.1.2 68cc6550c43e7327e9b9556d1db8abd070ae3b91 icedtea-2.1.3 +77e7219c74241ff6bc56e5bb973376458ed11b2b icedtea-2.1.4 From andrew at icedtea.classpath.org Mon Jan 14 15:37:25 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:25 +0000 Subject: /hg/release/icedtea7-forest-2.1/jaxws: Added tag icedtea-2.1.4 f... Message-ID: changeset 77e7849c5e50 in /hg/release/icedtea7-forest-2.1/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jaxws?cmd=changeset;node=77e7849c5e50 author: andrew date: Mon Jan 14 22:22:12 2013 +0000 Added tag icedtea-2.1.4 for changeset d92eda447bca diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r d92eda447bca -r 77e7849c5e50 .hgtags --- a/.hgtags Tue Oct 16 21:32:57 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:12 2013 +0000 @@ -150,3 +150,4 @@ 7edfbfe974f22cdb61fc93cefd15129fa4eb8675 icedtea-2.1.1 4bb1edad129c0c441e01905b8bb43620f521bbcf icedtea-2.1.2 27864fc818734473ceb15afcb9375504a32fe936 icedtea-2.1.3 +d92eda447bca8cdc2d53d93c80c2a014d7d05f21 icedtea-2.1.4 From andrew at icedtea.classpath.org Mon Jan 14 15:37:31 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:31 +0000 Subject: /hg/release/icedtea7-forest-2.1/langtools: Added tag icedtea-2.1... Message-ID: changeset de674a569978 in /hg/release/icedtea7-forest-2.1/langtools details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/langtools?cmd=changeset;node=de674a569978 author: andrew date: Mon Jan 14 22:22:13 2013 +0000 Added tag icedtea-2.1.4 for changeset fd2fdb20d858 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r fd2fdb20d858 -r de674a569978 .hgtags --- a/.hgtags Tue Oct 16 21:33:00 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:13 2013 +0000 @@ -150,3 +150,4 @@ b534c4c6cd9b7030b34d82dcebaf00e1393e3eae icedtea-2.1.1 25c8b4900996be7ae923a336ea2d4e1ddb07a006 icedtea-2.1.2 59d1da0990018410db0cdff04e96fb7dd4d0d0a3 icedtea-2.1.3 +fd2fdb20d8585ebffee074e82b040f3b2af5ee83 icedtea-2.1.4 From andrew at icedtea.classpath.org Mon Jan 14 15:37:37 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:37 +0000 Subject: /hg/release/icedtea7-forest-2.1/hotspot: Added tag icedtea-2.1.4... Message-ID: changeset 3f345e5f65eb in /hg/release/icedtea7-forest-2.1/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot?cmd=changeset;node=3f345e5f65eb author: andrew date: Mon Jan 14 22:22:14 2013 +0000 Added tag icedtea-2.1.4 for changeset a456d0771ba0 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r a456d0771ba0 -r 3f345e5f65eb .hgtags --- a/.hgtags Wed Oct 17 08:52:30 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:14 2013 +0000 @@ -225,3 +225,4 @@ 0000000000000000000000000000000000000000 icedtea-2.1.3 0000000000000000000000000000000000000000 icedtea-2.1.3 96ba7edfedfab0ed332b24cdb161e73e3add5482 icedtea-2.1.3 +a456d0771ba0f6604b172f05f0b594178f7cc49c icedtea-2.1.4 From andrew at icedtea.classpath.org Mon Jan 14 15:37:44 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:37:44 +0000 Subject: /hg/release/icedtea7-forest-2.1/jdk: 3 new changesets Message-ID: changeset ad0e2177ffda in /hg/release/icedtea7-forest-2.1/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jdk?cmd=changeset;node=ad0e2177ffda author: jrose date: Thu Jan 10 19:22:29 2013 -0800 8004933: Improve MethodHandle interaction with libraries 8006017: Improve lookup resolutions Reviewed-by: ahgross changeset d119038320a3 in /hg/release/icedtea7-forest-2.1/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jdk?cmd=changeset;node=d119038320a3 author: jrose date: Fri Jan 11 17:53:41 2013 -0800 8006125: Update MethodHandles library interactions Reviewed-by: mchung, jdn, ahgross changeset e7d1cb36e005 in /hg/release/icedtea7-forest-2.1/jdk details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/jdk?cmd=changeset;node=e7d1cb36e005 author: andrew date: Mon Jan 14 22:22:15 2013 +0000 Added tag icedtea-2.1.4 for changeset d119038320a3 diffstat: .hgtags | 1 + src/share/classes/java/lang/invoke/MethodHandleNatives.java | 15 +++++++++++++ src/share/classes/sun/reflect/misc/MethodUtil.java | 6 +++++ 3 files changed, 22 insertions(+), 0 deletions(-) diffs (49 lines): diff -r d7ecb57d3c61 -r e7d1cb36e005 .hgtags --- a/.hgtags Tue Oct 16 21:33:05 2012 +0100 +++ b/.hgtags Mon Jan 14 22:22:15 2013 +0000 @@ -154,3 +154,4 @@ d5ddeffc46517a17e3236f1a2c2446d432370f5e icedtea-2.1.1 2b707a3a7d8d885d00eab5d0d43dd24d1c5a0213 icedtea-2.1.2 8c49c024c920982eb4a99b5960f260b9210eb363 icedtea-2.1.3 +d119038320a3133018f0b968a4e0a9d93ccef76c icedtea-2.1.4 diff -r d7ecb57d3c61 -r e7d1cb36e005 src/share/classes/java/lang/invoke/MethodHandleNatives.java --- a/src/share/classes/java/lang/invoke/MethodHandleNatives.java Tue Oct 16 21:33:05 2012 +0100 +++ b/src/share/classes/java/lang/invoke/MethodHandleNatives.java Mon Jan 14 22:22:15 2013 +0000 @@ -421,6 +421,21 @@ return defc == sun.misc.Unsafe.class; case "lookup": return defc == java.lang.invoke.MethodHandles.class; + case "findStatic": + case "findVirtual": + case "findConstructor": + case "findSpecial": + case "findGetter": + case "findSetter": + case "findStaticGetter": + case "findStaticSetter": + case "bind": + case "unreflect": + case "unreflectSpecial": + case "unreflectConstructor": + case "unreflectGetter": + case "unreflectSetter": + return defc == java.lang.invoke.MethodHandles.Lookup.class; case "invoke": return defc == java.lang.reflect.Method.class; case "get": diff -r d7ecb57d3c61 -r e7d1cb36e005 src/share/classes/sun/reflect/misc/MethodUtil.java --- a/src/share/classes/sun/reflect/misc/MethodUtil.java Tue Oct 16 21:33:05 2012 +0100 +++ b/src/share/classes/sun/reflect/misc/MethodUtil.java Mon Jan 14 22:22:15 2013 +0000 @@ -256,6 +256,12 @@ public static Object invoke(Method m, Object obj, Object[] params) throws InvocationTargetException, IllegalAccessException { if (m.getDeclaringClass().equals(AccessController.class) || + (m.getDeclaringClass().equals(java.lang.invoke.MethodHandles.class) + && m.getName().equals("lookup")) || + (m.getDeclaringClass().equals(java.lang.invoke.MethodHandles.Lookup.class) + && (m.getName().startsWith("find") || + m.getName().startsWith("bind") || + m.getName().startsWith("unreflect"))) || m.getDeclaringClass().equals(Method.class)) throw new InvocationTargetException( new UnsupportedOperationException("invocation not supported")); From andrew at icedtea.classpath.org Mon Jan 14 15:38:31 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:38:31 +0000 Subject: /hg/release/icedtea7-forest-2.2/jaxp: Added tag icedtea-2.2.4 fo... Message-ID: changeset 028a292be666 in /hg/release/icedtea7-forest-2.2/jaxp details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxp?cmd=changeset;node=028a292be666 author: andrew date: Mon Jan 14 22:54:02 2013 +0000 Added tag icedtea-2.2.4 for changeset dc64245ac19d diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r dc64245ac19d -r 028a292be666 .hgtags --- a/.hgtags Tue Oct 16 21:31:06 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:02 2013 +0000 @@ -177,3 +177,4 @@ c456e7c89da80da5786dd630145c707fc676f06e icedtea-2.2.1 335fb0b059b720dc8d066592f6296d086bb40e9e icedtea-2.2.2 d7e1594436a685ddae0a15bd3cb93be4e3cbe405 icedtea-2.2.3 +dc64245ac19d9c7af987f7c8197b766f39cc76aa icedtea-2.2.4 From andrew at icedtea.classpath.org Mon Jan 14 15:38:36 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:38:36 +0000 Subject: /hg/release/icedtea7-forest-2.2/jaxws: Added tag icedtea-2.2.4 f... Message-ID: changeset c620184ea425 in /hg/release/icedtea7-forest-2.2/jaxws details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/jaxws?cmd=changeset;node=c620184ea425 author: andrew date: Mon Jan 14 22:54:03 2013 +0000 Added tag icedtea-2.2.4 for changeset b41293d57940 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r b41293d57940 -r c620184ea425 .hgtags --- a/.hgtags Tue Oct 16 21:31:08 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:03 2013 +0000 @@ -177,3 +177,4 @@ abfb890c262a221b1cec76e43cf2a550ea166d84 icedtea-2.2.1 5471e01ef43b25d1546afaad51dad25b2b5e0aeb icedtea-2.2.2 e029fce63568e22c93d7d2943dcc0d0a26302425 icedtea-2.2.3 +b41293d5794099a25e7e7bc69ff8843529272508 icedtea-2.2.4 From andrew at icedtea.classpath.org Mon Jan 14 15:38:46 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 14 Jan 2013 23:38:46 +0000 Subject: /hg/release/icedtea7-forest-2.2/hotspot: Added tag icedtea-2.2.4... Message-ID: changeset 60d6e32e00a6 in /hg/release/icedtea7-forest-2.2/hotspot details: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.2/hotspot?cmd=changeset;node=60d6e32e00a6 author: andrew date: Mon Jan 14 22:54:04 2013 +0000 Added tag icedtea-2.2.4 for changeset 1a3dc05d59c2 diffstat: .hgtags | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diffs (8 lines): diff -r 1a3dc05d59c2 -r 60d6e32e00a6 .hgtags --- a/.hgtags Wed Oct 17 08:20:41 2012 +0100 +++ b/.hgtags Mon Jan 14 22:54:04 2013 +0000 @@ -288,3 +288,4 @@ 0000000000000000000000000000000000000000 icedtea-2.2.3 0000000000000000000000000000000000000000 icedtea-2.2.3 fe641a4f943d914e50b3a984eb9ab12b680d635a icedtea-2.2.3 +1a3dc05d59c23a25053386c921afc24d2a5d2734 icedtea-2.2.4 From andrew at icedtea.classpath.org Mon Jan 14 17:11:02 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 01:11:02 +0000 Subject: /hg/icedtea7: Remove use of 2.1 HotSpot for Zero, instead buildi... Message-ID: changeset 08d655f1631e in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=08d655f1631e author: Andrew John Hughes date: Tue Jan 15 01:10:49 2013 +0000 Remove use of 2.1 HotSpot for Zero, instead building from IcedTea7 HEAD's HotSpot. 2013-01-14 Andrew John Hughes * patches/hotspot/zero/7089790-bsd_port.patch, * patches/hotspot/zero/7098194-macosx_port.patch, * patches/hotspot/zero/7116189-setnativethreadname.patch, * patches/hotspot/zero/7175133-string_offset.patch, * patches/hotspot/zero/revert_arm_debug.patch: Remove patches for HotSpot from 2.1. * Makefile.am: (ICEDTEA_PATCHES): Add new patch to fix inclusion of libffi in Zero build. Remove ALT_HSBUILD patches. * acinclude.m4: (IT_WITH_HOTSPOT_BUILD): Use the default HotSpot in all cases again. * hotspot.map: Remove zero. Update default to bring in Zero build fix. * patches/zero_libffi.patch: Patch to fix use of LIBFFI_CFLAGS and LIBFFI_LIBS in the HotSpot build. diffstat: ChangeLog | 19 + Makefile.am | 11 +- acinclude.m4 | 6 +- hotspot.map | 4 +- patches/hotspot/zero/7089790-bsd_port.patch | 28881 --------------- patches/hotspot/zero/7098194-macosx_port.patch | 11389 ----- patches/hotspot/zero/7116189-setnativethreadname.patch | 67 - patches/hotspot/zero/7175133-string_offset.patch | 48 - patches/hotspot/zero/revert_arm_debug.patch | 55 - patches/zero_libffi.patch | 37 + 10 files changed, 59 insertions(+), 40458 deletions(-) diffs (truncated from 40575 to 500 lines): diff -r 0ec29918b804 -r 08d655f1631e ChangeLog --- a/ChangeLog Mon Jan 14 20:12:21 2013 +0000 +++ b/ChangeLog Tue Jan 15 01:10:49 2013 +0000 @@ -1,3 +1,22 @@ +2013-01-14 Andrew John Hughes + + * patches/hotspot/zero/7089790-bsd_port.patch, + * patches/hotspot/zero/7098194-macosx_port.patch, + * patches/hotspot/zero/7116189-setnativethreadname.patch, + * patches/hotspot/zero/7175133-string_offset.patch, + * patches/hotspot/zero/revert_arm_debug.patch: + Remove patches for HotSpot from 2.1. + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch to fix inclusion of + libffi in Zero build. Remove ALT_HSBUILD patches. + * acinclude.m4: + (IT_WITH_HOTSPOT_BUILD): Use the default HotSpot in + all cases again. + * hotspot.map: Remove zero. Update default to bring + in Zero build fix. + * patches/zero_libffi.patch: Patch to fix use + of LIBFFI_CFLAGS and LIBFFI_LIBS in the HotSpot build. + 2013-01-14 Andrew John Hughes * NEWS: diff -r 0ec29918b804 -r 08d655f1631e Makefile.am --- a/Makefile.am Mon Jan 14 20:12:21 2013 +0000 +++ b/Makefile.am Tue Jan 15 01:10:49 2013 +0000 @@ -240,19 +240,10 @@ # Patch list -ICEDTEA_PATCHES = +ICEDTEA_PATCHES = patches/zero_libffi.patch # Conditional patches -if WITH_ALT_HSBUILD -ICEDTEA_PATCHES += \ - patches/hotspot/$(HSBUILD)/7089790-bsd_port.patch \ - patches/hotspot/$(HSBUILD)/7098194-macosx_port.patch \ - patches/hotspot/$(HSBUILD)/7116189-setnativethreadname.patch \ - patches/hotspot/$(HSBUILD)/6924259-string_offset.patch \ - patches/hotspot/$(HSBUILD)/revert_arm_debug.patch -endif - if WITH_RHINO ICEDTEA_PATCHES += \ patches/rhino.patch diff -r 0ec29918b804 -r 08d655f1631e acinclude.m4 --- a/acinclude.m4 Mon Jan 14 20:12:21 2013 +0000 +++ b/acinclude.m4 Tue Jan 15 01:10:49 2013 +0000 @@ -924,11 +924,7 @@ AC_DEFUN([IT_WITH_HOTSPOT_BUILD], [ AC_REQUIRE([IT_ENABLE_ZERO_BUILD]) - if test "x${use_zero}" = "xyes"; then - DEFAULT_BUILD="zero" - else - DEFAULT_BUILD="default" - fi + DEFAULT_BUILD="default" AC_MSG_CHECKING([which HotSpot build to use]) AC_ARG_WITH([hotspot-build], [AS_HELP_STRING(--with-hotspot-build=BUILD,the HotSpot build to use [[BUILD=default]])], diff -r 0ec29918b804 -r 08d655f1631e hotspot.map --- a/hotspot.map Mon Jan 14 20:12:21 2013 +0000 +++ b/hotspot.map Tue Jan 15 01:10:49 2013 +0000 @@ -1,3 +1,1 @@ -# version url changeset sha256sum -default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 0685d07e5b43 ec2a2dd1423c62860925b24989729d356b441f250adc1496b5bc857baf7a2a44 -zero http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot a456d0771ba0 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0 +default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot a57f19258524 334a0eedef7b45c624885460a214bf697154e6611ef5d6874d506c258db27a5d diff -r 0ec29918b804 -r 08d655f1631e patches/hotspot/zero/7089790-bsd_port.patch --- a/patches/hotspot/zero/7089790-bsd_port.patch Mon Jan 14 20:12:21 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28881 +0,0 @@ -diff -Nru openjdk.orig/hotspot/agent/make/Makefile openjdk/hotspot/agent/make/Makefile ---- openjdk.orig/hotspot/agent/make/Makefile 2012-06-07 19:21:17.000000000 +0100 -+++ openjdk/hotspot/agent/make/Makefile 2012-07-25 15:09:16.172836100 +0100 -@@ -53,6 +53,9 @@ - sun.jvm.hotspot.compiler \ - sun.jvm.hotspot.debugger \ - sun.jvm.hotspot.debugger.amd64 \ -+sun.jvm.hotspot.debugger.bsd \ -+sun.jvm.hotspot.debugger.bsd.amd64 \ -+sun.jvm.hotspot.debugger.bsd.x86 \ - sun.jvm.hotspot.debugger.cdbg \ - sun.jvm.hotspot.debugger.cdbg.basic \ - sun.jvm.hotspot.debugger.cdbg.basic.amd64 \ -@@ -94,6 +97,9 @@ - sun.jvm.hotspot.prims \ - sun.jvm.hotspot.runtime \ - sun.jvm.hotspot.runtime.amd64 \ -+sun.jvm.hotspot.runtime.bsd \ -+sun.jvm.hotspot.runtime.bsd_amd64 \ -+sun.jvm.hotspot.runtime.bsd_x86 \ - sun.jvm.hotspot.runtime.ia64 \ - sun.jvm.hotspot.runtime.linux \ - sun.jvm.hotspot.runtime.linux_amd64 \ -@@ -144,6 +150,9 @@ - sun/jvm/hotspot/compiler/*.java \ - sun/jvm/hotspot/debugger/*.java \ - sun/jvm/hotspot/debugger/amd64/*.java \ -+sun/jvm/hotspot/debugger/bsd/*.java \ -+sun/jvm/hotspot/debugger/bsd/amd64/*.java \ -+sun/jvm/hotspot/debugger/bsd/x86/*.java \ - sun/jvm/hotspot/debugger/cdbg/*.java \ - sun/jvm/hotspot/debugger/cdbg/basic/*.java \ - sun/jvm/hotspot/debugger/cdbg/basic/amd64/*.java \ -@@ -180,6 +189,9 @@ - sun/jvm/hotspot/prims/*.java \ - sun/jvm/hotspot/runtime/*.java \ - sun/jvm/hotspot/runtime/amd64/*.java \ -+sun/jvm/hotspot/runtime/bsd/*.java \ -+sun/jvm/hotspot/runtime/bsd_amd64/*.java \ -+sun/jvm/hotspot/runtime/bsd_x86/*.java \ - sun/jvm/hotspot/runtime/ia64/*.java \ - sun/jvm/hotspot/runtime/linux/*.java \ - sun/jvm/hotspot/runtime/linux_amd64/*.java \ -diff -Nru openjdk.orig/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c openjdk/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c ---- openjdk.orig/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c 1970-01-01 01:00:00.000000000 +0100 -+++ openjdk/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c 2012-07-25 15:09:16.172836100 +0100 -@@ -0,0 +1,413 @@ -+/* -+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ * -+ */ -+ -+#include -+#include -+#include "libproc.h" -+ -+#if defined(x86_64) && !defined(amd64) -+#define amd64 1 -+#endif -+ -+#ifdef i386 -+#include "sun_jvm_hotspot_debugger_x86_X86ThreadContext.h" -+#endif -+ -+#ifdef amd64 -+#include "sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext.h" -+#endif -+ -+#if defined(sparc) || defined(sparcv9) -+#include "sun_jvm_hotspot_debugger_sparc_SPARCThreadContext.h" -+#endif -+ -+static jfieldID p_ps_prochandle_ID = 0; -+static jfieldID threadList_ID = 0; -+static jfieldID loadObjectList_ID = 0; -+ -+static jmethodID createClosestSymbol_ID = 0; -+static jmethodID createLoadObject_ID = 0; -+static jmethodID getThreadForThreadId_ID = 0; -+static jmethodID listAdd_ID = 0; -+ -+#define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; } -+#define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;} -+#define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; } -+#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;} -+ -+static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) { -+ (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg); -+} -+ -+static struct ps_prochandle* get_proc_handle(JNIEnv* env, jobject this_obj) { -+ jlong ptr = (*env)->GetLongField(env, this_obj, p_ps_prochandle_ID); -+ return (struct ps_prochandle*)(intptr_t)ptr; -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: init0 -+ * Signature: ()V -+ */ -+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0 -+ (JNIEnv *env, jclass cls) { -+ jclass listClass; -+ -+ if (init_libproc(getenv("LIBSAPROC_DEBUG") != NULL) != true) { -+ THROW_NEW_DEBUGGER_EXCEPTION("can't initialize libproc"); -+ } -+ -+ // fields we use -+ p_ps_prochandle_ID = (*env)->GetFieldID(env, cls, "p_ps_prochandle", "J"); -+ CHECK_EXCEPTION; -+ threadList_ID = (*env)->GetFieldID(env, cls, "threadList", "Ljava/util/List;"); -+ CHECK_EXCEPTION; -+ loadObjectList_ID = (*env)->GetFieldID(env, cls, "loadObjectList", "Ljava/util/List;"); -+ CHECK_EXCEPTION; -+ -+ // methods we use -+ createClosestSymbol_ID = (*env)->GetMethodID(env, cls, "createClosestSymbol", -+ "(Ljava/lang/String;J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;"); -+ CHECK_EXCEPTION; -+ createLoadObject_ID = (*env)->GetMethodID(env, cls, "createLoadObject", -+ "(Ljava/lang/String;JJ)Lsun/jvm/hotspot/debugger/cdbg/LoadObject;"); -+ CHECK_EXCEPTION; -+ getThreadForThreadId_ID = (*env)->GetMethodID(env, cls, "getThreadForThreadId", -+ "(J)Lsun/jvm/hotspot/debugger/ThreadProxy;"); -+ CHECK_EXCEPTION; -+ // java.util.List method we call -+ listClass = (*env)->FindClass(env, "java/util/List"); -+ CHECK_EXCEPTION; -+ listAdd_ID = (*env)->GetMethodID(env, listClass, "add", "(Ljava/lang/Object;)Z"); -+ CHECK_EXCEPTION; -+} -+ -+JNIEXPORT jint JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getAddressSize -+ (JNIEnv *env, jclass cls) -+{ -+#ifdef _LP64 -+ return 8; -+#else -+ return 4; -+#endif -+ -+} -+ -+ -+static void fillThreadsAndLoadObjects(JNIEnv* env, jobject this_obj, struct ps_prochandle* ph) { -+ int n = 0, i = 0; -+ -+ // add threads -+ n = get_num_threads(ph); -+ for (i = 0; i < n; i++) { -+ jobject thread; -+ jobject threadList; -+ lwpid_t lwpid; -+ -+ lwpid = get_lwp_id(ph, i); -+ thread = (*env)->CallObjectMethod(env, this_obj, getThreadForThreadId_ID, -+ (jlong)lwpid); -+ CHECK_EXCEPTION; -+ threadList = (*env)->GetObjectField(env, this_obj, threadList_ID); -+ CHECK_EXCEPTION; -+ (*env)->CallBooleanMethod(env, threadList, listAdd_ID, thread); -+ CHECK_EXCEPTION; -+ } -+ -+ // add load objects -+ n = get_num_libs(ph); -+ for (i = 0; i < n; i++) { -+ uintptr_t base; -+ const char* name; -+ jobject loadObject; -+ jobject loadObjectList; -+ -+ base = get_lib_base(ph, i); -+ name = get_lib_name(ph, i); -+ loadObject = (*env)->CallObjectMethod(env, this_obj, createLoadObject_ID, -+ (*env)->NewStringUTF(env, name), (jlong)0, (jlong)base); -+ CHECK_EXCEPTION; -+ loadObjectList = (*env)->GetObjectField(env, this_obj, loadObjectList_ID); -+ CHECK_EXCEPTION; -+ (*env)->CallBooleanMethod(env, loadObjectList, listAdd_ID, loadObject); -+ CHECK_EXCEPTION; -+ } -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: attach0 -+ * Signature: (I)V -+ */ -+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I -+ (JNIEnv *env, jobject this_obj, jint jpid) { -+ -+ struct ps_prochandle* ph; -+ if ( (ph = Pgrab(jpid)) == NULL) { -+ THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the process"); -+ } -+ (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph); -+ fillThreadsAndLoadObjects(env, this_obj, ph); -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: attach0 -+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V -+ */ -+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__Ljava_lang_String_2Ljava_lang_String_2 -+ (JNIEnv *env, jobject this_obj, jstring execName, jstring coreName) { -+ const char *execName_cstr; -+ const char *coreName_cstr; -+ jboolean isCopy; -+ struct ps_prochandle* ph; -+ -+ execName_cstr = (*env)->GetStringUTFChars(env, execName, &isCopy); -+ CHECK_EXCEPTION; -+ coreName_cstr = (*env)->GetStringUTFChars(env, coreName, &isCopy); -+ CHECK_EXCEPTION; -+ -+ if ( (ph = Pgrab_core(execName_cstr, coreName_cstr)) == NULL) { -+ (*env)->ReleaseStringUTFChars(env, execName, execName_cstr); -+ (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr); -+ THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the core file"); -+ } -+ (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph); -+ (*env)->ReleaseStringUTFChars(env, execName, execName_cstr); -+ (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr); -+ fillThreadsAndLoadObjects(env, this_obj, ph); -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: detach0 -+ * Signature: ()V -+ */ -+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0 -+ (JNIEnv *env, jobject this_obj) { -+ struct ps_prochandle* ph = get_proc_handle(env, this_obj); -+ if (ph != NULL) { -+ Prelease(ph); -+ } -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: lookupByName0 -+ * Signature: (Ljava/lang/String;Ljava/lang/String;)J -+ */ -+JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0 -+ (JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) { -+ const char *objectName_cstr, *symbolName_cstr; -+ jlong addr; -+ jboolean isCopy; -+ struct ps_prochandle* ph = get_proc_handle(env, this_obj); -+ -+ objectName_cstr = NULL; -+ if (objectName != NULL) { -+ objectName_cstr = (*env)->GetStringUTFChars(env, objectName, &isCopy); -+ CHECK_EXCEPTION_(0); -+ } -+ symbolName_cstr = (*env)->GetStringUTFChars(env, symbolName, &isCopy); -+ CHECK_EXCEPTION_(0); -+ -+ addr = (jlong) lookup_symbol(ph, objectName_cstr, symbolName_cstr); -+ -+ if (objectName_cstr != NULL) { -+ (*env)->ReleaseStringUTFChars(env, objectName, objectName_cstr); -+ } -+ (*env)->ReleaseStringUTFChars(env, symbolName, symbolName_cstr); -+ return addr; -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: lookupByAddress0 -+ * Signature: (J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol; -+ */ -+JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByAddress0 -+ (JNIEnv *env, jobject this_obj, jlong addr) { -+ uintptr_t offset; -+ const char* sym = NULL; -+ -+ struct ps_prochandle* ph = get_proc_handle(env, this_obj); -+ sym = symbol_for_pc(ph, (uintptr_t) addr, &offset); -+ if (sym == NULL) return 0; -+ return (*env)->CallObjectMethod(env, this_obj, createClosestSymbol_ID, -+ (*env)->NewStringUTF(env, sym), (jlong)offset); -+} -+ -+/* -+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal -+ * Method: readBytesFromProcess0 -+ * Signature: (JJ)Lsun/jvm/hotspot/debugger/ReadResult; -+ */ -+JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0 -+ (JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) { -+ -+ jboolean isCopy; -+ jbyteArray array; -+ jbyte *bufPtr; -+ ps_err_e err; -+ -+ array = (*env)->NewByteArray(env, numBytes); -+ CHECK_EXCEPTION_(0); -+ bufPtr = (*env)->GetByteArrayElements(env, array, &isCopy); -+ CHECK_EXCEPTION_(0); -+ -+ err = ps_pread(get_proc_handle(env, this_obj), (psaddr_t) (uintptr_t)addr, bufPtr, numBytes); -+ (*env)->ReleaseByteArrayElements(env, array, bufPtr, 0); -+ return (err == PS_OK)? array : 0; -+} -+ -+JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0 -+ (JNIEnv *env, jobject this_obj, jint lwp_id) { -+ -+ struct reg gregs; -+ jboolean isCopy; -+ jlongArray array; -+ jlong *regs; -+ -+ struct ps_prochandle* ph = get_proc_handle(env, this_obj); -+ if (get_lwp_regs(ph, lwp_id, &gregs) != true) { -+ THROW_NEW_DEBUGGER_EXCEPTION_("get_thread_regs failed for a lwp", 0); -+ } -+ -+#undef NPRGREG -+#ifdef i386 -+#define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG -+#endif -+#ifdef ia64 -+#define NPRGREG IA64_REG_COUNT -+#endif -+#ifdef amd64 -+#define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG -+#endif -+#if defined(sparc) || defined(sparcv9) -+#define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG -+#endif -+ -+ array = (*env)->NewLongArray(env, NPRGREG); -+ CHECK_EXCEPTION_(0); -+ regs = (*env)->GetLongArrayElements(env, array, &isCopy); -+ -+#undef REG_INDEX -+ -+#ifdef i386 -+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg -+ -+ regs[REG_INDEX(GS)] = (uintptr_t) gregs.r_gs; -+ regs[REG_INDEX(FS)] = (uintptr_t) gregs.r_fs; -+ regs[REG_INDEX(ES)] = (uintptr_t) gregs.r_es; -+ regs[REG_INDEX(DS)] = (uintptr_t) gregs.r_ds; -+ regs[REG_INDEX(EDI)] = (uintptr_t) gregs.r_edi; -+ regs[REG_INDEX(ESI)] = (uintptr_t) gregs.r_esi; -+ regs[REG_INDEX(FP)] = (uintptr_t) gregs.r_ebp; -+ regs[REG_INDEX(SP)] = (uintptr_t) gregs.r_isp; -+ regs[REG_INDEX(EBX)] = (uintptr_t) gregs.r_ebx; -+ regs[REG_INDEX(EDX)] = (uintptr_t) gregs.r_edx; -+ regs[REG_INDEX(ECX)] = (uintptr_t) gregs.r_ecx; -+ regs[REG_INDEX(EAX)] = (uintptr_t) gregs.r_eax; -+ regs[REG_INDEX(PC)] = (uintptr_t) gregs.r_eip; -+ regs[REG_INDEX(CS)] = (uintptr_t) gregs.r_cs; -+ regs[REG_INDEX(SS)] = (uintptr_t) gregs.r_ss; -+ -+#endif /* i386 */ -+ -+#if ia64 -+ regs = (*env)->GetLongArrayElements(env, array, &isCopy); -+ int i; -+ for (i = 0; i < NPRGREG; i++ ) { -+ regs[i] = 0xDEADDEAD; -+ } -+#endif /* ia64 */ -+ -+#ifdef amd64 -+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg -+ -+ regs[REG_INDEX(R15)] = gregs.r_r15; -+ regs[REG_INDEX(R14)] = gregs.r_r14; -+ regs[REG_INDEX(R13)] = gregs.r_r13; -+ regs[REG_INDEX(R12)] = gregs.r_r12; -+ regs[REG_INDEX(RBP)] = gregs.r_rbp; -+ regs[REG_INDEX(RBX)] = gregs.r_rbx; -+ regs[REG_INDEX(R11)] = gregs.r_r11; -+ regs[REG_INDEX(R10)] = gregs.r_r10; -+ regs[REG_INDEX(R9)] = gregs.r_r9; -+ regs[REG_INDEX(R8)] = gregs.r_r8; -+ regs[REG_INDEX(RAX)] = gregs.r_rax; -+ regs[REG_INDEX(RCX)] = gregs.r_rcx; -+ regs[REG_INDEX(RDX)] = gregs.r_rdx; -+ regs[REG_INDEX(RSI)] = gregs.r_rsi; -+ regs[REG_INDEX(RDI)] = gregs.r_rdi; -+ regs[REG_INDEX(RIP)] = gregs.r_rip; -+ regs[REG_INDEX(CS)] = gregs.r_cs; -+ regs[REG_INDEX(RSP)] = gregs.r_rsp; -+ regs[REG_INDEX(SS)] = gregs.r_ss; -+// regs[REG_INDEX(FSBASE)] = gregs.fs_base; -+// regs[REG_INDEX(GSBASE)] = gregs.gs_base; -+// regs[REG_INDEX(DS)] = gregs.ds; -+// regs[REG_INDEX(ES)] = gregs.es; -+// regs[REG_INDEX(FS)] = gregs.fs; -+// regs[REG_INDEX(GS)] = gregs.gs; -+ -+#endif /* amd64 */ From andrew at icedtea.classpath.org Mon Jan 14 17:45:29 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 01:45:29 +0000 Subject: /hg/release/icedtea7-2.3: 3 new changesets Message-ID: changeset f1922e9d9cb7 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=f1922e9d9cb7 author: Andrew John Hughes date: Tue Jan 15 01:43:55 2013 +0000 Include latest security fixes from 0day exploit. 2012-10-24 Andrew John Hughes * Makefile.am: (CORBA_CHANGESET): Update to IcedTea7 2.3 forest head; the tag icedtea-2.3.4. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * NEWS: List security fixes and set release date. * hotspot.map: Update default to IcedTea7 2.3.4. changeset 152e626ab6b5 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=152e626ab6b5 author: Andrew John Hughes date: Tue Jan 15 01:44:58 2013 +0000 Bump to 2.3.4 proper. 2013-01-15 Andrew John Hughes * configure.ac: Bump to 2.3.4 proper. changeset 6e94882432a3 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=6e94882432a3 author: Andrew John Hughes date: Tue Jan 15 01:45:18 2013 +0000 Added tag icedtea-2.3.4 for changeset 152e626ab6b5 diffstat: .hgtags | 1 + ChangeLog | 23 +++++++++++++++++++++++ Makefile.am | 24 ++++++++++++------------ NEWS | 9 ++++++++- configure.ac | 2 +- hotspot.map | 2 +- 6 files changed, 46 insertions(+), 15 deletions(-) diffs (109 lines): diff -r 2b707ba1e720 -r 6e94882432a3 .hgtags --- a/.hgtags Wed Oct 31 11:37:21 2012 +0000 +++ b/.hgtags Tue Jan 15 01:45:18 2013 +0000 @@ -37,3 +37,4 @@ 91b44f61a68f01e85d074a5c14862443740eb0af icedtea-2.3.1 a7c86c0471bd7a5cae44eef484fe09ca9e94d07c icedtea-2.3.2 a45882b177918373cfa9edeee75f23f06ffa8095 icedtea-2.3.3 +152e626ab6b53d539939371700c3ab456f00637a icedtea-2.3.4 diff -r 2b707ba1e720 -r 6e94882432a3 ChangeLog --- a/ChangeLog Wed Oct 31 11:37:21 2012 +0000 +++ b/ChangeLog Tue Jan 15 01:45:18 2013 +0000 @@ -1,3 +1,26 @@ +2013-01-15 Andrew John Hughes + + * configure.ac: Bump to 2.3.4 proper. + +2013-01-15 Andrew John Hughes + + * Makefile.am: + (CORBA_CHANGESET): Update to IcedTea7 2.3 forest head; + the tag icedtea-2.3.4. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + * NEWS: List security fixes and set release date. + * hotspot.map: Update default to IcedTea7 2.3.4. + 2012-10-24 Andrew John Hughes * NEWS: Corrected bad CVE number diff -r 2b707ba1e720 -r 6e94882432a3 Makefile.am --- a/Makefile.am Wed Oct 31 11:37:21 2012 +0000 +++ b/Makefile.am Tue Jan 15 01:45:18 2013 +0000 @@ -4,19 +4,19 @@ JDK_UPDATE_VERSION = 09 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 9a95d714d136 -JAXP_CHANGESET = f45296ac69be -JAXWS_CHANGESET = 03f54ef33914 -JDK_CHANGESET = 5ec94d162f05 -LANGTOOLS_CHANGESET = ec73c6927fb7 -OPENJDK_CHANGESET = 301e79a966b4 +CORBA_CHANGESET = dc9234e25ab0 +JAXP_CHANGESET = aa3654afea12 +JAXWS_CHANGESET = 7182233cc27e +JDK_CHANGESET = 96d4f04f2b7c +LANGTOOLS_CHANGESET = 946195011b30 +OPENJDK_CHANGESET = 8bd8e70d4a03 -CORBA_SHA256SUM = 4ad0ab1e0ab6f1e0402fd5a5f0b388bb33cc2c553df867e4c5e6ca78a4ede9bb -JAXP_SHA256SUM = b088dd5d383f27b2ccd433eebcbf3f73c016b3359abdae2a5575455d56668141 -JAXWS_SHA256SUM = 86dfb4fda79de7459b17b6efac6b8d5d6fd7bb1175b7e4ff22ba2ce4a903c05a -JDK_SHA256SUM = 11a77a35661b2239e73c3fb1318fb6371d0cd7130594d1405df1cb1b17040ea6 -LANGTOOLS_SHA256SUM = c7c67f6805d05c0fa5ddd2a7e406a6adcd0823dd008005563f2b2a88d1f3e6b6 -OPENJDK_SHA256SUM = dce85d9bcc6e213240b6ad49755bf57fc60a515461664890efcce2ed615ca70b +CORBA_SHA256SUM = 911a049e735c1ab0dfa65426ada7a11494d51fec88126d34588b23f06ef7acf8 +JAXP_SHA256SUM = cc9a95c09be36753f9dd5aacd961400deddbdb757f8ea547cd7073f7ab7b87b7 +JAXWS_SHA256SUM = 7e694d90969413972a51ad1202f3c042b1eca92591e43f1f94f4421a6be5c590 +JDK_SHA256SUM = afba9798a4f2407bdf2cd58d0a99d94bb76ae15aec6ad9cfa0375fb255b0032b +LANGTOOLS_SHA256SUM = a9f56fbd58047adc9296800cd9c534375ef052074cd40ebc0da1f7db6ce09144 +OPENJDK_SHA256SUM = 3ea7c4acd4c2f7b91588231427a8685010f8ce7eb0b9610457d6a35bf2afd6bd CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 diff -r 2b707ba1e720 -r 6e94882432a3 NEWS --- a/NEWS Wed Oct 31 11:37:21 2012 +0000 +++ b/NEWS Tue Jan 15 01:45:18 2013 +0000 @@ -10,7 +10,14 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 2.3.4 (20XX-XX-XX): +New in release 2.3.4 (2013-01-15): + +* Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions +* Bug fixes + - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts New in release 2.3.3 (2012-10-17): diff -r 2b707ba1e720 -r 6e94882432a3 configure.ac --- a/configure.ac Wed Oct 31 11:37:21 2012 +0000 +++ b/configure.ac Tue Jan 15 01:45:18 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.3.4pre], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.3.4], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r 2b707ba1e720 -r 6e94882432a3 hotspot.map --- a/hotspot.map Wed Oct 31 11:37:21 2012 +0000 +++ b/hotspot.map Tue Jan 15 01:45:18 2013 +0000 @@ -1,3 +1,3 @@ # version url changeset sha256sum -default http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot d2d0a106917c 872e9e0c36b9fd93e81ac131e60deadb0afa22aa77447150bb45ede77ee6db8b +default http://icedtea.classpath.org/hg/release/icedtea7-forest-2.3/hotspot beecf0b9e760 de7a5397a83bb7c7be2458809b576133e8a3b75dc62d62d2f2983b97c220dc4f zero http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot a456d0771ba0 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0 From ptisnovs at icedtea.classpath.org Tue Jan 15 02:49:51 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 15 Jan 2013 10:49:51 +0000 Subject: /hg/rhino-tests: New tests added to the test suite SimpleScriptC... Message-ID: changeset 0319b6a1e77f in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=0319b6a1e77f author: Pavel Tisnovsky date: Tue Jan 15 11:52:58 2013 +0100 New tests added to the test suite SimpleScriptContextClassTest. diffstat: ChangeLog | 7 +++++- src/org/RhinoTests/SimpleScriptContextClassTest.java | 24 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletions(-) diffs (48 lines): diff -r cf26ea1499fc -r 0319b6a1e77f ChangeLog --- a/ChangeLog Mon Jan 14 10:27:29 2013 +0100 +++ b/ChangeLog Tue Jan 15 11:52:58 2013 +0100 @@ -1,4 +1,9 @@ -2013-01-12 Pavel Tisnovsky +2013-01-15 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleScriptContextClassTest.java: + New tests added to the test suite SimpleScriptContextClassTest. + +2013-01-14 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: Added two new tests: getMethod() and getDeclaredMethod(). diff -r cf26ea1499fc -r 0319b6a1e77f src/org/RhinoTests/SimpleScriptContextClassTest.java --- a/src/org/RhinoTests/SimpleScriptContextClassTest.java Mon Jan 14 10:27:29 2013 +0100 +++ b/src/org/RhinoTests/SimpleScriptContextClassTest.java Tue Jan 15 11:52:58 2013 +0100 @@ -623,6 +623,30 @@ } /** + * Test for method javax.script.SimpleScriptContext.getClass().getEnclosingClass() + */ + protected void testGetEnclosingClass() { + Class cls = this.simpleScriptContextClass.getEnclosingClass(); + assertNull(cls, "getEnclosingClass() does not return null"); + } + + /** + * Test for method javax.script.SimpleScriptContext.getClass().getEnclosingConstructor() + */ + protected void testGetEnclosingConstructor() { + Constructor cons = this.simpleScriptContextClass.getEnclosingConstructor(); + assertNull(cons, "getEnclosingConstructor() does not return null"); + } + + /** + * Test for method javax.script.SimpleScriptContext.getClass().getEnclosingMethod() + */ + protected void testGetEnclosingMethod() { + Method m = this.simpleScriptContextClass.getEnclosingMethod(); + assertNull(m, "getEnclosingMethod() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.SimpleScriptContext */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Tue Jan 15 02:55:41 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 15 Jan 2013 10:55:41 +0000 Subject: /hg/gfx-test: Added support for "filtering" tests by pattern con... Message-ID: changeset 5fa3a63c40a8 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=5fa3a63c40a8 author: Pavel Tisnovsky date: Tue Jan 15 11:58:47 2013 +0100 Added support for "filtering" tests by pattern containing part of its names. diffstat: ChangeLog | 8 ++++ src/org/gfxtest/common/Configuration.java | 2 +- src/org/gfxtest/framework/GfxTest.java | 17 +++++++- src/org/gfxtest/framework/GfxTestConfiguration.java | 41 ++++++++++++++++++++- 4 files changed, 64 insertions(+), 4 deletions(-) diffs (146 lines): diff -r 2a073104d1e2 -r 5fa3a63c40a8 ChangeLog --- a/ChangeLog Mon Jan 14 11:13:54 2013 +0100 +++ b/ChangeLog Tue Jan 15 11:58:47 2013 +0100 @@ -1,3 +1,11 @@ +2013-01-15 Pavel Tisnovsky + + * src/org/gfxtest/common/Configuration.java: + * src/org/gfxtest/framework/GfxTest.java: + * src/org/gfxtest/framework/GfxTestConfiguration.java: + Added support for "filtering" tests by pattern containing part of its + names. + 2013-01-14 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: diff -r 2a073104d1e2 -r 5fa3a63c40a8 src/org/gfxtest/common/Configuration.java --- a/src/org/gfxtest/common/Configuration.java Mon Jan 14 11:13:54 2013 +0100 +++ b/src/org/gfxtest/common/Configuration.java Tue Jan 15 11:58:47 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011, 2012 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. diff -r 2a073104d1e2 -r 5fa3a63c40a8 src/org/gfxtest/framework/GfxTest.java --- a/src/org/gfxtest/framework/GfxTest.java Mon Jan 14 11:13:54 2013 +0100 +++ b/src/org/gfxtest/framework/GfxTest.java Tue Jan 15 11:58:47 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011, 2012 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -460,8 +460,21 @@ */ private void tryToInvokeTestMethod(TestType testType, GfxTestConfiguration configuration, Method method) { + // read method name String methodName = method.getName(); - if (method.getName().startsWith("test")) //$NON-NLS-1$ + // read test filter + String filter = configuration.getFilter(); + + // filter out test methods whose names don't contain given pattern + if (filter != null) + { + // test name does not contains given pattern + if (!methodName.contains(filter)) + { + return; + } + } + if (methodName.startsWith("test")) //$NON-NLS-1$ { this.log.logBegin(methodName); switch (testType.value()) diff -r 2a073104d1e2 -r 5fa3a63c40a8 src/org/gfxtest/framework/GfxTestConfiguration.java --- a/src/org/gfxtest/framework/GfxTestConfiguration.java Mon Jan 14 11:13:54 2013 +0100 +++ b/src/org/gfxtest/framework/GfxTestConfiguration.java Tue Jan 15 11:58:47 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -105,6 +105,12 @@ private int imageType; /** + * Filter, ie. part of test name. Only tests which contains this pattern + * in its names will be run. + */ + private String filter; + + /** * Constructor called indirectly when the test suite are started. * * @param args @@ -132,6 +138,7 @@ this.imageHeight = processImageHeightArgument(options); this.imageType = processImageTypeArgument(options); this.outputPath = processOutputPathArgument(options); + this.filter = processFilter(options); } /** @@ -224,6 +231,27 @@ } /** + * Process argument used for setting test filter. + * + * @param options + * command line options + * @return test filter + * @throws ConfigurationException when configuration is wrong + */ + private String processFilter(Map options) throws ConfigurationException + { + try + { + return getStringParameter(options, "f"); //$NON-NLS-1$ + } + catch (ParameterNotFoundException e) + { + this.log.logWarning("filter not specified in command line, using default setting: null"); + return null; + } + } + + /** * This method prints all test suite parameters. */ @Override @@ -234,6 +262,7 @@ this.log.logSet("image width", Integer.valueOf(this.imageWidth)); this.log.logSet("image height", Integer.valueOf(this.imageHeight)); this.log.logSet("image type", Integer.valueOf(this.imageType)); + this.log.logSet("filter", this.filter); } /** @@ -310,4 +339,14 @@ return this.imageType; } + /** + * Getter for filter attribute. + * + * @return current value of attribute filter. + */ + public String getFilter() + { + return this.filter; + } + } From andrew at icedtea.classpath.org Tue Jan 15 04:46:03 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 12:46:03 +0000 Subject: /hg/release/icedtea7-2.3: 5 new changesets Message-ID: changeset e3c253d72ae5 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=e3c253d72ae5 author: Andrew John Hughes date: Tue Jan 15 08:58:30 2013 +0000 Update ecj stringswitch patch to work after security update. 2013-01-15 Andrew John Hughes * patches/boot/ecj-stringswitch.patch: Updated to work post-security-patches. changeset 22c8a74134c1 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=22c8a74134c1 author: Andrew John Hughes date: Tue Jan 15 09:40:18 2013 +0000 When building with PaX, PaX mark the output directory before running the just-built rmic. 2013-01-15 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch when building with PaX. * patches/pax-mark-rmic-java.patch: PaX mark output directory before running just-built rmic. changeset 8e6c3e993e92 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=8e6c3e993e92 author: Andrew John Hughes date: Tue Jan 15 09:42:56 2013 +0000 Mention fix for G422525 in NEWS. 2013-01-15 Andrew John Hughes * NEWS: Mention PaX bug fix from Gentoo, G422525. changeset 6c1ea875ae64 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=6c1ea875ae64 author: Andrew John Hughes date: Tue Jan 15 09:43:10 2013 +0000 Removed tag icedtea-2.3.4 changeset fa200daee354 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=fa200daee354 author: Andrew John Hughes date: Tue Jan 15 09:43:14 2013 +0000 Added tag icedtea-2.3.4 for changeset 6c1ea875ae64 diffstat: .hgtags | 4 + ChangeLog | 19 ++ Makefile.am | 4 +- NEWS | 1 + patches/boot/ecj-stringswitch.patch | 299 +++++++++++++++++++---------------- patches/pax-mark-rmic-java.patch | 10 + 6 files changed, 201 insertions(+), 136 deletions(-) diffs (430 lines): diff -r 6e94882432a3 -r fa200daee354 .hgtags --- a/.hgtags Tue Jan 15 01:45:18 2013 +0000 +++ b/.hgtags Tue Jan 15 09:43:14 2013 +0000 @@ -38,3 +38,7 @@ a7c86c0471bd7a5cae44eef484fe09ca9e94d07c icedtea-2.3.2 a45882b177918373cfa9edeee75f23f06ffa8095 icedtea-2.3.3 152e626ab6b53d539939371700c3ab456f00637a icedtea-2.3.4 +152e626ab6b53d539939371700c3ab456f00637a icedtea-2.3.4 +0000000000000000000000000000000000000000 icedtea-2.3.4 +0000000000000000000000000000000000000000 icedtea-2.3.4 +6c1ea875ae648f7b4fac17070a7b108645211808 icedtea-2.3.4 diff -r 6e94882432a3 -r fa200daee354 ChangeLog --- a/ChangeLog Tue Jan 15 01:45:18 2013 +0000 +++ b/ChangeLog Tue Jan 15 09:43:14 2013 +0000 @@ -1,3 +1,22 @@ +2013-01-15 Andrew John Hughes + + * NEWS: Mention PaX bug fix from Gentoo, + G422525. + +2013-01-15 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add patch when building + with PaX. + * patches/pax-mark-rmic-java.patch: + PaX mark output directory before running just-built + rmic. + +2013-01-15 Andrew John Hughes + + * patches/boot/ecj-stringswitch.patch: + Updated to work post-security-patches. + 2013-01-15 Andrew John Hughes * configure.ac: Bump to 2.3.4 proper. diff -r 6e94882432a3 -r fa200daee354 Makefile.am --- a/Makefile.am Tue Jan 15 01:45:18 2013 +0000 +++ b/Makefile.am Tue Jan 15 09:43:14 2013 +0000 @@ -296,7 +296,9 @@ endif if WITH_PAX -ICEDTEA_PATCHES += patches/test_gamma.patch +ICEDTEA_PATCHES += \ + patches/test_gamma.patch \ + patches/pax-mark-rmic-java.patch endif ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES) diff -r 6e94882432a3 -r fa200daee354 NEWS --- a/NEWS Tue Jan 15 01:45:18 2013 +0000 +++ b/NEWS Tue Jan 15 09:43:14 2013 +0000 @@ -18,6 +18,7 @@ - S8006125: Update MethodHandles library interactions * Bug fixes - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts + - G422525: Fix building with PaX enabled kernels. New in release 2.3.3 (2012-10-17): diff -r 6e94882432a3 -r fa200daee354 patches/boot/ecj-stringswitch.patch --- a/patches/boot/ecj-stringswitch.patch Tue Jan 15 01:45:18 2013 +0000 +++ b/patches/boot/ecj-stringswitch.patch Tue Jan 15 09:43:14 2013 +0000 @@ -1,6 +1,6 @@ diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-27 14:31:14.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2011-07-27 14:54:48.369035615 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/ClassReader.java 2013-01-15 02:08:56.592702486 +0000 @@ -350,18 +350,15 @@ if (attrCommands != null) { Attribute.Layout lkey = Attribute.keyForLookup(ctype, name); @@ -30,9 +30,9 @@ } // Find canonical instance of the requested attribute. diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-06-11 00:38:08.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2011-07-27 14:52:45.595028657 +0100 -@@ -71,16 +71,14 @@ +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Driver.java 2013-01-15 02:08:56.608702746 +0000 +@@ -73,16 +73,14 @@ { // Non-standard, undocumented "--unpack" switch enables unpack mode. String arg0 = av.isEmpty() ? "" : av.get(0); @@ -56,7 +56,7 @@ } // Collect engine properties here: -@@ -180,21 +178,16 @@ +@@ -182,21 +180,16 @@ // Deal with remaining non-engine properties: for (String opt : avProps.keySet()) { String val = avProps.get(opt); @@ -89,8 +89,8 @@ if (logFile != null && !logFile.equals("")) { diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-27 14:31:14.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2011-07-27 14:52:45.599028722 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/java/util/jar/pack/Package.java 2013-01-15 02:08:56.608702746 +0000 @@ -1107,30 +1107,25 @@ // what is one of { Debug, Compile, Constant, Exceptions, InnerClasses } if (verbose > 0) @@ -142,8 +142,8 @@ } diff -Nru openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java ---- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java 2011-04-30 03:28:32.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java 2011-07-27 14:52:45.603028787 +0100 +--- openjdk-boot.orig/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/com/sun/security/ntlm/NTLM.java 2013-01-15 02:08:56.612702810 +0000 @@ -64,17 +64,23 @@ protected NTLM(String version) throws NTLMException { @@ -179,132 +179,10 @@ try { fac = SecretKeyFactory.getInstance ("DES"); cipher = Cipher.getInstance ("DES/ECB/NoPadding"); -diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java ---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java 2011-07-12 12:43:47.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java 2011-07-27 14:52:45.607028852 +0100 -@@ -211,14 +211,16 @@ - - private static - boolean isObjectMethod(Method m) { -- switch (m.getName()) { -- case "toString": -+ String name = m.getName(); -+ if ("toString".equals(name)) { - return (m.getReturnType() == String.class - && m.getParameterTypes().length == 0); -- case "hashCode": -+ } -+ if ("hashCode".equals(name)) { - return (m.getReturnType() == int.class - && m.getParameterTypes().length == 0); -- case "equals": -+ } -+ if ("equals".equals(name)) { - return (m.getReturnType() == boolean.class - && m.getParameterTypes().length == 1 - && m.getParameterTypes()[0] == Object.class); -@@ -229,12 +231,14 @@ - private static - Object callObjectMethod(Object self, Method m, Object[] args) { - assert(isObjectMethod(m)) : m; -- switch (m.getName()) { -- case "toString": -+ String name = m.getName(); -+ if ("toString".equals(name)) { - return self.getClass().getName() + "@" + Integer.toHexString(self.hashCode()); -- case "hashCode": -+ } -+ if ("hashCode".equals(name)) { - return System.identityHashCode(self); -- case "equals": -+ } -+ if ("equals".equals(name)) { - return (self == args[0]); - } - return null; -diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java ---- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2011-06-11 00:38:09.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2011-07-27 14:52:45.603028787 +0100 -@@ -117,24 +117,20 @@ - String optStr = (opts.length > 1 && opts[1] != null) - ? opts[1].trim() - : "all"; -- switch (optStr) { -- case "vm": -+ if ("vm".equals(optStr)) -+ printVmSettings(ostream, initialHeapSize, maxHeapSize, -+ stackSize, isServer); -+ else if ("properties".equals(optStr)) -+ printProperties(ostream); -+ else if ("locale".equals(optStr)) -+ printLocale(ostream); -+ else -+ { - printVmSettings(ostream, initialHeapSize, maxHeapSize, -- stackSize, isServer); -- break; -- case "properties": -+ stackSize, isServer); - printProperties(ostream); -- break; -- case "locale": - printLocale(ostream); -- break; -- default: -- printVmSettings(ostream, initialHeapSize, maxHeapSize, -- stackSize, isServer); -- printProperties(ostream); -- printLocale(ostream); -- break; -- } -+ } - } - - /* -diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java ---- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2011-04-30 03:28:32.000000000 +0100 -+++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2011-07-27 14:52:45.607028852 +0100 -@@ -383,19 +383,23 @@ - GE; // ">=" - - static Operator of(String s) { -- switch (s) { -- case "==": -- return EQ; -- case "!=": -- return NE; -- case "<": -- return LT; -- case "<=": -- return LE; -- case ">": -- return GT; -- case ">=": -- return GE; -+ if ("==".equals(s)) { -+ return EQ; -+ } -+ if ("!=".equals(s)) { -+ return NE; -+ } -+ if ("<".equals(s)) { -+ return LT; -+ } -+ if ("<=".equals(s)) { -+ return LE; -+ } -+ if (">".equals(s)) { -+ return GT; -+ } -+ if (">=".equals(s)) { -+ return GE; - } - - throw new IllegalArgumentException( diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java ---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 03:48:53.678554395 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 04:20:20.203700764 +0100 -@@ -411,89 +411,84 @@ +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-15 02:19:34.315049222 +0000 +@@ -411,104 +411,99 @@ static boolean isCallerSensitive(MemberName mem) { assert(mem.isInvocable()); Class defc = mem.getDeclaringClass(); @@ -319,6 +197,35 @@ - case "lookup": + } else if ("lookup".equals(memName)) { return defc == java.lang.invoke.MethodHandles.class; +- case "findStatic": +- case "findVirtual": +- case "findConstructor": +- case "findSpecial": +- case "findGetter": +- case "findSetter": +- case "findStaticGetter": +- case "findStaticSetter": +- case "bind": +- case "unreflect": +- case "unreflectSpecial": +- case "unreflectConstructor": +- case "unreflectGetter": +- case "unreflectSetter": ++ } else if ("findStatic".equals(memName) || ++ "findVirtual".equals(memName) || ++ "findConstructor".equals(memName) || ++ "findSpecial".equals(memName) || ++ "findGetter".equals(memName) || ++ "findSetter".equals(memName) || ++ "findStaticGetter".equals(memName) || ++ "findStaticSetter".equals(memName) || ++ "bind".equals(memName) || ++ "unreflect".equals(memName) || ++ "unreflectSpecial".equals(memName) || ++ "unreflectConstructor".equals(memName) || ++ "unreflectGetter".equals(memName) || ++ "unreflectSetter".equals(memName)) { + return defc == java.lang.invoke.MethodHandles.Lookup.class; - case "invoke": + } else if ("invoke".equals(memName)) { return defc == java.lang.reflect.Method.class; @@ -451,3 +358,125 @@ return defc == java.util.ResourceBundle.class; } return false; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java 2013-01-15 02:08:56.620702941 +0000 +@@ -219,14 +219,16 @@ + + private static + boolean isObjectMethod(Method m) { +- switch (m.getName()) { +- case "toString": ++ String name = m.getName(); ++ if ("toString".equals(name)) { + return (m.getReturnType() == String.class + && m.getParameterTypes().length == 0); +- case "hashCode": ++ } ++ if ("hashCode".equals(name)) { + return (m.getReturnType() == int.class + && m.getParameterTypes().length == 0); +- case "equals": ++ } ++ if ("equals".equals(name)) { + return (m.getReturnType() == boolean.class + && m.getParameterTypes().length == 1 + && m.getParameterTypes()[0] == Object.class); +@@ -237,12 +239,14 @@ + private static + Object callObjectMethod(Object self, Method m, Object[] args) { + assert(isObjectMethod(m)) : m; +- switch (m.getName()) { +- case "toString": ++ String name = m.getName(); ++ if ("toString".equals(name)) { + return self.getClass().getName() + "@" + Integer.toHexString(self.hashCode()); +- case "hashCode": ++ } ++ if ("hashCode".equals(name)) { + return System.identityHashCode(self); +- case "equals": ++ } ++ if ("equals".equals(name)) { + return (self == args[0]); + } + return null; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/launcher/LauncherHelper.java 2013-01-15 02:08:56.624703006 +0000 +@@ -117,24 +117,20 @@ + String optStr = (opts.length > 1 && opts[1] != null) + ? opts[1].trim() + : "all"; +- switch (optStr) { +- case "vm": ++ if ("vm".equals(optStr)) ++ printVmSettings(ostream, initialHeapSize, maxHeapSize, ++ stackSize, isServer); ++ else if ("properties".equals(optStr)) ++ printProperties(ostream); ++ else if ("locale".equals(optStr)) ++ printLocale(ostream); ++ else ++ { + printVmSettings(ostream, initialHeapSize, maxHeapSize, +- stackSize, isServer); +- break; +- case "properties": ++ stackSize, isServer); + printProperties(ostream); +- break; +- case "locale": + printLocale(ostream); +- break; +- default: +- printVmSettings(ostream, initialHeapSize, maxHeapSize, +- stackSize, isServer); +- printProperties(ostream); +- printLocale(ostream); +- break; +- } ++ } + } + + /* +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/security/util/DisabledAlgorithmConstraints.java 2013-01-15 02:08:56.628703070 +0000 +@@ -378,19 +378,23 @@ + GE; // ">=" + + static Operator of(String s) { +- switch (s) { +- case "==": +- return EQ; +- case "!=": +- return NE; +- case "<": +- return LT; +- case "<=": +- return LE; +- case ">": +- return GT; +- case ">=": +- return GE; ++ if ("==".equals(s)) { ++ return EQ; ++ } ++ if ("!=".equals(s)) { ++ return NE; ++ } ++ if ("<".equals(s)) { ++ return LT; ++ } ++ if ("<=".equals(s)) { ++ return LE; ++ } ++ if (">".equals(s)) { ++ return GT; ++ } ++ if (">=".equals(s)) { ++ return GE; + } + + throw new IllegalArgumentException( diff -r 6e94882432a3 -r fa200daee354 patches/pax-mark-rmic-java.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pax-mark-rmic-java.patch Tue Jan 15 09:43:14 2013 +0000 @@ -0,0 +1,10 @@ +--- openjdk/jdk/make/com/sun/jmx/Makefile ++++ openjdk/jdk/make/com/sun/jmx/Makefile +@@ -119,6 +119,7 @@ + + $(CLASSDESTDIR)/%_Stub.class: $(CLASSDESTDIR)/%.class + $(prep-target) ++ "$(TOPDIR)"/../../pax-mark-vm "$(OUTPUTDIR)" + $(RMIC) -classpath "$(CLASSDESTDIR)" \ + -d $(CLASSDESTDIR) \ + -v1.2 \ From jfabriko at redhat.com Tue Jan 15 04:59:54 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Tue, 15 Jan 2013 13:59:54 +0100 Subject: [rfc][icedtea-web] a new reproducer LiveConnect "function parameters" tests In-Reply-To: <50C8EB31.2000105@redhat.com> References: <5072BA03.5070804@redhat.com> <50C8EB31.2000105@redhat.com> Message-ID: <50F552CA.6080302@redhat.com> Hello, I have rewritten the JSToJFuncParam reproducer according to Adam's comments, please see the attached patch. Jana 2013-01-15 Jana Fabrikova * /tests/reproducers/simple/JSToJFuncParam/testcases/JSToJFuncParamTest.java: adding 19 testcases - 18 based on the interactive Liveconnect JS->Java function parameter tests, 1 additional testcase for passing parameters of type JSObject (from JS to Java) * /tests/reproducers/simple/JSToJFuncParam/srcs/JSToJFuncParam.java: the applet whose methods are invoked from JS during the tests * /tests/reproducers/simple/JSToJFuncParam/resources/JSToJava_FuncParam.js: the JavaScript code for calling the applet methods from JS * /tests/reproducers/simple/JSToJFuncParam/resources/jstoj-funcparam.jnlp: java network launch protocol file for displaying applet in the html page * /tests/reproducers/simple/JSToJFuncParam/resources/JSToJFuncParam.html: the html page with java applet embedded, displayed in browser during the tests On 12/12/2012 09:38 PM, Adam Domurad wrote: > On 10/08/2012 07:33 AM, Jana Fabrikova wrote: >> 2012-10-08 Jana Fabrikova >> >> * /tests/reproducers/simple/JSToJFuncParam: >> adding a new reproducer for the third LiveConnect >> test (Tests for function parameter conversion when >> calling Java functions from JavaScript.) > > Describing the individual files here is more standard I think > >> >> >> I would like to ask for review of the attached patch, >> thank you, >> Jana >> > > [from another email:] >> I would like to ask, if you can have a look at the following >> reproducers, that I have send for review earlier (patches attached). >> It may be the case, that they have the same errors as JSToJSet, but I >> would like to > > Less-than-ideal perhaps, but error is a strong word, since the tests do > work :) > > > Sorry for letting these drop down the lists :) You can always ask for a > review on IRC, or reply to the patch so that they reappear on the list. > > -------------------------------- > > General comments for: > JSToJFuncParam > JSToJFuncReturn > JSToJFuncResol > JSToJTypeConv > > I'd avoid any filenames with the same name in reproducers. Because of > how the reproducer system is implemented, one copy will 'win' and the > rest will be overridden, making it hard to correctly update. > For the case of 'DummyObject' I think the cleanest solution, since it so > simple, is to have this object be defined inside the same class file. > > This goes doubly so for OverloadTestHelper1,2,3. > > For the case of JS*auxiliary.js files -- although I do not like the > approach these files take, more on this later -- if multiple copies > exist its best to put them in their own 'test folder' that only has > resources. Since all tests are conveniently extracted into same > directory they can be used as before. > > Another special case worthy of test is JSObject (for all JS<->J tests). > It can be used to encapsulate any javascript object. Possibly use an > object like { "key" : "value" } and test that it is correctly passed > around (Note: In fact passing a java JSObject to javascript will not > work correctly until my patch goes in). > > -------------------------------- > First off, JSToJFuncParam: > > >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/resources/JSToJFuncParam.html b/tests/reproducers/simple/JSToJFuncParam/resources/JSToJFuncParam.html >> >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/reproducers/simple/JSToJFuncParam/resources/JSToJFuncParam.html >> @@ -0,0 +1,98 @@ >> + >> + >> + >> + JavaScript to Java LiveConnect - function parameter >> conversion >> + >> + >> + >> + >> + >> + >> + >> + >> +

The JSToJFuncParam html page

>> + >> + > name="JSToJFuncParam" id="jstojFuncParamApplet" MAYSCRIPT> >> + >> + >> + >> +
>> + >> + >> + >> + >> + >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/resources/JSToJ_auxiliary.js >> b/tests/reproducers/simple/JSToJFuncParam/resources/JSToJ_auxiliary.js >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/reproducers/simple/JSToJFuncParam/resources/JSToJ_auxiliary.js >> @@ -0,0 +1,69 @@ >> +/* >> +JSToJ_auxiliary.js >> +This file contains auxiliary JavaScript functions for LiveConnect >> tests output, >> +the following reproducers have this file as a common resource: >> +- JSToJGet >> +- JSToJSet >> +- JSToJFuncParam >> +- JSToJFuncReturn >> +- JSToJFuncResol >> +- JSToJTypeConv >> +- JToJSGet >> +- JToJSSet >> +- JToJSFuncParam >> +- JToJSFuncReturn >> +- JToJSEval >> +*/ >> + >> +function check(actual, expected, expectedtype, testid, appletName ) { >> + if (actual == expected) { //the same value >> + if (typeof(actual) == expectedtype) { //the same type >> + passTest( testid, appletName ); >> + } else { >> + failTypeTest( testid, appletName, actual, expectedtype ); >> + } >> + } else { >> + failValTest( testid, appletName, actual, expected ); >> + } >> +} >> + >> +function passTest( testid, appletName ){ >> + var passStr = "Test no."+testid+" - passed."; >> + //applet stdout >> + appletStdOut( appletName, passStr); >> + //html page >> + appendMessageDiv(passStr); >> +} >> + >> +function failValTest( testid, appletName, actual, expected ){ >> + var failValStr = "Test no."+testid+" - failed, value mismatch. >> expected:["+expected+"] found:["+actual+"]."; >> + //applet stdout >> + appletStdOut( appletName, failValStr); >> + //html page >> + appendMessageDiv(failValStr); >> +} >> + >> +function failTypeTest( testid, appletName, actual, expectedtype ){ >> + var failTypeStr = "Test no."+testid+" - failed, type mismatch. >> expected:["+expectedtype+"] found:["+typeof(actual)+"]."; >> + //applet stdout >> + appletStdOutLn( appletName, failTypeStr); >> + //html page >> + appendMessageDiv(failTypeStr); >> +} >> + >> +function appletStdOut( appletName, str ){ >> + document.getElementById( appletName ).stdOutWrite( str ); >> +} >> + >> +function appletStdOutLn( appletName, str ){ >> + document.getElementById( appletName ).stdOutWriteln( str ); >> +} >> + >> +function afterTestsMessage( appletName ){ >> + document.getElementById( appletName ).stdOutWriteln("afterTests"); >> +} >> + >> +function appendMessageDiv( message ){ >> + var messageDiv = document.getElementById( 'messageDiv' ); >> + messageDiv.appendChild( document.createTextNode(message) ); >> +} >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/resources/JSToJava_FuncParam.jsb/tests/reproducers/simple/JSToJFuncParam/resources/JSToJava_FuncParam.js >> >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/reproducers/simple/JSToJFuncParam/resources/JSToJava_FuncParam.js >> @@ -0,0 +1,226 @@ >> +function test_funcParam_int(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 1; >> + document.getElementById( appletName ).functioniParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_double() >> +{ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 1.1; >> + document.getElementById( appletName ).functiondParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_float(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 1.11; >> + document.getElementById( appletName ).functionfParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_long(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 4294967300; >> + document.getElementById( appletName ).functionlParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_boolean(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = true; >> + document.getElementById( appletName ).functionbParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_char(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 75; >> + document.getElementById( appletName ).functioncParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_byte(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 76; >> + document.getElementById( appletName ).functionbyParamTest(send); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_charArray(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var arr = new Array(); >> + arr[0] = 80; >> + arr[1] = 81; >> + document.getElementById( appletName ).functioncaParamTest(arr); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_String(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = "$??????"; >> + var reply = document.getElementById( appletName >> ).functionsParamTest(send); >> + var expectedreply = "$??????:java.lang.String"; >> + check(reply, expectedreply, "string", " 9 - (regular string)", >> appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Integer(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = "32"; >> + var reply = document.getElementById( appletName >> ).functionIParamTest(send); >> + var expectedreply = send+":java.lang.Integer" >> + check(reply, expectedreply, "string", "10 - (Integer)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Double(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 32.0; >> + var reply = document.getElementById( appletName >> ).functionDParamTest(send); >> + var expectedreply = "32.0:java.lang.Double"; >> + check(reply, expectedreply, "string", "11 - (Double)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Float(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 32.01; >> + var reply = document.getElementById( appletName >> ).functionFParamTest(send); >> + var expectedreply = send+":java.lang.Float" >> + check(reply, expectedreply, "string", "12 - (Float)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Long(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 4294967301; >> + var reply = document.getElementById( appletName >> ).functionLParamTest(send); >> + var expectedreply = send+":java.lang.Long"; >> + check(reply, expectedreply, "string", "13 - (Long)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Boolean(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = true; >> + var reply = document.getElementById( appletName >> ).functionBParamTest(send); >> + var expectedreply = send+":java.lang.Boolean"; >> + check(reply, expectedreply, "string", "14 - (Boolean)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Character(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 80; >> + var reply = document.getElementById( appletName >> ).functionCParamTest(send); >> + var expectedreply = send+":java.lang.Character"; >> + check(reply, expectedreply, "string", "15 - (Character)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_Byte(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var send = 12; >> + var reply = document.getElementById( appletName >> ).functionBParamTest(send); >> + var expectedreply = send+":java.lang.Byte"; >> + check(reply, expectedreply, "string", "16 - (Byte)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} > > Expected results in general belong in the test-case (the class in > testcases folder). It is brittle for the programs being tested to decide > whether they are correct. (and is causing a lot of replication in this > case) > > I don't think the try catches are necessary. > > Some eval-based refactoring should be used here, as you did in your > previous patch. The general idea is pass whats needed to run the test > from the testcase, have the applet print what happened, and check it in > the testcase. For this test, since a java parameter cannot receive an > object of an invalid type, testing for type is somewhat redundant. > Printing the value in the applet should suffice. > > As well, you should pass the function name being called via the testcase > too. The javascript should be left as a very simple test driver. > >> + >> +function test_funcParam_StringIntMixed(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var arr = new Array(); >> + arr[0] = "s1"; >> + arr[1] = 42; > > I think "test" is a good test string, '1' is a good test integer. > Construct this using data based from the test case, though (as you did > in your previous patch) > >> + document.getElementById( appletName ).functionsiaParamTest(arr); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> +function test_funcParam_DummyObjectArray(){ >> + var appletName = 'jstojFuncParamApplet'; >> + try{ >> + var arr = new Array(); >> + arr[0] = new (document.getElementById( appletName >> ).Packages).DummyObject("DummyObject1"); >> + //arr[0] = new JSToJFuncParam.Packages.DummyObject("DummyObject1"); >> + //arr[0] = new java.lang.String("DummyObject1"); >> + arr[1] = new (document.getElementById( appletName >> ).Packages).DummyObject("DummyObject2"); >> + //arr[1] = new JSToJFuncParam.Packages.DummyObject("DummyObject2"); >> + //arr[1] = new java.lang.String("DummyObject2"); >> + var reply = document.getElementById( appletName >> ).functioncomplexaParamTest(arr); >> + check(reply, "DummyObject1:DummyObject2", "string", "18 - >> (DummyObject[] - complex)", appletName); >> + }catch(e){ >> + appletStdOut( appletName, e ); >> + appendMessageDiv(e); >> + } >> +} >> + >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/resources/jstoj-funcparam.jnlp >> b/tests/reproducers/simple/JSToJFuncParam/resources/jstoj-funcparam.jnlp >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/reproducers/simple/JSToJFuncParam/resources/jstoj-funcparam.jnlp >> @@ -0,0 +1,23 @@ >> + >> + >> + >> + >> + JavaScript to Java LiveConnect - FuncParam >> + RedHat >> + > href="http://icedtea.classpath.org/wiki/IcedTea-Web#Testing_IcedTea-Web"/> >> >> + LiveConnect - tests for function parameter conversion >> when calling Java from JS. >> + >> + >> + >> + > + href="http://java.sun.com/products/autodl/j2se"/> >> + >> + >> + >> + > + name="JS to J FuncParam" >> + main-class="JSToJFuncParam" >> + width="1000" >> + height="100"> >> + >> + >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/srcs/DummyObject.java >> b/tests/reproducers/simple/JSToJFuncParam/srcs/DummyObject.java >> new file mode 100644 >> --- /dev/null >> +++ b/tests/reproducers/simple/JSToJFuncParam/srcs/DummyObject.java >> @@ -0,0 +1,15 @@ >> +public class DummyObject { >> + private String str; >> + >> + public DummyObject(String s) { >> + this.str = s; >> + } >> + >> + public void setStr(String s) { >> + this.str = s; >> + } >> + >> + public String toString() { >> + return str; >> + } >> +} >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/srcs/JSToJFuncParam.java >> b/tests/reproducers/simple/JSToJFuncParam/srcs/JSToJFuncParam.java >> new file mode 100644 >> --- /dev/null >> +++ b/tests/reproducers/simple/JSToJFuncParam/srcs/JSToJFuncParam.java >> @@ -0,0 +1,176 @@ >> +import java.applet.*; >> +import java.awt.*; >> + >> +public class JSToJFuncParam extends Applet { >> + >> + public String[] outputStrings = { "Test no. 1 - (int)", >> + "Test no. 2 - (double)", "Test no. 3 - (float)", >> + "Test no. 4 - (long)", "Test no. 5 - (boolean)", >> + "Test no. 6 - (char)", "Test no. 7 - (byte)", >> + "Test no. 8 - (char[] - simple primitive)", >> + "Test no. 9 - (regular string)", "Test no.10 - (Integer)", >> + "Test no.11 - (Double)", "Test no.12 - (Float)", >> + "Test no.13 - (Long)", "Test no.14 - (Boolean)", >> + "Test no.15 - (Character)", "Test no.16 - (Byte)", >> + "Test no.17 - (String/Int[] - mixed)", >> + "Test no.18 - (DummyObject[] - complex)" }; >> + >> + private Label statusLabel; >> + >> + public void init() { >> + setLayout(new BorderLayout()); >> + statusLabel = new Label(); >> + add(statusLabel); >> + String initStr = "JSToJFuncParam applet initialized."; >> + System.out.println(initStr); >> + statusLabel.setText(initStr); >> + } >> + >> + public void functioniParamTest(int i) { >> + String ret = Integer.toString(i); >> + checkAndOutput(0, i == 1, true, "1", ret); >> + } >> + >> + public void functiondParamTest(double d) { >> + String ret = Double.toHexString(d); >> + String h = Double.toHexString(1.1); >> + checkAndOutput(1, d == 1.1, true, h, ret); >> + } >> + >> + public void functionfParamTest(float f) { >> + String ret = Float.toHexString(f); >> + Float F = new Float("1.11"); >> + String h = Float.toHexString(F); >> + checkAndOutput(2, h.equals(ret), true, h, ret); >> + } >> + >> + public void functionlParamTest(long l) { >> + String ret = Long.toString(l); >> + checkAndOutput(3, l == 4294967300L, true, "4294967300", ret); >> + } >> + >> + public void functionbParamTest(boolean b) { >> + String ret = Boolean.toString(b); >> + checkAndOutput(4, b == true, true, "true", ret); >> + } >> + >> + public void functioncParamTest(char c) { >> + String ret = Character.toString(c); >> + checkAndOutput(5, c == 'K', true, "K", ret); >> + } >> + >> + public void functionbyParamTest(byte b) { >> + String ret = Byte.toString(b); >> + checkAndOutput(6, b == 76, true, "76", ret); >> + } >> + >> + public void functioncaParamTest(char[] ca) { >> + >> + String ret = ""; >> + ret += ca[0]; >> + for (int i = 1; i < ca.length; i++) { >> + ret += ":" + ca[i]; >> + } >> + >> + checkAndOutput(7, (ca[0] == 'P') && (ca[1] == 'Q'), true, "P:Q", ret); >> + } >> + >> + public String functionsParamTest(String s) { >> + return s + ":" + s.getClass().getName(); >> + } >> + >> + public String functionIParamTest(Integer p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public String functionDParamTest(Double p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public String functionFParamTest(Float p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public String functionLParamTest(Long p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public String functionBParamTest(Boolean p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public String functionCParamTest(Character p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public String functionBParamTest(Byte p) { >> + String ret = p.toString() + ":" + p.getClass().getName(); >> + return ret; >> + } >> + >> + public void functionsiaParamTest(String[] s) { >> + >> + String ret = s[0]; >> + for (int i = 1; i < s.length; i++) { >> + ret += ":" + s[i]; >> + } >> + checkAndOutput(16, (s[0].equals("s1")) && (s[1].equals("42")), true, >> + "s1:42", ret); >> + } >> + >> + public String functioncomplexaParamTest(DummyObject[] ca) { >> + String ret = ca[0].toString(); >> + for (int i = 1; i < ca.length; i++) { >> + ret += ":" + ca[i].toString(); >> + } >> + >> + return ret; >> + } > > These should all simply print out the value via System.out.println(..); > In the case of arrays you can use System.out.println(Arrays.toString(..)); > I think the names could also be shorter, eg I think the resulting class > should look like ... > > public class JSToJFuncParam extends Applet { > public void intParam(int i) { > System.out.println(i); > } > public void floatParam(float f) { > System.out.println(f); > } > // etc... > } > > All the checking code should be in testcases/ > >> + >> + // auxiliary methods writing fail/pass to stdout >> + public void checkAndOutput(int index, boolean valsEq, boolean typesEq, >> + String expected, String found) { >> + String outStr = ""; >> + if (valsEq) { >> + if (typesEq) { >> + outStr = outputStrings[index] + " - passed."; >> + } else { >> + outStr = outputStrings[index] + " - failed, type mismatch"; >> + outStr += " expected:[" + expected + "] found:[" + found + "]."; >> + } >> + } else { >> + outStr = outputStrings[index] + " - failed, value mismatch"; >> + outStr += " expected:[" + expected + "] found:[" + found + "]."; >> + } >> + System.out.println(outStr); >> + statusLabel.setText(outStr); >> + } >> + >> + // auxiliary method for setting the statusLabel text: >> + public void setStatusLabel(String s) { >> + statusLabel.setText(s); >> + } >> + >> + // auxiliary methods for writing to stdout and stderr: >> + public void stdOutWrite(String s) { >> + System.out.print(s); >> + } >> + >> + public void stdErrWrite(String s) { >> + System.err.print(s); >> + } >> + >> + public void stdOutWriteln(String s) { >> + System.out.println(s); >> + } >> + >> + public void stdErrWriteln(String s) { >> + System.err.println(s); >> + } >> +} >> diff --git >> a/tests/reproducers/simple/JSToJFuncParam/testcases/JSToJFuncParamTest.javab/tests/reproducers/simple/JSToJFuncParam/testcases/JSToJFuncParamTest.java >> >> new file mode 100644 >> --- /dev/null >> +++ >> b/tests/reproducers/simple/JSToJFuncParam/testcases/JSToJFuncParamTest.java >> >> @@ -0,0 +1,278 @@ >> +/* JSToJFuncParamTest.java >> +Copyright (C) 2012 Red Hat, Inc. >> + >> +This file is part of IcedTea. >> + >> +IcedTea is free software; you can redistribute it and/or >> +modify it under the terms of the GNU General Public License as >> published by >> +the Free Software Foundation, version 2. >> + >> +IcedTea is distributed in the hope that it will be useful, >> +but WITHOUT ANY WARRANTY; without even the implied warranty of >> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> +General Public License for more details. >> + >> +You should have received a copy of the GNU General Public License >> +along with IcedTea; see the file COPYING. If not, write to >> +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >> Boston, MA >> +02110-1301 USA. >> + >> +Linking this library statically or dynamically with other modules is >> +making a combined work based on this library. Thus, the terms and >> +conditions of the GNU General Public License cover the whole >> +combination. >> + >> +As a special exception, the copyright holders of this library give you >> +permission to link this library with independent modules to produce an >> +executable, regardless of the license terms of these independent >> +modules, and to copy and distribute the resulting executable under >> +terms of your choice, provided that you also meet, for each linked >> +independent module, the terms and conditions of the license of that >> +module. An independent module is a module which is not derived from >> +or based on this library. If you modify this library, you may extend >> +this exception to your version of the library, but you are not >> +obligated to do so. If you do not wish to do so, delete this >> +exception statement from your version. >> + */ >> + >> +import net.sourceforge.jnlp.ProcessResult; >> +import net.sourceforge.jnlp.ServerAccess; >> +import net.sourceforge.jnlp.browsertesting.BrowserTest; >> +import net.sourceforge.jnlp.browsertesting.Browsers; >> +import net.sourceforge.jnlp.closinglisteners.CountingClosingListener; >> +import net.sourceforge.jnlp.annotations.NeedsDisplay; >> +import net.sourceforge.jnlp.annotations.TestInBrowsers; >> +import org.junit.Assert; >> + >> +import org.junit.Test; >> + >> +public class JSToJFuncParamTest extends BrowserTest { >> + >> + public String[] testNames = { "int", "double", "float", "long", >> "boolean", >> + "char", "byte", "charArray", "String", "Integer", "Double", >> + "Float", "Long", "Boolean", "Character", "Byte", "StringIntMixed", >> + "DummyObjectArray" }; >> + >> + public String[] outputStrings = { "Test no. 1 - (int)", >> + "Test no. 2 - (double)", "Test no. 3 - (float)", >> + "Test no. 4 - (long)", "Test no. 5 - (boolean)", >> + "Test no. 6 - (char)", "Test no. 7 - (byte)", >> + "Test no. 8 - (char[] - simple primitive)", >> + "Test no. 9 - (regular string)", "Test no.10 - (Integer)", >> + "Test no.11 - (Double)", "Test no.12 - (Float)", >> + "Test no.13 - (Long)", "Test no.14 - (Boolean)", >> + "Test no.15 - (Character)", "Test no.16 - (Byte)", >> + "Test no.17 - (String/Int[] - mixed)", >> + "Test no.18 - (DummyObject[] - complex)" }; >> + >> + public String passStr = " - passed."; >> + public String failValStr = " - failed, value mismatch."; >> + public String failTypeStr = " - failed, type mismatch."; >> + public String expStr = "expected:["; >> + public String foundStr = "] found:["; >> + public String endStr = "]."; >> + >> + private final String exceptionStr = "xception"; >> + private final String initStr = "JSToJFuncParam applet initialized."; >> + private final String afterStr = "afterTests"; >> + >> + private class CountingClosingListenerImpl extends >> CountingClosingListener { >> + >> + @Override >> + protected boolean isAlowedToFinish(String s) { >> + if (s.contains(exceptionStr)) { >> + return true; >> + } >> + return (s.contains(initStr) && s.contains(afterStr)); >> + } >> + } >> + >> + private void evaluateStdoutContents(int index, ProcessResult pr) { >> + // Assert that the applet was initialized. >> + Assert.assertTrue("JSToJFuncParamTest stdout should contain \"" >> + + initStr + "\" but it didn't.", pr.stdout.contains(initStr)); >> + >> + // Assert that the tests have passed. >> + String s0 = outputStrings[index] + passStr; >> + String s1 = outputStrings[index] + failValStr; >> + String s2 = outputStrings[index] + failTypeStr; >> + String s3 = "Error on Java side"; >> + >> + int ind0 = pr.stdout.indexOf(s0); >> + int ind1 = pr.stdout.indexOf(s1); >> + int ind2 = pr.stdout.indexOf(s2); >> + int ind3 = pr.stdout.indexOf(s3); >> + int indBegin = pr.stdout.indexOf(initStr); >> + if (indBegin != -1) { >> + indBegin += initStr.length(); >> + } else { >> + indBegin = 0; >> + } >> + >> + String failStr = "JSToJFuncParam " + outputStrings[index] >> + + ": \"passed\" not found in the applet stdout, which is: " >> + + pr.stdout.substring(indBegin, pr.stdout.length()); >> + >> + if (ind1 != -1) { >> + // int inde = pr.stdout.indexOf(expStr); >> + // int indf = pr.stdout.indexOf(foundStr); >> + int indend = pr.stdout.indexOf(endStr); >> + failStr = pr.stdout.substring(ind1, indend + endStr.length()); >> + } >> + >> + if (ind2 != -1) { >> + // int inde = pr.stdout.indexOf(expStr); >> + // int indf = pr.stdout.indexOf(foundStr); >> + int indend = pr.stdout.indexOf(endStr); >> + failStr = pr.stdout.substring(ind2, indend + endStr.length()); >> + } >> + >> + if (ind3 != -1) { >> + failStr = "JSToJFuncParam: " + outputStrings[index] >> + + pr.stdout.substring(ind3, pr.stdout.length()); >> + } >> + >> + Assert.assertTrue(failStr, (ind3 == -1));// no error on Java side >> + Assert.assertTrue(failStr, (ind1 == -1));// no value mismatch >> + Assert.assertTrue(failStr, (ind2 == -1));// no type mismatch >> + Assert.assertTrue(failStr, (ind0 != -1));// test passed >> + >> + } >> + >> + private void genericJSToJavaFuncParamTestMethod(int index) throws >> Exception { >> + >> + String strURL = "/JSToJFuncParam.html?" + testNames[index]; >> + ProcessResult pr = server.executeBrowser(strURL, >> + new CountingClosingListenerImpl(), >> + new CountingClosingListenerImpl()); >> + evaluateStdoutContents(index, pr); >> + >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_int_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(0); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_double_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(1); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_float_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(2); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_long_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(3); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_boolean_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(4); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_char_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(5); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_byte_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(6); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_charArray_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(7); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_String_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(8); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Integer_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(9); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Double_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(10); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Float_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(11); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Long_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(12); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Boolean_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(13); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Character_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(14); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_Byte_Test() throws Exception { >> + genericJSToJavaFuncParamTestMethod(15); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_StringIntMixed_Test() throws >> Exception { >> + genericJSToJavaFuncParamTestMethod(16); >> + } >> + >> + @Test >> + @TestInBrowsers(testIn = { Browsers.all }) >> + @NeedsDisplay >> + public void AppletJSToJFuncParam_DummyObjectArray_Test() throws >> Exception { >> + genericJSToJavaFuncParamTestMethod(17); >> + } >> + >> +} > > These functions should all pass strings to use with 'eval' like in your > previous test. They should contain the method to call as well as the > value as a string / a 'special value' indicator. > > Happy hacking, > -Adam > -------------- next part -------------- A non-text attachment was scrubbed... Name: JSToJFuncParam_reproducer_revisited.patch Type: text/x-patch Size: 15865 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130115/d1a9f99c/JSToJFuncParam_reproducer_revisited.patch From jvanek at redhat.com Tue Jan 15 05:26:18 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 15 Jan 2013 14:26:18 +0100 Subject: [rfc][icedtea-web] make download indicator more compact In-Reply-To: <50EB1B33.4020605@redhat.com> References: <50E5ACDF.7080609@redhat.com> <50E704C5.4060300@redhat.com> <50EADE9F.3000101@redhat.com> <50EB1B33.4020605@redhat.com> Message-ID: <50F558FA.6070806@redhat.com> I think this one is little bit better. J. On 01/07/2013 08:00 PM, Adam Domurad wrote: > On 01/07/2013 09:41 AM, Jiri Vanek wrote: >> On 01/04/2013 05:35 PM, Adam Domurad wrote: >>> On 01/03/2013 11:07 AM, Jiri Vanek wrote: >>>> Hi! >>>> >>>> This patch is adding "show details" to download indicator. For One jar jnlp files it behaviour is >>>> unaffected. For Multiple jars there is just one progress bar, but can be shown "old stile" >>>> detailed one via clicking to "Show details". Then can be minimalised by "hide details". Button is >>>> localised. >>>> >>>> The button is nasty not nice.. Any better idea? but still this is better then previous approach. >>>> >>>> Looking forward to have this inside! >>>> >>>> Best rigards >>>> J. >>> >>> Thanks for looking into this! I was actually comparing our download indicator to proprietary just >>> yesterday, while staring at multiple jars downloading. The average user does not want to know about >>> the jars being downloaded, in fact I think such information can look scary :-). >>> >>>> diff -r 9549226afa8f netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java >>>> --- a/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 09:54:16 2013 +0100 >>>> +++ b/netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java Thu Jan 03 17:07:28 2013 +0100 >>>> @@ -62,6 +62,7 @@ >>>> >>>> /** shared constraint */ >>>> static GridBagConstraints vertical; >>>> + static GridBagConstraints verticalNoClean; >>>> static GridBagConstraints verticalIndent; >>>> static { >>>> vertical = new GridBagConstraints(); >>>> @@ -70,8 +71,12 @@ >>>> vertical.fill = GridBagConstraints.HORIZONTAL; >>>> vertical.anchor = GridBagConstraints.WEST; >>>> >>>> + verticalNoClean = new GridBagConstraints(); >>>> + verticalNoClean.weightx = 1.0; >>>> + >>>> verticalIndent = (GridBagConstraints) vertical.clone(); >>>> verticalIndent.insets = new Insets(0, 10, 3, 0); >>>> + >>> >>> Nit: These two blank lines (and all the ones added below) have tabs :-) >>> >>>> } >>>> >>>> /** >>>> @@ -114,15 +119,15 @@ >>>> >>>> frame.getContentPane().add(result, vertical); >>>> frame.pack(); >>>> - >>>> if (!frame.isVisible()) { >>>> - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>> - Insets insets = >>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>> - Dimension screen = new Dimension(screenSize.width - insets.left, >>>> - screenSize.height - insets.top); >>>> - frame.setLocation(screen.width - frame.getWidth(), >>>> - screen.height - frame.getHeight()); >>>> + placeFrameToLowerRight(); >>>> } >>>> + result.addComponentListener(new ComponentAdapter() { >>>> + @Override >>>> + public void componentResized(ComponentEvent e) { >>>> + placeFrameToLowerRight(); >>>> + } >>>> + }); >>>> >>>> frame.setVisible(true); >>>> >>>> @@ -131,6 +136,32 @@ >>>> } >>>> >>>> /** >>>> + * The insets are calculated differently during first appearance >>>> + * and during another appearance in case of some configurations. >>>> + * >>>> + * So the first value is stored to avoid jumping of window during later packing >>>> + * of frame. >>>> + * >>>> + * However the second calculation is more correct:( >>>> + * >>>> + * This is affecting only multiple monitors which have different assets. >>>> + * The underlying issue is that Toolkit.getDefaultToolkit().getScreenInsets >>>> + * is returning assets for "random" monitor. >>>> + */ >>>> + Dimension screen = null; >>>> + >>>> + private void placeFrameToLowerRight() throws HeadlessException { >>>> + if (screen == null) { >>>> + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); >>>> + Insets insets = >>>> Toolkit.getDefaultToolkit().getScreenInsets(frame.getGraphicsConfiguration()); >>>> + screen = new Dimension(screenSize.width - insets.left, >>>> + screenSize.height - insets.top); >>>> + } >>>> + frame.setLocation(screen.width - frame.getWidth(), >>>> + screen.height - frame.getHeight()); >>>> + } >>>> + >>>> + /** >>>> * Remove a download service listener that was obtained by >>>> * calling the getDownloadListener method from the shared >>>> * download info window. >>>> @@ -163,12 +194,26 @@ >>>> * Groups the url progress in a panel. >>>> */ >>>> static class DownloadPanel extends JPanel implements DownloadServiceListener { >>>> - >>>> + private static enum States{ >>>> + oneJAr, collapsed, detailed; >>> >>> Enums should be all-caps >>> >>>> + >>>> + } >>>> + >>>> + private static final String DETAILS=R("ButShowDetails"); >>>> + private static final String HIDE_DETAILS=R("ButHideDetails"); >>>> /** the download name */ >>>> private String downloadName; >>>> >>>> /** Downloading part: */ >>>> private JLabel header = new JLabel(); >>>> + /** Show/hide details button: */ >>>> + private JButton details = new JButton(DETAILS); >>>> + /** used instead of details button in case of one jar*/ >>>> + private JLabel delimiter = new JLabel(""); >>>> + /** all already created progress bars*/ >>>> + private List progressPanels = new ArrayList(); >>>> + private States state=States.oneJAr; >>>> + private ProgressPanel mainProgressPanel; >>>> >>>> /** list of URLs being downloaded */ >>>> private List urls = new ArrayList(); >>>> @@ -176,6 +221,7 @@ >>>> /** list of ProgressPanels */ >>>> private List panels = new ArrayList(); >>>> >>>> + >>> >>> Nit: two blank lines are unnecessary. >>> >>>> /** >>>> * Create a new download panel for with the specified download >>>> * name. >>>> @@ -184,9 +230,35 @@ >>>> setLayout(new GridBagLayout()); >>>> >>>> this.downloadName = downloadName; >>>> - this.add(header, vertical); >>>> + this.add(header, verticalNoClean); >>>> header.setFont(header.getFont().deriveFont(Font.BOLD)); >>>> - >>>> + this.add(delimiter, vertical); >>>> + details.addActionListener(new ActionListener() { >>>> + @Override >>>> + public void actionPerformed(ActionEvent e) { >>>> + if (state == States.detailed) { >>>> + state = States.collapsed; >>>> + details.setText(DETAILS); >>>> + for (ProgressPanel progressPanel : progressPanels) { >>>> + remove(progressPanel); >>>> + } >>>> + add(mainProgressPanel, verticalIndent); >>>> + synchronized (frameMutex) { >>>> + frame.pack(); >>>> + } >>>> + } else { >>>> + state = States.detailed; >>>> + details.setText(HIDE_DETAILS); >>>> + remove(mainProgressPanel); >>>> + for (ProgressPanel progressPanel : progressPanels) { >>>> + add(progressPanel, verticalIndent); >>>> + } >>>> + synchronized (frameMutex) { >>>> + frame.pack(); >>>> + } >>>> + } >>>> + } >>>> + }); >>>> setOverallPercent(0); >>>> } >>>> >>>> @@ -196,14 +268,25 @@ >>>> protected void addProgressPanel(URL url, String version) { >>>> if (!urls.contains(url)) { >>>> ProgressPanel panel = new ProgressPanel(url, version); >>>> - >>>> - add(panel, verticalIndent); >>>> + if (state != States.collapsed) { >>>> + add(panel, verticalIndent); >>>> + } >>>> + progressPanels.add(panel); >>>> + urls.add(url); >>>> + panels.add(panel); >>>> + if (panels.size() == 2){ >>> >>> Small comment here would be good explaining why this 'magic number' >>> >>>> + remove(panels.get(0)); >>>> + remove(panels.get(1)); >>>> + remove(delimiter); >>>> + add(details,vertical); >>>> + mainProgressPanel=new ProgressPanel(); >>>> + add(mainProgressPanel, verticalIndent); >>>> + state=States.collapsed; >>>> + } >>>> synchronized (frameMutex) { >>>> frame.pack(); >>>> } >>>> >>>> - urls.add(url); >>>> - panels.add(panel); >>>> } >>>> } >>>> >>>> @@ -219,10 +302,10 @@ >>>> addProgressPanel(url, version); >>>> >>>> setOverallPercent(overallPercent); >>>> - >>>> ProgressPanel panel = panels.get(urls.indexOf(url)); >>>> panel.setProgress(readSoFar, total); >>>> panel.repaint(); >>>> + >>>> } >>>> }; >>>> SwingUtilities.invokeLater(r); >>>> @@ -230,12 +313,28 @@ >>>> >>>> /** >>>> * Sets the overall percent completed. >>>> + * should be called via invokeLater >>>> */ >>>> public void setOverallPercent(int percent) { >>>> // don't get whole string from resource and sub in >>>> // values because it'll be doing a MessageFormat for >>>> // each update. >>>> header.setText(downloading + " " + downloadName + ": " + percent + "% " + complete + >>>> "."); >>>> + Container c = header.getParent(); >>>> + //we need to adapt nbboth panels and also frame to new length of header text >>> >>> nbboth > both >>> >>>> + while (c != null) { >>>> + c.invalidate(); >>>> + c.validate(); >>>> + if (c instanceof Window){ >>>> + ((Window) c).pack(); >>>> + } >>>> + c=c.getParent(); >>>> + } >>>> + >>>> + if (mainProgressPanel != null) { >>>> + mainProgressPanel.setProgress(percent, 100); >>>> + mainProgressPanel.repaint(); >>>> + } >>>> } >>>> >>>> /** >>>> @@ -276,12 +375,28 @@ >>>> >>>> private long total; >>>> private long readSoFar; >>>> + private Dimension size = new Dimension(80, 15); >>>> >>>> + ProgressPanel() { >>>> + bar.setMinimumSize(size); >>>> + bar.setPreferredSize(size); >>>> + bar.setOpaque(false); >>>> + >>>> + setLayout(new GridBagLayout()); >>>> + >>>> + GridBagConstraints gbc = new GridBagConstraints(); >>>> + styleGridBagConstraints(gbc); >>>> + add(bar, gbc); >>>> + } >>>> + >>>> ProgressPanel(URL url, String version) { >>>> - JLabel location = new JLabel(" " + url.getHost() + "/" + url.getFile()); >>>> + this(" " + url.getHost() + "/" + url.getFile(),version); >>>> + } >>>> + ProgressPanel(String caption, String version) { >>>> + JLabel location = new JLabel(caption); >>>> >>>> - bar.setMinimumSize(new Dimension(80, 15)); >>>> - bar.setPreferredSize(new Dimension(80, 15)); >>>> + bar.setMinimumSize(size); >>>> + bar.setPreferredSize(size); >>>> bar.setOpaque(false); >>>> >>>> setLayout(new GridBagLayout()); >>>> @@ -291,12 +406,8 @@ >>>> gbc.fill = GridBagConstraints.NONE; >>>> gbc.gridwidth = GridBagConstraints.RELATIVE; >>>> add(bar, gbc); >>>> - >>>> - gbc.insets = new Insets(0, 3, 0, 0); >>>> - gbc.weightx = 1.0; >>>> - gbc.fill = GridBagConstraints.HORIZONTAL; >>>> - gbc.gridwidth = GridBagConstraints.REMAINDER; >>>> - gbc.anchor = GridBagConstraints.WEST; >>>> + >>>> + styleGridBagConstraints(gbc); >>>> add(location, gbc); >>>> } >>>> >>>> @@ -325,6 +436,14 @@ >>>> g.fillRect(x + 1, y + 1, divide - 1, h - 1); >>>> } >>>> } >>>> + >>>> + private void styleGridBagConstraints(GridBagConstraints gbc) { >>>> + gbc.insets = new Insets(0, 3, 0, 0); >>>> + gbc.weightx = 1.0; >>>> + gbc.fill = GridBagConstraints.HORIZONTAL; >>>> + gbc.gridwidth = GridBagConstraints.REMAINDER; >>>> + gbc.anchor = GridBagConstraints.WEST; >>>> + } >>>> }; >>>> >>>> } >>> >>> Code looks OK nits aside. >> >> Thanx for nits. Should be fixed now >>> >>> As for button ... yes it is nasty. IMO maybe we can take different approach here. The people >>> interested in how the individual jars are downloading would mainly be 1. us trying to fix jar >>> loading issues, 2. developers looking into jar loading issues. >>> >>> So what if the ICEDTEAPLUGIN_DEBUG environment variable turned this on/off ? It can be argued it is >>> a bit hard for developers to access, but it isn't any easier to access this information from oracle >>> plugin. >> >> I think I don't like this idea :( > > No problem, but can you elaborate why not? > >> I have added an attempt to use an icon, And I must say it is much better. Btw, I have created this >> icon.. so no wonders here :) But looks quite cool :) > > It looks OK :-) The glass part could use some transparency. > There should be a slightly different icon from going from detailed ->compact. > >> >>> >>> As well, I would be very happy to see the loading bar integrated with the splash screen (if splash >>> screen is on). I believe this would nicely complement the user friendliness of the splash screen. >> >> You mean to sync progress on progress bar with the one in splash? Or also showing the downlaoded >> resources somehow and show details button in splash? > > I was thinking always have progress bar on splash, and have detailed view hide/show the download > bars in corner. IMO this is good for now, except: > 1. visual glitches such as http://i.imgur.com/Oveuh.png (with text flickering from middle to top > every frame). As well on dual monitors expanding/compacting view constantly changed screens for me. > 2. A different style button/icon from going detailed->compact. > >> >> Sounds reasonable, but definitely as different changeset. >> >> >> Thanx for review an ideas, >> J. > > Happy hacking, > -Adam From jvanek at redhat.com Tue Jan 15 05:27:55 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 15 Jan 2013 14:27:55 +0100 Subject: [rfc][icedtea-web] Fix for PR1198, JSObject passed incorrectly to Javascript In-Reply-To: <50EB0802.8030803@redhat.com> References: <50B92039.4070304@redhat.com> <50BCF77F.2020808@redhat.com> <50E6A438.1010605@redhat.com> <50E70F2D.2070805@redhat.com> <50EAE14D.5050505@redhat.com> <50EAEE24.2080804@redhat.com> <50EAFB5A.9000104@redhat.com> <50EB0802.8030803@redhat.com> Message-ID: <50F5595B.60104@redhat.com> I think this one (3) is little bit better. J. ps: ignore my previous email. Its answer should be to this one. On 01/07/2013 06:38 PM, Adam Domurad wrote: > On 01/07/2013 11:44 AM, Jiri Vanek wrote: >> On 01/07/2013 04:47 PM, Adam Domurad wrote: >>> On 01/07/2013 09:53 AM, Jiri Vanek wrote: >>>>> [.. rest snipped..] >>>> Isn't missing updated junit patch here? >>> >>> Sorry, was awaiting your advice -- if you did not like this security-manager-in-constructor change >>> than the unit test would not be valid, a quite different approach would have to be used. >>> >>>> >>>> Thanx for looking into it. >>>> J. >>>> >>> >>> >>> patch attached, >>> -Adam >>> >>> jsfix-unittest2.patch >>> >>> >>> diff --git a/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java >>> b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java >>> new file mode 100644 >>> --- /dev/null >>> +++ b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java >>> @@ -0,0 +1,49 @@ >>> +/* JSObjectUnboxPermission.java >>> + Copyright (C) 2012 Red Hat >>> + >>> +This file is part of IcedTea. >>> + >>> +IcedTea is free software; you can redistribute it and/or modify >>> +it under the terms of the GNU General Public License as published by >>> +the Free Software Foundation; either version 2, or (at your option) >>> +any later version. >>> + >>> +IcedTea is distributed in the hope that it will be useful, but >>> +WITHOUT ANY WARRANTY; without even the implied warranty of >>> +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >>> +General Public License for more details. >>> + >>> +You should have received a copy of the GNU General Public License >>> +along with IcedTea; see the file COPYING. If not, write to the >>> +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA >>> +02110-1301 USA. >>> + >>> +Linking this library statically or dynamically with other modules is >>> +making a combined work based on this library. Thus, the terms and >>> +conditions of the GNU General Public License cover the whole >>> +combination. >>> + >>> +As a special exception, the copyright holders of this library give you >>> +permission to link this library with independent modules to produce an >>> +executable, regardless of the license terms of these independent >>> +modules, and to copy and distribute the resulting executable under >>> +terms of your choice, provided that you also meet, for each linked >>> +independent module, the terms and conditions of the license of that >>> +module. An independent module is a module which is not derived from >>> +or based on this library. If you modify this library, you may extend >>> +this exception to your version of the library, but you are not >>> +obligated to do so. If you do not wish to do so, delete this >>> +exception statement from your version. */ >>> + >>> +package netscape.javascript; >>> + >>> +import java.security.BasicPermission; >>> + >>> +/** >>> + * Permission to access internal reference of JSObject >>> + */ >>> +public class JSObjectUnboxPermission extends BasicPermission { >>> + public JSObjectUnboxPermission() { >>> + super("JSObjectUnbox"); >>> + } >>> +} >>> diff --git a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >>> b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >>> --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >>> +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java >>> @@ -53,7 +53,6 @@ import java.security.Permissions; >>> import java.security.PrivilegedAction; >>> import java.security.ProtectionDomain; >>> import java.util.ArrayList; >>> -import java.util.Arrays; >>> import java.util.Hashtable; >>> import java.util.List; >>> import java.util.Map; >>> @@ -241,16 +240,6 @@ public class PluginAppletSecurityContext >>> public PluginAppletSecurityContext(int identifier) { >>> this.identifier = identifier; >>> >>> - // We need a security manager.. and since there is a good chance that >>> - // an applet will be loaded at some point, we should make it the SM >>> - // that JNLPRuntime will try to install >>> - if (System.getSecurityManager() == null) { >>> - JNLPRuntime.initialize(/* isApplication */false); >>> - JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); >>> - } >>> - >>> - JNLPRuntime.disableExit(); >>> - >>> URL u = null; >>> try { >>> u = new URL("file://"); >>> diff --git a/plugin/icedteanp/java/sun/applet/PluginMain.java >>> b/plugin/icedteanp/java/sun/applet/PluginMain.java >>> --- a/plugin/icedteanp/java/sun/applet/PluginMain.java >>> +++ b/plugin/icedteanp/java/sun/applet/PluginMain.java >>> @@ -73,6 +73,7 @@ import java.net.ProxySelector; >>> import java.util.Enumeration; >>> import java.util.Properties; >>> >>> +import net.sourceforge.jnlp.DefaultLaunchHandler; >>> import net.sourceforge.jnlp.config.DeploymentConfiguration; >>> import net.sourceforge.jnlp.runtime.JNLPRuntime; >>> import net.sourceforge.jnlp.security.JNLPAuthenticator; >>> @@ -106,6 +107,15 @@ public class PluginMain { >>> // must be called before JNLPRuntime.initialize() >>> JNLPRuntime.setRedirectStreams(redirectStreams); >>> >>> + // We need a security manager for PluginAppletSecurityContext, >>> + // so we ensure it is initialized >>> + if (System.getSecurityManager() == null) { >>> + JNLPRuntime.initialize(/* isApplication */false); >>> + JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); >>> + } >>> + >>> + JNLPRuntime.disableExit(); >>> + >>> PluginAppletSecurityContext sc = new PluginAppletSecurityContext(0); >>> sc.prePopulateLCClasses(); >> >> Well, I'm still not comfortable with this change. >> I'm not sure which security parts can be affected:-/ I really would like to know Jana's opinion here. >> Do you mind to move it to separate method? > > I have attached a patch that is more refactoring-proof. It is based on bypassing installation via > package-private constructor. Note there is no security risk if this is 'bypassed' once it has > already occurred. >> [.. snip ..] >>> >> > Thanks, > -Adam > From jvanek at redhat.com Tue Jan 15 05:46:17 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 15 Jan 2013 14:46:17 +0100 Subject: [rfc][icedtea-web] Rewrite of MethodOverloadResolver In-Reply-To: <50EDCD84.1030104@redhat.com> References: <50CB8F6E.8060207@redhat.com> <50EDCD84.1030104@redhat.com> Message-ID: <50F55DA9.2020608@redhat.com> On 01/09/2013 09:05 PM, Adam Domurad wrote: > On 12/14/2012 03:43 PM, Adam Domurad wrote: >> Thought I'd do a simple patch to turn the test code embedded in MethodOverloadResolver into a a >> proper unit test ... unfortunately, my small look into this class lead me to find many subtle bugs >> -- and coincidentally decide to do it properly. Lots of corner cases covered, and it could >> probably use unit tests even still, but its a major improvement and I'm a bit tired of looking at >> it so I'm posting it. >> >> Some broken things I uncovered included improper overloading order, method/argument situations >> that would error-out if they ever occurred (but were valid), and the fact that the JSObject used >> throughout the class was actually a dummy value used at the bottom of the class. The code was also >> made a lot cleaner in the process, in the interest of 'doing it right' while fixing it. >> ChangeLog: >> 2012-12-14 Adam Domurad >> >> Rewrite of MethodOverloadResolver with detailed unittests. >> * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java: >> Rewritten to reduce duplicated code, fix very subtle bugs in >> never-tested codepaths, obey spec properly. Introduced new helper types >> where Object[] arrays with special-meaning positions were passed >> around. >> * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >> Updated to work with newly introduced types / refactored overload >> resolver. >> * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: In-depth >> unit tests of hairy details of method overloading in JS<->Java. >> >> > Ping? > -Adam Although I really like this patch as it is making MethodOverloadResolver much more readable and better, there is no significant *visible* improvement (according to Jana's tests). Also I was unable to review it properly - as it was de facto replacement. Unless you+jana will find some improvement in (at least) liveconect test or similar, then I must revoke this patch. If no "proof" will be found by you and jana, then I would like to get this into head by small (reviewable) steps accompanied by unit/reproducer tests. Sorry for troubles J. From andrew at icedtea.classpath.org Tue Jan 15 06:01:00 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 14:01:00 +0000 Subject: /hg/release/icedtea7-2.2: Add 2013/01/15 security update. Message-ID: changeset 9cc2d9873b77 in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=9cc2d9873b77 author: Andrew John Hughes date: Tue Jan 15 14:00:43 2013 +0000 Add 2013/01/15 security update. 2013-01-15 Andrew John Hughes * Makefile.am: (CORBA_CHANGESET): Update to IcedTea7 2.2 forest head; the tag icedtea-2.2.4. (HOTSPOT_CHANGESET): Likewise. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * NEWS: List security fixes and set release date. * patches/boot/ecj-stringswitch.patch: Updated to work post-security-patches. diffstat: ChangeLog | 22 ++++++++++++++++++++++ Makefile.am | 29 ++++++++++++++--------------- NEWS | 7 ++++++- patches/boot/ecj-stringswitch.patch | 35 ++++++++++++++++++++++++++++++++--- 4 files changed, 74 insertions(+), 19 deletions(-) diffs (138 lines): diff -r 6decaea2de44 -r 9cc2d9873b77 ChangeLog --- a/ChangeLog Wed Oct 31 11:37:21 2012 +0000 +++ b/ChangeLog Tue Jan 15 14:00:43 2013 +0000 @@ -1,3 +1,25 @@ +2013-01-15 Andrew John Hughes + + * Makefile.am: + (CORBA_CHANGESET): Update to IcedTea7 2.2 forest head; + the tag icedtea-2.2.4. + (HOTSPOT_CHANGESET): Likewise. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + * NEWS: List security fixes and set release date. + * patches/boot/ecj-stringswitch.patch: + Updated to work post-security-patches. + 2012-10-24 Andrew John Hughes * NEWS: Corrected bad CVE number diff -r 6decaea2de44 -r 9cc2d9873b77 Makefile.am --- a/Makefile.am Wed Oct 31 11:37:21 2012 +0000 +++ b/Makefile.am Tue Jan 15 14:00:43 2013 +0000 @@ -4,22 +4,21 @@ JDK_UPDATE_VERSION = 05 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 12fee4f9ac22 -HOTSPOT_CHANGESET = 1a3dc05d59c2 -JAXP_CHANGESET = dc64245ac19d -JAXWS_CHANGESET = b41293d57940 -JDK_CHANGESET = 4cf358fd012a -LANGTOOLS_CHANGESET = e96efe42e3d5 -OPENJDK_CHANGESET = 32574ae3c2be +CORBA_CHANGESET = f90e1b6ccfb6 +HOTSPOT_CHANGESET = 60d6e32e00a6 +JAXP_CHANGESET = 028a292be666 +JAXWS_CHANGESET = c620184ea425 +JDK_CHANGESET = 8fccb53fef83 +LANGTOOLS_CHANGESET = 206668cf21e5 +OPENJDK_CHANGESET = 431257be5014 -CORBA_SHA256SUM = bf314ffe9993f70ef9a0449b5c540883935b6326e28ee5afdc44f062039e0303 -HOTSPOT_SHA256SUM = 7a54b49cfd6ae6a4cc8aaba042f96e1622cf88f6ba0ffc61bbc36cc164a5d096 -JAXP_SHA256SUM = 5003576ed427cae1dda7ccf7c1af042ea8f62ad668e176583a84fba989f77e32 -JAXWS_SHA256SUM = a3bf4ec265fd044a5abce35dfc51b1977826a21bd13abe05a8336f25e8a8dd21 -JDK_SHA256SUM = 5cd45b036269d35ec916e0b99977a87d2a2addefe9aa2058fbc05d0269cd9008 -LANGTOOLS_SHA256SUM = f70752c14ec19fec5fffdb38b3d3aaaefd551ec4dfd109947541b3f4176245a6 -OPENJDK_SHA256SUM = 6a5e1a497c0a309fc17954909ca5890bef15b61e8af877b7a07d0f754d6875a4 -HS21_SHA256SUM = a2a2c610e9ebb97a3c95be233533035cf4f59c4cc45a553ba09e52106fbad113 +CORBA_SHA256SUM = 1480c0ae07c31a5a0c70791a5ac8576ebd4a606fbf7e97d901ffce98a121c5ba +HOTSPOT_SHA256SUM = 8c22bcae21996ad394a00c8607f716f5b9156f0f8005f2558adda58cbcd48275 +JAXP_SHA256SUM = 578b309af7bca3290e1df62c3950701196b791579ecd97f93da3b8fee17fc689 +JAXWS_SHA256SUM = 33c1f30d67ef2bc290f53f852f5d02ea6815f7ef875140306fabfec15e57a816 +JDK_SHA256SUM = a3e05956d2979ac5a5ea1331857a9b04b9f31a1283dda2ec746435cd4fd551b9 +LANGTOOLS_SHA256SUM = d5a8460788cc1cb6af9bfd9d70c01811a60c2a27e31ce5331d4bf444bc1f5a17 +OPENJDK_SHA256SUM = 6fe4d91049da673a843ff2b41ec9e9601c9ff45ba37526d414b8f0a700fa33d5 CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 diff -r 6decaea2de44 -r 9cc2d9873b77 NEWS --- a/NEWS Wed Oct 31 11:37:21 2012 +0000 +++ b/NEWS Tue Jan 15 14:00:43 2013 +0000 @@ -10,7 +10,12 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 2.2.4 (20XX-XX-XX): +New in release 2.2.4 (2013-01-15): + +* Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions New in release 2.2.3 (2012-10-17): diff -r 6decaea2de44 -r 9cc2d9873b77 patches/boot/ecj-stringswitch.patch --- a/patches/boot/ecj-stringswitch.patch Wed Oct 31 11:37:21 2012 +0000 +++ b/patches/boot/ecj-stringswitch.patch Tue Jan 15 14:00:43 2013 +0000 @@ -302,9 +302,9 @@ throw new IllegalArgumentException( diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java ---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 03:48:53.678554395 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 04:20:20.203700764 +0100 -@@ -411,89 +411,84 @@ +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-15 02:19:34.315049222 +0000 +@@ -411,104 +411,99 @@ static boolean isCallerSensitive(MemberName mem) { assert(mem.isInvocable()); Class defc = mem.getDeclaringClass(); @@ -319,6 +319,35 @@ - case "lookup": + } else if ("lookup".equals(memName)) { return defc == java.lang.invoke.MethodHandles.class; +- case "findStatic": +- case "findVirtual": +- case "findConstructor": +- case "findSpecial": +- case "findGetter": +- case "findSetter": +- case "findStaticGetter": +- case "findStaticSetter": +- case "bind": +- case "unreflect": +- case "unreflectSpecial": +- case "unreflectConstructor": +- case "unreflectGetter": +- case "unreflectSetter": ++ } else if ("findStatic".equals(memName) || ++ "findVirtual".equals(memName) || ++ "findConstructor".equals(memName) || ++ "findSpecial".equals(memName) || ++ "findGetter".equals(memName) || ++ "findSetter".equals(memName) || ++ "findStaticGetter".equals(memName) || ++ "findStaticSetter".equals(memName) || ++ "bind".equals(memName) || ++ "unreflect".equals(memName) || ++ "unreflectSpecial".equals(memName) || ++ "unreflectConstructor".equals(memName) || ++ "unreflectGetter".equals(memName) || ++ "unreflectSetter".equals(memName)) { + return defc == java.lang.invoke.MethodHandles.Lookup.class; - case "invoke": + } else if ("invoke".equals(memName)) { return defc == java.lang.reflect.Method.class; From adomurad at redhat.com Tue Jan 15 08:14:12 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 15 Jan 2013 11:14:12 -0500 Subject: [rfc][icedtea-web] Rewrite of MethodOverloadResolver In-Reply-To: <50F55DA9.2020608@redhat.com> References: <50CB8F6E.8060207@redhat.com> <50EDCD84.1030104@redhat.com> <50F55DA9.2020608@redhat.com> Message-ID: <50F58054.3030905@redhat.com> On 01/15/2013 08:46 AM, Jiri Vanek wrote: > On 01/09/2013 09:05 PM, Adam Domurad wrote: >> On 12/14/2012 03:43 PM, Adam Domurad wrote: >>> Thought I'd do a simple patch to turn the test code embedded in >>> MethodOverloadResolver into a a >>> proper unit test ... unfortunately, my small look into this class >>> lead me to find many subtle bugs >>> -- and coincidentally decide to do it properly. Lots of corner cases >>> covered, and it could >>> probably use unit tests even still, but its a major improvement and >>> I'm a bit tired of looking at >>> it so I'm posting it. >>> >>> Some broken things I uncovered included improper overloading order, >>> method/argument situations >>> that would error-out if they ever occurred (but were valid), and the >>> fact that the JSObject used >>> throughout the class was actually a dummy value used at the bottom >>> of the class. The code was also >>> made a lot cleaner in the process, in the interest of 'doing it >>> right' while fixing it. >>> ChangeLog: >>> 2012-12-14 Adam Domurad >>> >>> Rewrite of MethodOverloadResolver with detailed unittests. >>> * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java: >>> Rewritten to reduce duplicated code, fix very subtle bugs in >>> never-tested codepaths, obey spec properly. Introduced new >>> helper types >>> where Object[] arrays with special-meaning positions were passed >>> around. >>> * >>> plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: >>> Updated to work with newly introduced types / refactored overload >>> resolver. >>> * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: >>> In-depth >>> unit tests of hairy details of method overloading in JS<->Java. >>> >>> >> Ping? >> -Adam > > Although I really like this patch as it is making > MethodOverloadResolver much more readable and better, there is no > significant *visible* improvement (according to Jana's tests). Also I > was unable to review it properly - as it was de facto replacement. > > Unless you+jana will find some improvement in (at least) liveconect > test or similar, then I must revoke this patch. > > If no "proof" will be found by you and jana, then I would like to get > this into head by small (reviewable) steps accompanied by > unit/reproducer tests. > > Sorry for troubles > J. Just to be clear - I believe many fixed cases are visible in the unit tests. However these are difficult to determine because they were written against the new MethodOverloadResolver. Especially like I pointed out, JSObject was resolving to the completely wrong class. There were certain cases where exceptions would be thrown merely if a certain overload was present. If this is the issue, we can get more of these cases into the reproducers, but I do think there were a number of them. I'll work with Jana on this one. -Adam From adomurad at redhat.com Tue Jan 15 08:53:30 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 15 Jan 2013 11:53:30 -0500 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader Message-ID: <50F5898A.40108@redhat.com> This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D furniture dragging. I'll preface by saying, I'm not particularly fond of the changes in this patch, but they have to be done to fix JNLP applications that load resources on the Swing thread, like eg SweetHome3D. The patch adds a flag to JNLPClassLoader that specifies whether it has been initialized. The default for getInstance remains the same, it grabs an initialized JNLPClassLoader. However an alternate getInstance was added to be able to grab JNLPClassLoader that hasn't been fully initialized. The problem with initialization: - To create AppContext we need JNLPClassLoader object constructed - To construct JNLPClassLoader we must initialize it - Initializing JNLPClassLoader implies downloading all resources, and updating Swing components However, we cannot update swing components before we create our AppContext, or the result will be a mess (eg unclickable popups). In essence, it's a bootstrapping problem. So the patch makes it possible to get a constructed JNLPClassLoader, which is initialized in a separate step. What else was tried ? The only other option is to set the context classloader to some other classloader. A proxy classloader can be created that initially points to the system classloader, but can be set to JNLPClassLoader after it is created. Determined too much of a hack, and getParent cannot be properly proxied. Basically with this patch, the life-time of the context classloaders for each thread is: 1. By default system classloader is context classloader. 2. Create new AppContext, capture JNLPClassLoader that isn't yet valid. Ensure we keep using system classloader as context classloader for all threads. 3. Initialize JNLPClassLoader. Before start of applet, ensure all threads context classloaders are set to (now initialized) JNLPClassLoader. Recommendations welcome -- it was a lot of deliberation before I decided to take this route. If someone has a simpler/cleaner solution than by all means suggest it! Reproducer changelog: 2013-XX-XX Adam Domurad * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.html: Test AppContext context classloader from HTML applet * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoader.jnlp: Test AppContext context classloader from JNLP application * tests/reproducers/signed/AppContextHasJNLPClassLoader/resources/AppContextHasJNLPClassLoaderForJNLPApplet.jnlp: Test AppContext context classloader from JNLP applet * tests/reproducers/signed/AppContextHasJNLPClassLoader/srcs/AppContextHasJNLPClassLoader.java: Print out context classloader for thread & AppContext, for current thread & Swing thread. * tests/reproducers/signed/AppContextHasJNLPClassLoader/testcases/AppContextHasJNLPClassLoaderTest.java: Test runner for AppContextHasJNLPClassLoader REPRODUCER NOTES: This exposes an additional bug in JNLP applets. start/init incorrectly runs on the Swing thread, and invokeAndWait hangs forever. I'm not sure how this wasn't caught, but the JNLP applet reproducer is broken pending a separate bug fix. Fixes changelog: 2013-XX-XX Adam Domurad Fix PR1251: AppContext has wrong context classloader * netx/net/sourceforge/jnlp/Launcher.java: Remove unused context flag. Make new AppContext capture not-yet- initialized JNLPClassLoader. * netx/net/sourceforge/jnlp/NetxPanel.java: Move PluginBridge initialization into constructor. Make new AppContext capture not-yet-initialized JNLPClassLoader. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: Add initialization flag. Move part of constructor into initialize method. Modify getInstance to allow temporarily bypassing initialization. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (createAppContext): New, creates an AppContext that captures the given (not necessarily yet valid) -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: app-context-fix.patch Type: text/x-patch Size: 16043 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130115/2070ed0e/app-context-fix.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: appcontext-reproducer.patch Type: text/x-patch Size: 16483 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130115/2070ed0e/appcontext-reproducer.patch From andrew at icedtea.classpath.org Tue Jan 15 08:56:20 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 16:56:20 +0000 Subject: /hg/release/icedtea7-2.2: 3 new changesets Message-ID: changeset e4826de9d75b in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=e4826de9d75b author: Andrew John Hughes date: Tue Jan 15 14:07:10 2013 +0000 G422525: Fix building with PaX enabled kernels. 2013-01-15 Andrew John Hughes * Makefile.am: (ICEDTEA_PATCHES): Add patch when building with PaX. * NEWS: Mention PaX bug fix from Gentoo, G422525. * patches/pax-mark-rmic-java.patch: PaX mark output directory before running just-built rmic. changeset a4e92bc2183a in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=a4e92bc2183a author: Andrew John Hughes date: Tue Jan 15 14:08:07 2013 +0000 Bump to 2.2.4. 2013-01-15 Andrew John Hughes * configure.ac: Bump to 2.2.4 proper. changeset 729585045b3b in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=729585045b3b author: Andrew John Hughes date: Tue Jan 15 16:56:13 2013 +0000 Added tag icedtea-2.2.4 for changeset a4e92bc2183a diffstat: .hgtags | 1 + ChangeLog | 15 +++++++++++++++ Makefile.am | 4 +++- NEWS | 2 ++ configure.ac | 2 +- patches/pax-mark-rmic-java.patch | 10 ++++++++++ 6 files changed, 32 insertions(+), 2 deletions(-) diffs (79 lines): diff -r 9cc2d9873b77 -r 729585045b3b .hgtags --- a/.hgtags Tue Jan 15 14:00:43 2013 +0000 +++ b/.hgtags Tue Jan 15 16:56:13 2013 +0000 @@ -37,3 +37,4 @@ 3ae81734f023f89f4b69bdfbd0cbd3601003a397 icedtea-2.2.1 760e7996f6dd1c325b03a024c60747571b7dc899 icedtea-2.2.2 e0645102f9be06f1d691c4d9033c1b8684b2ad1e icedtea-2.2.3 +a4e92bc2183a7a0e4a1a5f23d8d1f013ed267fe7 icedtea-2.2.4 diff -r 9cc2d9873b77 -r 729585045b3b ChangeLog --- a/ChangeLog Tue Jan 15 14:00:43 2013 +0000 +++ b/ChangeLog Tue Jan 15 16:56:13 2013 +0000 @@ -1,3 +1,18 @@ +2013-01-15 Andrew John Hughes + + * configure.ac: Bump to 2.2.4 proper. + +2013-01-15 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_PATCHES): Add patch when building + with PaX. + * NEWS: Mention PaX bug fix from Gentoo, + G422525. + * patches/pax-mark-rmic-java.patch: + PaX mark output directory before running just-built + rmic. + 2013-01-15 Andrew John Hughes * Makefile.am: diff -r 9cc2d9873b77 -r 729585045b3b Makefile.am --- a/Makefile.am Tue Jan 15 14:00:43 2013 +0000 +++ b/Makefile.am Tue Jan 15 16:56:13 2013 +0000 @@ -277,7 +277,9 @@ endif if WITH_PAX -ICEDTEA_PATCHES += patches/test_gamma.patch +ICEDTEA_PATCHES += \ + patches/test_gamma.patch \ + patches/pax-mark-rmic-java.patch endif ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES) diff -r 9cc2d9873b77 -r 729585045b3b NEWS --- a/NEWS Tue Jan 15 14:00:43 2013 +0000 +++ b/NEWS Tue Jan 15 16:56:13 2013 +0000 @@ -16,6 +16,8 @@ - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries - S8006017, CVE-2013-0422: Improve lookup resolutions - S8006125: Update MethodHandles library interactions +* Bug fixes + - G422525: Fix building with PaX enabled kernels. New in release 2.2.3 (2012-10-17): diff -r 9cc2d9873b77 -r 729585045b3b configure.ac --- a/configure.ac Tue Jan 15 14:00:43 2013 +0000 +++ b/configure.ac Tue Jan 15 16:56:13 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.2.4pre], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.2.4], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r 9cc2d9873b77 -r 729585045b3b patches/pax-mark-rmic-java.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pax-mark-rmic-java.patch Tue Jan 15 16:56:13 2013 +0000 @@ -0,0 +1,10 @@ +--- openjdk/jdk/make/com/sun/jmx/Makefile ++++ openjdk/jdk/make/com/sun/jmx/Makefile +@@ -119,6 +119,7 @@ + + $(CLASSDESTDIR)/%_Stub.class: $(CLASSDESTDIR)/%.class + $(prep-target) ++ "$(TOPDIR)"/../../pax-mark-vm "$(OUTPUTDIR)" + $(RMIC) -classpath "$(CLASSDESTDIR)" \ + -d $(CLASSDESTDIR) \ + -v1.2 \ From andrew at icedtea.classpath.org Tue Jan 15 09:44:02 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 17:44:02 +0000 Subject: /hg/release/icedtea7-2.1: Add 2013/01/15 security update. Message-ID: changeset c117045cbb6d in /hg/release/icedtea7-2.1 details: http://icedtea.classpath.org/hg/release/icedtea7-2.1?cmd=changeset;node=c117045cbb6d author: Andrew John Hughes date: Tue Jan 15 17:43:51 2013 +0000 Add 2013/01/15 security update. 2013-01-15 Andrew John Hughes * Makefile.am: (CORBA_CHANGESET): Update to IcedTea7 2.1 forest head; the tag icedtea-2.1.4. (HOTSPOT_CHANGESET): Likewise. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (HOTSPOT_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. * NEWS: List security fixes and set release date. * patches/boot/ecj-stringswitch.patch: Updated to work post-security-patches. diffstat: ChangeLog | 22 ++++++++++++++++++++++ Makefile.am | 28 ++++++++++++++-------------- NEWS | 7 ++++++- patches/boot/ecj-stringswitch.patch | 35 ++++++++++++++++++++++++++++++++--- 4 files changed, 74 insertions(+), 18 deletions(-) diffs (137 lines): diff -r 815ed44765eb -r c117045cbb6d ChangeLog --- a/ChangeLog Wed Oct 24 17:47:28 2012 +0100 +++ b/ChangeLog Tue Jan 15 17:43:51 2013 +0000 @@ -1,3 +1,25 @@ +2013-01-15 Andrew John Hughes + + * Makefile.am: + (CORBA_CHANGESET): Update to IcedTea7 2.1 forest head; + the tag icedtea-2.1.4. + (HOTSPOT_CHANGESET): Likewise. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (HOTSPOT_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + * NEWS: List security fixes and set release date. + * patches/boot/ecj-stringswitch.patch: + Updated to work post-security-patches. + 2012-10-24 Andrew John Hughes * NEWS: Corrected bad CVE number diff -r 815ed44765eb -r c117045cbb6d Makefile.am --- a/Makefile.am Wed Oct 24 17:47:28 2012 +0100 +++ b/Makefile.am Tue Jan 15 17:43:51 2013 +0000 @@ -4,21 +4,21 @@ JDK_UPDATE_VERSION = 03 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 79ee8535bc51 -HOTSPOT_CHANGESET = a456d0771ba0 -JAXP_CHANGESET = 77e7219c7424 -JAXWS_CHANGESET = d92eda447bca -JDK_CHANGESET = d7ecb57d3c61 -LANGTOOLS_CHANGESET = fd2fdb20d858 -OPENJDK_CHANGESET = f89009ada191 +CORBA_CHANGESET = fccd14ecf86c +HOTSPOT_CHANGESET = 3f345e5f65eb +JAXP_CHANGESET = fb08c190f504 +JAXWS_CHANGESET = 77e7849c5e50 +JDK_CHANGESET = e7d1cb36e005 +LANGTOOLS_CHANGESET = de674a569978 +OPENJDK_CHANGESET = bc612c7c99ec -CORBA_SHA256SUM = f61dad8d484e4a9e645b7fb73da87bc44f9986a074629154f37ed46be05f5b84 -HOTSPOT_SHA256SUM = 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0 -JAXP_SHA256SUM = 9cfbc0efaface20f7188870b9bf5b0ebc73d745cd9a49d013cd4e81ba223ccdc -JAXWS_SHA256SUM = 6d0858d46b68d6e8488e70d1675e5b656aeb4ef51e8ee4e330e77219f92c1c0c -JDK_SHA256SUM = 11146763409098a42dd9896f3fb7e7324a58c5cff5298009eb347ad26abeed51 -LANGTOOLS_SHA256SUM = 3a4039348aa49547fffa96563b77b704c72e2ac3ead2c132843ba1e9fe4dbad2 -OPENJDK_SHA256SUM = 0f2e414fee619e78c33bceaee7c440efa598d651b23a75fd61e1282ad6001839 +CORBA_SHA256SUM = bc761a960972906ec67b208e94f557bd9d1ceb07ae9020776a4774674d57ff44 +HOTSPOT_SHA256SUM = fa482a6ace16f95dd53cb99c842da401e634a4536ef1a18280e5d3b7843954b0 +JAXP_SHA256SUM = 619254245e5876614689c95cff44124462252bc0c074c85c657a1bac76e04043 +JAXWS_SHA256SUM = 4a60a1af32b4a274579e9932b22d552df6aae00640a3caf6a27109bdc2fe5d5a +JDK_SHA256SUM = 1397d8e1f15fb6cb28a8c37fe15c93f8b95d36d5a4c6753cf621d28af620d6bf +LANGTOOLS_SHA256SUM = b8c28b2de175694d1b8d6ff94c5ba616250aa3f39f41123e188cfec0b0a14da8 +OPENJDK_SHA256SUM = 4ee8fda9898f0b90fa05ea31907c20cd28d65bef550a332d35e3bd2f412cd399 CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 diff -r 815ed44765eb -r c117045cbb6d NEWS --- a/NEWS Wed Oct 24 17:47:28 2012 +0100 +++ b/NEWS Tue Jan 15 17:43:51 2013 +0000 @@ -10,7 +10,12 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 2.1.4 (20XX-XX-XX): +New in release 2.1.4 (2013-01-15): + +* Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions New in release 2.1.3 (2012-10-17): diff -r 815ed44765eb -r c117045cbb6d patches/boot/ecj-stringswitch.patch --- a/patches/boot/ecj-stringswitch.patch Wed Oct 24 17:47:28 2012 +0100 +++ b/patches/boot/ecj-stringswitch.patch Tue Jan 15 17:43:51 2013 +0000 @@ -302,9 +302,9 @@ throw new IllegalArgumentException( diff -Nru openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java ---- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 03:48:53.678554395 +0100 -+++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2012-10-17 04:20:20.203700764 +0100 -@@ -411,89 +411,84 @@ +--- openjdk-boot.orig/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-14 22:25:02.000000000 +0000 ++++ openjdk-boot/jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-01-15 02:19:34.315049222 +0000 +@@ -411,104 +411,99 @@ static boolean isCallerSensitive(MemberName mem) { assert(mem.isInvocable()); Class defc = mem.getDeclaringClass(); @@ -319,6 +319,35 @@ - case "lookup": + } else if ("lookup".equals(memName)) { return defc == java.lang.invoke.MethodHandles.class; +- case "findStatic": +- case "findVirtual": +- case "findConstructor": +- case "findSpecial": +- case "findGetter": +- case "findSetter": +- case "findStaticGetter": +- case "findStaticSetter": +- case "bind": +- case "unreflect": +- case "unreflectSpecial": +- case "unreflectConstructor": +- case "unreflectGetter": +- case "unreflectSetter": ++ } else if ("findStatic".equals(memName) || ++ "findVirtual".equals(memName) || ++ "findConstructor".equals(memName) || ++ "findSpecial".equals(memName) || ++ "findGetter".equals(memName) || ++ "findSetter".equals(memName) || ++ "findStaticGetter".equals(memName) || ++ "findStaticSetter".equals(memName) || ++ "bind".equals(memName) || ++ "unreflect".equals(memName) || ++ "unreflectSpecial".equals(memName) || ++ "unreflectConstructor".equals(memName) || ++ "unreflectGetter".equals(memName) || ++ "unreflectSetter".equals(memName)) { + return defc == java.lang.invoke.MethodHandles.Lookup.class; - case "invoke": + } else if ("invoke".equals(memName)) { return defc == java.lang.reflect.Method.class; From andrew at icedtea.classpath.org Tue Jan 15 12:23:48 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 15 Jan 2013 20:23:48 +0000 Subject: /hg/release/icedtea7-2.1: 2 new changesets Message-ID: changeset a25c80a05735 in /hg/release/icedtea7-2.1 details: http://icedtea.classpath.org/hg/release/icedtea7-2.1?cmd=changeset;node=a25c80a05735 author: Andrew John Hughes date: Tue Jan 15 17:46:58 2013 +0000 Bump to 2.1.4. 2013-01-15 Andrew John Hughes * configure.ac: Bump to 2.1.4 proper. changeset 9e76969f723f in /hg/release/icedtea7-2.1 details: http://icedtea.classpath.org/hg/release/icedtea7-2.1?cmd=changeset;node=9e76969f723f author: Andrew John Hughes date: Tue Jan 15 20:23:41 2013 +0000 Added tag icedtea-2.1.4 for changeset a25c80a05735 diffstat: .hgtags | 1 + ChangeLog | 4 ++++ configure.ac | 2 +- 3 files changed, 6 insertions(+), 1 deletions(-) diffs (28 lines): diff -r c117045cbb6d -r 9e76969f723f .hgtags --- a/.hgtags Tue Jan 15 17:43:51 2013 +0000 +++ b/.hgtags Tue Jan 15 20:23:41 2013 +0000 @@ -40,3 +40,4 @@ 5ce34ab2682058ad20bfba084ee6d05e84bd56c4 icedtea-2.1.1 9ade3410b04a47726a2f4ae677905dccc6930599 icedtea-2.1.2 f8309d7b8f6194920e3b9b003e726820195220b5 icedtea-2.1.3 +a25c80a05735543475e3c704a4162c0d1c02a441 icedtea-2.1.4 diff -r c117045cbb6d -r 9e76969f723f ChangeLog --- a/ChangeLog Tue Jan 15 17:43:51 2013 +0000 +++ b/ChangeLog Tue Jan 15 20:23:41 2013 +0000 @@ -1,3 +1,7 @@ +2013-01-15 Andrew John Hughes + + * configure.ac: Bump to 2.1.4 proper. + 2013-01-15 Andrew John Hughes * Makefile.am: diff -r c117045cbb6d -r 9e76969f723f configure.ac --- a/configure.ac Tue Jan 15 17:43:51 2013 +0000 +++ b/configure.ac Tue Jan 15 20:23:41 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.1.4pre], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.1.4], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From gnu.andrew at member.fsf.org Tue Jan 15 12:32:29 2013 From: gnu.andrew at member.fsf.org (Andrew John Hughes) Date: Tue, 15 Jan 2013 20:32:29 +0000 Subject: [SECURITY] IcedTea 2.1.4, 2.2.4 & 2.3.4 Released! Message-ID: <20130115203228.GA25549@carrie.middle-earth.co.uk> The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. These releases update our OpenJDK7 support to include the latest security updates just released: * S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries * S8006017, CVE-2013-0422: Improve lookup resolutions * S8006125: Update MethodHandles library interactions In addition, IcedTea includes the usual IcedTea patches to allow builds against system libraries and to support more estoric architectures. If you find an issue with one of these releases, please report it at http://icedtea.classpath.org/bugzilla under the appropriate component. Development discussion takes place on distro-pkg-dev at openjdk.java.net and patches are always welcome. Full details of the releases can be found below. What's New? =========== New in release 2.3.4 (2013-01-15): * Security fixes - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries - S8006017, CVE-2013-0422: Improve lookup resolutions - S8006125: Update MethodHandles library interactions * Backports - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts * Bug fixes - G422525: Fix building with PaX enabled kernels. New in release 2.2.4 (2013-01-15): * Security fixes - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries - S8006017, CVE-2013-0422: Improve lookup resolutions - S8006125: Update MethodHandles library interactions * Bug fixes - G422525: Fix building with PaX enabled kernels. New in release 2.1.4 (2013-01-15): * Security fixes - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries - S8006017, CVE-2013-0422: Improve lookup resolutions - S8006125: Update MethodHandles library interactions The tarball can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea-2.1.4.tar.gz * http://icedtea.classpath.org/download/source/icedtea-2.2.4.tar.gz * http://icedtea.classpath.org/download/source/icedtea-2.3.4.tar.gz SHA256 checksums: 7762ce53479e49f8afffc81621515eb6c3f765c578ff13d4c601ce4af8935db6 icedtea-2.1.4.tar.gz 6fd07ef223de0a24428384f56c848ce5e33e1030749de920adade570218f9ef3 icedtea-2.2.4.tar.gz ea859f37fb20904ffd40802a41396326f7e301fa6873d88d01bf4afef5a60ca8 icedtea-2.3.4.tar.gz Each tarball is accompanied by a digital signature (available at the above URL + '.sig'). This is produced using my public key. See details below. The following people helped with these releases: * Andrew John Hughes (application of security fixes, testing & release management) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea-${version}.tar.gz $ cd icedtea-${version} where ${version} is the version you've downloaded. Full build requirements and instructions are in INSTALL: $ ./configure [--with-parallel-jobs --enable-pulse-java --enable-systemtap ...] $ make Happy hacking! -- Andrew :) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130115/885f8b35/attachment.bin From adomurad at icedtea.classpath.org Tue Jan 15 12:50:11 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Tue, 15 Jan 2013 20:50:11 +0000 Subject: /hg/icedtea-web: 2 new changesets Message-ID: changeset 2e9ee0b45e33 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=2e9ee0b45e33 author: Adam Domurad date: Tue Jan 15 14:34:47 2013 -0500 Fix for PR1198: JSObject passed incorrectly to Javascript changeset e647159f95a4 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=e647159f95a4 author: Adam Domurad date: Tue Jan 15 15:50:06 2013 -0500 Unit tests for PR1198: JSObject not passed correctly to Javascript diffstat: ChangeLog | 42 + NEWS | 1 + plugin/icedteanp/IcedTeaJavaRequestProcessor.cc | 2 +- plugin/icedteanp/IcedTeaPluginRequestProcessor.cc | 2 +- plugin/icedteanp/IcedTeaPluginUtils.cc | 13 + plugin/icedteanp/java/netscape/javascript/JSObject.java | 10 + plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java | 49 ++ plugin/icedteanp/java/netscape/javascript/JSUtil.java | 14 +- plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 231 ++++----- plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 60 +-- tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java | 185 ++++++++ tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java | 3 - 12 files changed, 429 insertions(+), 183 deletions(-) diffs (truncated from 820 to 500 lines): diff -r 4118632d3c49 -r e647159f95a4 ChangeLog --- a/ChangeLog Thu Jan 10 18:23:06 2013 +0100 +++ b/ChangeLog Tue Jan 15 15:50:06 2013 -0500 @@ -1,3 +1,45 @@ +2013-01-15 Adam Domurad + + Unit test for PluginAppletSecurityContext#toObjectIDString. Make + PluginAppletSecurityContext more unit-testable. + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: + Don't initialize security manager in constructor. Fix a few Java->JS + corner cases. + * plugin/icedteanp/java/sun/applet/PluginMain.java: Create testing-only + constructor for bypassing initialization of SecurityManager. + * tests/netx/unit/sun/applet/PluginAppletSecurityContextTest.java: + Unit test for all the corner cases of converting a Java object to a + string that can be precisely identified. + +2013-01-15 Adam Domurad + + Fix PR1198: JSObject passed incorrectly to Javascript + * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Pass extra data for + 'jsobject' object result messages. + * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Same. + * plugin/icedteanp/IcedTeaPluginUtils.cc: Add special casing of + javascript references passed from java. + * plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java: + New permission for unboxing a JSObject's internal reference. + * plugin/icedteanp/java/netscape/javascript/JSObject.java + (getInternalReference): New, package-private, retrieves internal + reference (Must have proper permission). + * plugin/icedteanp/java/netscape/javascript/JSUtil.java + (getJSObjectInternalReference) New, utility for accessing + JSObject#getInternalReference from outside the package. + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java: + (toObjectIDString): New, creates a string that precisely identifies a + Java object. + (handleMessage): Replace a lot of duplicated functionality with + 'toObjectIDString'. + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Replace + duplicated functionality with 'toObjectIDString'. + * tests/reproducers/simple/JSObjectFromEval/srcs/JSObjectFromEval.java: + Don't print out type passed (differs from browser to browser). + * tests/reproducers/simple/JSObjectFromEval/testcases/JSObjectFromEvalTest.java: + Don't check type passed (differs from browser to browser). Remove + known-to-fail. Reformat. + 2013-01-10 Jiri Vanek Download indicator made compact for more then one jar diff -r 4118632d3c49 -r e647159f95a4 NEWS --- a/NEWS Thu Jan 10 18:23:06 2013 +0100 +++ b/NEWS Tue Jan 15 15:50:06 2013 -0500 @@ -24,6 +24,7 @@ - PR1166: Embedded JNLP File is not supported in applet tag - PR1217: Add command line arguments for plugins - PR1189: Icedtea-plugin requires code attribute when using jnlp_href + - PR1198: JSObject is not passed to javascript correctly * Common - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered - PR955: regression: SweetHome3D fails to run diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/IcedTeaJavaRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Thu Jan 10 18:23:06 2013 +0100 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Tue Jan 15 15:50:06 2013 -0500 @@ -131,7 +131,7 @@ !message_parts->at(4)->find("GetObjectArrayElement")) { - if (!message_parts->at(5)->find("literalreturn")) + if (!message_parts->at(5)->find("literalreturn") || !message_parts->at(5)->find("jsobject")) { // literal returns don't have a corresponding jni id result->return_identifier = 0; diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/IcedTeaPluginRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Thu Jan 10 18:23:06 2013 +0100 +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Tue Jan 15 15:50:06 2013 -0500 @@ -413,7 +413,7 @@ member = (NPVariant*) (IcedTeaPluginUtilities::stringToJSID(*(message_parts->at(5)))); propertyNameID = *(message_parts->at(6)); - if (*(message_parts->at(7)) == "literalreturn") + if (*(message_parts->at(7)) == "literalreturn" || *(message_parts->at(7)) == "jsobject" ) { value.append(*(message_parts->at(7))); value.append(" "); diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/IcedTeaPluginUtils.cc --- a/plugin/icedteanp/IcedTeaPluginUtils.cc Thu Jan 10 18:23:06 2013 +0100 +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Tue Jan 15 15:50:06 2013 -0500 @@ -776,6 +776,14 @@ } static bool +javaJSObjectResultToNPVariant(const std::string& js_id, NPVariant* variant) +{ + NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(js_id); + *variant = *result_variant; + return true; +} + +static bool javaObjectResultToNPVariant(NPP instance, const std::string& jobject_id, NPVariant* variant) { // Reference the class object so we can construct an NPObject with it and the instance @@ -811,9 +819,14 @@ std::string* java_value, NPVariant* variant) { int literal_n = sizeof("literalreturn"); // Accounts for one space char + int jsobject_n = sizeof("jsobject"); // Accounts for one space char + if (strncmp("literalreturn ", java_value->c_str(), literal_n) == 0) { javaPrimitiveResultToNPVariant(java_value->substr(literal_n), variant); + } else if (strncmp("jsobject ", java_value->c_str(), jsobject_n) == 0) + { + javaJSObjectResultToNPVariant(java_value->substr(jsobject_n), variant); } else { std::string jobject_id = *java_value; diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/java/netscape/javascript/JSObject.java --- a/plugin/icedteanp/java/netscape/javascript/JSObject.java Thu Jan 10 18:23:06 2013 +0100 +++ b/plugin/icedteanp/java/netscape/javascript/JSObject.java Tue Jan 15 15:50:06 2013 -0500 @@ -100,6 +100,16 @@ } /** + * Package-private method used through JSUtil#getJSObjectInternalReference. + * We make this package-private to avoid polluting the public interface. + * @return the internal identifier + */ + long getInternalReference() { + AccessController.getContext().checkPermission(new JSObjectUnboxPermission()); + return internal; + } + + /** * it is illegal to construct a JSObject manually */ public JSObject(int jsobj_addr) { diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugin/icedteanp/java/netscape/javascript/JSObjectUnboxPermission.java Tue Jan 15 15:50:06 2013 -0500 @@ -0,0 +1,49 @@ +/* JSObjectUnboxPermission.java + Copyright (C) 2012 Red Hat + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package netscape.javascript; + +import java.security.BasicPermission; + +/** + * Permission to access internal reference of JSObject + */ +public class JSObjectUnboxPermission extends BasicPermission { + public JSObjectUnboxPermission() { + super("JSObjectUnbox"); + } +} diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/java/netscape/javascript/JSUtil.java --- a/plugin/icedteanp/java/netscape/javascript/JSUtil.java Thu Jan 10 18:23:06 2013 +0100 +++ b/plugin/icedteanp/java/netscape/javascript/JSUtil.java Tue Jan 15 15:50:06 2013 -0500 @@ -57,4 +57,16 @@ return captureStream.toString(); } -} + + /** + * Uses package-private method JSObject.getInternalReference. + * This is package-private to avoid polluting the public interface. + * @param js JSObject to unbox + * @return the internal reference stored by the JSObject + */ + public static long getJSObjectInternalReference(JSObject js) { + // NB: permission is checked in JSObject + return js.getInternalReference(); + } + +} \ No newline at end of file diff -r 4118632d3c49 -r e647159f95a4 plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Thu Jan 10 18:23:06 2013 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java Tue Jan 15 15:50:06 2013 -0500 @@ -238,19 +238,24 @@ long startTime = 0; - public PluginAppletSecurityContext(int identifier) { + /* Package-private constructor that allows for bypassing security manager installation. + * This is useful for testing. Note that while the public constructor should be used otherwise, + * the security installation can't be bypassed if it has already occurred.*/ + PluginAppletSecurityContext(int identifier, boolean ensureSecurityContext) { this.identifier = identifier; - // We need a security manager.. and since there is a good chance that - // an applet will be loaded at some point, we should make it the SM - // that JNLPRuntime will try to install - if (System.getSecurityManager() == null) { - JNLPRuntime.initialize(/* isApplication */false); - JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); + if (ensureSecurityContext) { + // We need a security manager.. and since there is a good chance that + // an applet will be loaded at some point, we should make it the SM + // that JNLPRuntime will try to install + if (System.getSecurityManager() == null) { + JNLPRuntime.initialize(/* isApplication */false); + JNLPRuntime.setDefaultLaunchHandler(new DefaultLaunchHandler(System.err)); + } + + JNLPRuntime.disableExit(); } - JNLPRuntime.disableExit(); - URL u = null; try { u = new URL("file://"); @@ -261,6 +266,10 @@ this.classLoaders.put(liveconnectLoader, u); } + public PluginAppletSecurityContext(int identifier) { + this(identifier, true); + } + private static V parseCall(String s, ClassLoader cl, Class c) { if (c == Integer.class) return c.cast(new Integer(s)); @@ -321,6 +330,83 @@ return map; } + private static long privilegedJSObjectUnbox(final JSObject js) { + return AccessController.doPrivileged(new PrivilegedAction() { + public Long run() { + return JSUtil.getJSObjectInternalReference(js); + } + }); + } + + /** + * Create a string that identifies a Java object precisely, for passing to + * Javascript. + * + * For builtin value types, a 'literalreturn' prefix is used and the object + * is passed with a string representation. + * + * For JSObject's, a 'jsobject' prefix is used and the object is passed + * with the JSObject's internal identifier. + * + * For other Java objects, an object store reference is used. + * + * @param obj the object for which to create an identifier + * @param type the type to use for representation decisions + * @param unboxPrimitives whether to treat boxed primitives as value types + * @return an identifier string + */ + public String toObjectIDString(Object obj, Class type, boolean unboxPrimitives) { + + /* Void (can occur from declared return type), pass special "void" string: */ + if (type == Void.TYPE) { + return "literalreturn void"; + } + + /* Null, pass special "null" string: */ + if (obj == null) { + return "literalreturn null"; + } + + /* Primitive, accurately represented by its toString() form: */ + boolean returnAsString = ( type == Boolean.TYPE + || type == Byte.TYPE + || type == Short.TYPE + || type == Integer.TYPE + || type == Long.TYPE ); + if (unboxPrimitives) { + returnAsString = ( returnAsString + || type == Boolean.class + || type == Byte.class + || type == Short.class + || type == Integer.class + || type == Long.class); + } + if (returnAsString) { + return "literalreturn " + obj.toString(); + } + + /* Floating point number, we ensure we give enough precision: */ + if ( type == Float.TYPE || type == Double.TYPE || + ( unboxPrimitives && (type == Float.class || type == Double.class) )) { + return "literalreturn " + String.format("%308.308e", obj); + } + + /* Character that should be returned as number: */ + if (type == Character.TYPE || (unboxPrimitives && type == Character.class)) { + return "literalreturn " + (int) (Character) obj; + } + + /* JSObject, unwrap underlying Javascript reference: */ + if (type == netscape.javascript.JSObject.class) { + long reference = privilegedJSObjectUnbox((JSObject)obj); + return "jsobject " + Long.toString(reference); + } + + /* Other kind of object, track this object and return our reference: */ + store.reference(obj); + return store.getIdentifier(obj).toString(); + } + public void handleMessage(int reference, String src, AccessControlContext callContext, String message) { startTime = new java.util.Date().getTime(); @@ -429,56 +515,16 @@ if (ret instanceof Throwable) throw (Throwable) ret; - if (ret == null) { - write(reference, "GetStaticField literalreturn null"); - } else if (f.getType() == Boolean.TYPE - || f.getType() == Byte.TYPE - || f.getType() == Short.TYPE - || f.getType() == Integer.TYPE - || f.getType() == Long.TYPE) { - write(reference, "GetStaticField literalreturn " + ret); - } else if (f.getType() == Float.TYPE - || f.getType() == Double.TYPE) { - write(reference, "GetStaticField literalreturn " + String.format("%308.308e", ret)); - } else if (f.getType() == Character.TYPE) { - write(reference, "GetStaticField literalreturn " + (int) (Character) ret); - } else { - // Track returned object. - store.reference(ret); - write(reference, "GetStaticField " + store.getIdentifier(ret)); - } + String objIDStr = toObjectIDString(ret, f.getType(), false /*do not unbox primitives*/); + write(reference, "GetStaticField " + objIDStr); } else if (message.startsWith("GetValue")) { String[] args = message.split(" "); Integer index = parseCall(args[1], null, Integer.class); Object ret = store.getObject(index); - if (ret == null) { - write(reference, "GetValue literalreturn null"); - } else if (ret.getClass() == Boolean.TYPE - || ret.getClass() == Boolean.class - || ret.getClass() == Byte.TYPE - || ret.getClass() == Byte.class - || ret.getClass() == Short.TYPE - || ret.getClass() == Short.class - || ret.getClass() == Integer.TYPE - || ret.getClass() == Integer.class - || ret.getClass() == Long.TYPE - || ret.getClass() == Long.class) { - write(reference, "GetValue literalreturn " + ret); - } else if (ret.getClass() == Float.TYPE - || ret.getClass() == Float.class - || ret.getClass() == Double.TYPE - || ret.getClass() == Double.class) { - write(reference, "GetValue literalreturn " + String.format("%308.308e", ret)); - } else if (ret.getClass() == Character.TYPE - || ret.getClass() == Character.class) { - write(reference, "GetValue literalreturn " + (int) (Character) ret); - } else { - // Track returned object. - store.reference(ret); - write(reference, "GetValue " + store.getIdentifier(ret)); - } + String objIDStr = toObjectIDString(ret, ret.getClass(), true /*unbox primitives*/); + write(reference, "GetValue " + objIDStr); } else if (message.startsWith("SetStaticField") || message.startsWith("SetField")) { String[] args = message.split(" "); @@ -519,24 +565,8 @@ Object ret = Array.get(array, index); Class retClass = array.getClass().getComponentType(); // prevent auto-boxing influence - if (ret == null) { - write(reference, "GetObjectArrayElement literalreturn null"); - } else if (retClass == Boolean.TYPE - || retClass == Byte.TYPE - || retClass == Short.TYPE - || retClass == Integer.TYPE - || retClass == Long.TYPE) { - write(reference, "GetObjectArrayElement literalreturn " + ret); - } else if (retClass == Float.TYPE - || retClass == Double.TYPE) { - write(reference, "GetObjectArrayElement literalreturn " + String.format("%308.308e", ret)); - } else if (retClass == Character.TYPE) { - write(reference, "GetObjectArrayElement literalreturn " + (int) (Character) ret); - } else { - // Track returned object. - store.reference(ret); - write(reference, "GetObjectArrayElement " + store.getIdentifier(ret)); - } + String objIDStr = toObjectIDString(ret, retClass, false /*do not unbox primitives*/); + write(reference, "GetObjectArrayElement " + objIDStr); } else if (message.startsWith("SetObjectArrayElement")) { String[] args = message.split(" "); @@ -586,25 +616,8 @@ if (ret instanceof Throwable) throw (Throwable) ret; - if (ret == null) { - write(reference, "GetField literalreturn null"); - } else if (f.getType() == Boolean.TYPE - || f.getType() == Byte.TYPE - || f.getType() == Short.TYPE - || f.getType() == Integer.TYPE - || f.getType() == Long.TYPE) { - write(reference, "GetField literalreturn " + ret); - } else if (f.getType() == Float.TYPE - || f.getType() == Double.TYPE) { - write(reference, "GetField literalreturn " + String.format("%308.308e", ret)); - } else if (f.getType() == Character.TYPE) { - write(reference, "GetField literalreturn " + (int) (Character) ret); - } else { - // Track returned object. - store.reference(ret); - write(reference, "GetField " + store.getIdentifier(ret)); - } - + String objIDStr = toObjectIDString(ret, f.getType(), false /*do not unbox primitives*/); + write(reference, "GetField " + objIDStr); } else if (message.startsWith("GetObjectClass")) { int oid = Integer.parseInt(message.substring("GetObjectClass" .length() + 1)); @@ -690,27 +703,8 @@ , collapsedArgs, " and that returned: ", ret , " of type ", retO); - if (m.getReturnType().equals(java.lang.Void.class) || - m.getReturnType().equals(java.lang.Void.TYPE)) { - write(reference, "CallMethod literalreturn void"); - } else if (ret == null) { - write(reference, "CallMethod literalreturn null"); - } else if (m.getReturnType() == Boolean.TYPE - || m.getReturnType() == Byte.TYPE - || m.getReturnType() == Short.TYPE - || m.getReturnType() == Integer.TYPE - || m.getReturnType() == Long.TYPE) { - write(reference, "CallMethod literalreturn " + ret); - } else if (m.getReturnType() == Float.TYPE - || m.getReturnType() == Double.TYPE) { - write(reference, "CallMethod literalreturn " + String.format("%308.308e", ret)); - } else if (m.getReturnType() == Character.TYPE) { - write(reference, "CallMethod literalreturn " + (int) (Character) ret); - } else { - // Track returned object. - store.reference(ret); - write(reference, "CallMethod " + store.getIdentifier(ret)); - } + String objIDStr = toObjectIDString(ret, m.getReturnType(), false /*do not unbox primitives*/); + write(reference, "CallMethod " + objIDStr); } else if (message.startsWith("GetSuperclass")) { String[] args = message.split(" "); Integer classID = parseCall(args[1], null, Integer.class); @@ -778,10 +772,7 @@ buf = new StringBuffer(b.length * 2); buf.append(b.length); for (int i = 0; i < b.length; i++) - buf - .append(" " - + Integer - .toString(((int) b[i]) & 0x0ff, 16)); + buf.append(" " + Integer.toString(((int) b[i]) & 0x0ff, 16)); From bugzilla-daemon at icedtea.classpath.org Tue Jan 15 12:50:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 15 Jan 2013 20:50:41 +0000 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1198 --- Comment #7 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=2e9ee0b45e33 author: Adam Domurad date: Tue Jan 15 14:34:47 2013 -0500 Fix for PR1198: JSObject passed incorrectly to Javascript -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130115/37ab4ac4/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 15 12:50:55 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 15 Jan 2013 20:50:55 +0000 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1198 --- Comment #8 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=e647159f95a4 author: Adam Domurad date: Tue Jan 15 15:50:06 2013 -0500 Unit tests for PR1198: JSObject not passed correctly to Javascript -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130115/b6d4cde1/attachment.html From andrew at icedtea.classpath.org Tue Jan 15 17:11:19 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 16 Jan 2013 01:11:19 +0000 Subject: /hg/release/icedtea7-2.3: 2 new changesets Message-ID: changeset 5fc3319dea01 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=5fc3319dea01 author: Andrew John Hughes date: Wed Jan 16 01:07:49 2013 +0000 Fix application of 6924259 to Zero's HotSpot, which was broken by addition of 7158800 in 2.1.3. 2013-01-16 Andrew John Hughes * patches/hotspot/zero/6924259-string_offset.patch: Fix patch to apply against HotSpot from 2.1.3. changeset 9f56fa25a4f3 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=9f56fa25a4f3 author: Andrew John Hughes date: Wed Jan 16 01:11:05 2013 +0000 Prepare for 2.3.5pre. 2013-01-16 Andrew John Hughes * NEWS: Add 2.3.5 section and document fix of Zero build. * configure.ac: Bump to 2.3.5pre. diffstat: ChangeLog | 11 + NEWS | 5 + configure.ac | 2 +- patches/hotspot/zero/6924259-string_offset.patch | 154 ++++++++++------------ 4 files changed, 85 insertions(+), 87 deletions(-) diffs (364 lines): diff -r fa200daee354 -r 9f56fa25a4f3 ChangeLog --- a/ChangeLog Tue Jan 15 09:43:14 2013 +0000 +++ b/ChangeLog Wed Jan 16 01:11:05 2013 +0000 @@ -1,3 +1,14 @@ +2013-01-16 Andrew John Hughes + + * NEWS: Add 2.3.5 section and document + fix of Zero build. + * configure.ac: Bump to 2.3.5pre. + +2013-01-16 Andrew John Hughes + + * patches/hotspot/zero/6924259-string_offset.patch: + Fix patch to apply against HotSpot from 2.1.3. + 2013-01-15 Andrew John Hughes * NEWS: Mention PaX bug fix from Gentoo, diff -r fa200daee354 -r 9f56fa25a4f3 NEWS --- a/NEWS Tue Jan 15 09:43:14 2013 +0000 +++ b/NEWS Wed Jan 16 01:11:05 2013 +0000 @@ -10,6 +10,11 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 2.3.5 (2013-XX-XX): + +* Bug fixes + - Fix build using Zero's HotSpot so all patches apply again. + New in release 2.3.4 (2013-01-15): * Security fixes diff -r fa200daee354 -r 9f56fa25a4f3 configure.ac --- a/configure.ac Tue Jan 15 09:43:14 2013 +0000 +++ b/configure.ac Wed Jan 16 01:11:05 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.3.4], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.3.5pre], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) diff -r fa200daee354 -r 9f56fa25a4f3 patches/hotspot/zero/6924259-string_offset.patch --- a/patches/hotspot/zero/6924259-string_offset.patch Tue Jan 15 09:43:14 2013 +0000 +++ b/patches/hotspot/zero/6924259-string_offset.patch Wed Jan 16 01:11:05 2013 +0000 @@ -1,15 +1,6 @@ -# HG changeset patch -# User kvn -# Date 1337013360 25200 -# Node ID 3facbb14e873f14af743e05139e6e48b5890ffcc -# Parent ea3152ff2a498749bf5d889b247902f5d02915be -6924259: Remove String.count/String.offset -Summary: Allow a version of String class that doesn't have count and offset fields. -Reviewed-by: never, coleenp - -diff --git a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ---- openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp -+++ openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +diff -Nru openjdk.orig/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +--- openjdk.orig/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp 2013-01-16 00:42:59.059088003 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. @@ -99,9 +90,9 @@ __ lduh(base0, limit, chr0); __ bind(Lloop); -diff --git a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ---- openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp -+++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +diff -Nru openjdk.orig/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +--- openjdk.orig/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2013-01-16 00:41:43.257866830 +0000 ++++ openjdk/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2013-01-16 00:42:59.059088003 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. @@ -109,7 +100,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -505,19 +505,28 @@ +@@ -506,19 +506,28 @@ // Get addresses of first characters from both Strings __ load_heap_oop(rsi, Address(rax, java_lang_String::value_offset_in_bytes())); @@ -145,9 +136,9 @@ __ mov (rcx, rbx); __ subptr(rbx, rax); // subtract lengths __ push (rbx); // result -diff --git a/src/share/vm/classfile/javaClasses.cpp b/src/share/vm/classfile/javaClasses.cpp ---- openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp -+++ openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp +diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.cpp openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp +--- openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.cpp 2013-01-16 00:41:43.273867087 +0000 ++++ openjdk/hotspot/src/share/vm/classfile/javaClasses.cpp 2013-01-16 00:42:59.071088195 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -155,7 +146,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -143,7 +143,27 @@ +@@ -144,7 +144,27 @@ } @@ -224,9 +215,9 @@ // java.lang.Class -diff --git a/src/share/vm/classfile/javaClasses.hpp b/src/share/vm/classfile/javaClasses.hpp ---- openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp -+++ openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp +diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.hpp openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp +--- openjdk.orig/hotspot/src/share/vm/classfile/javaClasses.hpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/classfile/javaClasses.hpp 2013-01-16 00:42:59.071088195 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -349,10 +340,10 @@ } static int utf8_length(oop java_string); -diff --git a/src/share/vm/classfile/systemDictionary.cpp b/src/share/vm/classfile/systemDictionary.cpp ---- openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp -+++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp -@@ -1971,6 +1971,9 @@ +diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp +--- openjdk.orig/hotspot/src/share/vm/classfile/systemDictionary.cpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/classfile/systemDictionary.cpp 2013-01-16 00:42:59.075088258 +0000 +@@ -1953,6 +1953,9 @@ // first do Object, String, Class initialize_wk_klasses_through(WK_KLASS_ENUM_NAME(Class_klass), scan, CHECK); @@ -362,10 +353,10 @@ java_lang_Class::compute_offsets(); // Fixup mirrors for classes loaded before java.lang.Class. -diff --git a/src/share/vm/classfile/vmSymbols.hpp b/src/share/vm/classfile/vmSymbols.hpp ---- openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp -+++ openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp -@@ -339,6 +339,9 @@ +diff -Nru openjdk.orig/hotspot/src/share/vm/classfile/vmSymbols.hpp openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp +--- openjdk.orig/hotspot/src/share/vm/classfile/vmSymbols.hpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/classfile/vmSymbols.hpp 2013-01-16 00:42:59.083088388 +0000 +@@ -337,6 +337,9 @@ template(park_event_name, "nativeParkEventPointer") \ template(cache_field_name, "cache") \ template(value_name, "value") \ @@ -375,9 +366,9 @@ template(frontCacheEnabled_name, "frontCacheEnabled") \ template(stringCacheEnabled_name, "stringCacheEnabled") \ template(numberOfLeadingZeros_name, "numberOfLeadingZeros") \ -diff --git a/src/share/vm/memory/dump.cpp b/src/share/vm/memory/dump.cpp ---- openjdk/hotspot/src/share/vm/memory/dump.cpp -+++ openjdk/hotspot/src/share/vm/memory/dump.cpp +diff -Nru openjdk.orig/hotspot/src/share/vm/memory/dump.cpp openjdk/hotspot/src/share/vm/memory/dump.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/dump.cpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/dump.cpp 2013-01-16 00:43:46.135846474 +0000 @@ -78,8 +78,8 @@ void do_oop(oop* p) { if (p != NULL) { @@ -386,12 +377,12 @@ - + if (obj->klass() == SystemDictionary::String_klass() && + java_lang_String::has_hash_field()) { - int hash = java_lang_String::hash_string(obj); + int hash = java_lang_String::to_hash(obj); obj->int_field_put(hash_offset, hash); } -diff --git a/src/share/vm/opto/graphKit.cpp b/src/share/vm/opto/graphKit.cpp ---- openjdk/hotspot/src/share/vm/opto/graphKit.cpp -+++ openjdk/hotspot/src/share/vm/opto/graphKit.cpp +diff -Nru openjdk.orig/hotspot/src/share/vm/opto/graphKit.cpp openjdk/hotspot/src/share/vm/opto/graphKit.cpp +--- openjdk.orig/hotspot/src/share/vm/opto/graphKit.cpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/opto/graphKit.cpp 2013-01-16 00:42:59.091088517 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. @@ -399,7 +390,7 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -3748,3 +3748,81 @@ +@@ -3730,3 +3730,81 @@ final_sync(ideal); } #undef __ @@ -481,9 +472,9 @@ + store_to_memory(ctrl, basic_plus_adr(str, count_offset), + value, T_INT, count_field_idx); +} -diff --git a/src/share/vm/opto/graphKit.hpp b/src/share/vm/opto/graphKit.hpp ---- openjdk/hotspot/src/share/vm/opto/graphKit.hpp -+++ openjdk/hotspot/src/share/vm/opto/graphKit.hpp +diff -Nru openjdk.orig/hotspot/src/share/vm/opto/graphKit.hpp openjdk/hotspot/src/share/vm/opto/graphKit.hpp +--- openjdk.orig/hotspot/src/share/vm/opto/graphKit.hpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/opto/graphKit.hpp 2013-01-16 00:42:59.095088581 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. @@ -506,9 +497,9 @@ // Handy for making control flow IfNode* create_and_map_if(Node* ctrl, Node* tst, float prob, float cnt) { IfNode* iff = new (C, 2) IfNode(ctrl, tst, prob, cnt);// New IfNode's -diff --git a/src/share/vm/opto/library_call.cpp b/src/share/vm/opto/library_call.cpp ---- openjdk/hotspot/src/share/vm/opto/library_call.cpp -+++ openjdk/hotspot/src/share/vm/opto/library_call.cpp +diff -Nru openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp openjdk/hotspot/src/share/vm/opto/library_call.cpp +--- openjdk.orig/hotspot/src/share/vm/opto/library_call.cpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/opto/library_call.cpp 2013-01-16 00:42:59.095088581 +0000 @@ -147,7 +147,8 @@ return generate_method_call(method_id, true, false); } @@ -519,7 +510,7 @@ bool inline_string_compareTo(); bool inline_string_indexOf(); Node* string_indexOf(Node* string_object, ciTypeArray* target_array, jint offset, jint cache_i, jint md2_i); -@@ -844,48 +845,45 @@ +@@ -844,48 +845,76 @@ //------------------------------make_string_method_node------------------------ @@ -588,13 +579,18 @@ result = new (C, 5) StrEqualsNode(control(), memory(TypeAryPtr::CHARS), - str1_start, str2_start, cnt1); + str1_start, str2_start, str1_len); - break; - default: - ShouldNotReachHere(); -@@ -898,15 +896,42 @@ - return _gvn.transform(result); - } - ++ break; ++ default: ++ ShouldNotReachHere(); ++ return NULL; ++ } ++ ++ // All these intrinsics have checks. ++ C->set_has_split_ifs(true); // Has chance for split-if optimization ++ ++ return _gvn.transform(result); ++} ++ +// Helper method for String intrinsic functions. This version is called +// with str1 and str2 pointing to char[] nodes, with cnt1 and cnt2 pointing +// to Int nodes containing the lenghts of str1 and str2. @@ -614,20 +610,10 @@ + case Op_StrEquals: + result = new (C, 5) StrEqualsNode(control(), memory(TypeAryPtr::CHARS), + str1_start, str2_start, cnt1); -+ break; -+ default: -+ ShouldNotReachHere(); -+ return NULL; -+ } -+ -+ // All these intrinsics have checks. -+ C->set_has_split_ifs(true); // Has chance for split-if optimization -+ -+ return _gvn.transform(result); -+} -+ - //------------------------------inline_string_compareTo------------------------ - bool LibraryCallKit::inline_string_compareTo() { + break; + default: + ShouldNotReachHere(); +@@ -903,10 +932,6 @@ if (!Matcher::has_match_rule(Op_StrComp)) return false; @@ -690,9 +676,6 @@ - // Get counts for string and argument - Node* receiver_cnta = basic_plus_adr(receiver, receiver, count_offset); - receiver_cnt = make_load(no_ctrl, receiver_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); -- -- Node* argument_cnta = basic_plus_adr(argument, argument, count_offset); -- argument_cnt = make_load(no_ctrl, argument_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + Node* no_ctrl = NULL; + + // Get start addr of receiver @@ -707,7 +690,9 @@ + Node* argument_val = load_String_value(no_ctrl, argument); + Node* argument_offset = load_String_offset(no_ctrl, argument); + Node* argument_start = array_element_address(argument_val, argument_offset, T_CHAR); -+ + +- Node* argument_cnta = basic_plus_adr(argument, argument, count_offset); +- argument_cnt = make_load(no_ctrl, argument_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + // Get length of argument + Node* argument_cnt = load_String_length(no_ctrl, argument); @@ -718,16 +703,14 @@ region->init_req(4, if_ne); } - } -- + - // Check for count == 0 is done by mach node StrEquals. -- ++ // Check for count == 0 is done by assembler code for StrEquals. + - if (!stopped()) { - Node* equals = make_string_method_node(Op_StrEquals, receiver, receiver_cnt, argument, argument_cnt); - phi->init_req(1, equals); - region->init_req(1, control()); -+ -+ // Check for count == 0 is done by assembler code for StrEquals. -+ + if (!stopped()) { + Node* equals = make_string_method_node(Op_StrEquals, receiver_start, receiver_cnt, argument_start, argument_cnt); + phi->init_req(1, equals); @@ -778,9 +761,6 @@ - // Get counts for string and substr - Node* source_cnta = basic_plus_adr(receiver, receiver, count_offset); - Node* source_cnt = make_load(no_ctrl, source_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); -- -- Node* substr_cnta = basic_plus_adr(argument, argument, count_offset); -- Node* substr_cnt = make_load(no_ctrl, substr_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + // Get start addr of source string + Node* source = load_String_value(no_ctrl, receiver); + Node* source_offset = load_String_offset(no_ctrl, receiver); @@ -793,7 +773,9 @@ + Node* substr = load_String_value(no_ctrl, argument); + Node* substr_offset = load_String_offset(no_ctrl, argument); + Node* substr_start = array_element_address(substr, substr_offset, T_CHAR); -+ + +- Node* substr_cnta = basic_plus_adr(argument, argument, count_offset); +- Node* substr_cnt = make_load(no_ctrl, substr_cnta, TypeInt::INT, T_INT, string_type->add_offset(count_offset)); + // Get length of source string + Node* substr_cnt = load_String_length(no_ctrl, argument); @@ -831,9 +813,9 @@ // constant strings have no offset and count == length which // simplifies the resulting code somewhat so lets optimize for that. if (o != 0 || c != pat->length()) { -diff --git a/src/share/vm/opto/stringopts.cpp b/src/share/vm/opto/stringopts.cpp ---- openjdk/hotspot/src/share/vm/opto/stringopts.cpp -+++ openjdk/hotspot/src/share/vm/opto/stringopts.cpp +diff -Nru openjdk.orig/hotspot/src/share/vm/opto/stringopts.cpp openjdk/hotspot/src/share/vm/opto/stringopts.cpp +--- openjdk.orig/hotspot/src/share/vm/opto/stringopts.cpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/opto/stringopts.cpp 2013-01-16 00:42:59.099088646 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. @@ -912,9 +894,9 @@ // hook up the outgoing control and result kit.replace_call(sc->end(), result); -diff --git a/src/share/vm/opto/stringopts.hpp b/src/share/vm/opto/stringopts.hpp ---- openjdk/hotspot/src/share/vm/opto/stringopts.hpp -+++ openjdk/hotspot/src/share/vm/opto/stringopts.hpp +diff -Nru openjdk.orig/hotspot/src/share/vm/opto/stringopts.hpp openjdk/hotspot/src/share/vm/opto/stringopts.hpp +--- openjdk.orig/hotspot/src/share/vm/opto/stringopts.hpp 2012-10-17 08:52:30.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/opto/stringopts.hpp 2013-01-16 00:42:59.103088711 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. From andrew at icedtea.classpath.org Tue Jan 15 17:27:32 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 16 Jan 2013 01:27:32 +0000 Subject: /hg/release/icedtea7-2.2: Prepare for 2.2.5. Message-ID: changeset bd981b9485ed in /hg/release/icedtea7-2.2 details: http://icedtea.classpath.org/hg/release/icedtea7-2.2?cmd=changeset;node=bd981b9485ed author: Andrew John Hughes date: Wed Jan 16 01:26:58 2013 +0000 Prepare for 2.2.5. 2013-01-16 Andrew John Hughes * NEWS: Add 2.2.5 section. * configure.ac: Bump to 2.2.5pre. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r 729585045b3b -r bd981b9485ed ChangeLog --- a/ChangeLog Tue Jan 15 16:56:13 2013 +0000 +++ b/ChangeLog Wed Jan 16 01:26:58 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-16 Andrew John Hughes + + * NEWS: Add 2.2.5 section. + * configure.ac: Bump to 2.2.5pre. + 2013-01-15 Andrew John Hughes * configure.ac: Bump to 2.2.4 proper. diff -r 729585045b3b -r bd981b9485ed NEWS --- a/NEWS Tue Jan 15 16:56:13 2013 +0000 +++ b/NEWS Wed Jan 16 01:26:58 2013 +0000 @@ -10,6 +10,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 2.2.5 (2013-XX-XX): + New in release 2.2.4 (2013-01-15): * Security fixes diff -r 729585045b3b -r bd981b9485ed configure.ac --- a/configure.ac Tue Jan 15 16:56:13 2013 +0000 +++ b/configure.ac Wed Jan 16 01:26:58 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.2.4], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.2.5pre], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Tue Jan 15 17:32:52 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 16 Jan 2013 01:32:52 +0000 Subject: /hg/release/icedtea7-2.1: Prepare for 2.1.5. Message-ID: changeset bb542cc4ab30 in /hg/release/icedtea7-2.1 details: http://icedtea.classpath.org/hg/release/icedtea7-2.1?cmd=changeset;node=bb542cc4ab30 author: Andrew John Hughes date: Wed Jan 16 01:32:13 2013 +0000 Prepare for 2.1.5. 2013-01-16 Andrew John Hughes * NEWS: Add 2.1.5 section. * configure.ac: Bump to 2.1.5pre. diffstat: ChangeLog | 5 +++++ NEWS | 2 ++ configure.ac | 2 +- 3 files changed, 8 insertions(+), 1 deletions(-) diffs (33 lines): diff -r 9e76969f723f -r bb542cc4ab30 ChangeLog --- a/ChangeLog Tue Jan 15 20:23:41 2013 +0000 +++ b/ChangeLog Wed Jan 16 01:32:13 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-16 Andrew John Hughes + + * NEWS: Add 2.1.5 section. + * configure.ac: Bump to 2.1.5pre. + 2013-01-15 Andrew John Hughes * configure.ac: Bump to 2.1.4 proper. diff -r 9e76969f723f -r bb542cc4ab30 NEWS --- a/NEWS Tue Jan 15 20:23:41 2013 +0000 +++ b/NEWS Wed Jan 16 01:32:13 2013 +0000 @@ -10,6 +10,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY +New in release 2.1.5 (2013-XX-XX): + New in release 2.1.4 (2013-01-15): * Security fixes diff -r 9e76969f723f -r bb542cc4ab30 configure.ac --- a/configure.ac Tue Jan 15 20:23:41 2013 +0000 +++ b/configure.ac Wed Jan 16 01:32:13 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea], [2.1.4], [distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea], [2.1.5pre], [distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Tue Jan 15 17:38:36 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 16 Jan 2013 01:38:36 +0000 Subject: /hg/icedtea7: Add release notes for 2.1.4, 2.2.4 and 2.3.4. Message-ID: changeset bf3fe7bcc615 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=bf3fe7bcc615 author: Andrew John Hughes date: Wed Jan 16 01:38:30 2013 +0000 Add release notes for 2.1.4, 2.2.4 and 2.3.4. 2013-01-16 Andrew John Hughes * NEWS: Add 2.1.4, 2.2.4 and 2.3.4 release notes. diffstat: ChangeLog | 5 +++++ NEWS | 28 +++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletions(-) diffs (57 lines): diff -r 08d655f1631e -r bf3fe7bcc615 ChangeLog --- a/ChangeLog Tue Jan 15 01:10:49 2013 +0000 +++ b/ChangeLog Wed Jan 16 01:38:30 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-16 Andrew John Hughes + + * NEWS: Add 2.1.4, 2.2.4 and 2.3.4 release + notes. + 2013-01-14 Andrew John Hughes * patches/hotspot/zero/7089790-bsd_port.patch, diff -r 08d655f1631e -r bf3fe7bcc615 NEWS --- a/NEWS Tue Jan 15 01:10:49 2013 +0000 +++ b/NEWS Wed Jan 16 01:38:30 2013 +0000 @@ -541,7 +541,6 @@ - S7197106: renumber hs23.4 to hs23.6 - S7197619: Using modifiers for the dead key detection on Windows - S7197652: Impossible to run any signed JNLP applications or applets, OCSP off by default - - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts - S7198073: (prefs) user prefs not saved [macosx] - S7198084: NPG: distance is too big for short branches in test_invocation_counter_for_mdp() - S7198130: G1: PrintReferenceGC output comes out of order @@ -680,6 +679,33 @@ - Set UNLIMITED_CRYPTO=true to ensure we use the unlimited policy. - Set handleStartupErrors to ignoreMultipleInitialisation in nss.cfg to fix PR473 +New in release 2.3.4 (2013-01-15): + +* Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions +* Backports + - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts +* Bug fixes + - G422525: Fix building with PaX enabled kernels. + +New in release 2.2.4 (2013-01-15): + +* Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions +* Bug fixes + - G422525: Fix building with PaX enabled kernels. + +New in release 2.1.4 (2013-01-15): + +* Security fixes + - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries + - S8006017, CVE-2013-0422: Improve lookup resolutions + - S8006125: Update MethodHandles library interactions + New in release 2.3.3 (2012-10-17): * Security fixes From andrew at icedtea.classpath.org Tue Jan 15 17:41:04 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 16 Jan 2013 01:41:04 +0000 Subject: /hg/release/icedtea7-2.3: Recategorise 7197906 as a backport. Message-ID: changeset e5dd5d152b68 in /hg/release/icedtea7-2.3 details: http://icedtea.classpath.org/hg/release/icedtea7-2.3?cmd=changeset;node=e5dd5d152b68 author: Andrew John Hughes date: Wed Jan 16 01:40:59 2013 +0000 Recategorise 7197906 as a backport. 2013-01-16 Andrew John Hughes * NEWS: Recategorise 7197906 as a backport. diffstat: ChangeLog | 4 ++++ NEWS | 3 ++- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (25 lines): diff -r 9f56fa25a4f3 -r e5dd5d152b68 ChangeLog --- a/ChangeLog Wed Jan 16 01:11:05 2013 +0000 +++ b/ChangeLog Wed Jan 16 01:40:59 2013 +0000 @@ -1,3 +1,7 @@ +2013-01-16 Andrew John Hughes + + * NEWS: Recategorise 7197906 as a backport. + 2013-01-16 Andrew John Hughes * NEWS: Add 2.3.5 section and document diff -r 9f56fa25a4f3 -r e5dd5d152b68 NEWS --- a/NEWS Wed Jan 16 01:11:05 2013 +0000 +++ b/NEWS Wed Jan 16 01:40:59 2013 +0000 @@ -21,8 +21,9 @@ - S8004933, CVE-2012-3174: Improve MethodHandle interaction with libraries - S8006017, CVE-2013-0422: Improve lookup resolutions - S8006125: Update MethodHandles library interactions +* Backports + - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts * Bug fixes - - S7197906: BlockOffsetArray::power_to_cards_back() needs to handle > 32 bit shifts - G422525: Fix building with PaX enabled kernels. New in release 2.3.3 (2012-10-17): From fcassia at gmail.com Tue Jan 15 20:25:16 2013 From: fcassia at gmail.com (Fernando Cassia) Date: Wed, 16 Jan 2013 01:25:16 -0300 Subject: Ubuntu 12.04 and JAMVM In-Reply-To: References: Message-ID: On Tue, Jan 15, 2013 at 6:46 AM, Richard Warburton wrote: > JAM VM is the default on ARM [0], is that the platform you're installing on? Ubuntu 12.04.1 LTS on 32-bit x86 oh, this sheds some light: https://launchpad.net/ubuntu/+source/openjdk-7 icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM for OpenJDK icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM openjdk-7-dbg: Java runtime based on OpenJDK (debugging symbols) openjdk-7-demo: Java runtime based on OpenJDK (demos and examples) openjdk-7-doc: OpenJDK Development Kit (JDK) documentation openjdk-7-jdk: OpenJDK Development Kit (JDK) openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero openjdk-7-jre-headless: OpenJDK Java runtime, using Hotspot Zero (headless) openjdk-7-jre-lib: OpenJDK Java runtime (architecture independent libraries) openjdk-7-jre-zero: Alternative JVM for OpenJDK, using Zero/Shark openjdk-7-source: OpenJDK Development Kit (JDK) source files So it looks like I should be installing package ?openjdk-7-jre?, which was NOT listed among the options when one types ?java? on a freshly installed Ubuntu system. It?s a bit odd that calling "java" when it?s not installed only gives JAM VM and Cacao as options, and openjdk-7-jre is not listed. As if they don?t want Hotspot installed. Maybe I should file a bug to have openjdk-7-jre shown along the other alternatives... But this brings another question: icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM for OpenJDK icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM does this mean that Icedtea -the browser plug-in- can only be used with JamVM and Cacao in Ubuntu? FC -- During times of Universal Deceit, telling the truth becomes a revolutionary act Durante ?pocas de Enga?o Universal, decir la verdad se convierte en un Acto Revolucionario - George Orwell From helpcrypto at gmail.com Wed Jan 16 00:01:45 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Wed, 16 Jan 2013 09:01:45 +0100 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: <50B7B3F2.6020303@redhat.com> <50B920DD.1070100@redhat.com> <50BE05BC.5010507@redhat.com> Message-ID: Should i build and test now? From jvanek at redhat.com Wed Jan 16 01:30:57 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 16 Jan 2013 10:30:57 +0100 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: <50B7B3F2.6020303@redhat.com> <50B920DD.1070100@redhat.com> <50BE05BC.5010507@redhat.com> Message-ID: <50F67351.8000607@redhat.com> On 01/16/2013 09:01 AM, helpcrypto helpcrypto wrote: > Should i build and test now? > Yes.. You could do this long yimr before... All what was necessary was to apply Adam's patch manually J. From ptisnovs at icedtea.classpath.org Wed Jan 16 04:30:23 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 16 Jan 2013 12:30:23 +0000 Subject: /hg/rhino-tests: Three new tests added into the test suite Bindi... Message-ID: changeset 075b8d6e5fb1 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=075b8d6e5fb1 author: Pavel Tisnovsky date: Wed Jan 16 13:33:30 2013 +0100 Three new tests added into the test suite BindingsClassTest. diffstat: ChangeLog | 5 +++++ src/org/RhinoTests/BindingsClassTest.java | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-) diffs (46 lines): diff -r 0319b6a1e77f -r 075b8d6e5fb1 ChangeLog --- a/ChangeLog Tue Jan 15 11:52:58 2013 +0100 +++ b/ChangeLog Wed Jan 16 13:33:30 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-16 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Three new tests added to the test suite BindingsClassTest. + 2013-01-15 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: diff -r 0319b6a1e77f -r 075b8d6e5fb1 src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Tue Jan 15 11:52:58 2013 +0100 +++ b/src/org/RhinoTests/BindingsClassTest.java Wed Jan 16 13:33:30 2013 +0100 @@ -597,6 +597,30 @@ } /** + * Test for method javax.script.Bindings.getClass().getEnclosingClass() + */ + protected void testGetEnclosingClass() { + Class cls = this.bindingsClass.getEnclosingClass(); + assertNull(cls, "getEnclosingClass() does not return null"); + } + + /** + * Test for method javax.script.Bindings.getClass().getEnclosingConstructor() + */ + protected void testGetEnclosingConstructor() { + Constructor cons = this.bindingsClass.getEnclosingConstructor(); + assertNull(cons, "getEnclosingConstructor() does not return null"); + } + + /** + * Test for method javax.script.Bindings.getClass().getEnclosingMethod() + */ + protected void testGetEnclosingMethod() { + Method m = this.bindingsClass.getEnclosingMethod(); + assertNull(m, "getEnclosingMethod() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.Bindings */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Wed Jan 16 04:45:14 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 16 Jan 2013 12:45:14 +0000 Subject: /hg/gfx-test: Added eight new tests to the test suite BitBltBasi... Message-ID: changeset 8ecb9bbea821 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=8ecb9bbea821 author: Pavel Tisnovsky date: Wed Jan 16 13:48:21 2013 +0100 Added eight new tests to the test suite BitBltBasicTests.java. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBasicTests.java | 128 +++++++++++++++++++++++ 2 files changed, 133 insertions(+), 0 deletions(-) diffs (150 lines): diff -r 5fa3a63c40a8 -r 8ecb9bbea821 ChangeLog --- a/ChangeLog Tue Jan 15 11:58:47 2013 +0100 +++ b/ChangeLog Wed Jan 16 13:48:21 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-16 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Added eight new tests to this test suite. + 2013-01-15 Pavel Tisnovsky * src/org/gfxtest/common/Configuration.java: diff -r 5fa3a63c40a8 -r 8ecb9bbea821 src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Tue Jan 15 11:58:47 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Wed Jan 16 13:48:21 2013 +0100 @@ -2428,6 +2428,134 @@ } /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for vertical grayscale gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGrayscaleGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for horizontal red gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalRedGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalRedGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for vertical red gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalRedGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalRedGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for horizontal green gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGreenGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for vertical green gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalGreenGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalGreenGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for horizontal blue gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalBlueGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalBlueGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** + * Test basic BitBlt operation for vertical blue gradient buffered image + * with type TYPE_BYTE_BINARY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltVerticalBlueGradientImageTypeByteBinary(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithVerticalBlueGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_BINARY); + } + + /** * Entry point to the test suite. * * @param args not used in this case From adomurad at redhat.com Wed Jan 16 07:02:52 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 16 Jan 2013 10:02:52 -0500 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: <50B7B3F2.6020303@redhat.com> <50B920DD.1070100@redhat.com> <50BE05BC.5010507@redhat.com> Message-ID: <50F6C11C.40308@redhat.com> On 01/16/2013 03:01 AM, helpcrypto helpcrypto wrote: > Should i build and test now? That would be great (and thanks for testing when I initially made the patch). Out of curiousity, does your application use much Javascript <-> Java, or is it just used for some simple glue ? Thanks. -Adam From jvanek at redhat.com Wed Jan 16 07:20:02 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 16 Jan 2013 16:20:02 +0100 Subject: [fyi] [icedtea-web] fix for path of asm in f18 Message-ID: <50F6C522.5080301@redhat.com> In f18 name of all.jar in objectweb-asm have changed. This minor patch is adding correct name so jacoco will work again. J. changelog: * configure.ac: (IT_FIND_OPTIONAL_JAR([asm], ASM,) path enhanced by objectweb-asm4/asm-all.jar -------------- next part -------------- A non-text attachment was scrubbed... Name: asmPath.patch Type: text/x-patch Size: 610 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130116/d304cafd/asmPath.patch From omajid at redhat.com Wed Jan 16 07:34:30 2013 From: omajid at redhat.com (Omair Majid) Date: Wed, 16 Jan 2013 10:34:30 -0500 Subject: [fyi] [icedtea-web] fix for path of asm in f18 In-Reply-To: <50F6C522.5080301@redhat.com> References: <50F6C522.5080301@redhat.com> Message-ID: <50F6C886.2040606@redhat.com> On 01/16/2013 10:20 AM, Jiri Vanek wrote: > In f18 name of all.jar in objectweb-asm have changed. This minor patch > is adding correct name so jacoco will work again. Looks okay to me. Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From jvanek at icedtea.classpath.org Wed Jan 16 07:49:34 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 16 Jan 2013 15:49:34 +0000 Subject: /hg/icedtea-web: Fixed set of paths to asm Message-ID: changeset 8fe3531e1769 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=8fe3531e1769 author: Jiri Vanek date: Wed Jan 16 16:50:13 2013 +0100 Fixed set of paths to asm * configure.ac: (IT_FIND_OPTIONAL_JAR([asm], ASM,) path enhanced by objectweb-asm4/asm-all.jar. diffstat: ChangeLog | 6 ++++++ configure.ac | 2 +- 2 files changed, 7 insertions(+), 1 deletions(-) diffs (25 lines): diff -r e647159f95a4 -r 8fe3531e1769 ChangeLog --- a/ChangeLog Tue Jan 15 15:50:06 2013 -0500 +++ b/ChangeLog Wed Jan 16 16:50:13 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-16 Jiri Vanek + + Fixed set of paths to asm + * configure.ac: (IT_FIND_OPTIONAL_JAR([asm], ASM,) path enhanced by + objectweb-asm4/asm-all.jar. + 2013-01-15 Adam Domurad Unit test for PluginAppletSecurityContext#toObjectIDString. Make diff -r e647159f95a4 -r 8fe3531e1769 configure.ac --- a/configure.ac Tue Jan 15 15:50:06 2013 -0500 +++ b/configure.ac Wed Jan 16 16:50:13 2013 +0100 @@ -109,7 +109,7 @@ IT_FIND_OPTIONAL_JAR([jacoco], JACOCO, [/usr/share/java/jacoco/org.jacoco.core.jar]) IT_FIND_OPTIONAL_JAR([asm], ASM, - [/usr/share/java/objectweb-asm4/asm-all-4.0.jar /usr/share/java/objectweb-asm/asm-all.jar]) + [/usr/share/java/objectweb-asm4/asm-all.jar /usr/share/java/objectweb-asm4/asm-all-4.0.jar /usr/share/java/objectweb-asm/asm-all.jar]) AC_CONFIG_FILES([jrunscript], [chmod u+x jrunscript]) AC_CONFIG_FILES([build.properties]) From jfabriko at redhat.com Wed Jan 16 07:57:03 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Wed, 16 Jan 2013 16:57:03 +0100 Subject: [rfc][icedtea-web] modifications to JSToJGet reproducer for Liveconnect Message-ID: <50F6CDCF.6010706@redhat.com> Hi, i am sending a patch that modifies the JSToJGet reproducer (removing one KnownToFail and adding one testcase), thank you for any comments, Jana 2013-01-16 Jana Fabrikova * /tests/reproducers/simple/JSToJGet/resources/JSToJGet.html: adding 1 testcase reading applets variable of type JSObject from JS * /tests/reproducers/simple/JSToJGet/testcases/JSToJGetTest.java: adding 1 testcase reading applets variable of type JSObject from JS, small changes to evaluation of the applet's stdout methods, removing KnownToFail anotation from (AppletJSToJGet_DoubleFullArray_Test) method * /tests/reproducers/simple/JSToJGet/resources/JSToJ_auxiliary.js: removing two lines of comment that are no longer true * /tests/reproducers/simple/JSToJGet/resources/JSToJava_Get.js: adding (test_get_JSObject) function also to the JS part of test * /tests/reproducers/simple/JSToJGet/srcs/JSToJGet.java: adding the JSObject variable to the applet -------------- next part -------------- A non-text attachment was scrubbed... Name: JSToJGet_modification.patch Type: text/x-patch Size: 5756 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130116/7e65fb73/JSToJGet_modification.patch From adomurad at redhat.com Wed Jan 16 10:59:07 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 16 Jan 2013 13:59:07 -0500 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50A550CD.7010504@redhat.com> References: <50A550CD.7010504@redhat.com> Message-ID: <50F6F87B.4040805@redhat.com> On 11/15/2012 03:30 PM, Adam Domurad wrote: > So in lieu of requests such as [1] and the potential for unsigned code > escaping the sandbox (eg, the recent 0day) it could be worth looking > into a feature that has applets not start automatically, but rather > require a user confirmation (click?) to begin. Additionally a more > strict setting could not allow This could be controlled via > itweb-settings/environment and distributions might want it as the > default. > > There should be some way to opt-in normal execution of signed applets > based on certificate. When an applet's certificates are all opted in, > it will start automatically. (Note that we do not need to handle mixed > signed + unsigned code specially, it already requires a confirmation.) > Unsigned applets, if we choose to allow them being opted in, can be > opted in on a full domain name basis. > > The main motivation I have for proposing this feature is that many > applet users only use a handful of applets, and having other applets > automatically start is mostly an unnecessary attack surface. I have > seen "Disable java in browser, and turn it on for any applets you need > to use only" giving as advice following the 0day, and this would be a > superior option. > > [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1211 > > Thoughts? > -Adam So hey, yet another 0day since this, good times. So something like this now has become default in Oracle's plugin. Starting with the most recent Oracle Java release (the recent 0day fix) applets in the browser run in 'high security' setting by default. This setting requires explicitly allowing unsigned content to run. Oracle implements this via a pop-up window: A 'Do not show this again for this app' checkbox allows the option of running/not running to be remembered. Example of the new default behaviour for unsigned applets: http://i.imgur.com/RZWIG.png The pressure is on us to do the same for icedtea-web for applets (JNLP launched programs will not be affected). Jiri mentioned the implementation should probably be done in at least two parts, here is how it could be done: 1.) In icedtea-web settings panel, have a High/Medium switch for security, defaulted to High. Require user confirmation for all unsigned applets on Medium. [The name Medium here corresponds to the related Oracle security level. We do not really need to implement Very High (no unsigned applets running) nor Low (all applets run automatically).] 2.) Implement whitelist/blacklist similar to how Oracle does this -- ie, always/never option while confirming unsigned applet running, and a way to manage this in icedtea-web. Open questions: - Click-to-play, vs pop-up ? (Funny result of click to play is, when used with browser click to play, unsigned applets need double-click. Not worse than click+pop-up, though) - How to implement always/never options? From jvanek at redhat.com Wed Jan 16 11:09:57 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 16 Jan 2013 20:09:57 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50F6F87B.4040805@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> Message-ID: <50F6FB05.5010909@redhat.com> On 01/16/2013 07:59 PM, Adam Domurad wrote: > On 11/15/2012 03:30 PM, Adam Domurad wrote: >> So in lieu of requests such as [1] and the potential for unsigned code escaping the sandbox (eg, >> the recent 0day) it could be worth looking into a feature that has applets not start >> automatically, but rather require a user confirmation (click?) to begin. Additionally a more >> strict setting could not allow This could be controlled via itweb-settings/environment and >> distributions might want it as the default. >> >> There should be some way to opt-in normal execution of signed applets based on certificate. When >> an applet's certificates are all opted in, it will start automatically. (Note that we do not need >> to handle mixed signed + unsigned code specially, it already requires a confirmation.) Unsigned >> applets, if we choose to allow them being opted in, can be opted in on a full domain name basis. >> >> The main motivation I have for proposing this feature is that many applet users only use a handful >> of applets, and having other applets automatically start is mostly an unnecessary attack surface. >> I have seen "Disable java in browser, and turn it on for any applets you need to use only" giving >> as advice following the 0day, and this would be a superior option. >> >> [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1211 >> >> Thoughts? >> -Adam > > So hey, yet another 0day since this, good times. > > So something like this now has become default in Oracle's plugin. Starting with the most recent > Oracle Java release (the recent 0day fix) applets in the browser run in 'high security' setting by > default. This setting requires explicitly allowing unsigned content to run. > > Oracle implements this via a pop-up window: A 'Do not show this again for this app' checkbox allows > the option of running/not running to be remembered. > Example of the new default behaviour for unsigned applets: http://i.imgur.com/RZWIG.png Blah. I would rather stay without popups! I think spalshscreen (as something "before laod") have prepared way for this. However for branches there should be different approach :( > > > The pressure is on us to do the same for icedtea-web for applets (JNLP launched programs will not be > affected). > > Jiri mentioned the implementation should probably be done in at least two parts, here is how it > could be done: > > 1.) In icedtea-web settings panel, have a High/Medium switch for security, defaulted to High. > Require user confirmation for all unsigned applets on Medium. > > [The name Medium here corresponds to the related Oracle security level. We do not really need to > implement Very High (no unsigned applets running) nor Low (all applets run automatically).] in part two I would defintely like to see definitely Low and maybe also ExtraHigh. > > 2.) Implement whitelist/blacklist similar to how Oracle does this -- ie, always/never option while > confirming unsigned applet running, and a way to manage this in icedtea-web. Yes, whitelista and balicklist are a must. So buttons like yes, no, always, never are also necessary. And dont forget regexes for manual editation ;) > > > Open questions: > - Click-to-play, vs pop-up ? (Funny result of click to play is, when used with browser click to +1 for Click-to-play in head For branchesd.. hmm probably dialogue will serve better :( > play, unsigned applets need double-click. Not worse than click+pop-up, though) > - How to implement always/never options? BUttons ?o) and then to "itweb-settings managbale/sahred file(?)" > J. From bugzilla-daemon at icedtea.classpath.org Wed Jan 16 11:22:42 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 16 Jan 2013 19:22:42 +0000 Subject: [Bug 1260] New: IcedTea-Web should not rely on GTK Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1260 Bug ID: 1260 Summary: IcedTea-Web should not rely on GTK Classification: Unclassified Product: IcedTea-Web Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: dbhole at redhat.com CC: unassigned at icedtea.classpath.org Created attachment 816 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=816&action=edit Proposed fix Currently, IcedTea-Web relies on GTK to display a dialog if the JVM is not found. However this GTK dependency must be removed as we need to pick a version of GTK to link against at build time and subsequently, IcedTea-Web will only work with browsers using that version of GTK due to GTK2/GTK3 being incompatible. See https://bugzilla.redhat.com/show_bug.cgi?id=895197 for more details. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130116/b67a7585/attachment.html From dbhole at redhat.com Wed Jan 16 11:35:25 2013 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 16 Jan 2013 14:35:25 -0500 Subject: RFC: Fix for PR1260 Message-ID: <20130116193524.GB7824@redhat.com> Hi, This patch fixes PR1260: IcedTea-Web should not rely on GTK ChangeLog: 2013-01-16 Deepak Bhole PR1260: IcedTea-Web should not rely on GTK * Makefile.am: Remove GTK includes and links * acinclude.m4: Remove check for GTK libs * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed gtk.h include and added unistd include (for usleep) which gtk.h brought in before * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog shown when java is not found * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include OK for HEAD and 1.3? 1.2 currently links against GTK2 only, and since there have been no requests for GTK3 there, I think we should leave it alone. Cheers, Deepak -------------- next part -------------- diff -r 8fe3531e1769 Makefile.am --- a/Makefile.am Wed Jan 16 16:50:13 2013 +0100 +++ b/Makefile.am Wed Jan 16 14:23:43 2013 -0500 @@ -303,7 +303,6 @@ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fvisibility=hidden \ -fPIC -o $@ -c $< @@ -313,7 +312,6 @@ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS) \ -shared -o $@ @@ -355,7 +353,6 @@ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ "-I$(CPP_UNITTEST_FRAMEWORK_SRCDIR)/src" \ "-I$(PLUGIN_SRCDIR)" \ @@ -371,7 +368,6 @@ $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) \ $(CPP_UNITTEST_DIR)/*.o \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS) \ $(CPP_UNITTEST_FRAMEWORK_LIB)\ $(BUILT_CPP_UNIT_TEST_FRAMEWORK) -o $@ @@ -1226,7 +1222,6 @@ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_COVERAGE_BOOTCLASSPATH) \ -DCOVERAGE_AGENT=$(JACOCO_AGENT_PLUGIN_SWITCH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fvisibility=hidden \ -fPIC -o $@ -c $< @@ -1236,7 +1231,6 @@ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS) \ -shared -o $@ diff -r 8fe3531e1769 NEWS --- a/NEWS Wed Jan 16 16:50:13 2013 +0100 +++ b/NEWS Wed Jan 16 14:23:43 2013 -0500 @@ -25,6 +25,8 @@ - PR1217: Add command line arguments for plugins - PR1189: Icedtea-plugin requires code attribute when using jnlp_href - PR1198: JSObject is not passed to javascript correctly + - PR1260: IcedTea-Web should not rely on GTK + * Common - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered - PR955: regression: SweetHome3D fails to run diff -r 8fe3531e1769 acinclude.m4 --- a/acinclude.m4 Wed Jan 16 16:50:13 2013 +0100 +++ b/acinclude.m4 Wed Jan 16 14:23:43 2013 -0500 @@ -359,56 +359,15 @@ AC_MSG_RESULT(${enable_plugin}) ]) -dnl ITW_GTK_CHECK_VERSION([gtk version]) -AC_DEFUN([ITW_GTK_CHECK_VERSION], -[ - AC_MSG_CHECKING([for GTK$1 version]) - GTK_VER=`$PKG_CONFIG --modversion gtk+-$1.0` - AC_MSG_RESULT([$GTK_VER]) -]) - -dnl ITW_GTK_CHECK([gtk version]) -AC_DEFUN([ITW_GTK_CHECK], -[ - case "$1" in - default) - PKG_CHECK_MODULES(GTK, gtk+-3.0, - [ITW_GTK_CHECK_VERSION([3])], - [PKG_CHECK_MODULES(GTK, gtk+-2.0, - [ITW_GTK_CHECK_VERSION([2])], - [AC_MSG_ERROR([GTK $1 not found])] - )] - ) - ;; - *) - PKG_CHECK_MODULES(GTK, gtk+-$1.0, - [ITW_GTK_CHECK_VERSION([$1])], - [AC_MSG_ERROR([GTK $1 not found])] - ) - ;; - esac -]) - AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES], [ dnl Check for plugin support headers and libraries. dnl FIXME: use unstable AC_REQUIRE([IT_CHECK_PLUGIN]) if test "x${enable_plugin}" = "xyes" ; then - AC_ARG_WITH([gtk], - [AS_HELP_STRING([--with-gtk=[2|3|default]], - [the GTK+ version to use (default: 3)])], - [case "$with_gtk" in - 2|3|default) ;; - *) AC_MSG_ERROR([invalid GTK version specified]) ;; - esac], - [with_gtk=default]) - ITW_GTK_CHECK([$with_gtk]) PKG_CHECK_MODULES(GLIB, glib-2.0) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [ AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[ diff -r 8fe3531e1769 plugin/icedteanp/IcedTeaJavaRequestProcessor.h --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.h Wed Jan 16 16:50:13 2013 +0100 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.h Wed Jan 16 14:23:43 2013 -0500 @@ -41,6 +41,7 @@ #include #include +#include #include #include "IcedTeaNPPlugin.h" diff -r 8fe3531e1769 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Jan 16 16:50:13 2013 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Jan 16 14:23:43 2013 -0500 @@ -218,8 +218,6 @@ static void plugin_data_new (ITNPPluginData** data); // Retrieve the current document's documentbase. static gchar* plugin_get_documentbase (NPP instance); -// Notify the user that the appletviewer is not installed correctly. -static void plugin_display_failure_dialog (); // Callback used to monitor input pipe status. static gboolean plugin_in_pipe_callback (GIOChannel* source, GIOCondition condition, @@ -1100,30 +1098,6 @@ } #endif -// This function displays an error message if the appletviewer has not -// been installed correctly. -static void -plugin_display_failure_dialog () -{ - GtkWidget* dialog = NULL; - - PLUGIN_DEBUG ("plugin_display_failure_dialog\n"); - - dialog = gtk_message_dialog_new (NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - FAILURE_MESSAGE, - appletviewer_executable); - gtk_widget_show_all (dialog); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - PLUGIN_DEBUG ("plugin_display_failure_dialog return\n"); -} - - - // plugin_in_pipe_callback is called when data is available on the // input pipe, or when the appletviewer crashes or is killed. It may // be called after data has been destroyed in which case it simply @@ -2205,7 +2179,7 @@ np_error = plugin_test_appletviewer (); if (np_error != NPERR_NO_ERROR) { - plugin_display_failure_dialog (); + fprintf(stderr, "Unable to find java executable %s\n", appletviewer_executable); return np_error; } diff -r 8fe3531e1769 plugin/icedteanp/IcedTeaNPPlugin.h --- a/plugin/icedteanp/IcedTeaNPPlugin.h Wed Jan 16 16:50:13 2013 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.h Wed Jan 16 14:23:43 2013 -0500 @@ -51,9 +51,6 @@ #include #include -// GTK includes. -#include - #include "IcedTeaPluginUtils.h" #include "IcedTeaPluginRequestProcessor.h" From omajid at redhat.com Wed Jan 16 11:41:37 2013 From: omajid at redhat.com (Omair Majid) Date: Wed, 16 Jan 2013 14:41:37 -0500 Subject: RFC: Fix for PR1260 In-Reply-To: <20130116193524.GB7824@redhat.com> References: <20130116193524.GB7824@redhat.com> Message-ID: <50F70271.9000101@redhat.com> On 01/16/2013 02:35 PM, Deepak Bhole wrote: > This patch fixes PR1260: IcedTea-Web should not rely on GTK Patch looks okay to me. > OK for HEAD and 1.3? Yes, please. This is making it hard for once version of icedtea-web to work with mutliple browsers when they are linked against different gtk versions. Thanks, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From adomurad at redhat.com Wed Jan 16 11:47:57 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 16 Jan 2013 14:47:57 -0500 Subject: RFC: Fix for PR1260 In-Reply-To: <20130116193524.GB7824@redhat.com> References: <20130116193524.GB7824@redhat.com> Message-ID: <50F703ED.6040201@redhat.com> On 01/16/2013 02:35 PM, Deepak Bhole wrote: > Hi, > > This patch fixes PR1260: IcedTea-Web should not rely on GTK > > ChangeLog: > 2013-01-16 Deepak Bhole > > PR1260: IcedTea-Web should not rely on GTK > * Makefile.am: Remove GTK includes and links > * acinclude.m4: Remove check for GTK libs > * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed gtk.h include > and added unistd include (for usleep) which gtk.h brought in before > * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog shown when java > is not found > * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include > > > OK for HEAD and 1.3? 1.2 currently links against GTK2 only, and since there > have been no requests for GTK3 there, I think we should leave it alone. > > Cheers, > Deepak 'grep'ing for gtk comes up clean, looks good. Tried some basic tests with a few applets, seems fine. OK for HEAD/1.3 from me. Thanks, -Adam From dbhole at icedtea.classpath.org Wed Jan 16 12:35:28 2013 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 16 Jan 2013 20:35:28 +0000 Subject: /hg/icedtea-web: PR1260: IcedTea-Web should not rely on GTK Message-ID: changeset 3960d2a46f51 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=3960d2a46f51 author: Deepak Bhole date: Wed Jan 16 15:35:09 2013 -0500 PR1260: IcedTea-Web should not rely on GTK diffstat: ChangeLog | 11 ++++++ Makefile.am | 6 --- NEWS | 1 + acinclude.m4 | 41 -------------------------- plugin/icedteanp/IcedTeaJavaRequestProcessor.h | 1 + plugin/icedteanp/IcedTeaNPPlugin.cc | 28 +----------------- plugin/icedteanp/IcedTeaNPPlugin.h | 3 - 7 files changed, 14 insertions(+), 77 deletions(-) diffs (216 lines): diff -r 8fe3531e1769 -r 3960d2a46f51 ChangeLog --- a/ChangeLog Wed Jan 16 16:50:13 2013 +0100 +++ b/ChangeLog Wed Jan 16 15:35:09 2013 -0500 @@ -1,3 +1,14 @@ +2013-01-16 Deepak Bhole + + PR1260: IcedTea-Web should not rely on GTK + * Makefile.am: Remove GTK includes and links + * acinclude.m4: Remove check for GTK libs + * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed gtk.h include + and added unistd include (for usleep) which gtk.h brought in before + * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog shown when java + is not found + * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include + 2013-01-16 Jiri Vanek Fixed set of paths to asm diff -r 8fe3531e1769 -r 3960d2a46f51 Makefile.am --- a/Makefile.am Wed Jan 16 16:50:13 2013 +0100 +++ b/Makefile.am Wed Jan 16 15:35:09 2013 -0500 @@ -303,7 +303,6 @@ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fvisibility=hidden \ -fPIC -o $@ -c $< @@ -313,7 +312,6 @@ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS) \ -shared -o $@ @@ -355,7 +353,6 @@ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ "-I$(CPP_UNITTEST_FRAMEWORK_SRCDIR)/src" \ "-I$(PLUGIN_SRCDIR)" \ @@ -371,7 +368,6 @@ $(addprefix $(PLUGIN_DIR)/,$(PLUGIN_OBJECTS)) \ $(CPP_UNITTEST_DIR)/*.o \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS) \ $(CPP_UNITTEST_FRAMEWORK_LIB)\ $(BUILT_CPP_UNIT_TEST_FRAMEWORK) -o $@ @@ -1226,7 +1222,6 @@ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_COVERAGE_BOOTCLASSPATH) \ -DCOVERAGE_AGENT=$(JACOCO_AGENT_PLUGIN_SWITCH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fvisibility=hidden \ -fPIC -o $@ -c $< @@ -1236,7 +1231,6 @@ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS) \ -shared -o $@ diff -r 8fe3531e1769 -r 3960d2a46f51 NEWS --- a/NEWS Wed Jan 16 16:50:13 2013 +0100 +++ b/NEWS Wed Jan 16 15:35:09 2013 -0500 @@ -25,6 +25,7 @@ - PR1217: Add command line arguments for plugins - PR1189: Icedtea-plugin requires code attribute when using jnlp_href - PR1198: JSObject is not passed to javascript correctly + - PR1260: IcedTea-Web should not rely on GTK * Common - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered - PR955: regression: SweetHome3D fails to run diff -r 8fe3531e1769 -r 3960d2a46f51 acinclude.m4 --- a/acinclude.m4 Wed Jan 16 16:50:13 2013 +0100 +++ b/acinclude.m4 Wed Jan 16 15:35:09 2013 -0500 @@ -359,56 +359,15 @@ AC_MSG_RESULT(${enable_plugin}) ]) -dnl ITW_GTK_CHECK_VERSION([gtk version]) -AC_DEFUN([ITW_GTK_CHECK_VERSION], -[ - AC_MSG_CHECKING([for GTK$1 version]) - GTK_VER=`$PKG_CONFIG --modversion gtk+-$1.0` - AC_MSG_RESULT([$GTK_VER]) -]) - -dnl ITW_GTK_CHECK([gtk version]) -AC_DEFUN([ITW_GTK_CHECK], -[ - case "$1" in - default) - PKG_CHECK_MODULES(GTK, gtk+-3.0, - [ITW_GTK_CHECK_VERSION([3])], - [PKG_CHECK_MODULES(GTK, gtk+-2.0, - [ITW_GTK_CHECK_VERSION([2])], - [AC_MSG_ERROR([GTK $1 not found])] - )] - ) - ;; - *) - PKG_CHECK_MODULES(GTK, gtk+-$1.0, - [ITW_GTK_CHECK_VERSION([$1])], - [AC_MSG_ERROR([GTK $1 not found])] - ) - ;; - esac -]) - AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES], [ dnl Check for plugin support headers and libraries. dnl FIXME: use unstable AC_REQUIRE([IT_CHECK_PLUGIN]) if test "x${enable_plugin}" = "xyes" ; then - AC_ARG_WITH([gtk], - [AS_HELP_STRING([--with-gtk=[2|3|default]], - [the GTK+ version to use (default: 3)])], - [case "$with_gtk" in - 2|3|default) ;; - *) AC_MSG_ERROR([invalid GTK version specified]) ;; - esac], - [with_gtk=default]) - ITW_GTK_CHECK([$with_gtk]) PKG_CHECK_MODULES(GLIB, glib-2.0) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [ AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[ diff -r 8fe3531e1769 -r 3960d2a46f51 plugin/icedteanp/IcedTeaJavaRequestProcessor.h --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.h Wed Jan 16 16:50:13 2013 +0100 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.h Wed Jan 16 15:35:09 2013 -0500 @@ -41,6 +41,7 @@ #include #include +#include #include #include "IcedTeaNPPlugin.h" diff -r 8fe3531e1769 -r 3960d2a46f51 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Jan 16 16:50:13 2013 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Jan 16 15:35:09 2013 -0500 @@ -218,8 +218,6 @@ static void plugin_data_new (ITNPPluginData** data); // Retrieve the current document's documentbase. static gchar* plugin_get_documentbase (NPP instance); -// Notify the user that the appletviewer is not installed correctly. -static void plugin_display_failure_dialog (); // Callback used to monitor input pipe status. static gboolean plugin_in_pipe_callback (GIOChannel* source, GIOCondition condition, @@ -1100,30 +1098,6 @@ } #endif -// This function displays an error message if the appletviewer has not -// been installed correctly. -static void -plugin_display_failure_dialog () -{ - GtkWidget* dialog = NULL; - - PLUGIN_DEBUG ("plugin_display_failure_dialog\n"); - - dialog = gtk_message_dialog_new (NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - FAILURE_MESSAGE, - appletviewer_executable); - gtk_widget_show_all (dialog); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - PLUGIN_DEBUG ("plugin_display_failure_dialog return\n"); -} - - - // plugin_in_pipe_callback is called when data is available on the // input pipe, or when the appletviewer crashes or is killed. It may // be called after data has been destroyed in which case it simply @@ -2205,7 +2179,7 @@ np_error = plugin_test_appletviewer (); if (np_error != NPERR_NO_ERROR) { - plugin_display_failure_dialog (); + fprintf(stderr, "Unable to find java executable %s\n", appletviewer_executable); return np_error; } diff -r 8fe3531e1769 -r 3960d2a46f51 plugin/icedteanp/IcedTeaNPPlugin.h --- a/plugin/icedteanp/IcedTeaNPPlugin.h Wed Jan 16 16:50:13 2013 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.h Wed Jan 16 15:35:09 2013 -0500 @@ -51,9 +51,6 @@ #include #include -// GTK includes. -#include - #include "IcedTeaPluginUtils.h" #include "IcedTeaPluginRequestProcessor.h" From bugzilla-daemon at icedtea.classpath.org Wed Jan 16 12:35:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 16 Jan 2013 20:35:39 +0000 Subject: [Bug 1260] IcedTea-Web should not rely on GTK In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1260 --- Comment #1 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=3960d2a46f51 author: Deepak Bhole date: Wed Jan 16 15:35:09 2013 -0500 PR1260: IcedTea-Web should not rely on GTK -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130116/bd5c666b/attachment.html From dbhole at redhat.com Wed Jan 16 12:36:00 2013 From: dbhole at redhat.com (Deepak Bhole) Date: Wed, 16 Jan 2013 15:36:00 -0500 Subject: RFC: Fix for PR1260 In-Reply-To: <50F70271.9000101@redhat.com> References: <20130116193524.GB7824@redhat.com> <50F70271.9000101@redhat.com> Message-ID: <20130116203600.GC7824@redhat.com> * Omair Majid [2013-01-16 14:41]: > On 01/16/2013 02:35 PM, Deepak Bhole wrote: > > This patch fixes PR1260: IcedTea-Web should not rely on GTK > > Patch looks okay to me. > > > OK for HEAD and 1.3? > > Yes, please. This is making it hard for once version of icedtea-web to > work with mutliple browsers when they are linked against different gtk > versions. > Thanks Omair, Adam! Pushed to HEAD and 1.3. Cheers, Deepak > Thanks, > Omair > > -- > PGP Key: 66484681 (http://pgp.mit.edu/) > Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From dbhole at icedtea.classpath.org Wed Jan 16 12:36:14 2013 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Wed, 16 Jan 2013 20:36:14 +0000 Subject: /hg/release/icedtea-web-1.3: PR1260: IcedTea-Web should not rely... Message-ID: changeset b619cda99360 in /hg/release/icedtea-web-1.3 details: http://icedtea.classpath.org/hg/release/icedtea-web-1.3?cmd=changeset;node=b619cda99360 author: Deepak Bhole date: Wed Jan 16 15:34:44 2013 -0500 PR1260: IcedTea-Web should not rely on GTK diffstat: ChangeLog | 11 ++++++ Makefile.am | 2 - NEWS | 2 + acinclude.m4 | 41 -------------------------- plugin/icedteanp/IcedTeaJavaRequestProcessor.h | 1 + plugin/icedteanp/IcedTeaNPPlugin.cc | 28 +----------------- plugin/icedteanp/IcedTeaNPPlugin.h | 3 - 7 files changed, 15 insertions(+), 73 deletions(-) diffs (185 lines): diff -r b96993bf1061 -r b619cda99360 ChangeLog --- a/ChangeLog Mon Jan 07 11:47:42 2013 -0500 +++ b/ChangeLog Wed Jan 16 15:34:44 2013 -0500 @@ -1,3 +1,14 @@ +2013-01-16 Deepak Bhole + + PR1260: IcedTea-Web should not rely on GTK + * Makefile.am: Remove GTK includes and links + * acinclude.m4: Remove check for GTK libs + * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed gtk.h include + and added unistd include (for usleep) which gtk.h brought in before + * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog shown when java + is not found + * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include + 2013-01-07 Deepak Bhole * netx/net/sourceforge/jnlp/resources/Messages.properties: Converted to diff -r b96993bf1061 -r b619cda99360 Makefile.am --- a/Makefile.am Mon Jan 07 11:47:42 2013 -0500 +++ b/Makefile.am Wed Jan 16 15:34:44 2013 -0500 @@ -270,7 +270,6 @@ -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \ -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \ $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ -fPIC -o $@ -c $< @@ -279,7 +278,6 @@ $(CXX) $(CXXFLAGS) \ $(PLUGIN_OBJECTS) \ $(GLIB_LIBS) \ - $(GTK_LIBS) \ $(MOZILLA_LIBS)\ -shared -o $@ diff -r b96993bf1061 -r b619cda99360 NEWS --- a/NEWS Mon Jan 07 11:47:42 2013 -0500 +++ b/NEWS Wed Jan 16 15:34:44 2013 -0500 @@ -9,6 +9,8 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.3.2 (2012-XX-XX): +* Plugin + PR1260: IcedTea-Web should not rely on GTK New in release 1.3.1 (2012-11-07): * Security Updates diff -r b96993bf1061 -r b619cda99360 acinclude.m4 --- a/acinclude.m4 Mon Jan 07 11:47:42 2013 -0500 +++ b/acinclude.m4 Wed Jan 16 15:34:44 2013 -0500 @@ -359,56 +359,15 @@ AC_MSG_RESULT(${enable_plugin}) ]) -dnl ITW_GTK_CHECK_VERSION([gtk version]) -AC_DEFUN([ITW_GTK_CHECK_VERSION], -[ - AC_MSG_CHECKING([for GTK$1 version]) - GTK_VER=`$PKG_CONFIG --modversion gtk+-$1.0` - AC_MSG_RESULT([$GTK_VER]) -]) - -dnl ITW_GTK_CHECK([gtk version]) -AC_DEFUN([ITW_GTK_CHECK], -[ - case "$1" in - default) - PKG_CHECK_MODULES(GTK, gtk+-3.0, - [ITW_GTK_CHECK_VERSION([3])], - [PKG_CHECK_MODULES(GTK, gtk+-2.0, - [ITW_GTK_CHECK_VERSION([2])], - [AC_MSG_ERROR([GTK $1 not found])] - )] - ) - ;; - *) - PKG_CHECK_MODULES(GTK, gtk+-$1.0, - [ITW_GTK_CHECK_VERSION([$1])], - [AC_MSG_ERROR([GTK $1 not found])] - ) - ;; - esac -]) - AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES], [ dnl Check for plugin support headers and libraries. dnl FIXME: use unstable AC_REQUIRE([IT_CHECK_PLUGIN]) if test "x${enable_plugin}" = "xyes" ; then - AC_ARG_WITH([gtk], - [AS_HELP_STRING([--with-gtk=[2|3|default]], - [the GTK+ version to use (default: 3)])], - [case "$with_gtk" in - 2|3|default) ;; - *) AC_MSG_ERROR([invalid GTK version specified]) ;; - esac], - [with_gtk=default]) - ITW_GTK_CHECK([$with_gtk]) PKG_CHECK_MODULES(GLIB, glib-2.0) AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [ AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[ diff -r b96993bf1061 -r b619cda99360 plugin/icedteanp/IcedTeaJavaRequestProcessor.h --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.h Mon Jan 07 11:47:42 2013 -0500 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.h Wed Jan 16 15:34:44 2013 -0500 @@ -41,6 +41,7 @@ #include #include +#include #include #include "IcedTeaNPPlugin.h" diff -r b96993bf1061 -r b619cda99360 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Mon Jan 07 11:47:42 2013 -0500 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Wed Jan 16 15:34:44 2013 -0500 @@ -218,8 +218,6 @@ static void plugin_data_new (ITNPPluginData** data); // Retrieve the current document's documentbase. static gchar* plugin_get_documentbase (NPP instance); -// Notify the user that the appletviewer is not installed correctly. -static void plugin_display_failure_dialog (); // Callback used to monitor input pipe status. static gboolean plugin_in_pipe_callback (GIOChannel* source, GIOCondition condition, @@ -1127,30 +1125,6 @@ } #endif -// This function displays an error message if the appletviewer has not -// been installed correctly. -static void -plugin_display_failure_dialog () -{ - GtkWidget* dialog = NULL; - - PLUGIN_DEBUG ("plugin_display_failure_dialog\n"); - - dialog = gtk_message_dialog_new (NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - FAILURE_MESSAGE, - appletviewer_executable); - gtk_widget_show_all (dialog); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - PLUGIN_DEBUG ("plugin_display_failure_dialog return\n"); -} - - - // plugin_in_pipe_callback is called when data is available on the // input pipe, or when the appletviewer crashes or is killed. It may // be called after data has been destroyed in which case it simply @@ -2297,7 +2271,7 @@ np_error = plugin_test_appletviewer (); if (np_error != NPERR_NO_ERROR) { - plugin_display_failure_dialog (); + fprintf(stderr, "Unable to find java executable %s\n", appletviewer_executable); goto cleanup_appletviewer_executable; } g_free (filename); diff -r b96993bf1061 -r b619cda99360 plugin/icedteanp/IcedTeaNPPlugin.h --- a/plugin/icedteanp/IcedTeaNPPlugin.h Mon Jan 07 11:47:42 2013 -0500 +++ b/plugin/icedteanp/IcedTeaNPPlugin.h Wed Jan 16 15:34:44 2013 -0500 @@ -51,9 +51,6 @@ #include #include -// GTK includes. -#include - #include "IcedTeaPluginUtils.h" #include "IcedTeaPluginRequestProcessor.h" From bugzilla-daemon at icedtea.classpath.org Wed Jan 16 12:36:21 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 16 Jan 2013 20:36:21 +0000 Subject: [Bug 1260] IcedTea-Web should not rely on GTK In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1260 --- Comment #2 from hg commits --- details: http://icedtea.classpath.org//hg/release/icedtea-web-1.3?cmd=changeset;node=b619cda99360 author: Deepak Bhole date: Wed Jan 16 15:34:44 2013 -0500 PR1260: IcedTea-Web should not rely on GTK -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130116/f2c53c56/attachment.html From andrew at icedtea.classpath.org Wed Jan 16 16:41:20 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 17 Jan 2013 00:41:20 +0000 Subject: /hg/icedtea7: 2 new changesets Message-ID: changeset 2718234602c7 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=2718234602c7 author: Andrew John Hughes date: Thu Jan 17 00:37:19 2013 +0000 Update to 7u12 b09. 2013-01-16 Andrew John Hughes * patches/hotspot/zero/6924259-string_offset.patch: Remove patch missed in last but one change. * Makefile.am: (OPENJDK_VERSION): Bump to b09. (CORBA_CHANGESET): Update to IcedTea7 forest head. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (JAXWS): Fix paths, including both JAXWS and JAF. (JAXWS_COND): Removed. (OPENJDK_SOURCEPATH_DIRS): Add JAXWS source tree, required by new implementaton of java.lang.invoke that relies on the copy of ASM in the JAXWS tree. * hotspot.map: Update to IcedTea7 forest head. * patches/boot/ecj-diamond.patch, * patches/boot/ecj-multicatch.patch, * patches/boot/ecj-stringswitch.patch, * patches/boot/ecj-trywithresources.patch: Updated due to changes from the security patches and warning fixes in rmic. changeset e342c6b2cbc0 in /hg/icedtea7 details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=e342c6b2cbc0 author: Andrew John Hughes date: Thu Jan 17 00:39:24 2013 +0000 Fix automatic enabling of the Zero build on non-JIT architectures which don't use CACAO or JamVM. 2013-01-16 Andrew John Hughes * acinclude.m4: (IT_ENABLE_ZERO_BUILD): Depend on IT_ENABLE_CACAO and IT_ENABLE_JAMVM so that ENABLE_CACAO and ENABLE_JAMVM are set. This makes the tests work correctly again and means that Zero is turned on automatically where there is no CACAO or JamVM and the architecture is not supported by a HotSpot JIT. diffstat: ChangeLog | 42 + Makefile.am | 38 +- acinclude.m4 | 2 + hotspot.map | 2 +- patches/boot/ecj-diamond.patch | 508 ++++++++++++ patches/boot/ecj-multicatch.patch | 80 + patches/boot/ecj-stringswitch.patch | 394 +++++---- patches/boot/ecj-trywithresources.patch | 94 ++ patches/hotspot/zero/6924259-string_offset.patch | 934 ----------------------- 9 files changed, 954 insertions(+), 1140 deletions(-) diffs (truncated from 2223 to 500 lines): diff -r bf3fe7bcc615 -r e342c6b2cbc0 ChangeLog --- a/ChangeLog Wed Jan 16 01:38:30 2013 +0000 +++ b/ChangeLog Thu Jan 17 00:39:24 2013 +0000 @@ -1,3 +1,45 @@ +2013-01-16 Andrew John Hughes + + * acinclude.m4: + (IT_ENABLE_ZERO_BUILD): Depend on + IT_ENABLE_CACAO and IT_ENABLE_JAMVM so that + ENABLE_CACAO and ENABLE_JAMVM are set. This + makes the tests work correctly again and means + that Zero is turned on automatically where there + is no CACAO or JamVM and the architecture is not + supported by a HotSpot JIT. + +2013-01-16 Andrew John Hughes + + * patches/hotspot/zero/6924259-string_offset.patch: + Remove patch missed in last but one change. + * Makefile.am: + (OPENJDK_VERSION): Bump to b09. + (CORBA_CHANGESET): Update to IcedTea7 forest head. + (JAXP_CHANGESET): Likewise. + (JAXWS_CHANGESET): Likewise. + (JDK_CHANGESET): Likewise. + (LANGTOOLS_CHANGESET): Likewise. + (OPENJDK_CHANGESET): Likewise. + (CORBA_SHA256SUM): Likewise. + (JAXP_SHA256SUM): Likewise. + (JAXWS_SHA256SUM): Likewise. + (JDK_SHA256SUM): Likewise. + (LANGTOOLS_SHA256SUM): Likewise. + (OPENJDK_SHA256SUM): Likewise. + (JAXWS): Fix paths, including both JAXWS and JAF. + (JAXWS_COND): Removed. + (OPENJDK_SOURCEPATH_DIRS): Add JAXWS source tree, + required by new implementaton of java.lang.invoke + that relies on the copy of ASM in the JAXWS tree. + * hotspot.map: Update to IcedTea7 forest head. + * patches/boot/ecj-diamond.patch, + * patches/boot/ecj-multicatch.patch, + * patches/boot/ecj-stringswitch.patch, + * patches/boot/ecj-trywithresources.patch: + Updated due to changes from the security patches + and warning fixes in rmic. + 2013-01-16 Andrew John Hughes * NEWS: Add 2.1.4, 2.2.4 and 2.3.4 release diff -r bf3fe7bcc615 -r e342c6b2cbc0 Makefile.am --- a/Makefile.am Wed Jan 16 01:38:30 2013 +0000 +++ b/Makefile.am Thu Jan 17 00:39:24 2013 +0000 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b06 +OPENJDK_VERSION = b09 JDK_UPDATE_VERSION = 12 COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -CORBA_CHANGESET = 1fc876ad27f5 -JAXP_CHANGESET = b67573b17099 -JAXWS_CHANGESET = 8c8c122d0fa8 -JDK_CHANGESET = 880acd2bf8d1 -LANGTOOLS_CHANGESET = 698d52b36615 -OPENJDK_CHANGESET = 9b35dbaf2afa +CORBA_CHANGESET = 679412ed11d5 +JAXP_CHANGESET = cba4d3377850 +JAXWS_CHANGESET = a7541d353428 +JDK_CHANGESET = bbfd732ae37d +LANGTOOLS_CHANGESET = 31539542e9e5 +OPENJDK_CHANGESET = 2d1ddf672d61 -CORBA_SHA256SUM = 2945cef860c0a3e5af69ffe370ed762bb620db855f97e16efef5b639144e3d93 -JAXP_SHA256SUM = 4eb3f831cb486c81e16ac5d37b30e0e309ba8e2e8d4a400382ee4fa0790ca268 -JAXWS_SHA256SUM = 35e075fc9d4c9de7df8905cf3238e87a9388e4028ff984b494b7fb6c36fd17e1 -JDK_SHA256SUM = c6db11a2f5e90f37a37d65615d7e5ffa0e0e066e4eb303cc98e23ac245b3425d -LANGTOOLS_SHA256SUM = 6ec950b34cb8cc1c6aa64e25b492952a3ba0a53370bb6e5d5431922fa940b506 -OPENJDK_SHA256SUM = c42c018e3f2a5037d9c07e98ffb8784a732c5e1ebd5bb18c3587ca0e8825b27b +CORBA_SHA256SUM = 20b9840fa09f8e89a141cbe0b08794588f8534ba760cf08cee34feaea3018bc4 +JAXP_SHA256SUM = d04ae1702118dd42e5f7c3796dab0214a44f27b8381464536877cded732f6b77 +JAXWS_SHA256SUM = ada222989022c456d6ebd417891fb4b575d47da1134bd0ca631fb5deea7cbed8 +JDK_SHA256SUM = f3e534cabdf0892b8311133da977823bbecabab7cf5f8a5115ef4fd3b2f81b06 +LANGTOOLS_SHA256SUM = 7cc3816acebfeac0211161cc39472b38f87587f4d41fa3e153109e27df4c02c8 +OPENJDK_SHA256SUM = 43aef86d067f66f2cd3b6895cc166e056b05603ee585ba50b5a82d41e7924a16 CACAO_VERSION = a567bcb7f589 CACAO_SHA256SUM = d49f79debc131a5694cae6ab3ba2864e7f3249ee8d9dc09aae8afdd4dc6b09f9 @@ -73,7 +73,7 @@ SOLARIS = openjdk-boot/jdk/src/solaris/classes LANGTOOLS = openjdk-boot/langtools/src/share/classes CORBA = openjdk-boot/corba/src/share/classes -JAXWS = openjdk-boot/jaxws/sources/jaxws_src/src +JAXWS = openjdk-boot/jaxws/src/share/jaxws_classes:openjdk-boot/jaxws/src/share/jaf_classes PULSE_JAVA_DIR = $(abs_top_srcdir)/pulseaudio PULSE_JAVA_NATIVE_SRCDIR = $(PULSE_JAVA_DIR)/src/native @@ -85,16 +85,8 @@ PULSE_JAVA_JAVA_SRCDIR = $(PULSE_JAVA_DIR)/src/java PULSE_JAVA_CLASS_DIR = $(PULSE_JAVA_BUILDDIR)/classes -if DTDTYPE_QNAME -JAXWS_COND = $(JAXWS) -endif - -if LACKS_JAVAX_ANNOTATION_RESOURCE -JAXWS_COND = $(JAXWS) -endif - OPENJDK_SOURCEPATH_DIRS = \ - $(SHARE):$(SOLARIS):$(LANGTOOLS):$(CORBA):$(JAXWS_COND) + $(SHARE):$(SOLARIS):$(LANGTOOLS):$(CORBA):$(JAXWS) SOURCEPATH_DIRS = $(abs_top_srcdir)/generated:$(OPENJDK_SOURCEPATH_DIRS) diff -r bf3fe7bcc615 -r e342c6b2cbc0 acinclude.m4 --- a/acinclude.m4 Wed Jan 16 01:38:30 2013 +0000 +++ b/acinclude.m4 Thu Jan 17 00:39:24 2013 +0000 @@ -653,6 +653,8 @@ AC_DEFUN_ONCE([IT_ENABLE_ZERO_BUILD], [ AC_REQUIRE([IT_SET_ARCH_SETTINGS]) + AC_REQUIRE([IT_ENABLE_CACAO]) + AC_REQUIRE([IT_ENABLE_JAMVM]) AC_MSG_CHECKING([whether to use the zero-assembler port]) use_zero=no AC_ARG_ENABLE([zero], diff -r bf3fe7bcc615 -r e342c6b2cbc0 hotspot.map --- a/hotspot.map Wed Jan 16 01:38:30 2013 +0000 +++ b/hotspot.map Thu Jan 17 00:39:24 2013 +0000 @@ -1,1 +1,1 @@ -default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot a57f19258524 334a0eedef7b45c624885460a214bf697154e6611ef5d6874d506c258db27a5d +default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 7e12b7098f20 dc85dde54f736507e83f718a587020b89d5e6c532a33a18cabd17dedef5db80b diff -r bf3fe7bcc615 -r e342c6b2cbc0 patches/boot/ecj-diamond.patch --- a/patches/boot/ecj-diamond.patch Wed Jan 16 01:38:30 2013 +0000 +++ b/patches/boot/ecj-diamond.patch Thu Jan 17 00:39:24 2013 +0000 @@ -6437,3 +6437,511 @@ List threads = new ArrayList(); for (int i = 0; i < threadCount; i++) { RandomCollector r = new RandomCollector(); +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java 2013-01-16 02:31:22.300240401 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java 2013-01-16 02:31:46.772630169 +0000 +@@ -78,9 +78,9 @@ + /* indicate compatibility with JDK 1.1.x version of class */ + private static final long serialVersionUID = 4666870661827494597L; + private Hashtable bindings +- = new Hashtable<>(101); ++ = new Hashtable(101); + private static Hashtable allowedAccessCache +- = new Hashtable<>(3); ++ = new Hashtable(3); + private static RegistryImpl registry; + private static ObjID id = new ObjID(ObjID.REGISTRY_ID); + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java 2013-01-16 02:31:22.308240528 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/ActivationGroupImpl.java 2013-01-16 02:37:55.086500471 +0000 +@@ -66,10 +66,10 @@ + + /** maps persistent IDs to activated remote objects */ + private final Hashtable active = +- new Hashtable<>(); ++ new Hashtable(); + private boolean groupInactive = false; + private final ActivationGroupID groupID; +- private final List lockedIDs = new ArrayList<>(); ++ private final List lockedIDs = new ArrayList(); + + /** + * Creates a default activation group implementation. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java 2013-01-16 02:31:22.316240656 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/LoaderHandler.java 2013-01-16 02:38:14.518810403 +0000 +@@ -112,11 +112,11 @@ + * garbage collected. + */ + private static final HashMap loaderTable +- = new HashMap<>(5); ++ = new HashMap(5); + + /** reference queue for cleared class loader entries */ + private static final ReferenceQueue refQueue +- = new ReferenceQueue<>(); ++ = new ReferenceQueue(); + + /* + * Disallow anyone from creating one of these. +@@ -776,7 +776,7 @@ + + /** map from weak(key=string) to [URL[], soft(key)] */ + private static final Map pathToURLsCache +- = new WeakHashMap<>(5); ++ = new WeakHashMap(5); + + /** + * Convert an array of URL objects into a corresponding string +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java 2013-01-16 02:31:22.324240784 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/MarshalInputStream.java 2013-01-16 02:38:36.627163040 +0000 +@@ -65,14 +65,14 @@ + + /** table to hold sun classes to which access is explicitly permitted */ + protected static Map> permittedSunClasses +- = new HashMap<>(3); ++ = new HashMap>(3); + + /** if true, don't try superclass first in resolveClass() */ + private boolean skipDefaultResolveClass = false; + + /** callbacks to make when done() called: maps Object to Runnable */ + private final Map doneCallbacks +- = new HashMap<>(3); ++ = new HashMap(3); + + /** + * if true, load classes (if not available locally) only from the +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java 2013-01-16 02:31:22.336240974 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/UnicastServerRef.java 2013-01-16 02:39:03.071584874 +0000 +@@ -537,7 +537,7 @@ + HashToMethod_Maps() {} + + protected Map computeValue(Class remoteClass) { +- Map map = new HashMap<>(); ++ Map map = new HashMap(); + for (Class cl = remoteClass; + cl != null; + cl = cl.getSuperclass()) +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/Util.java 2013-01-16 02:31:22.344241102 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/Util.java 2013-01-16 02:39:18.027823469 +0000 +@@ -207,7 +207,7 @@ + * @throws NullPointerException if remoteClass is null + */ + private static Class[] getRemoteInterfaces(Class remoteClass) { +- ArrayList> list = new ArrayList<>(); ++ ArrayList> list = new ArrayList>(); + getRemoteInterfaces(list, remoteClass); + return list.toArray(new Class[list.size()]); + } +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java 2013-01-16 02:31:22.352241229 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/server/WeakClassHashMap.java 2013-01-16 02:39:39.284162590 +0000 +@@ -46,7 +46,7 @@ + **/ + public abstract class WeakClassHashMap { + +- private Map,ValueCell> internalMap = new WeakHashMap<>(); ++ private Map,ValueCell> internalMap = new WeakHashMap,ValueCell>(); + + protected WeakClassHashMap() { } + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java 2013-01-16 02:31:22.360241357 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ConnectionInputStream.java 2013-01-16 02:37:32.806145141 +0000 +@@ -43,7 +43,7 @@ + private boolean dgcAckNeeded = false; + + /** Hashtable mapping Endpoints to lists of LiveRefs to register */ +- private Map> incomingRefTable = new HashMap<>(5); ++ private Map> incomingRefTable = new HashMap>(5); + + /** identifier for gc ack*/ + private UID ackID; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java 2013-01-16 02:31:22.368241485 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCAckHandler.java 2013-01-16 02:36:17.440943411 +0000 +@@ -78,7 +78,7 @@ + Collections.synchronizedMap(new HashMap()); + + private final UID id; +- private List objList = new ArrayList<>(); // null if released ++ private List objList = new ArrayList(); // null if released + private Future task = null; + + /** +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCClient.java 2013-01-16 02:31:22.380241675 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCClient.java 2013-01-16 02:33:21.178134084 +0000 +@@ -176,9 +176,9 @@ + private DGC dgc; + + /** table of refs held for endpoint: maps LiveRef to RefEntry */ +- private Map refTable = new HashMap<>(5); ++ private Map refTable = new HashMap(5); + /** set of RefEntry instances from last (failed) dirty call */ +- private Set invalidRefs = new HashSet<>(5); ++ private Set invalidRefs = new HashSet(5); + + /** true if this entry has been removed from the global table */ + private boolean removed = false; +@@ -200,12 +200,12 @@ + private boolean interruptible = false; + + /** reference queue for phantom references */ +- private ReferenceQueue refQueue = new ReferenceQueue<>(); ++ private ReferenceQueue refQueue = new ReferenceQueue(); + /** set of clean calls that need to be made */ +- private Set pendingCleans = new HashSet<>(5); ++ private Set pendingCleans = new HashSet(5); + + /** global endpoint table: maps Endpoint to EndpointEntry */ +- private static Map endpointTable = new HashMap<>(5); ++ private static Map endpointTable = new HashMap(5); + /** handle for GC latency request (for future cancellation) */ + private static GC.LatencyRequest gcLatencyRequest = null; + +@@ -282,7 +282,7 @@ + refEntry = new RefEntry(refClone); + refTable.put(refClone, refEntry); + if (refsToDirty == null) { +- refsToDirty = new HashSet<>(5); ++ refsToDirty = new HashSet(5); + } + refsToDirty.add(refEntry); + } +@@ -564,7 +564,7 @@ + needRenewal = true; + if (!invalidRefs.isEmpty()) { + refsToDirty = invalidRefs; +- invalidRefs = new HashSet<>(5); ++ invalidRefs = new HashSet(5); + } + sequenceNum = getNextSequenceNum(); + } +@@ -603,12 +603,12 @@ + if (refEntry.isRefSetEmpty()) { + if (refEntry.hasDirtyFailed()) { + if (strongCleans == null) { +- strongCleans = new HashSet<>(5); ++ strongCleans = new HashSet(5); + } + strongCleans.add(refEntry); + } else { + if (normalCleans == null) { +- normalCleans = new HashSet<>(5); ++ normalCleans = new HashSet(5); + } + normalCleans.add(refEntry); + } +@@ -704,7 +704,7 @@ + /** LiveRef value for this entry (not a registered instance) */ + private LiveRef ref; + /** set of phantom references to registered instances */ +- private Set refSet = new HashSet<>(5); ++ private Set refSet = new HashSet(5); + /** true if a dirty call containing this ref has failed */ + private boolean dirtyFailed = false; + +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java 2013-01-16 02:31:22.388241803 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/DGCImpl.java 2013-01-16 02:36:08.824806043 +0000 +@@ -84,7 +84,7 @@ + /** remote implementation of DGC interface for this VM */ + private static DGCImpl dgc; + /** table that maps VMID to LeaseInfo */ +- private Map leaseTable = new HashMap<>(); ++ private Map leaseTable = new HashMap(); + /** checks for lease expiration */ + private Future checker = null; + +@@ -236,7 +236,7 @@ + long time = System.currentTimeMillis(); + + /* List of vmids that need to be removed from the leaseTable */ +- List toUnregister = new ArrayList<>(); ++ List toUnregister = new ArrayList(); + + /* Build a list of leaseInfo objects that need to have + * targets removed from their notifySet. Remove expired +@@ -313,7 +313,7 @@ + private static class LeaseInfo { + VMID vmid; + long expiration; +- Set notifySet = new HashSet<>(); ++ Set notifySet = new HashSet(); + + LeaseInfo(VMID vmid, long lease) { + this.vmid = vmid; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java 2013-01-16 02:31:22.396241930 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/ObjectTable.java 2013-01-16 02:37:15.185864150 +0000 +@@ -62,9 +62,9 @@ + + /** tables mapping to Target, keyed from ObjectEndpoint and impl object */ + private static final Map objTable = +- new HashMap<>(); ++ new HashMap(); + private static final Map implTable = +- new HashMap<>(); ++ new HashMap(); + + /** + * lock guarding keepAliveCount, reaper, and gcLatencyRequest. +@@ -79,7 +79,7 @@ + private static Thread reaper = null; + + /** queue notified when weak refs in the table are cleared */ +- static final ReferenceQueue reapQueue = new ReferenceQueue<>(); ++ static final ReferenceQueue reapQueue = new ReferenceQueue(); + + /** handle for GC latency request (for future cancellation) */ + private static GC.LatencyRequest gcLatencyRequest = null; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java 2013-01-16 02:31:22.404242057 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java 2013-01-16 02:34:03.586809842 +0000 +@@ -75,13 +75,13 @@ + + /** table of hosts successfully connected to and the factory used */ + private Hashtable successTable = +- new Hashtable<>(); ++ new Hashtable(); + + /** maximum number of hosts to remember successful connection to */ + private static final int MaxRememberedHosts = 64; + + /** list of the hosts in successTable in initial connection order */ +- private Vector hostList = new Vector<>(MaxRememberedHosts); ++ private Vector hostList = new Vector(MaxRememberedHosts); + + /** default factory for initial use for direct socket connection */ + protected RMISocketFactory initialFactory = new RMIDirectSocketFactory(); +@@ -96,7 +96,7 @@ + * socket connection fails. + */ + public RMIMasterSocketFactory() { +- altFactoryList = new Vector<>(2); ++ altFactoryList = new Vector(2); + boolean setFactories = false; + + try { +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/Target.java 2013-01-16 02:31:22.412242185 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/Target.java 2013-01-16 02:36:35.937238312 +0000 +@@ -53,10 +53,10 @@ + /** stub for remote object */ + private final Remote stub; + /** set of clients that hold references to this target */ +- private final Vector refSet = new Vector<>(); ++ private final Vector refSet = new Vector(); + /** table that maps client endpoints to sequence numbers */ + private final Hashtable sequenceTable = +- new Hashtable<>(5); ++ new Hashtable(5); + /** access control context in which target was created */ + private final AccessControlContext acc; + /** context class loader in which target was created */ +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java 2013-01-16 02:31:22.424242376 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java 2013-01-16 02:34:20.691082418 +0000 +@@ -85,7 +85,7 @@ + private DataOutputStream dataOut; + + /** table holding currently open connection IDs and related info */ +- private Hashtable connectionTable = new Hashtable<>(7); ++ private Hashtable connectionTable = new Hashtable(7); + + /** number of currently open connections */ + private int numConnections = 0; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java 2013-01-16 02:31:22.432242504 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPChannel.java 2013-01-16 02:34:36.327331615 +0000 +@@ -64,7 +64,7 @@ + private final TCPTransport tr; + /** list of cached connections */ + private final List freeList = +- new ArrayList<>(); ++ new ArrayList(); + /** frees cached connections that have expired (guarded by freeList) */ + private Future reaper = null; + +@@ -480,7 +480,7 @@ + private TCPTransport transport; + + /** queue of connections to be accepted */ +- private List queue = new ArrayList<>(); ++ private List queue = new ArrayList(); + + /** thread ID counter */ + private static int threadNum = 0; +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java 2013-01-16 02:31:22.440242630 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java 2013-01-16 02:34:52.623591345 +0000 +@@ -148,7 +148,7 @@ + // TBD: should this be a weak hash table? + private static final + Map> localEndpoints = +- new HashMap<>(); ++ new HashMap>(); + + /** + * Create an endpoint for a specified host and port. +diff -Nru openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java +--- openjdk-boot.orig/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java 2013-01-16 02:31:22.448242758 +0000 ++++ openjdk-boot/jdk/src/share/classes/sun/rmi/transport/tcp/TCPTransport.java 2013-01-16 02:35:46.984457860 +0000 +@@ -120,7 +120,7 @@ + + /** client host for the current thread's connection */ + private static final ThreadLocal From ptisnovs at icedtea.classpath.org Thu Jan 17 01:54:04 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 17 Jan 2013 09:54:04 +0000 Subject: /hg/gfx-test: Added six new tests into the test suite Paths.java. Message-ID: changeset 728d592fdd88 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=728d592fdd88 author: Pavel Tisnovsky date: Thu Jan 17 10:57:08 2013 +0100 Added six new tests into the test suite Paths.java. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/Paths.java | 134 ++++++++++++++++++++++++++++++++++ 2 files changed, 139 insertions(+), 0 deletions(-) diffs (156 lines): diff -r 8ecb9bbea821 -r 728d592fdd88 ChangeLog --- a/ChangeLog Wed Jan 16 13:48:21 2013 +0100 +++ b/ChangeLog Thu Jan 17 10:57:08 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-17 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/Paths.java: + Added six new tests into the test suite Paths.java. + 2013-01-16 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltBasicTests.java: diff -r 8ecb9bbea821 -r 728d592fdd88 src/org/gfxtest/testsuites/Paths.java --- a/src/org/gfxtest/testsuites/Paths.java Wed Jan 16 13:48:21 2013 +0100 +++ b/src/org/gfxtest/testsuites/Paths.java Thu Jan 17 10:57:08 2013 +0100 @@ -764,6 +764,140 @@ } /** + * Check if line path could be clipped by an ellipse shape. Path is rendered + * using stroke paint with thick stroke width. + * Line path is constructed using new Path.Float() + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testLineFloatPathThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawLinePathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by an ellipse shape. Path is rendered + * using stroke paint with thick stroke width. + * Line path is constructed using new Path.Double() + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testLineDoublePathThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawLinePathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testQuadraticPathFloatThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawQuadraticPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testQuadraticPathDoubleThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawQuadraticPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCubicPathFloatThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawCubicPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCubicPathDoubleThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawCubicPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args From ptisnovs at icedtea.classpath.org Thu Jan 17 01:57:32 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 17 Jan 2013 09:57:32 +0000 Subject: /hg/rhino-tests: New tests added to the test suite AbstractScrip... Message-ID: changeset 431a38044e6f in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=431a38044e6f author: Pavel Tisnovsky date: Thu Jan 17 11:00:38 2013 +0100 New tests added to the test suite AbstractScriptEngineClassTest. diffstat: ChangeLog | 5 + src/org/RhinoTests/AbstractScriptEngineClassTest.java | 81 +++++++++++++++++++ 2 files changed, 86 insertions(+), 0 deletions(-) diffs (103 lines): diff -r 075b8d6e5fb1 -r 431a38044e6f ChangeLog --- a/ChangeLog Wed Jan 16 13:33:30 2013 +0100 +++ b/ChangeLog Thu Jan 17 11:00:38 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-17 Pavel Tisnovsky + + * src/org/RhinoTests/AbstractScriptEngineClassTest.java: + New tests added to the test suite AbstractScriptEngineClassTest. + 2013-01-16 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: diff -r 075b8d6e5fb1 -r 431a38044e6f src/org/RhinoTests/AbstractScriptEngineClassTest.java --- a/src/org/RhinoTests/AbstractScriptEngineClassTest.java Wed Jan 16 13:33:30 2013 +0100 +++ b/src/org/RhinoTests/AbstractScriptEngineClassTest.java Thu Jan 17 11:00:38 2013 +0100 @@ -856,6 +856,87 @@ } /** + * Test for method javax.script.AbstractScriptEngine.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.abstractScriptEngineClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getComponentType() + */ + protected void testGetComponentType() { + Class cls = this.abstractScriptEngineClass.getComponentType(); + assertNull(cls, "getComponentType() should returns null"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getClasses() + */ + protected void testGetClasses() { + Class[] cls = this.abstractScriptEngineClass.getClasses(); + assertNotNull(cls, "getClasses() returns null"); + assertEquals(cls.length, 0, "getClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getDeclaredClasses() + */ + protected void testGetDeclaredClasses() { + Class[] cls = this.abstractScriptEngineClass.getDeclaredClasses(); + assertNotNull(cls, "getDeclaredClasses() returns null"); + assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getDeclaringClass() + */ + protected void testGetDeclaringClass() { + Class cls = this.abstractScriptEngineClass.getDeclaringClass(); + assertNull(cls, "getDeclaringClass() does not return null"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getEnclosingClass() + */ + protected void testGetEnclosingClass() { + Class cls = this.abstractScriptEngineClass.getEnclosingClass(); + assertNull(cls, "getEnclosingClass() does not return null"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getEnclosingConstructor() + */ + protected void testGetEnclosingConstructor() { + Constructor cons = this.abstractScriptEngineClass.getEnclosingConstructor(); + assertNull(cons, "getEnclosingConstructor() does not return null"); + } + + /** + * Test for method javax.script.AbstractScriptEngine.getClass().getEnclosingMethod() + */ + protected void testGetEnclosingMethod() { + Method m = this.abstractScriptEngineClass.getEnclosingMethod(); + assertNull(m, "getEnclosingMethod() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.AbstractScriptEngine */ @SuppressWarnings("cast") From gnu.andrew at redhat.com Thu Jan 17 05:13:36 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Thu, 17 Jan 2013 08:13:36 -0500 (EST) Subject: Ubuntu 12.04 and JAMVM In-Reply-To: Message-ID: <1662707051.6348863.1358428416257.JavaMail.root@redhat.com> ----- Original Message ----- > On Tue, Jan 15, 2013 at 6:46 AM, Richard Warburton > wrote: > > JAM VM is the default on ARM [0], is that the platform you're > > installing on? > > Ubuntu 12.04.1 LTS on 32-bit x86 > > oh, this sheds some light: > https://launchpad.net/ubuntu/+source/openjdk-7 > > icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM for > OpenJDK > icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM > openjdk-7-dbg: Java runtime based on OpenJDK (debugging symbols) > openjdk-7-demo: Java runtime based on OpenJDK (demos and examples) > openjdk-7-doc: OpenJDK Development Kit (JDK) documentation > openjdk-7-jdk: OpenJDK Development Kit (JDK) > openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero > openjdk-7-jre-headless: OpenJDK Java runtime, using Hotspot Zero > (headless) > openjdk-7-jre-lib: OpenJDK Java runtime (architecture independent > libraries) > openjdk-7-jre-zero: Alternative JVM for OpenJDK, using Zero/Shark > openjdk-7-source: OpenJDK Development Kit (JDK) source files > > So it looks like I should be installing package ?openjdk-7-jre?, > which > was NOT listed among the options when one types ?java? on a freshly > installed Ubuntu system. > > It?s a bit odd that calling "java" when it?s not installed only gives > JAM VM and Cacao as options, and openjdk-7-jre is not listed. As if > they don?t want Hotspot installed. > > Maybe I should file a bug to have openjdk-7-jre shown along the other > alternatives... > > But this brings another question: > > icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM for > OpenJDK > icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM > > does this mean that Icedtea -the browser plug-in- can only be used > with JamVM and Cacao in Ubuntu? > > FC > > -- > During times of Universal Deceit, telling the truth becomes a > revolutionary act > Durante ?pocas de Enga?o Universal, decir la verdad se convierte en > un > Acto Revolucionario > - George Orwell > This is baffling to me. I don't know what Ubuntu's reasoning is here, but you don't want: openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero as this won't make use of the x86 HotSpot JIT, instead being purely interpreted (and thus very slow). Wondering where the standard HotSpot is... :-S -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From adomurad at redhat.com Thu Jan 17 06:53:08 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 17 Jan 2013 09:53:08 -0500 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50F6FB05.5010909@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> Message-ID: <50F81054.8080809@redhat.com> On 01/16/2013 02:09 PM, Jiri Vanek wrote: > On 01/16/2013 07:59 PM, Adam Domurad wrote: >> On 11/15/2012 03:30 PM, Adam Domurad wrote: >>> So in lieu of requests such as [1] and the potential for unsigned >>> code escaping the sandbox (eg, >>> the recent 0day) it could be worth looking into a feature that has >>> applets not start >>> automatically, but rather require a user confirmation (click?) to >>> begin. Additionally a more >>> strict setting could not allow This could be controlled via >>> itweb-settings/environment and >>> distributions might want it as the default. >>> >>> There should be some way to opt-in normal execution of signed >>> applets based on certificate. When >>> an applet's certificates are all opted in, it will start >>> automatically. (Note that we do not need >>> to handle mixed signed + unsigned code specially, it already >>> requires a confirmation.) Unsigned >>> applets, if we choose to allow them being opted in, can be opted in >>> on a full domain name basis. >>> >>> The main motivation I have for proposing this feature is that many >>> applet users only use a handful >>> of applets, and having other applets automatically start is mostly >>> an unnecessary attack surface. >>> I have seen "Disable java in browser, and turn it on for any applets >>> you need to use only" giving >>> as advice following the 0day, and this would be a superior option. >>> >>> [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1211 >>> >>> Thoughts? >>> -Adam >> >> So hey, yet another 0day since this, good times. >> >> So something like this now has become default in Oracle's plugin. >> Starting with the most recent >> Oracle Java release (the recent 0day fix) applets in the browser run >> in 'high security' setting by >> default. This setting requires explicitly allowing unsigned content >> to run. >> >> Oracle implements this via a pop-up window: A 'Do not show this again >> for this app' checkbox allows >> the option of running/not running to be remembered. >> Example of the new default behaviour for unsigned applets: >> http://i.imgur.com/RZWIG.png > > Blah. I would rather stay without popups! I think spalshscreen (as > something "before laod") have prepared way for this. However for > branches there should be different approach :( >> >> >> The pressure is on us to do the same for icedtea-web for applets >> (JNLP launched programs will not be >> affected). >> >> Jiri mentioned the implementation should probably be done in at least >> two parts, here is how it >> could be done: >> >> 1.) In icedtea-web settings panel, have a High/Medium switch for >> security, defaulted to High. >> Require user confirmation for all unsigned applets on Medium. >> >> [The name Medium here corresponds to the related Oracle security >> level. We do not really need to >> implement Very High (no unsigned applets running) nor Low (all >> applets run automatically).] > in part two I would defintely like to see definitely Low and maybe > also ExtraHigh. > >> >> 2.) Implement whitelist/blacklist similar to how Oracle does this -- >> ie, always/never option while >> confirming unsigned applet running, and a way to manage this in >> icedtea-web. > Yes, whitelista and balicklist are a must. So buttons like yes, no, > always, never are also necessary. And dont forget regexes for manual > editation ;) I kind of like how Oracle handled this, with a checkbox 'remember this option'. So yes + check = always, no + check = never. > >> >> >> Open questions: >> - Click-to-play, vs pop-up ? (Funny result of click to play is, >> when used with browser click to > +1 for Click-to-play in head > For branchesd.. hmm probably dialogue will serve better :( > >> play, unsigned applets need double-click. Not worse than >> click+pop-up, though) >> - How to implement always/never options? > > BUttons ?o) and then to "itweb-settings managbale/sahred file(?)" >> > > J. Off-list follow-up appended: > > few more ideas to delayed launch. I?m afraid we cannot live without > the popup dialogue. Sometimes the applet is *just too small*. I think > in first iteration, for all branches, we should have one big button > "details" with tooltip "this is applet, click for details". After > click dialogue apper, with as much detail as we can provide and > buttons run/dont/always/never/thisOne/domain/... in next iteration we > should move all the body of this dialogue (keep it in mind during > first desing :O) to the applet itself but only if both its sides are > eg greater then 100px {otherwise nasty button will remains}). For > head, errorsplash is ready to handle "post no run" appearence pretty > well :O) just my 0,02$ for brain storming. > > J. Yes - I came to similar conclusions; I'm working on a pop-up similar to Oracle's currently. Can't applets be smaller than a comfortable button size (and potentially hidden somewhere) ? If we do go the route of having a details button in the applet, I think we'll have to still implement a size threshold. For small applets I think we shouldn't risk cramming in detail. I think for applets big enough having the confirmation details on the applet itself would be great -- in fact this would be an improvement even for accepting applet signatures in my opinion (although we may risk dropping important details). But, small applets (<100px) should always have a pop-up I think. Since a page can have many small applets, I think we should add a site to a 'temporary whitelist' once you accept an applet can run, and all applets on the page run. They will continue to run if you enter the site in the same session (a malicious applet will immediately do something nasty the first time -- no significant further risk I'd think of running it twice). Same way if you reject an applet, it will reject all applets on this page in the current session (possibly with message on applet "Applet denied for current session".) -Adam From neugens.limasoftware at gmail.com Thu Jan 17 08:02:24 2013 From: neugens.limasoftware at gmail.com (Mario Torre) Date: Thu, 17 Jan 2013 17:02:24 +0100 Subject: Ubuntu 12.04 and JAMVM In-Reply-To: <1662707051.6348863.1358428416257.JavaMail.root@redhat.com> References: <1662707051.6348863.1358428416257.JavaMail.root@redhat.com> Message-ID: I may be wrong, but I think is this: openjdk-7-jdk Cheers, Mario 2013/1/17 Andrew Hughes : > > > ----- Original Message ----- >> On Tue, Jan 15, 2013 at 6:46 AM, Richard Warburton >> wrote: >> > JAM VM is the default on ARM [0], is that the platform you're >> > installing on? >> >> Ubuntu 12.04.1 LTS on 32-bit x86 >> >> oh, this sheds some light: >> https://launchpad.net/ubuntu/+source/openjdk-7 >> >> icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM for >> OpenJDK >> icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM >> openjdk-7-dbg: Java runtime based on OpenJDK (debugging symbols) >> openjdk-7-demo: Java runtime based on OpenJDK (demos and examples) >> openjdk-7-doc: OpenJDK Development Kit (JDK) documentation >> openjdk-7-jdk: OpenJDK Development Kit (JDK) >> openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero >> openjdk-7-jre-headless: OpenJDK Java runtime, using Hotspot Zero >> (headless) >> openjdk-7-jre-lib: OpenJDK Java runtime (architecture independent >> libraries) >> openjdk-7-jre-zero: Alternative JVM for OpenJDK, using Zero/Shark >> openjdk-7-source: OpenJDK Development Kit (JDK) source files >> >> So it looks like I should be installing package ?openjdk-7-jre?, >> which >> was NOT listed among the options when one types ?java? on a freshly >> installed Ubuntu system. >> >> It?s a bit odd that calling "java" when it?s not installed only gives >> JAM VM and Cacao as options, and openjdk-7-jre is not listed. As if >> they don?t want Hotspot installed. >> >> Maybe I should file a bug to have openjdk-7-jre shown along the other >> alternatives... >> >> But this brings another question: >> >> icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM for >> OpenJDK >> icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM >> >> does this mean that Icedtea -the browser plug-in- can only be used >> with JamVM and Cacao in Ubuntu? >> >> FC >> >> -- >> During times of Universal Deceit, telling the truth becomes a >> revolutionary act >> Durante ?pocas de Enga?o Universal, decir la verdad se convierte en >> un >> Acto Revolucionario >> - George Orwell >> > > This is baffling to me. I don't know what Ubuntu's reasoning is here, but > you don't want: > > openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero > > as this won't make use of the x86 HotSpot JIT, instead being purely interpreted > (and thus very slow). > > Wondering where the standard HotSpot is... :-S > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > -- pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF IcedRobot: www.icedrobot.org Proud GNU Classpath developer: http://www.classpath.org/ Read About us at: http://planet.classpath.org OpenJDK: http://openjdk.java.net/projects/caciocavallo/ Please, support open standards: http://endsoftpatents.org/ From omajid at redhat.com Thu Jan 17 15:15:51 2013 From: omajid at redhat.com (Omair Majid) Date: Thu, 17 Jan 2013 18:15:51 -0500 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <50F5898A.40108@redhat.com> References: <50F5898A.40108@redhat.com> Message-ID: <50F88627.5030606@redhat.com> Hi Adam, I haven't looked into this in too much detail, but here are some quick thoughts. On 01/15/2013 11:53 AM, Adam Domurad wrote: > This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D > furniture dragging. Nice! I can imagine that this must have been a pain to track down. > I'll preface by saying, I'm not particularly fond of the changes in this > patch, but they have to be done to fix JNLP applications that load > resources on the Swing thread, like eg SweetHome3D. > > The patch adds a flag to JNLPClassLoader that specifies whether it has > been initialized. The default for getInstance remains the same, it grabs > an initialized JNLPClassLoader. However an alternate getInstance was > added to be able to grab JNLPClassLoader that hasn't been fully > initialized. So far, this sounds just fine to me. Well, maybe we could avoid maintaining a record of ClassLoader instances, but that's a whole another problem. > The problem with initialization: > - To create AppContext we need JNLPClassLoader object constructed > - To construct JNLPClassLoader we must initialize it Sounds perfectly fine so far. > - Initializing JNLPClassLoader implies downloading all resources, > and updating Swing components What swing components do you imagine are being updated here? > However, we cannot update swing components before we create our > AppContext, or the result will be a mess (eg unclickable popups). > In essence, it's a bootstrapping problem. So the patch makes it possible > to get a constructed JNLPClassLoader, which is initialized in a separate > step. I am not a fan of the hack in JNLPRuntime.createNewAppContext where you set the system CL as the CCL on the EDT. We always have a thread (the security thread, I think it's called) that is running in the system appcontext that shows security prompts (see the SecurityDialogs class). Maybe you could add another thread (or extend the existing therad) to display icedtea-web UI (like splash screens and so on)? > This exposes an additional bug in JNLP applets. start/init incorrectly > runs on the Swing thread, and invokeAndWait hangs forever. I'm not sure > how this wasn't caught, but the JNLP applet reproducer is broken pending > a separate bug fix. > Nice catch! Thanks, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From ptisnovs at icedtea.classpath.org Fri Jan 18 01:28:23 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 18 Jan 2013 09:28:23 +0000 Subject: /hg/rhino-tests: Four new tests added to the test suite SimpleSc... Message-ID: changeset fa939752e8db in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=fa939752e8db author: Pavel Tisnovsky date: Fri Jan 18 10:31:28 2013 +0100 Four new tests added to the test suite SimpleScriptContextClassTest. diffstat: ChangeLog | 5 ++ src/org/RhinoTests/SimpleScriptContextClassTest.java | 34 ++++++++++++++++++++ 2 files changed, 39 insertions(+), 0 deletions(-) diffs (56 lines): diff -r 431a38044e6f -r fa939752e8db ChangeLog --- a/ChangeLog Thu Jan 17 11:00:38 2013 +0100 +++ b/ChangeLog Fri Jan 18 10:31:28 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-18 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleScriptContextClassTest.java: + Four new tests added to the test suite SimpleScriptContextClassTest. + 2013-01-17 Pavel Tisnovsky * src/org/RhinoTests/AbstractScriptEngineClassTest.java: diff -r 431a38044e6f -r fa939752e8db src/org/RhinoTests/SimpleScriptContextClassTest.java --- a/src/org/RhinoTests/SimpleScriptContextClassTest.java Thu Jan 17 11:00:38 2013 +0100 +++ b/src/org/RhinoTests/SimpleScriptContextClassTest.java Fri Jan 18 10:31:28 2013 +0100 @@ -623,6 +623,40 @@ } /** + * Test for method javax.script.SimpleScriptContext.getClass().getComponentType() + */ + protected void testGetComponentType() { + Class cls = this.simpleScriptContextClass.getComponentType(); + assertNull(cls, "getComponentType() should returns null"); + } + + /** + * Test for method javax.script.SimpleScriptContext.getClass().getClasses() + */ + protected void testGetClasses() { + Class[] cls = this.simpleScriptContextClass.getClasses(); + assertNotNull(cls, "getClasses() returns null"); + assertEquals(cls.length, 0, "getClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.SimpleScriptContext.getClass().getDeclaredClasses() + */ + protected void testGetDeclaredClasses() { + Class[] cls = this.simpleScriptContextClass.getDeclaredClasses(); + assertNotNull(cls, "getDeclaredClasses() returns null"); + assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.SimpleScriptContext.getClass().getDeclaringClass() + */ + protected void testGetDeclaringClass() { + Class cls = this.simpleScriptContextClass.getDeclaringClass(); + assertNull(cls, "getDeclaringClass() does not return null"); + } + + /** * Test for method javax.script.SimpleScriptContext.getClass().getEnclosingClass() */ protected void testGetEnclosingClass() { From ptisnovs at icedtea.classpath.org Fri Jan 18 01:30:38 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 18 Jan 2013 09:30:38 +0000 Subject: /hg/gfx-test: Added eight new tests to the test suite BitBltUsin... Message-ID: changeset ffa18b18baa2 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=ffa18b18baa2 author: Pavel Tisnovsky date: Fri Jan 18 10:33:38 2013 +0100 Added eight new tests to the test suite BitBltUsingBgColor. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColor.java | 120 +++++++++++++++++++++ 2 files changed, 125 insertions(+), 0 deletions(-) diffs (142 lines): diff -r 728d592fdd88 -r ffa18b18baa2 ChangeLog --- a/ChangeLog Thu Jan 17 10:57:08 2013 +0100 +++ b/ChangeLog Fri Jan 18 10:33:38 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-18 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: + Added eight new tests to this test suite. + 2013-01-17 Pavel Tisnovsky * src/org/gfxtest/testsuites/Paths.java: diff -r 728d592fdd88 -r ffa18b18baa2 src/org/gfxtest/testsuites/BitBltUsingBgColor.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Thu Jan 17 10:57:08 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColor.java Fri Jan 18 10:33:38 2013 +0100 @@ -1006,6 +1006,126 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.black. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundBlack(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.black); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.blue. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundBlue(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.blue); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.green. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundGreen(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.green); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundCyan(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.cyan); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.red. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundRed(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.red); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.magenta. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundMagenta(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.magenta); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundYellow(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.yellow); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_INT_ARGB_PRE. + * Background color is set to Color.white. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageTypeIntARGB_Pre_backgroundWhite(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageTypeIntARGBPre(image, graphics2d, Color.white); + } + + /** * Entry point to the test suite. * * @param args not used in this case From jvanek at redhat.com Fri Jan 18 03:47:43 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Fri, 18 Jan 2013 12:47:43 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50F81054.8080809@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> Message-ID: <50F9365F.3000205@redhat.com> On 01/17/2013 03:53 PM, Adam Domurad wrote: > On 01/16/2013 02:09 PM, Jiri Vanek wrote: >> On 01/16/2013 07:59 PM, Adam Domurad wrote: >>> On 11/15/2012 03:30 PM, Adam Domurad wrote: >>>> So in lieu of requests such as [1] and the potential for unsigned code escaping the sandbox (eg, >>>> the recent 0day) it could be worth looking into a feature that has applets not start >>>> automatically, but rather require a user confirmation (click?) to begin. Additionally a more >>>> strict setting could not allow This could be controlled via itweb-settings/environment and >>>> distributions might want it as the default. >>>> >>>> There should be some way to opt-in normal execution of signed applets based on certificate. When >>>> an applet's certificates are all opted in, it will start automatically. (Note that we do not need >>>> to handle mixed signed + unsigned code specially, it already requires a confirmation.) Unsigned >>>> applets, if we choose to allow them being opted in, can be opted in on a full domain name basis. >>>> >>>> The main motivation I have for proposing this feature is that many applet users only use a handful >>>> of applets, and having other applets automatically start is mostly an unnecessary attack surface. >>>> I have seen "Disable java in browser, and turn it on for any applets you need to use only" giving >>>> as advice following the 0day, and this would be a superior option. >>>> >>>> [1] http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1211 >>>> >>>> Thoughts? >>>> -Adam >>> >>> So hey, yet another 0day since this, good times. >>> >>> So something like this now has become default in Oracle's plugin. Starting with the most recent >>> Oracle Java release (the recent 0day fix) applets in the browser run in 'high security' setting by >>> default. This setting requires explicitly allowing unsigned content to run. >>> >>> Oracle implements this via a pop-up window: A 'Do not show this again for this app' checkbox allows >>> the option of running/not running to be remembered. >>> Example of the new default behaviour for unsigned applets: http://i.imgur.com/RZWIG.png >> >> Blah. I would rather stay without popups! I think spalshscreen (as something "before laod") have prepared way for this. However for branches there should be different approach :( >>> >>> >>> The pressure is on us to do the same for icedtea-web for applets (JNLP launched programs will not be >>> affected). >>> >>> Jiri mentioned the implementation should probably be done in at least two parts, here is how it >>> could be done: >>> >>> 1.) In icedtea-web settings panel, have a High/Medium switch for security, defaulted to High. >>> Require user confirmation for all unsigned applets on Medium. >>> >>> [The name Medium here corresponds to the related Oracle security level. We do not really need to >>> implement Very High (no unsigned applets running) nor Low (all applets run automatically).] >> in part two I would defintely like to see definitely Low and maybe also ExtraHigh. >> >>> >>> 2.) Implement whitelist/blacklist similar to how Oracle does this -- ie, always/never option while >>> confirming unsigned applet running, and a way to manage this in icedtea-web. >> Yes, whitelista and balicklist are a must. So buttons like yes, no, always, never are also necessary. And dont forget regexes for manual editation ;) > > I kind of like how Oracle handled this, with a checkbox 'remember this option'. So yes + check = always, no + check = never. > >> >>> >>> >>> Open questions: >>> - Click-to-play, vs pop-up ? (Funny result of click to play is, when used with browser click to >> +1 for Click-to-play in head >> For branchesd.. hmm probably dialogue will serve better :( >> >>> play, unsigned applets need double-click. Not worse than click+pop-up, though) >>> - How to implement always/never options? >> >> BUttons ?o) and then to "itweb-settings managbale/sahred file(?)" >>> >> >> J. > > Off-list follow-up appended: > >> >> few more ideas to delayed launch. I?m afraid we cannot live without the popup dialogue. Sometimes the applet is *just too small*. I think in first iteration, for all branches, we should have one big button "details" with tooltip "this is applet, click for details". After click dialogue apper, with as much detail as we can provide and buttons run/dont/always/never/thisOne/domain/... in next iteration we should move all the body of this dialogue (keep it in mind during first desing :O) to the applet itself but only if both its sides are eg greater then 100px {otherwise nasty button will remains}). For head, errorsplash is ready to handle "post no run" appearence pretty well :O) just my 0,02$ for brain storming. >> >> J. Thanx for repost, and sorry for conversation fork, but above message come from my phone :) > > Yes - I came to similar conclusions; I'm working on a pop-up similar to Oracle's currently. Yy, this pop up is definitely first step. (but imho it should be already accomapanied by always/never/ buttons and radio swithch applet/page/domain > > Can't applets be smaller than a comfortable button size (and potentially hidden somewhere) ? exactly - one of the reasons of this mechanism, that invisible appelt is not launched without warning. Imho 0x0 size appelts should be even more restricted (but 1x1 appelt is still in same way dangerous .. :-/ (so probably no op) Maybe we can write size to the information dialogue;) 0x0 px should be saspicious to everybody (we can add explaining message also) > If we do go the route of having a details button in the applet, I think we'll have to still implement a size threshold. For small applets I think we shouldn't risk cramming in detail. Agree, What about three thresholds then? eg >100px - full info in applet's pane, 100-20 details button, lesser direct popup. > > I think for applets big enough having the confirmation details on the applet itself would be great -- in fact this would be an improvement even for accepting applet signatures in my opinion (although we may risk dropping important details). But, small applets (<100px) should always have a pop-up I think. Interesting idea :) > > Since a page can have many small applets, I think we should add a site to a 'temporary whitelist' once you accept an applet can run, and all applets on the page run. They will continue to run if you enter the site in the same session (a malicious applet will immediately do something nasty the first time -- no significant further risk I'd think of running it twice). Same way if you reject an applet, it will reject all applets on this page in the current session (possibly with message on applet "Applet denied for current session".) Also interesting - if first appelt will be ok for page/domain then others really could be launched autoamticaly. But what if there will be first, some nice animation/game, and lower will be some malicious invisible one? Also I'm not sure if t will be possible to implement it correctly. J. From adomurad at redhat.com Fri Jan 18 06:30:39 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 18 Jan 2013 09:30:39 -0500 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <50F88627.5030606@redhat.com> References: <50F5898A.40108@redhat.com> <50F88627.5030606@redhat.com> Message-ID: <50F95C8F.6070207@redhat.com> On 01/17/2013 06:15 PM, Omair Majid wrote: > Hi Adam, > > I haven't looked into this in too much detail, but here are some quick > thoughts. > > On 01/15/2013 11:53 AM, Adam Domurad wrote: >> This fixes one of the (numerous) issues in ADOMII, and fixes SweetHome3D >> furniture dragging. > Nice! I can imagine that this must have been a pain to track down. The key was setting a conditional breakpoint on Thread#setContextClassLoader that caught when the classloader went from JNLPClassLoader->system classloader. Having JRE source code is so useful! > >> I'll preface by saying, I'm not particularly fond of the changes in this >> patch, but they have to be done to fix JNLP applications that load >> resources on the Swing thread, like eg SweetHome3D. >> >> The patch adds a flag to JNLPClassLoader that specifies whether it has >> been initialized. The default for getInstance remains the same, it grabs >> an initialized JNLPClassLoader. However an alternate getInstance was >> added to be able to grab JNLPClassLoader that hasn't been fully >> initialized. > So far, this sounds just fine to me. Well, maybe we could avoid > maintaining a record of ClassLoader instances, but that's a whole > another problem. We should move away from this with any theoretical reworking probably. (Working on this patch definitely made me itch to make JNLPClassLoader less heavy-weight, I wrote a rough list of all its responsibilities and its quite long.) > >> The problem with initialization: >> - To create AppContext we need JNLPClassLoader object constructed >> - To construct JNLPClassLoader we must initialize it > Sounds perfectly fine so far. > >> - Initializing JNLPClassLoader implies downloading all resources, >> and updating Swing components > What swing components do you imagine are being updated here? Download indicator mainly + dialogues like "do you want to run this applet?" > >> However, we cannot update swing components before we create our >> AppContext, or the result will be a mess (eg unclickable popups). >> In essence, it's a bootstrapping problem. So the patch makes it possible >> to get a constructed JNLPClassLoader, which is initialized in a separate >> step. > I am not a fan of the hack in JNLPRuntime.createNewAppContext where you > set the system CL as the CCL on the EDT. > > We always have a thread (the security thread, I think it's called) that > is running in the system appcontext that shows security prompts (see the > SecurityDialogs class). Maybe you could add another thread (or extend > the existing therad) to display icedtea-web UI (like splash screens and > so on)? Hack indeed so any alternatives appreciated. Can you give me some pseudo-code of what you're proposing? It would be greatly appreciated. I'm not sure what you mean display a UI in a separate thread -- AFAIK the only way to do this in a Swing-compatible way is to add components which will be drawn in the (current AppContext's) event-dispatch thread. > >> This exposes an additional bug in JNLP applets. start/init incorrectly >> runs on the Swing thread, and invokeAndWait hangs forever. I'm not sure >> how this wasn't caught, but the JNLP applet reproducer is broken pending >> a separate bug fix. >> > Nice catch! > > Thanks, > Omair > -Adam From omajid at redhat.com Fri Jan 18 08:24:34 2013 From: omajid at redhat.com (Omair Majid) Date: Fri, 18 Jan 2013 11:24:34 -0500 Subject: [rfc][icedtea-web] Fix for PR1251: AppContext has wrong context classloader In-Reply-To: <50F95C8F.6070207@redhat.com> References: <50F5898A.40108@redhat.com> <50F88627.5030606@redhat.com> <50F95C8F.6070207@redhat.com> Message-ID: <50F97742.1010008@redhat.com> On 01/18/2013 09:30 AM, Adam Domurad wrote: > On 01/17/2013 06:15 PM, Omair Majid wrote: >> >>> The problem with initialization: >>> - To create AppContext we need JNLPClassLoader object constructed >>> - To construct JNLPClassLoader we must initialize it >> Sounds perfectly fine so far. >> >>> - Initializing JNLPClassLoader implies downloading all resources, >>> and updating Swing components >> What swing components do you imagine are being updated here? > > Download indicator mainly + dialogues like "do you want to run this > applet?" > Please make the "do you want to run this applet" dialog run in the system AppContext, just like all other security dailogs. >> >>> However, we cannot update swing components before we create our >>> AppContext, or the result will be a mess (eg unclickable popups). >>> In essence, it's a bootstrapping problem. So the patch makes it possible >>> to get a constructed JNLPClassLoader, which is initialized in a separate >>> step. >> I am not a fan of the hack in JNLPRuntime.createNewAppContext where you >> set the system CL as the CCL on the EDT. >> >> We always have a thread (the security thread, I think it's called) that >> is running in the system appcontext that shows security prompts (see the >> SecurityDialogs class). Maybe you could add another thread (or extend >> the existing therad) to display icedtea-web UI (like splash screens and >> so on)? > > Hack indeed so any alternatives appreciated. Can you give me some > pseudo-code of what you're proposing? It would be greatly appreciated. > I'm not sure what you mean display a UI in a separate thread -- AFAIK > the only way to do this in a Swing-compatible way is to add components > which will be drawn in the (current AppContext's) event-dispatch thread. Here's the rough idea: - Create new thread icedtea-web-ui. It should have the system's AppContext - Instead of drawing a UI, send a command to icedtea-web-ui thread - icedtea-web-ui will do what the command says: display/update/modify the ui appropriately. The net.sourceforge.jnlp.security.SecurityDialogMessageHandler does pretty much exactly this for security dialogs. Maybe you can extend it. See net.sourceforge.jnlp.security.SecurityDialogs for how callers make use of it. Cheers, Omair -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From adomurad at redhat.com Fri Jan 18 10:23:58 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 18 Jan 2013 13:23:58 -0500 Subject: [rfc][icedtea-web] Simple process-safe thread storage utility class Message-ID: <50F9933E.6030406@redhat.com> Posting early iteration of storage class as Jiri requested, feedback appreciated. This will be needed in coming whitelist/blacklist for unsigned applets. No change log atm sorry. Comments, extra testing ideas, etc. Locking file still needs a separate unit test -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: LockingStringListStorage.patch Type: text/x-patch Size: 7752 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130118/5c6c5305/LockingStringListStorage.patch From adomurad at redhat.com Fri Jan 18 11:33:55 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 18 Jan 2013 14:33:55 -0500 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50F9365F.3000205@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> Message-ID: <50F9A3A3.9020701@redhat.com> On 01/18/2013 06:47 AM, Jiri Vanek wrote: > [..snip..] > Yy, this pop up is definitely first step. (but imho it should be > already accomapanied by always/never/ buttons and radio swithch > applet/page/domain IMO just applet for starters, easier to fully test before pushing out. > >> >> Can't applets be smaller than a comfortable button size (and >> potentially hidden somewhere) ? > > exactly - one of the reasons of this mechanism, that invisible appelt > is not launched without warning. Imho 0x0 size appelts should be even > more restricted (but 1x1 appelt is still in same way dangerous .. :-/ > (so probably no op) > Maybe we can write size to the information dialogue;) 0x0 px should be > saspicious to everybody (we can add explaining message also) Might be worthwhile, although I don't think many people would know what to do with this information. > >> If we do go the route of having a details button in the applet, I >> think we'll have to still implement a size threshold. For small >> applets I think we shouldn't risk cramming in detail. > > Agree, What about three thresholds then? eg >100px - full info in > applet's pane, 100-20 details button, lesser direct popup. Probably, by the final iteration. >> >> I think for applets big enough having the confirmation details on the >> applet itself would be great -- in fact this would be an improvement >> even for accepting applet signatures in my opinion (although we may >> risk dropping important details). But, small applets (<100px) should >> always have a pop-up I think. > > Interesting idea :) > >> >> Since a page can have many small applets, I think we should add a >> site to a 'temporary whitelist' once you accept an applet can run, >> and all applets on the page run. They will continue to run if you >> enter the site in the same session (a malicious applet will >> immediately do something nasty the first time -- no significant >> further risk I'd think of running it twice). Same way if you reject >> an applet, it will reject all applets on this page in the current >> session (possibly with message on applet "Applet denied for current >> session".) > > Also interesting - if first appelt will be ok for page/domain then > others really could be launched autoamticaly. > But what if there will be first, some nice animation/game, and lower > will be some malicious invisible one? Ya good point, should be per-applet. The white/black-list will need to be per-applet too (only setting for iteration 1 at least), which I hadn't considered. We'll probably have to use the concept of applet 'unique key' here. > > Also I'm not sure if t will be possible to implement it correctly. > > > J. From gnu.andrew at redhat.com Fri Jan 18 12:31:28 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 18 Jan 2013 15:31:28 -0500 (EST) Subject: Ubuntu 12.04 and JAMVM In-Reply-To: Message-ID: <1313963222.1163166.1358541088195.JavaMail.root@redhat.com> ----- Original Message ----- > I may be wrong, but I think is this: > > openjdk-7-jdk > > Cheers, > Mario > > 2013/1/17 Andrew Hughes : > > > > > > ----- Original Message ----- > >> On Tue, Jan 15, 2013 at 6:46 AM, Richard Warburton > >> wrote: > >> > JAM VM is the default on ARM [0], is that the platform you're > >> > installing on? > >> > >> Ubuntu 12.04.1 LTS on 32-bit x86 > >> > >> oh, this sheds some light: > >> https://launchpad.net/ubuntu/+source/openjdk-7 > >> > >> icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM > >> for > >> OpenJDK > >> icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM > >> openjdk-7-dbg: Java runtime based on OpenJDK (debugging symbols) > >> openjdk-7-demo: Java runtime based on OpenJDK (demos and examples) > >> openjdk-7-doc: OpenJDK Development Kit (JDK) documentation > >> openjdk-7-jdk: OpenJDK Development Kit (JDK) > >> openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero > >> openjdk-7-jre-headless: OpenJDK Java runtime, using Hotspot Zero > >> (headless) > >> openjdk-7-jre-lib: OpenJDK Java runtime (architecture independent > >> libraries) > >> openjdk-7-jre-zero: Alternative JVM for OpenJDK, using Zero/Shark > >> openjdk-7-source: OpenJDK Development Kit (JDK) source files > >> > >> So it looks like I should be installing package ?openjdk-7-jre?, > >> which > >> was NOT listed among the options when one types ?java? on a > >> freshly > >> installed Ubuntu system. > >> > >> It?s a bit odd that calling "java" when it?s not installed only > >> gives > >> JAM VM and Cacao as options, and openjdk-7-jre is not listed. As > >> if > >> they don?t want Hotspot installed. > >> > >> Maybe I should file a bug to have openjdk-7-jre shown along the > >> other > >> alternatives... > >> > >> But this brings another question: > >> > >> icedtea-7-jre-cacao: Transitional package for obsolete Cacao JVM > >> for > >> OpenJDK > >> icedtea-7-jre-jamvm: Alternative JVM for OpenJDK, using JamVM > >> > >> does this mean that Icedtea -the browser plug-in- can only be used > >> with JamVM and Cacao in Ubuntu? > >> > >> FC > >> > >> -- > >> During times of Universal Deceit, telling the truth becomes a > >> revolutionary act > >> Durante ?pocas de Enga?o Universal, decir la verdad se convierte > >> en > >> un > >> Acto Revolucionario > >> - George Orwell > >> > > > > This is baffling to me. I don't know what Ubuntu's reasoning is > > here, but > > you don't want: > > > > openjdk-7-jre: OpenJDK Java runtime, using Hotspot Zero > > > > as this won't make use of the x86 HotSpot JIT, instead being purely > > interpreted > > (and thus very slow). > > > > Wondering where the standard HotSpot is... :-S > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > > > > > -- > pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF > Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF > > IcedRobot: www.icedrobot.org > Proud GNU Classpath developer: http://www.classpath.org/ > Read About us at: http://planet.classpath.org > OpenJDK: http://openjdk.java.net/projects/caciocavallo/ > > Please, support open standards: > http://endsoftpatents.org/ > I think this may have gone too far in offering lots of choice and started confusing users. Both Fedora & Gentoo tend to pick one solution for architectures without a JIT (Zero for the former, CACAO the latter) and stick with the upstream supported JIT for x86, x86_64 and SPARC. Mario, please don't top-post ;) Cheers, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From gnu.andrew at redhat.com Fri Jan 18 12:35:40 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Fri, 18 Jan 2013 15:35:40 -0500 (EST) Subject: RFC: Fix for PR1260 In-Reply-To: <20130116193524.GB7824@redhat.com> Message-ID: <21489351.1164635.1358541340653.JavaMail.root@redhat.com> ----- Original Message ----- > Hi, > > This patch fixes PR1260: IcedTea-Web should not rely on GTK > > ChangeLog: > 2013-01-16 Deepak Bhole > > PR1260: IcedTea-Web should not rely on GTK > * Makefile.am: Remove GTK includes and links > * acinclude.m4: Remove check for GTK libs > * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed gtk.h > include > and added unistd include (for usleep) which gtk.h brought in > before > * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog shown > when java > is not found > * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include > > > OK for HEAD and 1.3? 1.2 currently links against GTK2 only, and since > there > have been no requests for GTK3 there, I think we should leave it > alone. > > Cheers, > Deepak > So what happens now when Java isn't found? Most users running a browser aren't going to see a message printed to stderr, are they? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From dbhole at redhat.com Fri Jan 18 12:43:11 2013 From: dbhole at redhat.com (Deepak Bhole) Date: Fri, 18 Jan 2013 15:43:11 -0500 Subject: RFC: Fix for PR1260 In-Reply-To: <21489351.1164635.1358541340653.JavaMail.root@redhat.com> References: <20130116193524.GB7824@redhat.com> <21489351.1164635.1358541340653.JavaMail.root@redhat.com> Message-ID: <20130118204311.GA3125@redhat.com> * Andrew Hughes [2013-01-18 15:35]: > > > ----- Original Message ----- > > Hi, > > > > This patch fixes PR1260: IcedTea-Web should not rely on GTK > > > > ChangeLog: > > 2013-01-16 Deepak Bhole > > > > PR1260: IcedTea-Web should not rely on GTK > > * Makefile.am: Remove GTK includes and links > > * acinclude.m4: Remove check for GTK libs > > * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed gtk.h > > include > > and added unistd include (for usleep) which gtk.h brought in > > before > > * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog shown > > when java > > is not found > > * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include > > > > > > OK for HEAD and 1.3? 1.2 currently links against GTK2 only, and since > > there > > have been no requests for GTK3 there, I think we should leave it > > alone. > > > > Cheers, > > Deepak > > > > So what happens now when Java isn't found? Most users running a browser > aren't going to see a message printed to stderr, are they? Right, not on stderr. It will still be logged into ~/.xsession-errors though. Cheers, Deepak > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > From ptisnovs at icedtea.classpath.org Mon Jan 21 00:35:18 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 21 Jan 2013 08:35:18 +0000 Subject: /hg/rhino-tests: Added three tests into the test suite Invocable... Message-ID: changeset 0c193d54de35 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=0c193d54de35 author: Pavel Tisnovsky date: Mon Jan 21 09:38:26 2013 +0100 Added three tests into the test suite InvocableClassTest.java: GetCanonicalName, GetConstructor and GetDeclaredConstructor. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/InvocableClassTest.java | 72 +++++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletions(-) diffs (116 lines): diff -r fa939752e8db -r 0c193d54de35 ChangeLog --- a/ChangeLog Fri Jan 18 10:31:28 2013 +0100 +++ b/ChangeLog Mon Jan 21 09:38:26 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-21 Pavel Tisnovsky + + * src/org/RhinoTests/InvocableClassTest.java: + Added three tests into this test suite: GetCanonicalName, + GetConstructor and GetDeclaredConstructor. + 2013-01-18 Pavel Tisnovsky * src/org/RhinoTests/SimpleScriptContextClassTest.java: diff -r fa939752e8db -r 0c193d54de35 src/org/RhinoTests/InvocableClassTest.java --- a/src/org/RhinoTests/InvocableClassTest.java Fri Jan 18 10:31:28 2013 +0100 +++ b/src/org/RhinoTests/InvocableClassTest.java Mon Jan 21 09:38:26 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.Invocable.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.invocableClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.Invocable", + "Method javax.script.Invocable.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.Invocable.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -314,6 +324,66 @@ } /** + * Test for method javax.script.Invocable.getClass().getConstructor() + */ + protected void testGetConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.invocableClass.getConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.Invocable.getClass().getDeclaredConstructor() + */ + protected void testGetDeclaredConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.invocableClass.getDeclaredConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.Invocable.getClass().getFields() */ protected void testGetFields() { From ptisnovs at icedtea.classpath.org Mon Jan 21 00:46:44 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 21 Jan 2013 08:46:44 +0000 Subject: /hg/gfx-test: Ten tests added into the testsuite BitBltUsingBgCo... Message-ID: changeset 750235d0bf4c in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=750235d0bf4c author: Pavel Tisnovsky date: Mon Jan 21 09:49:53 2013 +0100 Ten tests added into the testsuite BitBltUsingBgColorAlpha. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java | 153 +++++++++++++++- 2 files changed, 157 insertions(+), 1 deletions(-) diffs (189 lines): diff -r ffa18b18baa2 -r 750235d0bf4c ChangeLog --- a/ChangeLog Fri Jan 18 10:33:38 2013 +0100 +++ b/ChangeLog Mon Jan 21 09:49:53 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-21 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: + Ten tests added into the testsuite BitBltUsingBgColorAlpha. + 2013-01-18 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColor.java: diff -r ffa18b18baa2 -r 750235d0bf4c src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java --- a/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Fri Jan 18 10:33:38 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java Mon Jan 21 09:49:53 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2012 Red Hat + Copyright (C) 2012, 2013 Red Hat This file is part of IcedTea. @@ -80,6 +80,7 @@ @Zoom(1) public class BitBltUsingBgColorAlpha extends GfxTest { + /** * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR * @@ -417,6 +418,156 @@ } /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundYellowAlpha000(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.yellow, 0.0f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundYellowAlpha025(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.yellow, 0.25f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundYellowAlpha050(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.yellow, 0.5f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundYellowAlpha075(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.yellow, 0.75f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.yellow. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundYellowAlpha100(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.yellow, 1.00f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundCyanAlpha000(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.cyan, 0.0f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundCyanAlpha025(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.cyan, 0.25f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundCyanAlpha050(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.cyan, 0.5f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundCyanAlpha075(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.cyan, 0.75f); + } + + /** + * Test basic BitBlt operation for empty buffered image with type TYPE_3BYTE_BGR. + * Background color is set to Color.cyan. + * + * @param image + * image to used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltEmptyBufferedImageType3ByteBGRbackgroundCyanAlpha100(TestImage image, Graphics2D graphics2d) + { + return doBitBltEmptyBufferedImageType3ByteRGB(image, graphics2d, Color.cyan, 1.00f); + } + + /** * Entry point to the test suite. * * @param args not used in this case From jfabriko at redhat.com Mon Jan 21 01:35:38 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Mon, 21 Jan 2013 10:35:38 +0100 Subject: [rfc][icedtea-web] modifications to JSToJSet reproducer for Liveconnect Message-ID: <50FD0BEA.3040806@redhat.com> Hello, i am sending a patch that modifies the JSToJSet reproducer (adding two KnownToFail annotations and adding one testcase - setting a variable of the JSObject type), comments on the attached patch are very welcome, Jana 2013-01-21 Jana Fabrikova * /tests/reproducers/simple/JSToJSet/testcases/JSToJSetTest.java: adding 1 testcase setting applets variable of type JSObject from JS, adding KnownToFail anotation to (AppletJSToJSet_intArrayElement_Test) and (AppletJSToJSet_DoubleArrayElement_Test) methods * /tests/reproducers/simple/JSToJSet/resources/JSToJava_Set.js: adding the JSObject case to (doSetTests) function * /tests/reproducers/simple/JSToJSet/srcs/JSToJSet.java: adding the JSObject variable to the applet and modifying (printNewValueAndFinish) method in order to output new values of JSObject variable -------------- next part -------------- A non-text attachment was scrubbed... Name: JSToJSet_adding_JSObject.patch Type: text/x-patch Size: 5608 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130121/5f763fad/JSToJSet_adding_JSObject.patch From jvanek at redhat.com Mon Jan 21 02:28:43 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 21 Jan 2013 11:28:43 +0100 Subject: [rfc][icedtea-web] Simple process-safe thread storage utility class In-Reply-To: <50F9933E.6030406@redhat.com> References: <50F9933E.6030406@redhat.com> Message-ID: <50FD185B.1090608@redhat.com> On 01/18/2013 07:23 PM, Adam Domurad wrote: > Posting early iteration of storage class as Jiri requested, feedback appreciated. This will be needed in coming whitelist/blacklist for unsigned applets. Good utility class, I'm looking forward to use it. however thre looks to be many faults, I think most of them was not in original patch I have seen. See the comments, maybe I'm wrong :) > > No change log atm sorry. > > Comments, extra testing ideas, etc. > Locking file still needs a separate unit test > > -Adam > > > LockingStringListStorage.patch > > > diff --git a/netx/net/sourceforge/jnlp/util/LockingFile.java b/netx/net/sourceforge/jnlp/util/LockingFile.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/util/LockingFile.java > @@ -0,0 +1,71 @@ > +package net.sourceforge.jnlp.util; > + > +import java.io.File; > +import java.io.IOException; > +import java.nio.channels.FileLock; > +import java.util.Map; > +import java.util.WeakHashMap; > +import java.util.concurrent.locks.Lock; > +import java.util.concurrent.locks.ReentrantLock; > + > +// Process& thread locked access to a file. Creates file if it does not already exist. > +public class LockingFile { > + > + // The file for access > + private File file; > + > + // A file lock will protect against locks for multiple > + // processes, while a thread lock is still needed within a single JVM. > + > + private FileLock processLock = null; > + private Lock threadLock = new ReentrantLock(); > + > + private LockingFile(File file) { > + this.file = file; > + > + try { > + // Create if does not already exist > + this.file.createNewFile(); > + } catch (IOException e) { > + // Avoid propagating IOException, this shouldn't fail > + e.printStackTrace(); No no no :) throw Throw THROW! (or at least rethrow as runtime) btw, why this createNewFile() ? /me assuem that without physical file FileUtils.getFileLock does not work. > + } > + } > + > + // Provide shared access to LockedFile's via weak map > + static private final Map weakLockedFileCache = new WeakHashMap(); This should be Map as eg my/file and file are equals (in case of working directory my) for file, but not for string. > + > + synchronized public static LockingFile getInstance(File file) { > + String path = file.getAbsolutePath(); > + > + if (!weakLockedFileCache.containsKey(path)) { > + weakLockedFileCache.put(path, new LockingFile(file)); > + } > + > + return weakLockedFileCache.get(file.getAbsolutePath()); > + } I don't like this getInstance idea:( In previous concept was put/remove to/from map done during lock/unlock. I can not find benefits in this new concept (except confusing that user have tu use newInstance of something what is not singleton). expected flame back here :) > + > + // Get the file in question > + public File getFile() { > + return file; > + } > + > + public void lock() throws IOException { > + threadLock.lock(); > + processLock = FileUtils.getFileLock(this.file.getPath(), false, true); > + } > + > + public void unlock() { > + threadLock.unlock(); > + try { > + if (processLock != null) { > + processLock.release(); > + } > + } catch (IOException e) { > + // We should not treat IO problems as a critical failure > + e.printStackTrace(); no, No, NO, throw Throw THROW!-) > + } finally { > + processLock = null; > + } > + } > +} > \ No newline at end of file > diff --git a/netx/net/sourceforge/jnlp/util/LockingStringListStorage.java b/netx/net/sourceforge/jnlp/util/LockingStringListStorage.java > new file mode 100644 > --- /dev/null > +++ b/netx/net/sourceforge/jnlp/util/LockingStringListStorage.java > @@ -0,0 +1,128 @@ > +package net.sourceforge.jnlp.util; > + > +import java.io.BufferedReader; > +import java.io.File; > +import java.io.FileInputStream; > +import java.io.FileOutputStream; > +import java.io.IOException; > +import java.io.InputStreamReader; > +import java.io.OutputStreamWriter; > +import java.io.PrintWriter; > +import java.util.ArrayList; > +import java.util.List; > + > +// Process-locked storage backed by a file. Public javadoc will be better;) > +public class LockingStringListStorage { > + > + private LockingFile lockedFile; > + private List cachedContents = new ArrayList(); > + > + public LockingStringListStorage(String location) { > + this.lockedFile = LockingFile.getInstance(new File(location)); > + } > + > + public File getBackingFile() { > + return this.lockedFile.getFile(); > + } > + > + public void lock() throws IOException { > + lockedFile.lock(); > + } > + > + public void unlock() { > + lockedFile.unlock(); > + } > + > + /* > + * Copy between memory<-> file. Assumes lock held. > + */ > + private void writeContents() throws IOException { > + PrintWriter writer = null; > + try { > + writer = new PrintWriter(new OutputStreamWriter( > + new FileOutputStream(getBackingFile()), "UTF-8")); > + for (String string : cachedContents) { > + writer.println(string); > + } > + } finally { > + if (writer != null) { > + writer.close(); > + } > + } > + } Pintwriter have no advantage on BufferedWriter. It have one serious advantage in more - it consumes exception. Please, use BufferedWriter. > + > + private void readContents() throws IOException { I would rather see both write and read in protected scope. > + BufferedReader reader = null; > + try { > + reader = new BufferedReader(new InputStreamReader( > + new FileInputStream(getBackingFile()), "UTF-8")); > + String line; > + this.cachedContents.clear(); Balh! > + while ((line = reader.readLine()) != null) { usage of while(true){ line = reader.readLine() if (line==null) {break} ... Is much more simple and you avoid pre-block declaration. > + if (line.trim().length() != 0) { > + this.cachedContents.add(line); hmhmh... I can imagine usages of this class which would like empty lines. Maybe make this check conditional and based on constructor param? maybe not... Do as you wish, this is not serious blocker :) > + } > + } > + } finally { > + if (reader != null) { > + reader.close(); > + } > + } > + } > + > + /* > + * Atomic container abstraction methods. These all allow the file-backed > + * string list to be treated as a convenient in-memory object. > + */ > + synchronized public void add(String line) throws IOException { > + lock(); > + try { > + readContents(); > + cachedContents.add(line); > + writeContents(); > + } finally { > + unlock(); > + } > + } Ah now its little bit clearer why to lock here and not in readContents/writeContents methods themselves. hmm... However I think it is worthy to have aslo read/write locked. What about some counting lock? File will be unlocekd only when counter will be less or equal zero. So: + lock(); //counter ++ + try { + readContents(); inside will be counter ++ + cachedContents.add(line); + writeContents(); inside will be counter -- + } finally { + unlock(); //counter -- + } And maybe enchace: > + private void read/writeContents() throws IOException { with its twin: private void read/writeContentsWithLocks() throws IOException { lock() try{ read/writeContents finally{ unlock() } } What do you think? > + > + synchronized public String[] toArray() throws IOException { > + lock(); > + try { > + readContents(); > + return cachedContents.toArray(new String[] {}); > + } finally { > + unlock(); > + } > + } I would probably like to have (readOnly?) access to cachedContents > + > + synchronized public boolean contains(String line) throws IOException { > + lock(); > + try { > + readContents(); > + return cachedContents.contains(line); > + } finally { > + unlock(); > + } > + } > + > + synchronized public void clear(String line) throws IOException { > + lock(); > + try { > + cachedContents.clear(); > + writeContents(); > + } finally { > + unlock(); > + } > + } > + > + synchronized public void remove(String line) throws IOException { > + lock(); > + try { > + readContents(); > + cachedContents.remove(line); > + writeContents(); > + } finally { > + unlock(); > + } > + } It would be nice to have all those add/clear/remove... methods withoutDeclared exceptions: + lock(); + try { + readContents(); + cachedContents.remove(line); + writeContents(); + catch(IoException eee){ //means all declared exceptions + throw new RuntimeException(eeee); + } + } finally { + unlock(); //AFAIK should be reatched also with this rethrow + } > +} > diff --git a/tests/netx/unit/net/sourceforge/jnlp/util/LockingStringListStorageTest.java b/tests/netx/unit/net/sourceforge/jnlp/util/LockingStringListStorageTest.java > new file mode 100644 > --- /dev/null > +++ b/tests/netx/unit/net/sourceforge/jnlp/util/LockingStringListStorageTest.java > @@ -0,0 +1,45 @@ > +package net.sourceforge.jnlp.util; > + > +import static org.junit.Assert.assertFalse; > +import static org.junit.Assert.assertTrue; > + > +import java.io.File; > +import java.io.IOException; > +import org.junit.Before; > +import org.junit.Test; > + > +public class LockingStringListStorageTest { > + > + private File storagefile; > + > + private LockingStringListStorage newInstance() { > + return new LockingStringListStorage(storagefile.getPath()); > + } > + > + @Before > + public void setUp() throws IOException { > + storagefile = File.createTempFile("foo","bar"); > + } > + > + @Test > + public void testSimpleActions() throws IOException { > + LockingStringListStorage storage = newInstance(); > + > + storage.add("teststring"); > + assertTrue(storage.contains("teststring")); > + storage.remove("teststring"); > + assertFalse(storage.contains("teststring")); > + } > + > + @Test > + public void testInterleavedActions() throws IOException { > + LockingStringListStorage storage1 = newInstance(); > + LockingStringListStorage storage2 = newInstance(); > + > + storage1.add("teststring"); > + assertTrue(storage2.contains("teststring")); > + storage2.remove("teststring"); > + assertFalse(storage1.contains("teststring")); > + } I really miss some high concurrency test here. (imho the only test which have sense here :) Some eg three threads trying to add same list (looong!) of values. Always have if !containst then add. And as assert all items must be unique in final list (it will be good to try (probably also kept in test) that in non sync list will be mess at the end....) > + > +} Sorry for more troubles and especially delaying you from better work , but as low level utility class it should be as good designed as possible. As nitpicks - missing headers and javadoc texts. Looking forward for this utility class! J. From jvanek at redhat.com Mon Jan 21 03:35:53 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 21 Jan 2013 12:35:53 +0100 Subject: [rfc] [icedtea-web] better error reporting for LaunchException in plugin Message-ID: <50FD2819.90701@redhat.com> Launch errors are thrown from netx, and printed out .. somewhere. At the end plugin (correctly) fails with NPE. It Is not nice. Eg in SplashError dialogue they can not be shown. I have added static accumulator for LaunchErrors (== all errors preceding npe in plugin) and then I'm adding this chain of exception to Splash error report. It is quite useful - see example - but there is one pitfall. As accumulator being static, it is cumulating errors from all running applets :( However I have not found a way how to distinguish between individual applets :( (any idea welcomed!) I have added small warkaround with timestamps and localised explanation.. and.. it is still better then nothing :) J. **example** So now instead of plain, nothing saying "IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ Mon Jan 21 12:29:17 CET 2013 java.lang.NullPointerException at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) at sun.applet.AppletPanel.run(AppletPanel.java:380) at java.lang.Thread.run(Thread.java:679)" Is there: IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ Mon Jan 21 12:29:17 CET 2013 java.lang.NullPointerException at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) at sun.applet.AppletPanel.run(AppletPanel.java:380) at java.lang.Thread.run(Thread.java:679) Chain: 1) at Mon Jan 21 12:27:27 CET 2013 net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) 2) at Mon Jan 21 12:27:27 CET 2013 net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) ... 2 more 3) at Mon Jan 21 12:27:29 CET 2013 net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) 4) at Mon Jan 21 12:27:29 CET 2013 net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) ... 2 more -------------- next part -------------- A non-text attachment was scrubbed... Name: moreErrorReporting.patch Type: text/x-patch Size: 8984 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130121/f3ea807f/moreErrorReporting.patch From helpcrypto at gmail.com Mon Jan 21 05:32:14 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Mon, 21 Jan 2013 14:32:14 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50F9A3A3.9020701@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> Message-ID: > I kind of like how Oracle handled this, with a checkbox 'remember this > option'. So yes + check = always, no + check = never. like++ > Ya good point, should be per-applet. The white/black-list will need to be > per-applet too (only setting for iteration 1 at least), which I hadn't > considered. We'll probably have to use the concept of applet 'unique key' > here. Will this mean the warning will appear after each applet new release? We do some minor bug correction in our code, but don't want to annoy users each time! (Although, to be honest, we use a signed applet, so this is not for us...) From helpcrypto at gmail.com Mon Jan 21 05:37:32 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Mon, 21 Jan 2013 14:37:32 +0100 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: <50F6C11C.40308@redhat.com> References: <50B7B3F2.6020303@redhat.com> <50B920DD.1070100@redhat.com> <50BE05BC.5010507@redhat.com> <50F6C11C.40308@redhat.com> Message-ID: On my schedule for next days! Its a cryptographic applet wich receives base64 encoded files (xml, pdf) to be signed using java (smartcard), and way back to html. All this surrounded by callbacks, and more lovely js<->java Of course, working in OSX, Linux and Windows and IE, Safari, Chrome, Firefox...so yes, lovely. I'll report how the tests go. > That would be great (and thanks for testing when I initially made the > patch). Out of curiousity, does your application use much Javascript <-> > Java, or is it just used for some simple glue ? > > Thanks. > -Adam From jvanek at redhat.com Mon Jan 21 06:55:19 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 21 Jan 2013 15:55:19 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> Message-ID: <50FD56D7.9040006@redhat.com> On 01/21/2013 02:32 PM, helpcrypto helpcrypto wrote: >> I kind of like how Oracle handled this, with a checkbox 'remember this >> option'. So yes + check = always, no + check = never. > > like++ > >> Ya good point, should be per-applet. The white/black-list will need to be >> per-applet too (only setting for iteration 1 at least), which I hadn't >> considered. We'll probably have to use the concept of applet 'unique key' >> here. > > Will this mean the warning will appear after each applet new release? > We do some minor bug correction in our code, but don't want to annoy > users each time! > (Although, to be honest, we use a signed applet, so this is not for us...) Thanx, valid point. There will be whitelist possibility. eg http://google.com/safeApplets.* record will match to any applet which base url matches the regex. So If you like some page to much, then just whtelist it :) J. From gnu.andrew at redhat.com Mon Jan 21 06:55:55 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 21 Jan 2013 09:55:55 -0500 (EST) Subject: RFC: Fix for PR1260 In-Reply-To: <20130118204311.GA3125@redhat.com> Message-ID: <2118111873.1854225.1358780155874.JavaMail.root@redhat.com> ----- Original Message ----- > * Andrew Hughes [2013-01-18 15:35]: > > > > > > ----- Original Message ----- > > > Hi, > > > > > > This patch fixes PR1260: IcedTea-Web should not rely on GTK > > > > > > ChangeLog: > > > 2013-01-16 Deepak Bhole > > > > > > PR1260: IcedTea-Web should not rely on GTK > > > * Makefile.am: Remove GTK includes and links > > > * acinclude.m4: Remove check for GTK libs > > > * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed > > > gtk.h > > > include > > > and added unistd include (for usleep) which gtk.h brought in > > > before > > > * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog > > > shown > > > when java > > > is not found > > > * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include > > > > > > > > > OK for HEAD and 1.3? 1.2 currently links against GTK2 only, and > > > since > > > there > > > have been no requests for GTK3 there, I think we should leave it > > > alone. > > > > > > Cheers, > > > Deepak > > > > > > > So what happens now when Java isn't found? Most users running a > > browser > > aren't going to see a message printed to stderr, are they? > > Right, not on stderr. It will still be logged into ~/.xsession-errors > though. > > Cheers, > Deepak > > > -- > > Andrew :) > > > > Free Java Software Engineer > > Red Hat, Inc. (http://www.redhat.com) > > > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > > Doesn't the browser provide a way of passing messages to the user? I doubt most novice users are going to look in ~/.xsession-errors either. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From gnu.andrew at redhat.com Mon Jan 21 08:14:48 2013 From: gnu.andrew at redhat.com (Andrew Hughes) Date: Mon, 21 Jan 2013 11:14:48 -0500 (EST) Subject: Upcoming Releases of 1.12.0 & 2.4.0 In-Reply-To: <1932934587.1903976.1358784168290.JavaMail.root@redhat.com> Message-ID: <1303089772.1909878.1358784888236.JavaMail.root@redhat.com> Hi all, I'd like to do a couple of new releases of both 6 & 7 by the end of this week (Friday the 25th of January, 2013). This will enable us to get some fixes out to users that are lurking only in HEAD. This is particularly true of 6 where the last major release is nearly a year ago (30th of January, 2012). Note that 2.4.0 is already tagged in the forest, so any remaining changes prior to release will only take place in IcedTea7. These release will also make the upcoming security release [1] easier, as we will then update them rather than the aging 1.10 and 2.2, as stated in [2]. In particular, is becoming painful to maintain as it has two HotSpot releases. Others are, of course, welcome to update these releases if they so wish. I intend to delay creating branches for these releases until after the release, as neither repository is particularly high traffic at the moment. Please bear this in mind if you intend to commit work this week, and perhaps consider delaying it until the week after if it will be fairly disruptive. If anyone has objections to the release of 1.12 and 2.4 this Friday, please reply to this mail as soon as possible. I'm unwilling to delay them much further as we get closer to the update, and I'd rather not be bundling feature updates with security updates. The security update will still bring updates for 1.11, 2.1 and 2.3 (2.1 being for the ARM32 port), so an option remains between the new releases and the old. [1] http://www.oracle.com/technetwork/topics/security/alerts-086861.html [2] http://icedtea.classpath.org/wiki/ReleasePolicy Thanks, -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 From dbhole at redhat.com Mon Jan 21 08:24:48 2013 From: dbhole at redhat.com (Deepak Bhole) Date: Mon, 21 Jan 2013 11:24:48 -0500 Subject: RFC: Fix for PR1260 In-Reply-To: <2118111873.1854225.1358780155874.JavaMail.root@redhat.com> References: <20130118204311.GA3125@redhat.com> <2118111873.1854225.1358780155874.JavaMail.root@redhat.com> Message-ID: <20130121162448.GB11506@redhat.com> * Andrew Hughes [2013-01-21 09:55]: > > > ----- Original Message ----- > > * Andrew Hughes [2013-01-18 15:35]: > > > > > > > > > ----- Original Message ----- > > > > Hi, > > > > > > > > This patch fixes PR1260: IcedTea-Web should not rely on GTK > > > > > > > > ChangeLog: > > > > 2013-01-16 Deepak Bhole > > > > > > > > PR1260: IcedTea-Web should not rely on GTK > > > > * Makefile.am: Remove GTK includes and links > > > > * acinclude.m4: Remove check for GTK libs > > > > * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Removed > > > > gtk.h > > > > include > > > > and added unistd include (for usleep) which gtk.h brought in > > > > before > > > > * plugin/icedteanp/IcedTeaNPPlugin.cc: Remove GTK dialog > > > > shown > > > > when java > > > > is not found > > > > * plugin/icedteanp/IcedTeaNPPlugin.h: Removed gtk.h include > > > > > > > > > > > > OK for HEAD and 1.3? 1.2 currently links against GTK2 only, and > > > > since > > > > there > > > > have been no requests for GTK3 there, I think we should leave it > > > > alone. > > > > > > > > Cheers, > > > > Deepak > > > > > > > > > > So what happens now when Java isn't found? Most users running a > > > browser > > > aren't going to see a message printed to stderr, are they? > > > > Right, not on stderr. It will still be logged into ~/.xsession-errors > > though. > > > > Cheers, > > Deepak > > > > > -- > > > Andrew :) > > > > > > Free Java Software Engineer > > > Red Hat, Inc. (http://www.redhat.com) > > > > > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > > > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > > > > > > > Doesn't the browser provide a way of passing messages to the user? > Not that I am aware of. We do send a error back during initialization to the browser, but that return code has no option to attach a message or to show anything to the user via a dialog. If anyone knows of a way to do it via NPAPI though (browser agnostic), I am definitely +1 for it. Cheers, Deepak > I doubt most novice users are going to look in ~/.xsession-errors either. > -- > Andrew :) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > PGP Key: 248BDC07 (https://keys.indymedia.org/) > Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 > From adomurad at redhat.com Mon Jan 21 09:01:32 2013 From: adomurad at redhat.com (Adam Domurad) Date: Mon, 21 Jan 2013 12:01:32 -0500 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> Message-ID: <50FD746C.5010805@redhat.com> On 01/21/2013 08:32 AM, helpcrypto helpcrypto wrote: >> I kind of like how Oracle handled this, with a checkbox 'remember this >> option'. So yes + check = always, no + check = never. > like++ > >> Ya good point, should be per-applet. The white/black-list will need to be >> per-applet too (only setting for iteration 1 at least), which I hadn't >> considered. We'll probably have to use the concept of applet 'unique key' >> here. > Will this mean the warning will appear after each applet new release? > We do some minor bug correction in our code, but don't want to annoy > users each time! applet 'unique key' = codebase attribute + cache archive attribute + archive attribute. So updating should be fine unless a new jar is renamed/moved/added/deleted. > (Although, to be honest, we use a signed applet, so this is not for us...) Yep, signed applets are not affected. -Adam From bugzilla-daemon at icedtea.classpath.org Mon Jan 21 10:39:13 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 21 Jan 2013 18:39:13 +0000 Subject: [Bug 1264] New: The Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1264 Bug ID: 1264 Summary: The Classification: Unclassified Product: IcedTea-Web Version: unspecified Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: andy at luto.us CC: unassigned at icedtea.classpath.org -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130121/47d4d852/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Jan 21 10:44:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 21 Jan 2013 18:44:37 +0000 Subject: [Bug 1264] The "Security Approval Required" dialog is inflexible and misses the point In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1264 Andy Lutomirski changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|The |The "Security Approval | |Required" dialog is | |inflexible and misses the | |point --- Comment #1 from Andy Lutomirski --- [This isn't a bug in the sense that the Sun/Oracle version has exactly the same problem. Nonetheless, there is a lot of room for improvement.] It is not at all obvious what "Do you want to run the application?" means. I researched it a bit, and AFAICT it means: if the application is signed (by anyone at all), then run it with full permissions; if the application is unsigned, then run it sandboxed. If this is correct, then: 1. The dialog box should say so. If the app is signed, then it should ask if you want to give the app full, unrestricted access to your computer. If the app is unsigned, it should ask you if you want to run the app in the sandbox. 2. Even if the app is signed, there should still be a way to run it in the sandbox. I've yet to encounter a JNLP app in the wild that has any legitimate reason to do anything other than access the internet, create some temporary files, and occasionally use the file picker. Let me run it in the sandbox, please. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130121/ba74e32a/attachment.html From andrew at icedtea.classpath.org Mon Jan 21 15:06:26 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 21 Jan 2013 23:06:26 +0000 Subject: /hg/icedtea6: 3 new changesets Message-ID: changeset 5c5bde48dfb9 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5c5bde48dfb9 author: Andrew John Hughes date: Mon Jan 21 19:56:33 2013 +0000 Only copy tz.properties if the destination exists. Do it verbosely. 2013-01-14 Andrew John Hughes * Makefile.am: (add-tzdata-support): Only copy tz.properties if destination exists. Do it verbosely. (clean-add-tzdata-support): Only remove tz.properties if present and do so verbosely. (add-tzdata-support-debug): Same as add-tzdata-support but for debug. (clean-add-tzdata-support-debug): Same as clean-add-tzdata-support but for debug. (add-tzdata-support-ecj): Same as add-tzdata-support but for bootstrap. (clean-add-tzdata-support-ecj): Same as clean-add-tzdata-support but for bootstrap. changeset cc35a9049bdd in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=cc35a9049bdd author: Andrew John Hughes date: Mon Jan 21 21:46:50 2013 +0000 PR1119: Detect whether required methods in java.security.cert.X509{Cert,CRL}Selector are actually missing. 2013-01-21 Andrew John Hughes * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of java.security.cert.X509{Cert,CRL}Selector dependent on the necessary methods being missing. * configure.ac: Add IT_CHECK_FOR_METHOD calls for the missing java.security.cert.X509{Cert,CRL}Selector methods added in 1.5. changeset 3465dd7f9596 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3465dd7f9596 author: Andrew John Hughes date: Mon Jan 21 22:34:53 2013 +0000 Make the inclusion of javax.security.auth.kerberos.KerberosTicket dependent on getSessionKeyType() being missing. 2013-01-21 Andrew John Hughes * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of javax.security.auth.kerberos.KerberosTicket dependent on getSessionKeyType() being missing. * configure.ac: Add IT_CHECK_FOR_METHOD calls for getSessionKeyType() which is missing in some older versions of GCJ and GNU Classpath (<0.99). diffstat: ChangeLog | 38 ++++++++++++++++++++++++++++++++++ Makefile.am | 67 +++++++++++++++++++++++++++++++++++++++++++++++------------ configure.ac | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 129 insertions(+), 14 deletions(-) diffs (209 lines): diff -r de38248f4db4 -r 3465dd7f9596 ChangeLog --- a/ChangeLog Fri Jan 11 17:11:43 2013 +0000 +++ b/ChangeLog Mon Jan 21 22:34:53 2013 +0000 @@ -1,3 +1,41 @@ +2013-01-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion + of javax.security.auth.kerberos.KerberosTicket + dependent on getSessionKeyType() being missing. + * configure.ac: + Add IT_CHECK_FOR_METHOD calls for + getSessionKeyType() which is missing in some + older versions of GCJ and GNU Classpath (<0.99). + +2013-01-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion + of java.security.cert.X509{Cert,CRL}Selector + dependent on the necessary methods being missing. + * configure.ac: + Add IT_CHECK_FOR_METHOD calls for the + missing java.security.cert.X509{Cert,CRL}Selector + methods added in 1.5. + +2013-01-14 Andrew John Hughes + + * Makefile.am: + (add-tzdata-support): Only copy tz.properties if + destination exists. Do it verbosely. + (clean-add-tzdata-support): Only remove tz.properties + if present and do so verbosely. + (add-tzdata-support-debug): Same as add-tzdata-support + but for debug. + (clean-add-tzdata-support-debug): Same as + clean-add-tzdata-support but for debug. + (add-tzdata-support-ecj): Same as add-tzdata-support + but for bootstrap. + (clean-add-tzdata-support-ecj): Same as + clean-add-tzdata-support but for bootstrap. + 2013-01-11 Andrew John Hughes * Makefile.am: diff -r de38248f4db4 -r 3465dd7f9596 Makefile.am --- a/Makefile.am Fri Jan 11 17:11:43 2013 +0000 +++ b/Makefile.am Mon Jan 21 22:34:53 2013 +0000 @@ -63,13 +63,9 @@ # Sources used from OpenJDK. -# PR54274 - sun.security.other requires missing X509CRLSelector methods # PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field ICEDTEA_BOOTSTRAP_CLASSES = \ - $(SHARE)/java/security/cert/X509CRLSelector.java \ - $(SHARE)/java/security/cert/X509CertSelector.java \ - $(SHARE)/javax/security/sasl/Sasl.java \ - $(SHARE)/javax/security/auth/kerberos/KerberosTicket.java + $(SHARE)/javax/security/sasl/Sasl.java #PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure if LACKS_JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER @@ -96,6 +92,37 @@ endif endif +# PR54274 - sun.security.other requires missing X509CRLSelector methods +if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_GETSUBJECT +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CertSelector.java +else +if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_SETISSUER +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CertSelector.java +else +if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_SETSUBJECT +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CertSelector.java +endif +endif +endif +if LACKS_JAVA_SECURITY_CERT_X509CRLSELECTOR_ADDISSUER +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CRLSelector.java +if LACKS_JAVA_SECURITY_CERT_X509CRLSELECTOR_SETISSUERS +else +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CRLSelector.java +endif +endif + +# PR41686 - Building sun.security.jgss.GSSUtil requires javax.security.auth.kerberos.KerberosTicket.getSessionKeyType() +if LACKS_JAVAX_SECURITY_AUTH_KERBEROS_KERBEROSTICKET_GETSESSIONKEYTYPE +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/security/auth/kerberos/KerberosTicket.java +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) @@ -1765,24 +1792,32 @@ stamps/add-tzdata-support.stamp: stamps/icedtea.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ; \ + fi endif touch stamps/add-tzdata-support.stamp clean-add-tzdata-support: - rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support.stamp stamps/add-tzdata-support-debug.stamp: stamps/icedtea-debug.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; \ + fi endif touch stamps/add-tzdata-support-debug.stamp clean-add-tzdata-support-debug: - rm -f $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support-debug.stamp stamps/add-archive.stamp: stamps/icedtea.stamp @@ -1947,13 +1982,17 @@ stamps/add-tzdata-support-ecj.stamp: stamps/icedtea-ecj.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + if [ -e $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; \ + fi endif touch stamps/add-tzdata-support-ecj.stamp clean-add-tzdata-support-ecj: - rm -f $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support-ecj.stamp stamps/add-archive-ecj.stamp: stamps/icedtea-ecj.stamp diff -r de38248f4db4 -r 3465dd7f9596 configure.ac --- a/configure.ac Fri Jan 11 17:11:43 2013 +0000 +++ b/configure.ac Mon Jan 21 22:34:53 2013 +0000 @@ -78,6 +78,44 @@ IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true]) IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_THREE_ARG],[javax.management.StandardMBean],[Object.class,Class.class,Boolean.TYPE],[new Object(), Object.class, true]) +# PR54274 - sun.security.other requires missing X509CRLSelector methods +IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CRLSELECTOR_ADDISSUER], + [java.security.cert.X509CRLSelector.addIssuer(X500Principal)], + [java.security.cert.X509CRLSelector], + ["addIssuer",javax.security.auth.x500.X500Principal.class], + [new java.security.cert.X509CRLSelector().addIssuer(null)] +) +IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CERTSELECTOR_SETSUBJECT], + [java.security.cert.X509CertSelector.setSubject(X500Principal)], + [java.security.cert.X509CertSelector], + ["setSubject",javax.security.auth.x500.X500Principal.class], + [new java.security.cert.X509CertSelector().setSubject(new javax.security.auth.x500.X500Principal(""))] +) +IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CERTSELECTOR_GETSUBJECT], + [java.security.cert.X509CertSelector.getSubject()], + [java.security.cert.X509CertSelector], + ["getSubject"], + [new java.security.cert.X509CertSelector().getSubject()] +) +IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CERTSELECTOR_SETISSUER], + [java.security.cert.X509CertSelector.setIssuer(X500Principal)], + [java.security.cert.X509CertSelector], + ["setIssuer",javax.security.auth.x500.X500Principal.class], + [new java.security.cert.X509CertSelector().setIssuer(new javax.security.auth.x500.X500Principal(""))] +) +IT_CHECK_FOR_METHOD([JAVA_SECURITY_CERT_X509CRLSELECTOR_SETISSUERS], + [java.security.cert.X509CRLSelector.setIssuers(Collection)], + [java.security.cert.X509CRLSelector], + ["setIssuers",java.util.Collection.class], + [new java.security.cert.X509CRLSelector().setIssuers(new java.util.ArrayList())] +) +IT_CHECK_FOR_METHOD([JAVAX_SECURITY_AUTH_KERBEROS_KERBEROSTICKET_GETSESSIONKEYTYPE], + [javax.security.auth.kerberos.KerberosTicket.getSessionKeyType()], + [javax.security.auth.kerberos.KerberosTicket], + ["getSessionKeyType"], + [new javax.security.auth.kerberos.KerberosTicket(null,null,null,null,0,null,null,null,null,null,null).getSessionKeyType()] +) + # Use xvfb-run if found to run gui tests (check-jdk). AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], []) AC_SUBST(XVFB_RUN_CMD) From bugzilla-daemon at icedtea.classpath.org Mon Jan 21 23:57:24 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 22 Jan 2013 07:57:24 +0000 Subject: [Bug 1264] The "Security Approval Required" dialog is inflexible and misses the point In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1264 helpcrypto at gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |helpcrypto at gmail.com --- Comment #2 from helpcrypto at gmail.com --- (In reply to comment #1) > 2. Even if the app is signed, there should still be a way to run it in the > sandbox. I've yet to encounter a JNLP app in the wild that has any > legitimate reason to do anything other than access the internet, create some > temporary files, and occasionally use the file picker. Let me run it in the > sandbox, please. Cryptographic Applets (my case) need to create some files on hard disk (not only temporary), access the smartcard, load local libraries or even more...apart from that, maybe we could discuss this on the distro-pkg-dev maillist. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/1f8d7a52/attachment.html From helpcrypto at gmail.com Tue Jan 22 00:05:55 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Tue, 22 Jan 2013 09:05:55 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50FD746C.5010805@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> <50FD746C.5010805@redhat.com> Message-ID: > applet 'unique key' = codebase attribute + cache archive attribute + archive > attribute. So updating should be fine unless a new jar is > renamed/moved/added/deleted. IMHO, this is not very correct/polite. Maybe we could allow domain+entryclass (the param named "code" on html), but if edit a jar, remove some dependencies on my code which lead removing another jar...why should this warning appear again? Do someone has a flow graph to show this procedure? Is there a place on the wiki for this kind of documentation? From ptisnovs at icedtea.classpath.org Tue Jan 22 00:32:47 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 22 Jan 2013 08:32:47 +0000 Subject: /hg/rhino-tests: New tests added into the testsuite SimpleBindin... Message-ID: changeset 1f2be0d19c68 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=1f2be0d19c68 author: Pavel Tisnovsky date: Tue Jan 22 09:34:41 2013 +0100 New tests added into the testsuite SimpleBindingsClassTest. diffstat: ChangeLog | 5 + src/org/RhinoTests/SimpleBindingsClassTest.java | 105 +++++++++++++++++++++-- 2 files changed, 101 insertions(+), 9 deletions(-) diffs (164 lines): diff -r 0c193d54de35 -r 1f2be0d19c68 ChangeLog --- a/ChangeLog Mon Jan 21 09:38:26 2013 +0100 +++ b/ChangeLog Tue Jan 22 09:34:41 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-22 Pavel Tisnovsky + + * src/org/RhinoTests/SimpleBindingsClassTest.java: + New tests added into the testsuite SimpleBindingsClassTest. + 2013-01-21 Pavel Tisnovsky * src/org/RhinoTests/InvocableClassTest.java: diff -r 0c193d54de35 -r 1f2be0d19c68 src/org/RhinoTests/SimpleBindingsClassTest.java --- a/src/org/RhinoTests/SimpleBindingsClassTest.java Mon Jan 21 09:38:26 2013 +0100 +++ b/src/org/RhinoTests/SimpleBindingsClassTest.java Tue Jan 22 09:34:41 2013 +0100 @@ -347,12 +347,86 @@ } /** + * Test for method javax.script.SimpleBindings.getClass().getConstructor() + */ + protected void testGetConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + constructorsThatShouldExist_jdk6.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); + constructorsThatShouldExist_jdk6.put("javax.script.SimpleBindings", new Class[] {}); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); + constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {}); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.simpleBindingsClass.getConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.SimpleBindings.getClass().getDeclaredConstructor() + */ + protected void testGetDeclaredConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + constructorsThatShouldExist_jdk6.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); + constructorsThatShouldExist_jdk6.put("javax.script.SimpleBindings", new Class[] {}); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {java.util.Map.class}); + constructorsThatShouldExist_jdk7.put("javax.script.SimpleBindings", new Class[] {}); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.simpleBindingsClass.getDeclaredConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.SimpleBindings.getClass().getFields() */ protected void testGetFields() { // following fields should exists - final String[] fieldsThatShouldExists = { + final String[] fieldsThatShouldExist_jdk6 = { }; + final String[] fieldsThatShouldExist_jdk7 = { + }; + + // get the right array of field signatures + final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + // get all fields Field[] fields = this.simpleBindingsClass.getFields(); // and transform the array into a list of field names @@ -361,7 +435,7 @@ fieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { + for (String fieldThatShouldExists : fieldsThatShouldExist) { assertTrue(fieldsAsString.contains(fieldThatShouldExists), "field " + fieldThatShouldExists + " not found"); } @@ -371,10 +445,18 @@ * Test for method javax.script.SimpleBindings.getClass().getDeclaredFields() */ protected void testGetDeclaredFields() { - // following fields should be declared - final String[] fieldsThatShouldExists = { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { "private java.util.Map javax.script.SimpleBindings.map", }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + "private java.util.Map javax.script.SimpleBindings.map", + }; + + // get the right array of field signatures + // following fields should be declared + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + // get all declared fields Field[] declaredFields = this.simpleBindingsClass.getDeclaredFields(); // and transform the array into a list of field names @@ -383,9 +465,9 @@ declaredFieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { - assertTrue(declaredFieldsAsString.contains(fieldThatShouldExists), - "field " + fieldThatShouldExists + " not found"); + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + assertTrue(declaredFieldsAsString.contains(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); } } @@ -394,10 +476,15 @@ */ protected void testGetField() { // following fields should exists - final String[] fieldsThatShouldExists = { + final String[] fieldsThatShouldExist_jdk6 = { }; + final String[] fieldsThatShouldExist_jdk7 = { + }; + + final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { + for (String fieldThatShouldExists : fieldsThatShouldExist) { try { Field field = this.simpleBindingsClass.getField(fieldThatShouldExists); String fieldName = field.getName(); From ptisnovs at icedtea.classpath.org Tue Jan 22 00:46:46 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 22 Jan 2013 08:46:46 +0000 Subject: /hg/gfx-test: Added helper methods into ImageFactory class. Message-ID: changeset 29cdf3ddd67e in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=29cdf3ddd67e author: Pavel Tisnovsky date: Tue Jan 22 09:49:31 2013 +0100 Added helper methods into ImageFactory class. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/ImageFactory.java | 164 ++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 0 deletions(-) diffs (186 lines): diff -r 750235d0bf4c -r 29cdf3ddd67e ChangeLog --- a/ChangeLog Mon Jan 21 09:49:53 2013 +0100 +++ b/ChangeLog Tue Jan 22 09:49:31 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-22 Pavel Tisnovsky + + * src/org/gfxtest/framework/ImageFactory.java: + Added helper methods into ImageFactory class. + 2013-01-21 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltUsingBgColorAlpha.java: diff -r 750235d0bf4c -r 29cdf3ddd67e src/org/gfxtest/framework/ImageFactory.java --- a/src/org/gfxtest/framework/ImageFactory.java Mon Jan 21 09:49:53 2013 +0100 +++ b/src/org/gfxtest/framework/ImageFactory.java Tue Jan 22 09:49:31 2013 +0100 @@ -817,6 +817,170 @@ } /** + * Create image containing green gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalGreenGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 8); + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing green gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalGreenGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 8); + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing blue gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalBlueGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb); + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing blue gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalBlueGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb); + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** * Create image containing red to blue gradient. * * @param width From jfabriko at redhat.com Tue Jan 22 02:39:08 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Tue, 22 Jan 2013 11:39:08 +0100 Subject: [rfc][icedtea-web] a new reproducer LiveConnect "function return types" tests Message-ID: <50FE6C4C.4040902@redhat.com> Hello, I have rewritten also the JSToJFuncReturn reproducer with respect to Adam's comments, its structure is very similar to JSToJFuncParam, please find the patch attached, Jana 2013-01-15 Jana Fabrikova * /tests/reproducers/simple/JSToJFuncReturn/testcases/JSToJFuncReturnTest.java: adding 22 testcases - 21 based on the interactive Liveconnect JS->Java function return types tests, 1 additional testcase for returning JSObject (calling a Java method from JS) * /tests/reproducers/simple/JSToJFuncReturn/srcs/JSToJFuncReturn.java: the applet whose methods are invoked from JS during the tests * /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJava_FuncReturn.js: the JavaScript code for calling the applet methods from JS * /tests/reproducers/simple/JSToJFuncReturn/resources/jstoj-funcreturn.jnlp: java network launch protocol file for displaying applet in the html page * /tests/reproducers/simple/JSToJFuncReturn/resources/JSToJFuncReturn.html: the html page with java applet embedded, displayed in browser during the tests -------------- next part -------------- A non-text attachment was scrubbed... Name: JSToJFuncReturn_modification.patch Type: text/x-patch Size: 15290 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/7df6037d/JSToJFuncReturn_modification.patch From andrew at icedtea.classpath.org Tue Jan 22 05:53:30 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 22 Jan 2013 13:53:30 +0000 Subject: /hg/icedtea6: JamVM PR1155: Do not put version number in libjvm.... Message-ID: changeset bc8359665940 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=bc8359665940 author: Andrew John Hughes date: Tue Jan 22 13:53:18 2013 +0000 JamVM PR1155: Do not put version number in libjvm.so SONAME 2012-09-25 Xerxes Ranby JamVM PR1155: Do not put version number in libjvm.so SONAME * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2012-09-25 revision. (JAMVM_SHA256SUM): Updated. diffstat: ChangeLog | 9 +++++++++ Makefile.am | 4 ++-- NEWS | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diffs (41 lines): diff -r 3465dd7f9596 -r bc8359665940 ChangeLog --- a/ChangeLog Mon Jan 21 22:34:53 2013 +0000 +++ b/ChangeLog Tue Jan 22 13:53:18 2013 +0000 @@ -1,3 +1,12 @@ +2012-09-25 Xerxes R??nby + + JamVM + PR1155: Do not put version number in libjvm.so SONAME + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2012-09-25 revision. + (JAMVM_SHA256SUM): Updated. + 2013-01-21 Andrew John Hughes * Makefile.am: diff -r 3465dd7f9596 -r bc8359665940 Makefile.am --- a/Makefile.am Mon Jan 21 22:34:53 2013 +0000 +++ b/Makefile.am Tue Jan 22 13:53:18 2013 +0000 @@ -11,8 +11,8 @@ CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz -JAMVM_VERSION = e70f2450890b82c37422616cc85e1a23385f03cd -JAMVM_SHA256SUM = 3ca7e297ef4daa56c3dd733e21bce795d57ab071243369aa9400c0384ada8a4c +JAMVM_VERSION = 0972452d441544f7dd29c55d64f1ce3a5db90d82 +JAMVM_SHA256SUM = bfa706402ac934d24f7119eb78f6be65e91439a4b2e49dbcc21e288137808f03 JAMVM_BASE_URL = http://icedtea.classpath.org/download/drops/jamvm JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz diff -r 3465dd7f9596 -r bc8359665940 NEWS --- a/NEWS Mon Jan 21 22:34:53 2013 +0000 +++ b/NEWS Tue Jan 22 13:53:18 2013 +0000 @@ -73,6 +73,7 @@ via JNI and it has exited without detaching - Add missing REF_TO_OBJs for references passed from JNI, this enable JamVM to run Qt-Jambi + - PR1155: Do not put version number in libjvm.so SONAME New in release 1.11.5 (2012-10-16): From adomurad at redhat.com Tue Jan 22 06:02:13 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 22 Jan 2013 09:02:13 -0500 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> <50FD746C.5010805@redhat.com> Message-ID: <50FE9BE5.1070806@redhat.com> On 01/22/2013 03:05 AM, helpcrypto helpcrypto wrote: >> applet 'unique key' = codebase attribute + cache archive attribute + archive >> attribute. So updating should be fine unless a new jar is >> renamed/moved/added/deleted. > IMHO, this is not very correct/polite. > Maybe we could allow domain+entryclass (the param named "code" on > html), but if edit a jar, remove some dependencies on my code which > lead removing another jar...why should this warning appear again? > > Do someone has a flow graph to show this procedure? Is there a place > on the wiki for this kind of documentation? No documentation yet, we should probably work on some. Main-class sounds reasonable -- except that technically speaking it would allow someone to run a completely different applet (on the same page) without the warning. I don't suppose it's a big deal though, because the same person could have bundled whatever code into the main applet. -Adam From bugzilla-daemon at icedtea.classpath.org Tue Jan 22 12:18:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 22 Jan 2013 20:18:25 +0000 Subject: [Bug 1266] New: unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Bug ID: 1266 Summary: unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk Classification: Unclassified Product: IcedTea Version: 6-1.11.5 Hardware: arm OS: Linux Status: NEW Severity: normal Priority: P3 Component: Bootstrapping Assignee: gnu.andrew at redhat.com Reporter: zerochaos at gentoo.org CC: unassigned at icedtea.classpath.org please see attached config.log and build.log -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/f650d6de/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 22 12:19:58 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 22 Jan 2013 20:19:58 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #1 from Rick Farina --- Created attachment 819 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=819&action=edit config.log -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/fbac690e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 22 12:22:17 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 22 Jan 2013 20:22:17 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #2 from Rick Farina --- Created attachment 820 --> http://icedtea.classpath.org/bugzilla/attachment.cgi?id=820&action=edit build.log.xz build.log is 4MB, attached as xz compressed but it should be available on this pastebin for a while as well: http://bpaste.net/raw/72125/ -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/218ed845/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 22 15:10:06 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 22 Jan 2013 23:10:06 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Stefan Ring changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan at complang.tuwien.ac.a | |t --- Comment #3 from Stefan Ring --- This is caused by CACAO's missing support for armhf [1]. This has been remedied in the meantime. Yours looks like a Gentoo build to me. I guess it would have to be updated to the current version, which I suggest without hesitation. Having said that, there's one issue catching my eye -- why is the triplet armv7a-hardfloat-linux-gnueabi and not *-gnueabihf? CACAO uses this for hardfloat detection [2]. Is there a better way to do it? [1] http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=172 [2] http://mips.complang.tuwien.ac.at/hg/cacao/diff/5c93a7b6bcd5/configure.ac -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/cb8db1c6/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 22 15:16:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 22 Jan 2013 23:16:19 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #4 from Rick Farina --- (In reply to comment #3) > This is caused by CACAO's missing support for armhf [1]. This has been > remedied in the meantime. Yours looks like a Gentoo build to me. I guess it > would have to be updated to the current version, which I suggest without > hesitation. I am in fact on gentoo. If you have a specific version you want me to test I'm happy to figure out whatever I have to do. > > Having said that, there's one issue catching my eye -- why is the triplet > armv7a-hardfloat-linux-gnueabi and not *-gnueabihf? CACAO uses this for > hardfloat detection [2]. Is there a better way to do it? Ugh, yeah, you are right. Gentoo picked a triplet before there was a standard afaik, there is talk of fixing it but it's not done yet (or all that easy). My CFLAGS make it pretty obvious that I want hardfloat though, shouldn't need to automagically detect anything when I'm passing -mfloat-abi=hard -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130122/7c4df989/attachment.html From helpcrypto at gmail.com Wed Jan 23 03:32:54 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Wed, 23 Jan 2013 12:32:54 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50FE9BE5.1070806@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> <50FD746C.5010805@redhat.com> <50FE9BE5.1070806@redhat.com> Message-ID: > Main-class sounds reasonable -- except that technically speaking it would > allow someone to run a completely different applet (on the same page) > without the warning. I don't suppose it's a big deal though, because the > same person could have bundled whatever code into the main applet. Sorry, but Im starting to retract. AFAICanThink unsigned applets could be hijacked in any way we check if the site is cracked. I (cracker) can upload the same classname+jars+etc, and end-user will be exposed, so maybe we should check it another way. Signed applets could be trusted based on signer, but im starting to think the "unique key" is not a bad idea for unsigned ones... Maybe its a dumb question but here it goes: What can be done/dangerous running an unsigned applet? I think unsigned applets should not be able to run *anything* dangerous enough, so maybe this is a fake discussion. Our signed applets does a lot of this, but thats what signed are for! From jvanek at redhat.com Wed Jan 23 04:55:40 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 23 Jan 2013 13:55:40 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> <50FD746C.5010805@redhat.com> <50FE9BE5.1070806@redhat.com> Message-ID: <50FFDDCC.6030303@redhat.com> On 01/23/2013 12:32 PM, helpcrypto helpcrypto wrote: >> Main-class sounds reasonable -- except that technically speaking it would >> allow someone to run a completely different applet (on the same page) >> without the warning. I don't suppose it's a big deal though, because the >> same person could have bundled whatever code into the main applet. > > Sorry, but Im starting to retract. > AFAICanThink unsigned applets could be hijacked in any way we check if > the site is cracked. I (cracker) can upload the same > classname+jars+etc, and end-user will be exposed, so maybe we should > check it another way. > Signed applets could be trusted based on signer, but im starting to > think the "unique key" is not a bad idea for unsigned ones... > > Maybe its a dumb question but here it goes: > What can be done/dangerous running an unsigned applet? > I think unsigned applets should not be able to run *anything* > dangerous enough, so maybe this is a fake discussion. Well I just wish this is true.... But nope - all the attacks through applets are via unsigned ones by bypassing the sandbox. That why this feature have to be implemented. > > Our signed applets does a lot of this, but thats what signed are for! From jfabriko at redhat.com Wed Jan 23 05:56:04 2013 From: jfabriko at redhat.com (Jana Fabrikova) Date: Wed, 23 Jan 2013 14:56:04 +0100 Subject: [rfc][icedtea-web] a new reproducer LiveConnect "overloaded function resolution" tests In-Reply-To: <507C09AE.1020706@redhat.com> References: <507C09AE.1020706@redhat.com> Message-ID: <50FFEBF4.90308@redhat.com> Hello, I have rewritten also the JSToJFuncResol reproducer with respect to Adam's comments, thank you for any comments on the attached patch, Jana 2013-01-23 Jana Fabrikova * /tests/reproducers/simple/JSToJFuncResol/testcases/JSToJFuncResolTest.java: adding 11 testcases based on the interactive Liveconnect JS->Java overloaded function resolution tests, tests with JSObject were already included * /tests/reproducers/simple/JSToJFuncResol/srcs/JSToJFuncResol.java: the applet whose methods are invoked from JS during the tests * /tests/reproducers/simple/JSToJFuncResol/resources/JSToJava_FuncResol.js: the JavaScript code for calling the applet methods from JS * /tests/reproducers/simple/JSToJFuncResol/resources/jstoj-funcresol.jnlp: java network launch protocol file for displaying applet in the html page * /tests/reproducers/simple/JSToJFuncResol/resources/JSToJFuncResol.html: the html page with java applet embedded, displayed in browser during the tests On 10/15/2012 03:03 PM, Jana Fabrikova wrote: > 2012-10-15 Jana Fabrikova > > * /tests/reproducers/simple/JSToJFuncResol: > adding a new reproducer for the fifth LiveConnect > test (Tests for overloaded function resolution when calling Java > functions from JS.) > > > I would like to ask for review of the attached patch, > thank you, > Jana -------------- next part -------------- A non-text attachment was scrubbed... Name: JSToJFuncResol_modified.patch Type: text/x-patch Size: 15725 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/976f6988/JSToJFuncResol_modified.patch From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 07:05:31 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 15:05:31 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #5 from Andrew John Hughes --- Stefan, this is the most current version. The patch you refer to is not even in the most current version of CACAO (1.6.0), let alone the latest IcedTea. It doesn't help that you seem to have changed the version of CACAO used in IcedTea6, but not IcedTea7. Please keep them in sync as mentioned before. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/85646f2f/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 07:07:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 15:07:08 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |xerxes at zafena.se Component|Bootstrapping |CACAO Assignee|gnu.andrew at redhat.com |stefan at complang.tuwien.ac.a | |t Target Milestone|--- |2.4 --- Comment #6 from Andrew John Hughes --- If they build with the change, I'll update both 6 & 7 to http://mips.complang.tuwien.ac.at/hg/cacao/rev/68fe50ac34ec before the release on Friday. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/f8c1f688/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 07:07:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 15:07:25 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |gnu.andrew at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/44251a92/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 07:42:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 15:42:33 +0000 Subject: [Bug 1267] New: all versions of icedtea available in gentoo cannot build with CFLAGS="-Os" Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1267 Bug ID: 1267 Summary: all versions of icedtea available in gentoo cannot build with CFLAGS="-Os" Classification: Unclassified Product: IcedTea Version: 6-1.11.5 Hardware: arm OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: zerochaos at gentoo.org CC: unassigned at icedtea.classpath.org Every time I try to compile any version of icedtea (building with gcj-jdk if it matters) I get locked up at "java -version". Downstream bug is here with more details https://bugs.gentoo.org/show_bug.cgi?id=453612 I am happy to troubleshoot this, however, please be specific about what you want (if you want me to run gdb I need more than "run it in gdb and tell us what is happening") -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/669efcad/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 07:50:13 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 15:50:13 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #7 from Stefan Ring --- (In reply to comment #5) > Stefan, this is the most current version. The patch you refer to is not > even in the most current version of CACAO (1.6.0), let alone the latest > IcedTea. Yes, this is very fresh, so it's not surprising that it doesn't ship anywhere. I only provided the info here because it would help the reporter, but it would take a bit of work on his part to get it to use bleeding edge versions. I was actually planning on doing a 1.6.1 release, but apart from that, icedtea6 has a history of shipping pre-release versions of CACAO for a long time, and I'm all for keeping up that practice. > It doesn't help that you seem to have changed the version of CACAO used in > IcedTea6, but not IcedTea7. Please keep them in sync as mentioned before. I'm also in the progress of trying to get icedtea7 to use a more recent version. My plan of attack was to take care of PR1176 first, and immediately after that, bump the CACAO version (PR1120). Unfortunately, there is no progress on PR1176 because it was stalled by you: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2012-December/021219.html (In reply to comment #6) > If they build with the change, I'll update both 6 & 7 to > http://mips.complang.tuwien.ac.at/hg/cacao/rev/68fe50ac34ec before the > release on Friday. In this particular case, it will not work without customization. Somehow CACAO has to be coaxed into building with __ARMHF__ (configure defines that if it sees *-gnueabihf, as referenced in comment #3). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/92621b41/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 08:25:31 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 16:25:31 +0000 Subject: [Bug 1267] all versions of icedtea available in gentoo cannot build with CFLAGS="-Os" In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1267 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew John Hughes --- *** This bug has been marked as a duplicate of bug 1266 *** -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/3e04c9a9/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 08:25:31 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 16:25:31 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #8 from Andrew John Hughes --- *** Bug 1267 has been marked as a duplicate of this bug. *** -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/cd3c041b/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 08:32:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 16:32:32 +0000 Subject: [Bug 1267] all versions of icedtea available in gentoo cannot build with CFLAGS="-Os" In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1267 --- Comment #2 from Rick Farina --- (In reply to comment #1) > > *** This bug has been marked as a duplicate of bug 1266 *** Please see downstream bug, I don't believe this is a duplicate at all. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/b32a21b6/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 08:39:13 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 16:39:13 +0000 Subject: [Bug 1267] all versions of icedtea available in gentoo cannot build with CFLAGS="-Os" In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1267 Stefan Ring changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan at complang.tuwien.ac.a | |t --- Comment #3 from Stefan Ring --- Maybe I'm completely wrong here but is it possible that by overriding CFLAGS, another important flag, such as -fno-strict-aliasing gets canceled out? -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/4cbff410/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 08:39:38 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 16:39:38 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #9 from Andrew John Hughes --- Well, we initially started using pre-releases because you weren't making releases :) I'll try and get both issues in for 2.4.0 but I don't see how they are related. If PR1120 went into 1.6, it should have gone in 1.7 at the same time. Sounds like CACAO needs patching to accept this alternate triplet. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/d316321e/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 08:44:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 16:44:33 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #10 from Stefan Ring --- IIRC, I deemed it easier in this order because I changed the libjsig.so hack from CACAO that required minor Makefile changes anyway. For that it would have been easier to have PR1176 go in first. Anyway, I'm looking forward to the day when this will all be sorted out ;). -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/bae420c1/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 10:03:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 18:03:25 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|2.4 |--- -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/77a71b81/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 10:04:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 18:04:05 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #11 from Andrew John Hughes --- Rick, just wait for the new build appearing in java-overlay on Friday. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/496f658f/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 10:34:28 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 18:34:28 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://bugs.gentoo.org/sho | |w_bug.cgi?id=453612 Assignee|stefan at complang.tuwien.ac.a |gnu.andrew at redhat.com |t | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/4a03cfe6/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 10:34:56 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 18:34:56 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |6-1.12 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/1de3f453/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 10:42:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 18:42:43 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #12 from Rick Farina --- (In reply to comment #11) > Rick, just wait for the new build appearing in java-overlay on Friday. To be honest, my main issue was the -Os one, I am able to build icedtea already. I don't even know how to reliably reproduce this bug. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/20c99ffb/attachment.html From andrew at icedtea.classpath.org Wed Jan 23 12:59:04 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 23 Jan 2013 20:59:04 +0000 Subject: /hg/icedtea6: CA172, PR1266, G453612: ARM hardfloat support for ... Message-ID: changeset 5c83d26b2437 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5c83d26b2437 author: Andrew John Hughes date: Wed Jan 23 20:58:41 2013 +0000 CA172, PR1266, G453612: ARM hardfloat support for CACAO 2013-01-23 Andrew John Hughes CA172, PR1266: Add ARM hardfloat support to CACAO. * Makefile.am: (CACAO_VERSION): Updated to latest head. (CACAO_SHA256SUM): Likewise. * NEWS: List changes in CACAO since last revision. * patches/cacao/armhf.patch: Patch to enable hardfloat on triplet used by Gentoo. diffstat: ChangeLog | 10 ++++++++++ Makefile.am | 7 ++++--- NEWS | 12 +++++++++++- patches/cacao/armhf.patch | 12 ++++++++++++ 4 files changed, 37 insertions(+), 4 deletions(-) diffs (84 lines): diff -r bc8359665940 -r 5c83d26b2437 ChangeLog --- a/ChangeLog Tue Jan 22 13:53:18 2013 +0000 +++ b/ChangeLog Wed Jan 23 20:58:41 2013 +0000 @@ -1,3 +1,13 @@ +2013-01-23 Andrew John Hughes + + CA172, PR1266: Add ARM hardfloat support to CACAO. + * Makefile.am: + (CACAO_VERSION): Updated to latest head. + (CACAO_SHA256SUM): Likewise. + * NEWS: List changes in CACAO since last revision. + * patches/cacao/armhf.patch: + Patch to enable hardfloat on triplet used by Gentoo. + 2012-09-25 Xerxes R??nby JamVM diff -r bc8359665940 -r 5c83d26b2437 Makefile.am --- a/Makefile.am Tue Jan 22 13:53:18 2013 +0000 +++ b/Makefile.am Wed Jan 23 20:58:41 2013 +0000 @@ -5,8 +5,8 @@ OPENJDK_VERSION = b27 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ -CACAO_VERSION = 9968abd511a3 -CACAO_SHA256SUM = 3b1ce9d2205d2afba4614a194484341758ee2cb340396310ac2c00e5a2a20955 +CACAO_VERSION = 68fe50ac34ec +CACAO_SHA256SUM = b8230f20d7022f9230bbfea13b2f3f179b2f42db40138ac6d32c82fc418ffc3a CACAO_BASE_URL = http://icedtea.classpath.org/download/drops/cacao CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz @@ -476,7 +476,8 @@ if BUILD_CACAO ICEDTEA_PATCHES += \ patches/cacao/launcher.patch \ - patches/cacao/memory.patch + patches/cacao/memory.patch \ + patches/cacao/armhf.patch endif if ENABLE_PULSE_JAVA diff -r bc8359665940 -r 5c83d26b2437 NEWS --- a/NEWS Tue Jan 22 13:53:18 2013 +0000 +++ b/NEWS Wed Jan 23 20:58:41 2013 +0000 @@ -58,12 +58,22 @@ - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive * CACAO - - PR1120: Unified version for icedtea6/7 + - CA1120: Unified version for icedtea6/7 - CA166, CA167: check-langtools fixes for icedtea6 - Implemented sun.misc.Perf.highResCounter - CACAO now identifies by its own Mercurial revision - Some memory barrier maintenance - Ability to run when compiled as Thumb on armv5 (no Thumb JIT though) + - Stop creating pseudo files for OpenJDK (libjsig.so, Xusage.txt) + - Clang fix for the i386 backend + - CONTRIBUTE: Reference code submission process wiki instructions. + - INSTALL.CACAO: Update, so following the instruction actually works. + - Make doxygen work + - CA172, PR1266, G453612: ARM hardfloat support + - src/scripts/java.in: Look for cacao executable in install path, not in PATH. + - src/vm/jit/alpha/asmpart.S: Fix copyright header. + - src/vm/jit/alpha/asmpart.S: Properly set up GP in asm_abstractmethoderror + - Use @abs_top_builddir@ for support scripts * JamVM - ARMv6 armhf: Changes for Raspbian (Raspberry Pi) - PPC: Don't use lwsync if it isn't supported diff -r bc8359665940 -r 5c83d26b2437 patches/cacao/armhf.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/cacao/armhf.patch Wed Jan 23 20:58:41 2013 +0000 @@ -0,0 +1,12 @@ +diff --git a/configure.ac b/configure.ac +--- cacao/cacao/configure.ac ++++ cacao/cacao/configure.ac +@@ -50,7 +50,7 @@ + JAVA_ARCH="arm" + + case "$host" in +- *-gnueabihf) ++ *-hardfloat-*-gnueabi | *-gnueabihf) + ARCH_FLAGS="$ARCH_FLAGS -D__ARMHF__" + ;; + esac From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 12:59:17 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 20:59:17 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #13 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=5c83d26b2437 author: Andrew John Hughes date: Wed Jan 23 20:58:41 2013 +0000 CA172, PR1266, G453612: ARM hardfloat support for CACAO 2013-01-23 Andrew John Hughes CA172, PR1266: Add ARM hardfloat support to CACAO. * Makefile.am: (CACAO_VERSION): Updated to latest head. (CACAO_SHA256SUM): Likewise. * NEWS: List changes in CACAO since last revision. * patches/cacao/armhf.patch: Patch to enable hardfloat on triplet used by Gentoo. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/63fcde7f/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 23 15:02:40 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 23 Jan 2013 23:02:40 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 --- Comment #14 from Stefan Ring --- Regarding PR1120 -> CA1120 (in NEWS) It is actually the icedtea bug entry 1120, not CACAO's, so I think your renaming was misguided. I'd also rather tune down the amount of minor/trivial changes. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130123/8a308571/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 24 13:22:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 24 Jan 2013 21:22:43 +0000 Subject: [Bug 1253] JNLP applets run on Swing EDT thread In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1253 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|omajid at redhat.com |adomurad at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130124/d9d6d88c/attachment.html From ptisnovs at icedtea.classpath.org Fri Jan 25 01:33:07 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 25 Jan 2013 09:33:07 +0000 Subject: /hg/rhino-tests: Added three tests into the test CompilableClass... Message-ID: changeset 58a5ce1ad7bd in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=58a5ce1ad7bd author: Pavel Tisnovsky date: Fri Jan 25 10:36:06 2013 +0100 Added three tests into the test CompilableClassTest: GetCanonicalName, GetConstructor and GetDeclaredConstructor. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/CompilableClassTest.java | 72 ++++++++++++++++++++++++++++- 2 files changed, 77 insertions(+), 1 deletions(-) diffs (116 lines): diff -r 1f2be0d19c68 -r 58a5ce1ad7bd ChangeLog --- a/ChangeLog Tue Jan 22 09:34:41 2013 +0100 +++ b/ChangeLog Fri Jan 25 10:36:06 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-25 Pavel Tisnovsky + + * src/org/RhinoTests/CompilableClassTest.java: + Added three tests into this test suite: GetCanonicalName, + GetConstructor and GetDeclaredConstructor. + 2013-01-22 Pavel Tisnovsky * src/org/RhinoTests/SimpleBindingsClassTest.java: diff -r 1f2be0d19c68 -r 58a5ce1ad7bd src/org/RhinoTests/CompilableClassTest.java --- a/src/org/RhinoTests/CompilableClassTest.java Tue Jan 22 09:34:41 2013 +0100 +++ b/src/org/RhinoTests/CompilableClassTest.java Fri Jan 25 10:36:06 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.Compilable.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.compilableClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.Compilable", + "Method javax.script.Compilable.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.Compilable.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -314,6 +324,66 @@ } /** + * Test for method javax.script.Compilable.getClass().getConstructor() + */ + protected void testGetConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.compilableClass.getConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.Compilable.getClass().getDeclaredConstructor() + */ + protected void testGetDeclaredConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.compilableClass.getDeclaredConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.Compilable.getClass().getFields() */ protected void testGetFields() { From ptisnovs at icedtea.classpath.org Fri Jan 25 01:39:06 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Fri, 25 Jan 2013 09:39:06 +0000 Subject: /hg/gfx-test: Helper methods added into CommonBitmapOperations.j... Message-ID: changeset dcf8661a53c2 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=dcf8661a53c2 author: Pavel Tisnovsky date: Fri Jan 25 10:42:12 2013 +0100 Helper methods added into CommonBitmapOperations.java. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/CommonBitmapOperations.java | 105 +++++++++++++++++- 2 files changed, 109 insertions(+), 1 deletions(-) diffs (132 lines): diff -r 29cdf3ddd67e -r dcf8661a53c2 ChangeLog --- a/ChangeLog Tue Jan 22 09:49:31 2013 +0100 +++ b/ChangeLog Fri Jan 25 10:42:12 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-25 Pavel Tisnovsky + + * src/org/gfxtest/framework/CommonBitmapOperations.java: + Helper methods added into CommonBitmapOperations.java. + 2013-01-22 Pavel Tisnovsky * src/org/gfxtest/framework/ImageFactory.java: diff -r 29cdf3ddd67e -r dcf8661a53c2 src/org/gfxtest/framework/CommonBitmapOperations.java --- a/src/org/gfxtest/framework/CommonBitmapOperations.java Tue Jan 22 09:49:31 2013 +0100 +++ b/src/org/gfxtest/framework/CommonBitmapOperations.java Fri Jan 25 10:42:12 2013 +0100 @@ -1552,7 +1552,7 @@ * @param height * height of a image after BitBlt operation is performed */ - public static TestResult doBitBltTestWithHorizontalredGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + public static TestResult doBitBltTestWithHorizontalRedGradientImage(TestImage image, Graphics2D graphics2d, int imageType, int width, int height) { // create new buffered bitmap with given type @@ -1618,4 +1618,107 @@ return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; } + /** + * Create new buffered image containing horizontal blue gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithHorizontalBlueGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalBlueGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing horizontal blue gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithHorizontalBlueGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createHorizontalBlueGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical blue gradient and then perform basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + */ + public static TestResult doBitBltTestWithVerticalBlueGradientImage(TestImage image, Graphics2D graphics2d, int imageType) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalBlueGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with 1:1 scaling + return performBitBlt(bufferedImage, image, graphics2d) ? TestResult.PASSED : TestResult.FAILED; + } + + /** + * Create new buffered image containing vertical blue gradient and then perform + * basic BitBlt test. + * + * @param image + * image to which another image is to be drawn + * @param graphics2d + * graphics canvas + * @param imageType + * type of the created image + * @param width + * width of a image after BitBlt operation is performed + * @param height + * height of a image after BitBlt operation is performed + */ + public static TestResult doBitBltTestWithVerticalBlueGradientImage(TestImage image, Graphics2D graphics2d, int imageType, + int width, int height) + { + // create new buffered bitmap with given type + BufferedImage bufferedImage = ImageFactory.createVerticalBlueGradientImage(DEFAULT_TEST_IMAGE_WIDTH, DEFAULT_TEST_IMAGE_HEIGHT, imageType); + // basic check if buffered image was created + if (bufferedImage == null) + { + return TestResult.FAILED; + } + // BitBlt with custom scaling + return performBitBlt(bufferedImage, image, graphics2d, width, height) ? TestResult.PASSED : TestResult.FAILED; + } } From neugens at redhat.com Fri Jan 25 04:28:27 2013 From: neugens at redhat.com (Mario Torre) Date: Fri, 25 Jan 2013 13:28:27 +0100 Subject: RFC: Fix for PR1260 In-Reply-To: <20130121162448.GB11506@redhat.com> References: <20130118204311.GA3125@redhat.com> <2118111873.1854225.1358780155874.JavaMail.root@redhat.com> <20130121162448.GB11506@redhat.com> Message-ID: <1359116907.4065.40.camel@pegasus> Il giorno lun, 21/01/2013 alle 11.24 -0500, Deepak Bhole ha scritto: > Not that I am aware of. We do send a error back during initialization to > the browser, but that return code has no option to attach a message or > to show anything to the user via a dialog. > > If anyone knows of a way to do it via NPAPI though (browser agnostic), I > am definitely +1 for it. I'm not familiar with this code at all so I may say something obvious, but maybe we can use Javascript? Maybe this link can help too: http://www.m0interactive.com/archives/2010/10/21/how_to_communicate_back_to_javascript_from_npapi_plugin.html Cheers, Mario From andrew at icedtea.classpath.org Fri Jan 25 07:17:30 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 25 Jan 2013 15:17:30 +0000 Subject: /hg/icedtea6: Complete work on PR1119 by making javax.security.s... Message-ID: changeset 14c3c86148a4 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=14c3c86148a4 author: Andrew John Hughes date: Fri Jan 25 15:16:55 2013 +0000 Complete work on PR1119 by making javax.security.sasl.Sasl conditional and working with empty ICEDTEA_BOOTSTRAP_CLASSES. 2013-01-25 Andrew John Hughes PR1119: Only add classes to rt-source-files.txt if the class, or one or more of its methods/fields, are actually missing from the boot JDK * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Initialise to empty. Make the inclusion of javax.security.sasl.Sasl dependent on the CREDENTIALS field being missing. * acinclude.m4: (IT_CHECK_FOR_STATIC_FIELD): New method to check for a static field. * configure.ac: Invoke IT_CHECK_FOR_STATIC_FIELD for javax.security.sasl.Sasl.CREDENTIALS. 2012-08-16 Andrew John Hughes * Makefile.am: (rt-class-files.stamp): Add test of contents of ICEDTEA_BOOTSTRAP_CLASSES. Note; need to use grep as field contains whitespace. (rt.stamp): Likewise. 2010-09-14 Andrew John Hughes * Makefile.am, (rt-source-files.txt): Remove any existing version prior to generation to avoid duplication of source files. diffstat: ChangeLog | 31 +++++++++++++++++++++++++++++++ Makefile.am | 28 +++++++++++++++++++--------- acinclude.m4 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 3 +++ 4 files changed, 109 insertions(+), 9 deletions(-) diffs (181 lines): diff -r 5c83d26b2437 -r 14c3c86148a4 ChangeLog --- a/ChangeLog Wed Jan 23 20:58:41 2013 +0000 +++ b/ChangeLog Fri Jan 25 15:16:55 2013 +0000 @@ -1,3 +1,34 @@ +2013-01-25 Andrew John Hughes + + PR1119: Only add classes to rt-source-files.txt if + the class, or one or more of its methods/fields, + are actually missing from the boot JDK + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Initialise to + empty. Make the inclusion of + javax.security.sasl.Sasl dependent on the + CREDENTIALS field being missing. + * acinclude.m4: + (IT_CHECK_FOR_STATIC_FIELD): New method to + check for a static field. + * configure.ac: Invoke IT_CHECK_FOR_STATIC_FIELD + for javax.security.sasl.Sasl.CREDENTIALS. + +2012-08-16 Andrew John Hughes + + * Makefile.am: + (rt-class-files.stamp): Add test of contents of + ICEDTEA_BOOTSTRAP_CLASSES. Note; need to use grep as + field contains whitespace. + (rt.stamp): Likewise. + +2010-09-14 Andrew John Hughes + + * Makefile.am, + (rt-source-files.txt): Remove any existing + version prior to generation to avoid duplication + of source files. + 2013-01-23 Andrew John Hughes CA172, PR1266: Add ARM hardfloat support to CACAO. diff -r 5c83d26b2437 -r 14c3c86148a4 Makefile.am --- a/Makefile.am Wed Jan 23 20:58:41 2013 +0000 +++ b/Makefile.am Fri Jan 25 15:16:55 2013 +0000 @@ -63,9 +63,7 @@ # Sources used from OpenJDK. -# PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field -ICEDTEA_BOOTSTRAP_CLASSES = \ - $(SHARE)/javax/security/sasl/Sasl.java +ICEDTEA_BOOTSTRAP_CLASSES = #PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure if LACKS_JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER @@ -123,6 +121,12 @@ $(SHARE)/javax/security/auth/kerberos/KerberosTicket.java endif +# PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field +if LACKS_JAVAX_SECURITY_SASL_SASL_CREDENTIALS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/security/sasl/Sasl.java +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) @@ -2555,18 +2559,22 @@ # rt.jar additional class files. rt-source-files.txt: $(OPENJDK_ECJ_TREE) + rm -f $@ for files in $(ICEDTEA_BOOTSTRAP_CLASSES) ; \ do \ echo $$files >> $@ ; \ done + touch $@ stamps/rt-class-files.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) rt-source-files.txt if BOOTSTRAPPING mkdir -p lib/rt - $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d lib/rt \ - -sourcepath $(SOURCEPATH_DIRS) -bootclasspath \'\' \ - -classpath $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \ - @rt-source-files.txt ; + if echo $(ICEDTEA_BOOTSTRAP_CLASSES) | grep '\S' &> /dev/null ; then \ + $(BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d lib/rt \ + -classpath $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \ + -sourcepath $(SOURCEPATH_DIRS) \ + -bootclasspath \'\' @rt-source-files.txt ; \ + fi endif mkdir -p stamps touch stamps/rt-class-files.stamp @@ -2586,8 +2594,10 @@ stamps/rt.stamp: stamps/rt-class-files.stamp mkdir -p stamps if BOOTSTRAPPING - $(BOOT_DIR)/bin/jar uf $(RUNTIME) -C lib/rt com -C lib/rt java \ - -C lib/rt javax -C lib/rt sun + if echo $(ICEDTEA_BOOTSTRAP_CLASSES) | grep '\S' &> /dev/null ; then \ + $(BOOT_DIR)/bin/jar uf $(RUNTIME) -C lib/rt com -C lib/rt java \ + -C lib/rt javax -C lib/rt sun ; \ + fi endif touch stamps/rt.stamp diff -r 5c83d26b2437 -r 14c3c86148a4 acinclude.m4 --- a/acinclude.m4 Wed Jan 23 20:58:41 2013 +0000 +++ b/acinclude.m4 Fri Jan 25 15:16:55 2013 +0000 @@ -1938,3 +1938,59 @@ AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes") AC_PROVIDE([$0])dnl ]) + +dnl Generic macro to check for a Java field +dnl Takes five arguments: the name of the macro, +dnl the name of the field and the name of the class. +dnl The macro name is usually the name of the class +dnl with '.' replaced by '_' and all letters +dnl capitalised. +dnl e.g. IT_CHECK_FOR_FIELD([JAVAX_SECURITY_SASL_SASL_CREDENTIALS], +dnl [CREDENTIALS], [javax.security.sasl.Sasl]) +AC_DEFUN([IT_CHECK_FOR_STATIC_FIELD],[ +AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) +AC_CACHE_CHECK([if $3.$2 is missing], it_cv_$1, [ +CLASS=Test.java +BYTECODE=$(echo $CLASS|sed 's#\.java##') +mkdir tmp.$$ +cd tmp.$$ +cat << \EOF > $CLASS +[/* [#]line __oline__ "configure" */ +import java.lang.reflect.Field; + +public class Test +{ + public static void main(String[] args) + { + Class cl = $3.class; + try + { + Field f = cl.getDeclaredField("$2"); + System.err.println("Field found: " + f); + System.err.println("Field value: " + $3.$2); + } + catch (NoSuchFieldException e) + { + System.exit(-1); + } + } + +} +] +EOF +if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then + if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then + it_cv_$1=no; + else + it_cv_$1=yes; + fi +else + it_cv_$1=yes; +fi +]) +rm -f $CLASS *.class +cd .. +rmdir tmp.$$ +AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes") +AC_PROVIDE([$0])dnl +]) diff -r 5c83d26b2437 -r 14c3c86148a4 configure.ac --- a/configure.ac Wed Jan 23 20:58:41 2013 +0000 +++ b/configure.ac Fri Jan 25 15:16:55 2013 +0000 @@ -116,6 +116,9 @@ [new javax.security.auth.kerberos.KerberosTicket(null,null,null,null,0,null,null,null,null,null,null).getSessionKeyType()] ) +# PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field +IT_CHECK_FOR_STATIC_FIELD([JAVAX_SECURITY_SASL_SASL_CREDENTIALS],[CREDENTIALS],[javax.security.sasl.Sasl]) + # Use xvfb-run if found to run gui tests (check-jdk). AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], []) AC_SUBST(XVFB_RUN_CMD) From andrew at icedtea.classpath.org Fri Jan 25 07:20:05 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 25 Jan 2013 15:20:05 +0000 Subject: /hg/icedtea6: Fix bad bug reference caught by Stefan Ring. Message-ID: changeset b6442f2ba732 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b6442f2ba732 author: Andrew John Hughes date: Fri Jan 25 15:20:00 2013 +0000 Fix bad bug reference caught by Stefan Ring. 2013-01-25 Andrew John Hughes * NEWS: Fix bad bug reference caught by Stefan Ring. diffstat: ChangeLog | 5 +++++ NEWS | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (24 lines): diff -r 14c3c86148a4 -r b6442f2ba732 ChangeLog --- a/ChangeLog Fri Jan 25 15:16:55 2013 +0000 +++ b/ChangeLog Fri Jan 25 15:20:00 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-25 Andrew John Hughes + + * NEWS: Fix bad bug reference caught by + Stefan Ring. + 2013-01-25 Andrew John Hughes PR1119: Only add classes to rt-source-files.txt if diff -r 14c3c86148a4 -r b6442f2ba732 NEWS --- a/NEWS Fri Jan 25 15:16:55 2013 +0000 +++ b/NEWS Fri Jan 25 15:20:00 2013 +0000 @@ -58,7 +58,7 @@ - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive * CACAO - - CA1120: Unified version for icedtea6/7 + - PR1120: Unified version for icedtea6/7 - CA166, CA167: check-langtools fixes for icedtea6 - Implemented sun.misc.Perf.highResCounter - CACAO now identifies by its own Mercurial revision From adomurad at redhat.com Fri Jan 25 07:56:25 2013 From: adomurad at redhat.com (Adam Domurad) Date: Fri, 25 Jan 2013 10:56:25 -0500 Subject: [rfc][icedtea-web] Fix for PR1157: Applets can hang browser after fatal exception Message-ID: <5102AB29.4070804@redhat.com> This one was took quite some effort to track down. Essentially because Firefox does not hold our plugin out-of-process we can potentially hang the browser if we are not careful. The issue is explained in comment in patch file PR1157.patch. Basically there was a long timeout in PluginAppletViewer.waitForAppletInit. It was supposed to 'wake up' when an applet dispatched an event signifying it completed loading, but it was not happening in the case of a fatal exception. No automated reproducer yet, but I believe this patch is simple enough that it can go in before one. I have added a 'reproducing catalyst' -- pseudo-reproducer.patch. This is NOT a patch intended to go into ITW HEAD. With this patch the worker pool consists of one thread effectively, so the hanging manifests itself very easily. Confirming the patch works with this goes as follow: 1. Apply pseudo-reproducer.patch to HEAD 2. Run http://jogamp.org/deployment/jogamp-current/jogl-applet-runner-newt-gears-normal-napplet.html and refresh. Firefox should hang, or at least display bizarre behaviour. --- this is nothing special - just a failing (ATM) applet 3. Apply PR1157.patch on top 4. Run the same page and refresh, Firefox should work fine. ChangeLog for PR1157.patch: 2013-XX-XX Adam Domurad Fix PR1157: Applets can hang browser after fatal exception * NEWS: Add entry for PR1157 * netx/net/sourceforge/jnlp/NetxPanel.java (runLoader): Move dispatchAppletEvent into a 'finally' block. -------------- next part -------------- A non-text attachment was scrubbed... Name: PR1157.patch Type: text/x-patch Size: 1700 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130125/3807e1d8/PR1157.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: pseudo-reproducer.patch Type: text/x-patch Size: 907 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130125/3807e1d8/pseudo-reproducer.patch From andrew at icedtea.classpath.org Fri Jan 25 13:29:03 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 25 Jan 2013 21:29:03 +0000 Subject: /hg/icedtea6: 3 new changesets Message-ID: changeset 5c657c998832 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5c657c998832 author: Andrew John Hughes date: Fri Jan 25 19:30:32 2013 +0000 Prepare for release. 2013-01-25 Andrew John Hughes * configure.ac: Set to 1.12.0. * NEWS: Add release date. changeset 2bb62ac6d345 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=2bb62ac6d345 author: Andrew John Hughes date: Fri Jan 25 19:48:41 2013 +0000 G422525: Apply pax markings before using a freshly built JVM. 2012-06-24 Ralph Sennhauser * Makefile.am: (ICEDTEA_PATCHES): Replace HAS_PAX with WITH_PAX. Add RMIC patch. (icedtea): Invoke pax-mark-vm on built image. (icedtea-ecj): Likewise. * acinclude.m4: (IT_WITH_PAX): New macro to specify pax utility. * configure.ac: Call IT_WITH_PAX instead of IT_CHECK_FOR_PAX. * patches/pax-mark-rmic-java.patch: New patch to PaX mark VM before running just-built rmic. changeset 6af17f5442ff in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6af17f5442ff author: Andrew John Hughes date: Fri Jan 25 21:28:47 2013 +0000 Cleanup pax marking additions from Gentoo and mention in NEWS. 2013-01-25 Andrew John Hughes * Makefile.am: (.PHONY): Add clean-pax-mark-vm, clean-pax-mark-vm-debug, clean-pax-mark-vm-ecj. (icedtea): Move pax-mark-vm invocation to its own rule. (icedtea-against-icedtea): Depend on pax-mark-vm. (clean-icedtea-against-icedtea): Likewise for clean-pax-mark-vm. (icedtea-debug-against-icedtea): Likewise for pax-mark-vm-debug. (clean-icedtea-debug-against-icedtea): Likewise for clean-pax-mark-vm-debug. (clean-add-archive): Delete the archive. (clean-add-archive-debug): Likewise for debug. (pax-mark-vm): Move pax marking to here. (clean-pax-mark-vm): And remove stamp here. (pax-mark-vm-debug): Pax marking for debug build. (clean-pax-mark-vm-debug): And remove stamp here. (icedtea-ecj): Move pax-mark-vm to its own rule. (icedtea-against-icedtea): Depend on pax-mark-vm-ecj. (clean-icedtea-against-icedtea): Likewise for clean-pax-mark-vm-ecj. (clean-add-archive-ecj): Delete the archive. (pax-mark-vm-ecj): Move ecj pax marking to here. (clean-pax-mark-vm-ecj): And remove stamp here. * acinclude.m4: (IT_CHECK_FOR_PAX): Remove now unused macro. * NEWS: Mention pax marking fixes. diffstat: ChangeLog | 51 ++++++++++++++++++++++++++++++++ Makefile.am | 62 ++++++++++++++++++++++++++++++++------- NEWS | 3 +- acinclude.m4 | 58 +++++++++++++++++++++++++++++------- configure.ac | 6 ++- patches/pax-mark-rmic-java.patch | 10 ++++++ 6 files changed, 164 insertions(+), 26 deletions(-) diffs (343 lines): diff -r b6442f2ba732 -r 6af17f5442ff ChangeLog --- a/ChangeLog Fri Jan 25 15:20:00 2013 +0000 +++ b/ChangeLog Fri Jan 25 21:28:47 2013 +0000 @@ -1,3 +1,54 @@ +2013-01-25 Andrew John Hughes + + * Makefile.am: + (.PHONY): Add clean-pax-mark-vm, + clean-pax-mark-vm-debug, clean-pax-mark-vm-ecj. + (icedtea): Move pax-mark-vm invocation to + its own rule. + (icedtea-against-icedtea): Depend on pax-mark-vm. + (clean-icedtea-against-icedtea): Likewise for + clean-pax-mark-vm. + (icedtea-debug-against-icedtea): Likewise for + pax-mark-vm-debug. + (clean-icedtea-debug-against-icedtea): Likewise for + clean-pax-mark-vm-debug. + (clean-add-archive): Delete the archive. + (clean-add-archive-debug): Likewise for debug. + (pax-mark-vm): Move pax marking to here. + (clean-pax-mark-vm): And remove stamp here. + (pax-mark-vm-debug): Pax marking for debug build. + (clean-pax-mark-vm-debug): And remove stamp here. + (icedtea-ecj): Move pax-mark-vm to its own rule. + (icedtea-against-icedtea): Depend on pax-mark-vm-ecj. + (clean-icedtea-against-icedtea): Likewise for + clean-pax-mark-vm-ecj. + (clean-add-archive-ecj): Delete the archive. + (pax-mark-vm-ecj): Move ecj pax marking to here. + (clean-pax-mark-vm-ecj): And remove stamp here. + * acinclude.m4: + (IT_CHECK_FOR_PAX): Remove now unused macro. + * NEWS: Mention pax marking fixes. + +2012-06-24 Ralph Sennhauser + + * Makefile.am: + (ICEDTEA_PATCHES): Replace HAS_PAX with + WITH_PAX. Add RMIC patch. + (icedtea): Invoke pax-mark-vm on built image. + (icedtea-ecj): Likewise. + * acinclude.m4: + (IT_WITH_PAX): New macro to specify pax utility. + * configure.ac: + Call IT_WITH_PAX instead of IT_CHECK_FOR_PAX. + * patches/pax-mark-rmic-java.patch: + New patch to PaX mark VM before running just-built + rmic. + +2013-01-25 Andrew John Hughes + + * configure.ac: Set to 1.12.0. + * NEWS: Add release date. + 2013-01-25 Andrew John Hughes * NEWS: Fix bad bug reference caught by diff -r b6442f2ba732 -r 6af17f5442ff Makefile.am --- a/Makefile.am Fri Jan 25 15:20:00 2013 +0000 +++ b/Makefile.am Fri Jan 25 21:28:47 2013 +0000 @@ -511,8 +511,10 @@ NSS_PATCHES = patches/nss-not-enabled-config.patch endif -if HAS_PAX -ICEDTEA_PATCHES += patches/no-test_gamma.patch +if WITH_PAX +ICEDTEA_PATCHES += \ + patches/no-test_gamma.patch \ + patches/pax-mark-rmic-java.patch endif ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES) @@ -547,7 +549,7 @@ endif endif -if !HAS_PAX +if !WITH_PAX ICEDTEA_ECJ_PATCHES += patches/ecj/no-test_gamma.patch endif @@ -761,7 +763,8 @@ clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \ clean-add-tzdata-support clean-add-tzdata-support-debug clean-add-systemtap-ecj \ clean-add-pulseaudio-ecj clean-add-nss-ecj clean-add-tzdata-support-ecj clean-fonts \ - clean-download-hotspot clean-tests clean-tapset-report jtregcheck + clean-download-hotspot clean-tests clean-tapset-report jtregcheck clean-pax-mark-vm \ + clean-pax-mark-vm-debug clean-pax-mark-vm-ecj env: @echo 'unset JAVA_HOME' @@ -1563,27 +1566,28 @@ stamps/icedtea-against-icedtea.stamp: stamps/icedtea.stamp \ stamps/add-jamvm.stamp stamps/add-cacao.stamp stamps/add-zero.stamp \ - stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp stamps/add-tzdata-support.stamp \ - stamps/add-archive.stamp + stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp \ + stamps/add-tzdata-support.stamp stamps/add-archive.stamp stamps/pax-mark-vm.stamp mkdir -p stamps touch stamps/icedtea-against-icedtea.stamp clean-icedtea-against-icedtea: clean-add-jamvm clean-add-zero clean-add-cacao \ clean-add-systemtap clean-add-pulseaudio clean-add-nss clean-add-tzdata-support \ - clean-add-archive + clean-add-archive clean-pax-mark-vm rm -f stamps/icedtea-against-icedtea.stamp stamps/icedtea-debug-against-icedtea.stamp: stamps/icedtea-debug.stamp \ stamps/add-jamvm-debug.stamp stamps/add-cacao-debug.stamp \ stamps/add-zero-debug.stamp stamps/add-systemtap-debug.stamp stamps/add-pulseaudio-debug.stamp \ - stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp stamps/add-archive-debug.stamp + stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp stamps/add-archive-debug.stamp \ + stamps/pax-mark-vm-debug.stamp mkdir -p stamps touch stamps/icedtea-debug-against-icedtea.stamp clean-icedtea-debug-against-icedtea: clean-add-zero-debug \ clean-add-jamvm-debug clean-add-cacao-debug clean-add-systemtap-debug \ clean-add-pulseaudio-debug clean-add-nss-debug clean-add-tzdata-support-debug \ - clean-add-archive-debug + clean-add-archive-debug clean-pax-mark-vm-debug rm -f stamps/icedtea-debug-against-icedtea.stamp stamps/add-systemtap.stamp: stamps/icedtea.stamp @@ -1836,6 +1840,7 @@ touch stamps/add-archive.stamp clean-add-archive: + rm -vf $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)/*/*.jsa rm -f stamps/add-archive.stamp stamps/add-archive-debug.stamp: stamps/icedtea-debug.stamp @@ -1849,8 +1854,27 @@ touch stamps/add-archive-debug.stamp clean-add-archive-debug: + rm -vf $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)/*/*.jsa rm -f stamps/add-archive-debug.stamp +stamps/pax-mark-vm.stamp: stamps/icedtea.stamp +if WITH_PAX + $(abs_top_builddir)/pax-mark-vm $(BUILD_OUTPUT_DIR)/j2sdk-image +endif + touch $@ + +clean-pax-mark-vm: + rm -f stamps/pax-mark-vm.stamp + +stamps/pax-mark-vm-debug.stamp: stamps/icedtea-debug.stamp +if WITH_PAX + $(abs_top_builddir)/pax-mark-vm $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image +endif + touch $@ + +clean-pax-mark-vm-debug: + rm -f stamps/pax-mark-vm-debug.stamp + # OpenJDK ecj Targets # =================== @@ -1872,12 +1896,12 @@ stamps/icedtea-against-ecj.stamp: stamps/icedtea-ecj.stamp stamps/add-systemtap-ecj.stamp \ stamps/add-pulseaudio-ecj.stamp stamps/add-nss-ecj.stamp stamps/add-tzdata-support-ecj.stamp \ - stamps/add-archive-ecj.stamp + stamps/add-archive-ecj.stamp stamps/pax-mark-vm-ecj.stamp mkdir -p stamps touch stamps/icedtea-against-ecj.stamp clean-icedtea-against-ecj: clean-add-systemtap-ecj clean-add-pulseaudio-ecj clean-add-nss-ecj \ - clean-add-tzdata-support-ecj clean-add-archive-ecj + clean-add-tzdata-support-ecj clean-add-archive-ecj clean-pax-mark-vm-ecj rm -f stamps/icedtea-against-ecj.stamp stamps/add-systemtap-ecj.stamp: stamps/icedtea-ecj.stamp @@ -2011,8 +2035,18 @@ touch stamps/add-archive-ecj.stamp clean-add-archive-ecj: + rm -vf $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)/*/*.jsa rm -f stamps/add-archive-ecj.stamp +stamps/pax-mark-vm-ecj.stamp: stamps/icedtea-ecj.stamp +if WITH_PAX + $(abs_top_builddir)/pax-mark-vm $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image +endif + touch $@ + +clean-pax-mark-vm-ecj: + rm -f stamps/pax-mark-vm-ecj.stamp + # Rebuild targets rebuild: @@ -2676,6 +2710,12 @@ patch-fsg: stamps/patch-fsg.stamp +pax-mark-vm: stamps/pax-mark-vm.stamp + +pax-mark-vm-debug: stamps/pax-mark-vm-debug.stamp + +pax-mark-vm-ecj: stamps/pax-mark-vm-ecj.stamp + pulse-java: stamps/pulse-java.stamp rewriter: stamps/rewriter.stamp diff -r b6442f2ba732 -r 6af17f5442ff NEWS --- a/NEWS Fri Jan 25 15:20:00 2013 +0000 +++ b/NEWS Fri Jan 25 21:28:47 2013 +0000 @@ -10,7 +10,7 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.12 (2012-XX-XX): +New in release 1.12 (2012-01-25): * Import of OpenJDK6 b27 (all changes already in security updates) * Import of OpenJDK6 b26 @@ -57,6 +57,7 @@ - PR1114: Provide option to turn off downloading of tarballs (--disable-downloading) - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive + - G422525: Apply pax markings before using a freshly built JVM. * CACAO - PR1120: Unified version for icedtea6/7 - CA166, CA167: check-langtools fixes for icedtea6 diff -r b6442f2ba732 -r 6af17f5442ff acinclude.m4 --- a/acinclude.m4 Fri Jan 25 15:20:00 2013 +0000 +++ b/acinclude.m4 Fri Jan 25 21:28:47 2013 +0000 @@ -1708,18 +1708,6 @@ AC_CONFIG_FILES([nss.cfg]) ]) -AC_DEFUN_ONCE([IT_CHECK_FOR_PAX],[ -AC_CACHE_CHECK([if a PaX-enabled kernel is running], it_cv_pax, [ -if grep '^PaX:' /proc/self/status >&AS_MESSAGE_LOG_FD 2>&1; then - it_cv_pax=yes; -else - it_cv_pax=no; -fi -]) -AM_CONDITIONAL([HAS_PAX], test x"${it_cv_pax}" = "xyes") -AC_PROVIDE([$0])dnl -]) - AC_DEFUN([IT_JAVAH],[ AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK]) AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 39408], it_cv_cp39408_javah, [ @@ -1994,3 +1982,49 @@ AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes") AC_PROVIDE([$0])dnl ]) + +AC_DEFUN_ONCE([IT_WITH_PAX], +[ + AC_MSG_CHECKING([for pax utility to use]) + AC_ARG_WITH([pax], + [AS_HELP_STRING(--with-pax=COMMAND,the command used for pax marking)], + [ + PAX_COMMAND=${withval} + if test "x${PAX_COMMAND}" = "xno"; then + PAX_COMMAND="not specified" + fi + ], + [ + PAX_COMMAND="not specified" + ]) + case "x${PAX_COMMAND}" in + xchpax) + case "${host_cpu}" in + i?86) + PAX_COMMAND_ARGS="-msp" + ;; + *) + PAX_COMMAND_ARGS="-m" + ;; + esac + ;; + xpaxctl) + case "${host_cpu}" in + i?86) + PAX_COMMAND_ARGS="-msp" + ;; + *) + PAX_COMMAND_ARGS="-m" + ;; + esac + ;; + *) + PAX_COMMAND="not specified" + PAX_COMMAND_ARGS="not specified" + ;; + esac + AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "xnot specified") + AC_MSG_RESULT(${PAX_COMMAND}) + AC_SUBST(PAX_COMMAND) + AC_SUBST(PAX_COMMAND_ARGS) +]) diff -r b6442f2ba732 -r 6af17f5442ff configure.ac --- a/configure.ac Fri Jan 25 15:20:00 2013 +0000 +++ b/configure.ac Fri Jan 25 21:28:47 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.12pre],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.12.0],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) @@ -50,7 +50,6 @@ IT_CHECK_NUMBER_OF_PARALLEL_JOBS IT_CP_SUPPORTS_REFLINK IT_CAN_HARDLINK_TO_SOURCE_TREE -IT_CHECK_FOR_PAX IT_LOCATE_NSS IT_DISABLE_TESTS IT_DISABLE_HOTSPOT_TESTS @@ -244,6 +243,9 @@ IT_GETDTDTYPE_CHECK IT_JAVAH +IT_WITH_PAX +AC_CONFIG_FILES([pax-mark-vm], [chmod +x pax-mark-vm]) + dnl pkgconfig cannot be used to find these headers and libraries. AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],[] ,[AC_MSG_ERROR("CUPS headers were not found - diff -r b6442f2ba732 -r 6af17f5442ff patches/pax-mark-rmic-java.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pax-mark-rmic-java.patch Fri Jan 25 21:28:47 2013 +0000 @@ -0,0 +1,10 @@ +--- openjdk/jdk/make/com/sun/jmx/Makefile ++++ openjdk/jdk/make/com/sun/jmx/Makefile +@@ -119,6 +119,7 @@ + + $(CLASSDESTDIR)/%_Stub.class: $(CLASSDESTDIR)/%.class + $(prep-target) ++ "$(TOPDIR)"/../../pax-mark-vm "$(OUTPUTDIR)" + $(RMIC) -classpath "$(CLASSDESTDIR)" \ + -d $(CLASSDESTDIR) \ + -v1.2 \ From andrew at icedtea.classpath.org Fri Jan 25 13:33:39 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 25 Jan 2013 21:33:39 +0000 Subject: /hg/icedtea6: Add pax-mark-vm.in script template missing in earl... Message-ID: changeset f6a0a42bf443 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f6a0a42bf443 author: Andrew John Hughes date: Fri Jan 25 21:33:29 2013 +0000 Add pax-mark-vm.in script template missing in earlier commit. 2013-01-25 Andrew John Hughes * pax-mark-vm.in: Add template for pax mark script. diffstat: ChangeLog | 5 +++++ pax-mark-vm.in | 13 +++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-) diffs (29 lines): diff -r 6af17f5442ff -r f6a0a42bf443 ChangeLog --- a/ChangeLog Fri Jan 25 21:28:47 2013 +0000 +++ b/ChangeLog Fri Jan 25 21:33:29 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-25 Andrew John Hughes + + * pax-mark-vm.in: Add template for pax mark + script. + 2013-01-25 Andrew John Hughes * Makefile.am: diff -r 6af17f5442ff -r f6a0a42bf443 pax-mark-vm.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pax-mark-vm.in Fri Jan 25 21:33:29 2013 +0000 @@ -0,0 +1,13 @@ +#!/bin/sh + +# Taken from Gentoo's pax-utils.eclass +list_paxables() { + file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//' +} + +if test "@PAX_COMMAND@" != "not specified"; then + for paxable in `list_paxables "${1}"/bin/* "${1}"/jre/bin/*`; do + echo "PaX mark @PAX_COMMAND_ARGS@ ${paxable}" + @PAX_COMMAND@ @PAX_COMMAND_ARGS@ "${paxable}" + done +fi From ptisnovs at icedtea.classpath.org Mon Jan 28 00:51:48 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 28 Jan 2013 08:51:48 +0000 Subject: /hg/gfx-test: Added four new helper methods into ImageFactory cl... Message-ID: changeset 3463abbeeca5 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=3463abbeeca5 author: Pavel Tisnovsky date: Mon Jan 28 09:54:49 2013 +0100 Added four new helper methods into ImageFactory class. diffstat: ChangeLog | 5 + src/org/gfxtest/framework/ImageFactory.java | 163 ++++++++++++++++++++++++++++ 2 files changed, 168 insertions(+), 0 deletions(-) diffs (185 lines): diff -r dcf8661a53c2 -r 3463abbeeca5 ChangeLog --- a/ChangeLog Fri Jan 25 10:42:12 2013 +0100 +++ b/ChangeLog Mon Jan 28 09:54:49 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-28 Pavel Tisnovsky + + * src/org/gfxtest/framework/ImageFactory.java: + Added four new helper methods into ImageFactory class. + 2013-01-25 Pavel Tisnovsky * src/org/gfxtest/framework/CommonBitmapOperations.java: diff -r dcf8661a53c2 -r 3463abbeeca5 src/org/gfxtest/framework/ImageFactory.java --- a/src/org/gfxtest/framework/ImageFactory.java Fri Jan 25 10:42:12 2013 +0100 +++ b/src/org/gfxtest/framework/ImageFactory.java Mon Jan 28 09:54:49 2013 +0100 @@ -981,6 +981,169 @@ } /** + * Create image containing magenta gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalMagentaGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 16) | (rgb); + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing magenta gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalMagentaGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 16) | (rgb); + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing cyan gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createHorizontalCyanGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // compute color for each pixel + int rgb = (int) Math.round(y * 256.0 / height); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 8) | (rgb); + // for all columns on a line + for (int x = 0; x < width; x++) + { + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + + /** + * Create image containing cyan gradient. + * + * @param width + * width of a buffered image + * @param height + * height of a buffered image + * @param imageType + * buffered image type + * @return buffered image containing checker pattern + */ + public static BufferedImage createVerticalCyanGradientImage(int width, int height, int imageType) + { + // check for proper image dimensions + if (width <= 0 || height <= 0) + { + return null; + } + + // create new image + BufferedImage image = new BufferedImage(width, height, imageType); + + // for all lines in a raster image + for (int y = 0; y < height; y++) + { + // for all columns on a line + for (int x = 0; x < width; x++) + { + // compute color for each pixel + int rgb = (int) Math.round(x * 256.0 / width); + if (rgb < 0) rgb = 0; + if (rgb > 255) rgb = 255; + int color = (0xff << 24) | (rgb << 8) | (rgb); + image.setRGB(x, y, color); + } + } + + // return buffered image containing computed color pattern + return image; + } + /** * Create image containing red to blue gradient. * * @param width From ptisnovs at icedtea.classpath.org Mon Jan 28 00:55:22 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 28 Jan 2013 08:55:22 +0000 Subject: /hg/rhino-tests: One new test added into BindingsClassTest test ... Message-ID: changeset 5920d0eeed31 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=5920d0eeed31 author: Pavel Tisnovsky date: Mon Jan 28 09:58:25 2013 +0100 One new test added into BindingsClassTest test suite, updated two other tests to be JDK-version independent. diffstat: ChangeLog | 6 ++ src/org/RhinoTests/BindingsClassTest.java | 66 +++++++++++++++++++++++++----- 2 files changed, 60 insertions(+), 12 deletions(-) diffs (128 lines): diff -r 58a5ce1ad7bd -r 5920d0eeed31 ChangeLog --- a/ChangeLog Fri Jan 25 10:36:06 2013 +0100 +++ b/ChangeLog Mon Jan 28 09:58:25 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-28 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + One new test added into BindingsClassTest test suite, updated two + other tests to be JDK-version independent. + 2013-01-25 Pavel Tisnovsky * src/org/RhinoTests/CompilableClassTest.java: diff -r 58a5ce1ad7bd -r 5920d0eeed31 src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Fri Jan 25 10:36:06 2013 +0100 +++ b/src/org/RhinoTests/BindingsClassTest.java Mon Jan 28 09:58:25 2013 +0100 @@ -388,9 +388,14 @@ */ protected void testGetFields() { // following fields should exists - final String[] fieldsThatShouldExists = { - // this should be really empty + final String[] fieldsThatShouldExist_jdk6 = { }; + final String[] fieldsThatShouldExist_jdk7 = { + }; + + // get the right array of field signatures + final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + // get all fields Field[] fields = this.bindingsClass.getFields(); // and transform the array into a list of field names @@ -399,7 +404,7 @@ fieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { + for (String fieldThatShouldExists : fieldsThatShouldExist) { assertTrue(fieldsAsString.contains(fieldThatShouldExists), "field " + fieldThatShouldExists + " not found"); } @@ -409,10 +414,16 @@ * Test for method javax.script.Bindings.getClass().getDeclaredFields() */ protected void testGetDeclaredFields() { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { + }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + }; + + // get the right array of field signatures // following fields should be declared - final String[] fieldsThatShouldExists = { - // this should be really empty - }; + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + // get all declared fields Field[] declaredFields = this.bindingsClass.getDeclaredFields(); // and transform the array into a list of field names @@ -421,9 +432,9 @@ declaredFieldsAsString.add(field.toString()); } // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { - assertTrue(declaredFieldsAsString.contains(fieldThatShouldExists), - "field " + fieldThatShouldExists + " not found"); + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + assertTrue(declaredFieldsAsString.contains(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); } } @@ -432,11 +443,15 @@ */ protected void testGetField() { // following fields should exists - final String[] fieldsThatShouldExists = { - // this should be really empty + final String[] fieldsThatShouldExist_jdk6 = { }; + final String[] fieldsThatShouldExist_jdk7 = { + }; + + final String[] fieldsThatShouldExist = getJavaVersion() < 7 ? fieldsThatShouldExist_jdk6 : fieldsThatShouldExist_jdk7; + // check if all required fields really exists - for (String fieldThatShouldExists : fieldsThatShouldExists) { + for (String fieldThatShouldExists : fieldsThatShouldExist) { try { Field field = this.bindingsClass.getField(fieldThatShouldExists); String fieldName = field.getName(); @@ -451,6 +466,33 @@ } /** + * Test for method javax.script.Bindings.getClass().getDeclaredField() + */ + protected void testGetDeclaredField() { + // following declared fields should exists + final String[] declaredFieldsThatShouldExist_jdk6 = { + }; + final String[] declaredFieldsThatShouldExist_jdk7 = { + }; + + final String[] declaredFieldsThatShouldExist = getJavaVersion() < 7 ? declaredFieldsThatShouldExist_jdk6 : declaredFieldsThatShouldExist_jdk7; + + // check if all required declared fields really exists + for (String declaredFieldThatShouldExists : declaredFieldsThatShouldExist) { + try { + Field field = this.bindingsClass.getDeclaredField(declaredFieldThatShouldExists); + String fieldName = field.getName(); + assertTrue(fieldName.equals(declaredFieldThatShouldExists), + "field " + declaredFieldThatShouldExists + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.Bindings.getClass().getMethods() */ protected void testGetMethods() { From jvanek at redhat.com Mon Jan 28 03:40:00 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 28 Jan 2013 12:40:00 +0100 Subject: [rfc][icedtea-web] Fix for PR1157: Applets can hang browser after fatal exception In-Reply-To: <5102AB29.4070804@redhat.com> References: <5102AB29.4070804@redhat.com> Message-ID: <51066390.3020001@redhat.com> On 01/25/2013 04:56 PM, Adam Domurad wrote: > This one was took quite some effort to track down. Essentially because Firefox does not hold our plugin out-of-process we can potentially hang the browser if we are not careful. > > The issue is explained in comment in patch file PR1157.patch. Basically there was a long timeout in PluginAppletViewer.waitForAppletInit. It was supposed to 'wake up' when an applet dispatched an event signifying it completed loading, but it was not happening in the case of a fatal exception. > > No automated reproducer yet, but I believe this patch is simple enough that it can go in before one. > > I have added a 'reproducing catalyst' -- pseudo-reproducer.patch. This is NOT a patch intended to go into ITW HEAD. With this patch the worker pool consists of one thread effectively, so the hanging manifests itself very easily. Confirming the patch works with this goes as follow: > 1. Apply pseudo-reproducer.patch to HEAD > 2. Run http://jogamp.org/deployment/jogamp-current/jogl-applet-runner-newt-gears-normal-napplet.html and refresh. Firefox should hang, or at least display bizarre behaviour. > --- this is nothing special - just a failing (ATM) applet > 3. Apply PR1157.patch on top > 4. Run the same page and refresh, Firefox should work fine. > > ChangeLog for PR1157.patch: > 2013-XX-XX Adam Domurad > > Fix PR1157: Applets can hang browser after fatal exception > * NEWS: Add entry for PR1157 > * netx/net/sourceforge/jnlp/NetxPanel.java > (runLoader): Move dispatchAppletEvent into a 'finally' block. Although I have still some troubles on my old HW with f14, jdk6, it behaves much better and I'm for this one asap:) It would be nice to try deepak and his sometimes freezing machine to try. As you told, no special reproducer needed, this is tested by all reprodcuers which throws lunchError. The only lines to be added is some tests that FF have not deadlocked after this. I have this on todo, and I will add later. Ok. for head. J. From adomurad at icedtea.classpath.org Mon Jan 28 08:38:40 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Mon, 28 Jan 2013 16:38:40 +0000 Subject: /hg/icedtea-web: Fix PR1157: Applets can hang browser after fata... Message-ID: changeset 74a70e0b15ef in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=74a70e0b15ef author: Adam Domurad date: Mon Jan 28 11:38:34 2013 -0500 Fix PR1157: Applets can hang browser after fatal exception diffstat: ChangeLog | 7 +++++++ NEWS | 1 + netx/net/sourceforge/jnlp/NetxPanel.java | 8 ++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diffs (50 lines): diff -r 3960d2a46f51 -r 74a70e0b15ef ChangeLog --- a/ChangeLog Wed Jan 16 15:35:09 2013 -0500 +++ b/ChangeLog Mon Jan 28 11:38:34 2013 -0500 @@ -1,3 +1,10 @@ +2013-01-28 Adam Domurad + + Fix PR1157: Applets can hang browser after fatal exception + * NEWS: Add entry for PR1157 + * netx/net/sourceforge/jnlp/NetxPanel.java + (runLoader): Move dispatchAppletEvent into a 'finally' block. + 2013-01-16 Deepak Bhole PR1260: IcedTea-Web should not rely on GTK diff -r 3960d2a46f51 -r 74a70e0b15ef NEWS --- a/NEWS Wed Jan 16 15:35:09 2013 -0500 +++ b/NEWS Mon Jan 28 11:38:34 2013 -0500 @@ -26,6 +26,7 @@ - PR1189: Icedtea-plugin requires code attribute when using jnlp_href - PR1198: JSObject is not passed to javascript correctly - PR1260: IcedTea-Web should not rely on GTK + - PR1157: Applets can hang browser after fatal exception * Common - PR1049: Extension jnlp's signed jar with the content of only META-INF/* is considered - PR955: regression: SweetHome3D fails to run diff -r 3960d2a46f51 -r 74a70e0b15ef netx/net/sourceforge/jnlp/NetxPanel.java --- a/netx/net/sourceforge/jnlp/NetxPanel.java Wed Jan 16 15:35:09 2013 -0500 +++ b/netx/net/sourceforge/jnlp/NetxPanel.java Mon Jan 28 11:38:34 2013 -0500 @@ -139,8 +139,6 @@ // won't make it to the applet, whereas using sun.applet.AppletClassLoader // works just fine. - dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); - if (applet != null) { // Stick it in the frame applet.setStub(this); @@ -153,6 +151,12 @@ this.appletAlive = false; e.printStackTrace(); replaceSplash(SplashUtils.getErrorSplashScreen(getWidth(), getHeight(), e)); + } finally { + // PR1157: This needs to occur even in the case of an exception + // so that the applet's event listeners are signaled. + // Once PluginAppletViewer.AppletEventListener is signaled PluginAppletViewer it can properly stop waiting + // in PluginAppletViewer.waitForAppletInit + dispatchAppletEvent(APPLET_LOADING_COMPLETED, null); } } From bugzilla-daemon at icedtea.classpath.org Mon Jan 28 08:38:52 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 28 Jan 2013 16:38:52 +0000 Subject: [Bug 1157] icedtea-web locks up browser and future applets after first visit a page with missing code applet class. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1157 --- Comment #3 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=74a70e0b15ef author: Adam Domurad date: Mon Jan 28 11:38:34 2013 -0500 Fix PR1157: Applets can hang browser after fatal exception -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130128/a9f55c88/attachment.html From omajid at redhat.com Mon Jan 28 10:47:24 2013 From: omajid at redhat.com (Omair Majid) Date: Mon, 28 Jan 2013 13:47:24 -0500 Subject: Newbie questions In-Reply-To: <201301271118.r0RBI4oq029437@mail-web03.excite.co.jp> References: <201301271118.r0RBI4oq029437@mail-web03.excite.co.jp> Message-ID: <5106C7BC.1040205@redhat.com> Hi, On 01/27/2013 06:18 AM, Jakob Wisor wrote: > I have been working with the javaws deployment tool recently and have > noticed that it lacks a localization for Polish. So, I looked for the > localized resource files and thought I could provide that. I was > quickly able to localize javaws' syntax description in > jre/lib/deploy/messages.properties. But I was a little bit stuck with > the rest. After building a Polish ListResourceBundle based on > deploy.jar/com/sun/deploy/resources/Deployment.class and successfully > testing it, I was wondering whether the source code for the > deployment tool is included in OpenJDK. Greping OpenJDK's source code > brought no enlightenment. Is the deployment tool indeed not part of > OpenJDK? If not, where should I send my patch for review to? You are correct: OpenJDK does not include the source for javaws. The javaws implementation that is shipped with Oracle's JDK/JRE is proprietary. I don't know where you would send patches for that. Some of us are working on an open source implementation of javaws, called IcedTea-Web [1], that does include include the source and accepts localization patches for any language. It is not included in OpenJDK, though most Linux distributions do ship it along with OpenJDK as the plugin and javaws implementation. We normally hang out on distro-pkg-dev at openjdk.java.net (cc'ed). > Are there any plans or any intention to localize OpenJDK to other > languages than the existing en, ja, and zh? Would localizations to de > and pl be welcomed? If so, where should I send patches for review to > (yes, I have read the contributors and faq sections, but I am still > confused)? I can't speak for OpenJDK, but for IcedTea-Web, we are willing to localize to any language that you can provide translations for. distro-pkg-dev at openjdk.java.net is the right place for any patches for IcedTea-Web. Thanks, Omair [1] http://icedtea.classpath.org/wiki/IcedTea-Web -- PGP Key: 66484681 (http://pgp.mit.edu/) Fingerprint = F072 555B 0A17 3957 4E95 0056 F286 F14F 6648 4681 From jvanek at redhat.com Mon Jan 28 12:29:46 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 28 Jan 2013 21:29:46 +0100 Subject: Newbie questions In-Reply-To: <5106C7BC.1040205@redhat.com> References: <201301271118.r0RBI4oq029437@mail-web03.excite.co.jp> <5106C7BC.1040205@redhat.com> Message-ID: <5106DFBA.8090603@redhat.com> On 01/28/2013 07:47 PM, Omair Majid wrote: > Hi, > > On 01/27/2013 06:18 AM, Jakob Wisor wrote: >> I have been working with the javaws deployment tool recently and have >> noticed that it lacks a localization for Polish. So, I looked for the >> localized resource files and thought I could provide that. I was >> quickly able to localize javaws' syntax description in >> jre/lib/deploy/messages.properties. But I was a little bit stuck with >> the rest. After building a Polish ListResourceBundle based on >> deploy.jar/com/sun/deploy/resources/Deployment.class and successfully >> testing it, I was wondering whether the source code for the >> deployment tool is included in OpenJDK. Greping OpenJDK's source code >> brought no enlightenment. Is the deployment tool indeed not part of >> OpenJDK? If not, where should I send my patch for review to? > > You are correct: OpenJDK does not include the source for javaws. The > javaws implementation that is shipped with Oracle's JDK/JRE is > proprietary. I don't know where you would send patches for that. > > Some of us are working on an open source implementation of javaws, > called IcedTea-Web [1], that does include include the source and accepts > localization patches for any language. It is not included in OpenJDK, > though most Linux distributions do ship it along with OpenJDK as the > plugin and javaws implementation. We normally hang out on > distro-pkg-dev at openjdk.java.net (cc'ed). > >> Are there any plans or any intention to localize OpenJDK to other >> languages than the existing en, ja, and zh? Would localizations to de >> and pl be welcomed? If so, where should I send patches for review to >> (yes, I have read the contributors and faq sections, but I am still >> confused)? > > I can't speak for OpenJDK, but for IcedTea-Web, we are willing to > localize to any language that you can provide translations for. > distro-pkg-dev at openjdk.java.net is the right place for any patches for > IcedTea-Web. > > Thanks, > Omair IcedTea-web is currently localised to CZ-cs an (default) English. We are looking forward for translation! You can see that localisation is simple file that you are already familiar with - http://icedtea.classpath.org/hg/icedtea-web/file/74a70e0b15ef/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties http://icedtea.classpath.org/hg/icedtea-web/file/74a70e0b15ef/netx/net/sourceforge/jnlp/resources/Messages.properties So the only think you need to do is to provide transalted Messages_pl_PL.properties Currently there is no Polish developer active, so your file will be probably not-checked :) I would like to help you with any problems you may encounter - both by developer point of view and from guy who provided CZ translation. J. > > [1] http://icedtea.classpath.org/wiki/IcedTea-Web > From jvanek at redhat.com Mon Jan 28 13:08:31 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Mon, 28 Jan 2013 22:08:31 +0100 Subject: [rfc] [icedtea-web] better error reporting for LaunchException in plugin In-Reply-To: <50FD2819.90701@redhat.com> References: <50FD2819.90701@redhat.com> Message-ID: <5106E8CF.2000108@redhat.com> Ping? On 01/21/2013 12:35 PM, Jiri Vanek wrote: > Launch errors are thrown from netx, and printed out .. somewhere. At the end plugin (correctly) fails with NPE. > It Is not nice. Eg in SplashError dialogue they can not be shown. > > I have added static accumulator for LaunchErrors (== all errors preceding npe in plugin) and then I'm adding this chain of exception to Splash error report. > > It is quite useful - see example - but there is one pitfall. As accumulator being static, it is cumulating errors from all running applets :( > However I have not found a way how to distinguish between individual applets :( (any idea welcomed!) > I have added small warkaround with timestamps and localised explanation.. and.. it is still better then nothing :) > > > J. > > > **example** > > So now instead of plain, nothing saying > "IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ > Mon Jan 21 12:29:17 CET 2013 > java.lang.NullPointerException > at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) > at sun.applet.AppletPanel.run(AppletPanel.java:380) > at java.lang.Thread.run(Thread.java:679)" > > Is there: > > IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ > Mon Jan 21 12:29:17 CET 2013 > java.lang.NullPointerException > at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) > at sun.applet.AppletPanel.run(AppletPanel.java:380) > at java.lang.Thread.run(Thread.java:679) > > Chain: > 1) at Mon Jan 21 12:27:27 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. > at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > 2) at Mon Jan 21 12:27:27 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. > at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > ... 2 more > 3) at Mon Jan 21 12:27:29 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. > at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > 4) at Mon Jan 21 12:27:29 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The applet was unsigned, and the security policy prevented it from running. > at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > ... 2 more > From bugzilla-daemon at icedtea.classpath.org Mon Jan 28 13:50:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 28 Jan 2013 21:50:46 +0000 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1198 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #9 from Adam Domurad --- This has been fixed in HEAD and will be in the 1.4 release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130128/9bfe377f/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Jan 28 13:53:46 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 28 Jan 2013 21:53:46 +0000 Subject: [Bug 1271] New: icedtea-web does not handle 'javascript:' protocol URLs Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1271 Bug ID: 1271 Summary: icedtea-web does not handle 'javascript:' protocol URLs Classification: Unclassified Product: IcedTea-Web Version: hg Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: Plugin Assignee: dbhole at redhat.com Reporter: adomurad at redhat.com CC: unassigned at icedtea.classpath.org Related: https://bugzilla.redhat.com/show_bug.cgi?id=903406 http://java.com/en/download/installed.jsp?detect=jre relies on creating a URL with the 'javascript:' protocol. This is not handled by icedtea-web. One way of handling is to create a class named 'sun.net.www.protocol.javascript.Handler', which will get picked up by the default URLStreamHandlerFactory. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130128/38375a2f/attachment.html From bugzilla-daemon at icedtea.classpath.org Mon Jan 28 14:09:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 28 Jan 2013 22:09:32 +0000 Subject: [Bug 1271] icedtea-web does not handle 'javascript:' protocol URLs In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1271 Omair Majid changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |omajid at redhat.com --- Comment #1 from Omair Majid --- (In reply to comment #0) > One way of handling is to create a class named > 'sun.net.www.protocol.javascript.Handler', which will get picked up by the > default URLStreamHandlerFactory. It might be cleaner to use http://docs.oracle.com/javase/7/docs/api/java/net/URL.html#setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory) -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130128/0f1ca59a/attachment.html From andrew at icedtea.classpath.org Mon Jan 28 20:11:47 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 29 Jan 2013 04:11:47 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 5a1e1b396644 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=5a1e1b396644 author: Andrew John Hughes date: Tue Jan 29 01:21:09 2013 +0000 PR986: IcedTea7 fails to build with IcedTea6 CACAO due to low max heap size 2013-01-28 Andrew John Hughes * patches/cacao/memory.patch: Extend with additional cases in HotSpot and JAXWS. 2012-06-12 Andrew John Hughes PR986 * Makefile.am: (ICEDTEA_PATCHES): Add memory patch when building using CACAO as well, even if the result is not a CACAO build. * acinclude.m4: (IT_USING_CACAO): New macro; detects use of CACAO as the build VM so memory limits can be raised accordingly. * configure.ac: Call IT_USING_CACAO. * NEWS: Updated. changeset 69b6ee297123 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=69b6ee297123 author: Andrew John Hughes date: Tue Jan 29 04:11:25 2013 +0000 Added tag icedtea6-1.12-branchpoint for changeset 5a1e1b396644 diffstat: .hgtags | 1 + ChangeLog | 20 +++++++++++++++++++ Makefile.am | 5 ++++ NEWS | 1 + acinclude.m4 | 15 ++++++++++++++ configure.ac | 1 + patches/cacao/memory.patch | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 91 insertions(+), 0 deletions(-) diffs (149 lines): diff -r f6a0a42bf443 -r 69b6ee297123 .hgtags --- a/.hgtags Fri Jan 25 21:33:29 2013 +0000 +++ b/.hgtags Tue Jan 29 04:11:25 2013 +0000 @@ -21,3 +21,4 @@ cb463b94b82da269ea089c481ed5e39700525a8a icedtea6-1.9-branchpoint 21f2a8d158545a161ba0d997c13bdba1e6166394 icedtea6-1.10-branchpoint 24c5bd2e7d574441813bfb8f9e4636e50c5d7c28 icedtea6-1.11-branchpoint +5a1e1b39664409e9a0945ba49b558f25ef976c58 icedtea6-1.12-branchpoint diff -r f6a0a42bf443 -r 69b6ee297123 ChangeLog --- a/ChangeLog Fri Jan 25 21:33:29 2013 +0000 +++ b/ChangeLog Tue Jan 29 04:11:25 2013 +0000 @@ -1,3 +1,23 @@ +2013-01-28 Andrew John Hughes + + * patches/cacao/memory.patch: + Extend with additional cases in HotSpot and + JAXWS. + +2012-06-12 Andrew John Hughes + + PR986 + * Makefile.am: + (ICEDTEA_PATCHES): Add memory patch when + building using CACAO as well, even if the + result is not a CACAO build. + * acinclude.m4: + (IT_USING_CACAO): New macro; detects use of + CACAO as the build VM so memory limits can + be raised accordingly. + * configure.ac: Call IT_USING_CACAO. + * NEWS: Updated. + 2013-01-25 Andrew John Hughes * pax-mark-vm.in: Add template for pax mark diff -r f6a0a42bf443 -r 69b6ee297123 Makefile.am --- a/Makefile.am Fri Jan 25 21:33:29 2013 +0000 +++ b/Makefile.am Tue Jan 29 04:11:25 2013 +0000 @@ -482,6 +482,11 @@ patches/cacao/launcher.patch \ patches/cacao/memory.patch \ patches/cacao/armhf.patch +else +if USING_CACAO +ICEDTEA_PATCHES += \ + patches/cacao/memory.patch +endif endif if ENABLE_PULSE_JAVA diff -r f6a0a42bf443 -r 69b6ee297123 NEWS --- a/NEWS Fri Jan 25 21:33:29 2013 +0000 +++ b/NEWS Tue Jan 29 04:11:25 2013 +0000 @@ -58,6 +58,7 @@ - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive - G422525: Apply pax markings before using a freshly built JVM. + - PR986: IcedTea7 fails to build with IcedTea6 CACAO due to low max heap size * CACAO - PR1120: Unified version for icedtea6/7 - CA166, CA167: check-langtools fixes for icedtea6 diff -r f6a0a42bf443 -r 69b6ee297123 acinclude.m4 --- a/acinclude.m4 Fri Jan 25 21:33:29 2013 +0000 +++ b/acinclude.m4 Tue Jan 29 04:11:25 2013 +0000 @@ -2028,3 +2028,18 @@ AC_SUBST(PAX_COMMAND) AC_SUBST(PAX_COMMAND_ARGS) ]) + +AC_DEFUN([IT_USING_CACAO],[ + AC_REQUIRE([IT_FIND_JAVA]) + AC_CACHE_CHECK([if we are using CACAO as the build VM], it_cv_cacao, [ + if $JAVA -version 2>&1| grep '^CACAO' >&AS_MESSAGE_LOG_FD ; then + it_cv_cacao=yes; + else + it_cv_cacao=no; + fi + ]) + USING_CACAO=$it_cv_cacao + AC_SUBST(USING_CACAO) + AM_CONDITIONAL(USING_CACAO, test "x${USING_CACAO}" = "xyes") + AC_PROVIDE([$0])dnl +]) diff -r f6a0a42bf443 -r 69b6ee297123 configure.ac --- a/configure.ac Fri Jan 25 21:33:29 2013 +0000 +++ b/configure.ac Tue Jan 29 04:11:25 2013 +0000 @@ -214,6 +214,7 @@ IT_FIND_ECJ_JAR IT_FIND_TOOL([XSLTPROC], [xsltproc]) fi +IT_USING_CACAO AC_CONFIG_FILES([javac], [chmod +x javac]) AC_CONFIG_FILES([javap], [chmod +x javap]) diff -r f6a0a42bf443 -r 69b6ee297123 patches/cacao/memory.patch --- a/patches/cacao/memory.patch Fri Jan 25 21:33:29 2013 +0000 +++ b/patches/cacao/memory.patch Tue Jan 29 04:11:25 2013 +0000 @@ -16,3 +16,51 @@ +diff -Nru openjdk.orig/hotspot/make/linux/makefiles/rules.make openjdk-ecj/hotspot/make/linux/makefiles/rules.make +--- openjdk.orig/hotspot/make/linux/makefiles/rules.make 2013-01-26 13:32:42.117831617 +0000 ++++ openjdk/hotspot/make/linux/makefiles/rules.make 2013-01-26 13:33:29.934595340 +0000 +@@ -133,7 +133,7 @@ + # Settings for javac + BOOT_SOURCE_LANGUAGE_VERSION = 5 + BOOT_TARGET_CLASS_VERSION = 5 +-JAVAC_FLAGS = -g -encoding ascii ++JAVAC_FLAGS = -g -encoding ascii -J-Xmx512m + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + + # With parallel makes, print a message at the end of compilation. +diff -Nru openjdk.orig/hotspot/make/solaris/makefiles/rules.make openjdk-ecj/hotspot/make/solaris/makefiles/rules.make +--- openjdk.orig/hotspot/make/solaris/makefiles/rules.make 2013-01-26 13:32:42.137831936 +0000 ++++ openjdk/hotspot/make/solaris/makefiles/rules.make 2013-01-26 13:33:41.934787007 +0000 +@@ -133,7 +133,7 @@ + # Settings for javac + BOOT_SOURCE_LANGUAGE_VERSION = 5 + BOOT_TARGET_CLASS_VERSION = 5 +-JAVAC_FLAGS = -g -encoding ascii ++JAVAC_FLAGS = -g -encoding ascii -J-Xmx512m + BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + + # With parallel makes, print a message at the end of compilation. +diff -Nru openjdk.orig/hotspot/make/windows/makefiles/rules.make openjdk-ecj/hotspot/make/windows/makefiles/rules.make +--- openjdk.orig/hotspot/make/windows/makefiles/rules.make 2013-01-26 13:32:42.153832191 +0000 ++++ openjdk/hotspot/make/windows/makefiles/rules.make 2013-01-26 13:34:12.419273915 +0000 +@@ -45,7 +45,7 @@ + # Settings for javac + BOOT_SOURCE_LANGUAGE_VERSION=5 + BOOT_TARGET_CLASS_VERSION=5 +-JAVAC_FLAGS=-g -encoding ascii ++JAVAC_FLAGS=-g -encoding ascii -J-Xmx512m + BOOTSTRAP_JAVAC_FLAGS=$(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION) + + ProjectFile=jvm.vcproj +diff -Nru openjdk.orig/jaxws/build.properties openjdk-ecj/jaxws/build.properties +--- openjdk.orig/jaxws/build.properties 2013-01-26 06:52:34.544450267 +0000 ++++ openjdk/jaxws/build.properties 2013-01-26 06:52:51.896729971 +0000 +@@ -51,7 +51,7 @@ + + # JVM memory size + javac.memoryInitialSize = 256m +-javac.memoryMaximumSize = 512m ++javac.memoryMaximumSize = 768m + + #------------------------------------------------------------ + From bugzilla-daemon at icedtea.classpath.org Mon Jan 28 20:11:58 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 04:11:58 +0000 Subject: [Bug 986] IcedTea7 fails to build with IcedTea6 CACAO due to to low max heap size. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=986 --- Comment #3 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea6?cmd=changeset;node=5a1e1b396644 author: Andrew John Hughes date: Tue Jan 29 01:21:09 2013 +0000 PR986: IcedTea7 fails to build with IcedTea6 CACAO due to low max heap size 2013-01-28 Andrew John Hughes * patches/cacao/memory.patch: Extend with additional cases in HotSpot and JAXWS. 2012-06-12 Andrew John Hughes PR986 * Makefile.am: (ICEDTEA_PATCHES): Add memory patch when building using CACAO as well, even if the result is not a CACAO build. * acinclude.m4: (IT_USING_CACAO): New macro; detects use of CACAO as the build VM so memory limits can be raised accordingly. * configure.ac: Call IT_USING_CACAO. * NEWS: Updated. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/bdbd15a1/attachment.html From ptisnovs at icedtea.classpath.org Tue Jan 29 00:44:13 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 29 Jan 2013 08:44:13 +0000 Subject: /hg/rhino-tests: Nine new tests added into ScriptContextClassTes... Message-ID: changeset 5292981a360e in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=5292981a360e author: Pavel Tisnovsky date: Tue Jan 29 09:47:12 2013 +0100 Nine new tests added into ScriptContextClassTest test suite. diffstat: ChangeLog | 5 + src/org/RhinoTests/ScriptContextClassTest.java | 93 +++++++++++++++++++++++++- 2 files changed, 97 insertions(+), 1 deletions(-) diffs (136 lines): diff -r 5920d0eeed31 -r 5292981a360e ChangeLog --- a/ChangeLog Mon Jan 28 09:58:25 2013 +0100 +++ b/ChangeLog Tue Jan 29 09:47:12 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-29 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptContextClassTest.java: + Nine new tests added into ScriptContextClassTest test suite. + 2013-01-28 Pavel Tisnovsky * src/org/RhinoTests/BindingsClassTest.java: diff -r 5920d0eeed31 -r 5292981a360e src/org/RhinoTests/ScriptContextClassTest.java --- a/src/org/RhinoTests/ScriptContextClassTest.java Mon Jan 28 09:58:25 2013 +0100 +++ b/src/org/RhinoTests/ScriptContextClassTest.java Tue Jan 29 09:47:12 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.ScriptContext.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.scriptContextClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.ScriptContext", + "Method javax.script.ScriptContext.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.ScriptContext.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -544,6 +554,87 @@ } /** + * Test for method javax.script.ScriptContext.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.scriptContextClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.scriptContextClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getComponentType() + */ + protected void testGetComponentType() { + Class cls = this.scriptContextClass.getComponentType(); + assertNull(cls, "getComponentType() should returns null"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getClasses() + */ + protected void testGetClasses() { + Class[] cls = this.scriptContextClass.getClasses(); + assertNotNull(cls, "getClasses() returns null"); + assertEquals(cls.length, 0, "getClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getDeclaredClasses() + */ + protected void testGetDeclaredClasses() { + Class[] cls = this.scriptContextClass.getDeclaredClasses(); + assertNotNull(cls, "getDeclaredClasses() returns null"); + assertEquals(cls.length, 0, "getDeclaredClasses() returns wrong value!"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getDeclaringClass() + */ + protected void testGetDeclaringClass() { + Class cls = this.scriptContextClass.getDeclaringClass(); + assertNull(cls, "getDeclaringClass() does not return null"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getEnclosingClass() + */ + protected void testGetEnclosingClass() { + Class cls = this.scriptContextClass.getEnclosingClass(); + assertNull(cls, "getEnclosingClass() does not return null"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getEnclosingConstructor() + */ + protected void testGetEnclosingConstructor() { + Constructor cons = this.scriptContextClass.getEnclosingConstructor(); + assertNull(cons, "getEnclosingConstructor() does not return null"); + } + + /** + * Test for method javax.script.ScriptContext.getClass().getEnclosingMethod() + */ + protected void testGetEnclosingMethod() { + Method m = this.scriptContextClass.getEnclosingMethod(); + assertNull(m, "getEnclosingMethod() does not return null"); + } + + /** * Test for instanceof operator applied to a class javax.script.ScriptContext */ @SuppressWarnings("cast") From ptisnovs at icedtea.classpath.org Tue Jan 29 00:55:34 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 29 Jan 2013 08:55:34 +0000 Subject: /hg/gfx-test: Twelve new tests added into the test suite BitBltB... Message-ID: changeset a631f9ef36fb in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=a631f9ef36fb author: Pavel Tisnovsky date: Tue Jan 29 09:58:37 2013 +0100 Twelve new tests added into the test suite BitBltBasicTests. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/BitBltBasicTests.java | 167 ++++++++++++++++++++++- 2 files changed, 171 insertions(+), 1 deletions(-) diffs (196 lines): diff -r 3463abbeeca5 -r a631f9ef36fb ChangeLog --- a/ChangeLog Mon Jan 28 09:54:49 2013 +0100 +++ b/ChangeLog Tue Jan 29 09:58:37 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-29 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/BitBltBasicTests.java: + Twelve new tests added into the test suite BitBltBasicTests. + 2013-01-28 Pavel Tisnovsky * src/org/gfxtest/framework/ImageFactory.java: diff -r 3463abbeeca5 -r a631f9ef36fb src/org/gfxtest/testsuites/BitBltBasicTests.java --- a/src/org/gfxtest/testsuites/BitBltBasicTests.java Mon Jan 28 09:54:49 2013 +0100 +++ b/src/org/gfxtest/testsuites/BitBltBasicTests.java Tue Jan 29 09:58:37 2013 +0100 @@ -1,7 +1,7 @@ /* Java gfx-test framework - Copyright (C) 2010, 2011, 2012 Red Hat + Copyright (C) 2010, 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -2444,6 +2444,171 @@ } /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_INT_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeIntRGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_INT_RGB); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_INT_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeIntBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_INT_BGR); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_INT_ARGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeIntARGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_INT_ARGB_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeIntARGB_Pre(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_INT_ARGB_PRE); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_4BYTE_ABGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageType4ByteABGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_4BYTE_ABGR_PRE. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageType4ByteABGR_PRE(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_4BYTE_ABGR_PRE); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_BYTE_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeByteGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_BYTE_GRAY); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_USHORT_GRAY. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeUshortGray(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_GRAY); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_USHORT_565_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeUshort565RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_565_RGB); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_USHORT_555_RGB. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageTypeUshort555RGB(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_USHORT_555_RGB); + } + + /** + * Test basic BitBlt operation for horizontal grayscale gradient buffered image with type TYPE_3BYTE_BGR. + * + * @param image + * image used as a destination for BitBlt-type operations + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testBitBltHorizontalGrayscaleGradientBufferedImageType3ByteBGR(TestImage image, Graphics2D graphics2d) + { + // create new buffered image and then perform basic BitBlt test. + return CommonBitmapOperations.doBitBltTestWithHorizontalGrayscaleGradientImage(image, graphics2d, BufferedImage.TYPE_3BYTE_BGR); + } + + /** * Test basic BitBlt operation for vertical grayscale gradient buffered image * with type TYPE_BYTE_BINARY. * From jvanek at redhat.com Tue Jan 29 05:21:50 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Tue, 29 Jan 2013 14:21:50 +0100 Subject: [rfc][icedtea-web] fixed locales and unittest for them Message-ID: <5107CCEE.5020804@redhat.com> With (maybe!) possible another localisation of ITW i have synced our current locales and added unittest to cough inconsistent states - empty keys, same values in translations (with exceptions), missing translations and especially redundant translations. J. -------------- next part -------------- A non-text attachment was scrubbed... Name: localesTestAndFix.patch Type: text/x-patch Size: 20760 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/253269d1/localesTestAndFix.patch From adomurad at redhat.com Tue Jan 29 06:46:41 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 29 Jan 2013 09:46:41 -0500 Subject: Newbie questions In-Reply-To: <5106DFBA.8090603@redhat.com> References: <201301271118.r0RBI4oq029437@mail-web03.excite.co.jp> <5106C7BC.1040205@redhat.com> <5106DFBA.8090603@redhat.com> Message-ID: <5107E0D1.2080100@redhat.com> On 01/28/2013 03:29 PM, Jiri Vanek wrote: > On 01/28/2013 07:47 PM, Omair Majid wrote: >> Hi, >> >> On 01/27/2013 06:18 AM, Jakob Wisor wrote: >>> I have been working with the javaws deployment tool recently and have >>> noticed that it lacks a localization for Polish. So, I looked for the >>> localized resource files and thought I could provide that. I was >>> quickly able to localize javaws' syntax description in >>> jre/lib/deploy/messages.properties. But I was a little bit stuck with >>> the rest. After building a Polish ListResourceBundle based on >>> deploy.jar/com/sun/deploy/resources/Deployment.class and successfully >>> testing it, I was wondering whether the source code for the >>> deployment tool is included in OpenJDK. Greping OpenJDK's source code >>> brought no enlightenment. Is the deployment tool indeed not part of >>> OpenJDK? If not, where should I send my patch for review to? A Polish internationalization would be great! >> You are correct: OpenJDK does not include the source for javaws. The >> javaws implementation that is shipped with Oracle's JDK/JRE is >> proprietary. I don't know where you would send patches for that. >> >> Some of us are working on an open source implementation of javaws, >> called IcedTea-Web [1], that does include include the source and accepts >> localization patches for any language. It is not included in OpenJDK, >> though most Linux distributions do ship it along with OpenJDK as the >> plugin and javaws implementation. We normally hang out on >> distro-pkg-dev at openjdk.java.net (cc'ed). >> >>> Are there any plans or any intention to localize OpenJDK to other >>> languages than the existing en, ja, and zh? Would localizations to de >>> and pl be welcomed? If so, where should I send patches for review to >>> (yes, I have read the contributors and faq sections, but I am still >>> confused)? >> I can't speak for OpenJDK, but for IcedTea-Web, we are willing to >> localize to any language that you can provide translations for. >> distro-pkg-dev at openjdk.java.net is the right place for any patches for >> IcedTea-Web. >> >> Thanks, >> Omair > IcedTea-web is currently localised to CZ-cs an (default) English. We are looking forward for translation! > > You can see that localisation is simple file that you are already familiar with - > http://icedtea.classpath.org/hg/icedtea-web/file/74a70e0b15ef/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > http://icedtea.classpath.org/hg/icedtea-web/file/74a70e0b15ef/netx/net/sourceforge/jnlp/resources/Messages.properties > > So the only think you need to do is to provide transalted Messages_pl_PL.properties > Currently there is no Polish developer active, so your file will be probably not-checked :) Hey!! I am Polish :-). My Polish language skills leave something to be desired but I can definitely check it over. > > I would like to help you with any problems you may encounter - both by developer point of view and from guy who provided CZ translation. > > J. > > >> [1] http://icedtea.classpath.org/wiki/IcedTea-Web >> Thanks! -Adam From gnu.andrew at redhat.com Tue Jan 29 07:26:44 2013 From: gnu.andrew at redhat.com (Andrew John Hughes) Date: Tue, 29 Jan 2013 15:26:44 +0000 Subject: IcedTea6 1.12 Released! Message-ID: <20130129152643.GA22263@carrie.the212.com> We are pleased to announce the release of IcedTea6 1.12.0! The IcedTea project provides a harness to build the source code from OpenJDK6 using Free Software build tools, along with additional features such as a PulseAudio sound driver and support for alternative virtual machines. This is the first major release in a year (1.11 was released on 2012-01-30). In accordance with the release policy, 1.10 will no longer receive security updates [1]. Full details of each release can be found below. What?s New? ?????? New in release 1.12.0 (2012-01-29): * Import of OpenJDK6 b27 (all changes already in security updates) * Import of OpenJDK6 b26 - S7071826: Avoid benign race condition in initialization of UUID - S7123896: Unexpected behavior due to Solaris using separate IPv4 and IPv6 port spaces - S7142509: Cipher.doFinal(ByteBuffer,ByteBuffer) fails to process when in.remaining() == 0 - S7157903: JSSE client sockets are very slow - S7174440: JDK6-open build breakage - S7175845: JSSE client sockets are very slow - S7176477: TEST: Remove testcase test/java/lang/SecurityManager/CheckPackageDefinition.java from jdk6-open - S7184700: Backout changes with wrong id for 7157903 - S7199153: TEST_BUG: try-with-resources syntax pushed to 6-open repo * Import of OpenJDK6 b25 - S6790292: BOOTDIR of jdk6 u12 will not work with jdk7 builds - S6967036: Need to fix links with // in Javadoc comments - S7007299: FileFontStrike appears not to be threadsafe - S7022473: JDK7 still runs /etc/prtconf to find memory size - S7058133: Javah should use the freshly built classes instead of those from the BOOTDIR jdk - S7107919: Remove hotspot assertion due to Solaris 8 kstat "unimplemented". - S7123519: problems with certification path - S7126889: Incorrect SSLEngine debug output - S7127104: Build issue with prtconf and zones, also using := to avoid extra execs - S7128474: Update source copyright years - S7128505: Building on em64t system does not work - S7149751: another krb5 test in openjdk6 without test infrastructure * Backports - S6706974: Add krb5 test infrastructure - S6764553: com.sun.org.apache.xml.internal.security.utils.IdResolver is not thread safe - S6761072: new krb5 tests fail on multiple platforms - S6883983: JarVerifier dependency on sun.security.pkcs should be removed - S4465490: Suspicious about double-check locking idiom being used in the code - S6763340: memory leak in com.sun.corba.se.* classes - S6873605: Missing finishedDispatch() call in ORBImpl causes test failures after 5u20 b04 - S6980681: CORBA deadlock in Java SE believed to be related to CR 6238477 - S7162902: Umbrella port of a number of corba bug fixes from JDK 6 to jdk7u/8 - S6414899: P11Digest should support cloning - S4898461: Support for ECB and CBC/PKCS5Padding - S6604496: Support for CKM_AES_CTR (counter mode) - S6682411: JCK test failed w/ ArrayIndexOutOfBoundException (-1) when decrypting with no data - S6682417: JCK test failed w/ ProviderException when decrypted data is not multiple of blocks - S6687725: Internal PKCS5Padding impl should throw IllegalBlockSizeException and not BadPaddingException - S6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider - S6867345: Turkish regional options cause NPE in sun.security.x509.AlgorithmId.algOID - S6924489: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_OPERATION_NOT_INITIALIZED - S7088989: Improve the performance for T4 by utilizing the newly provided crypto APIs * Bug fixes - PR902: PulseAudioClip getMicrosecondsLength() returns length in milliseconds, not microseconds - PR1050: Stream objects not garbage collected - PR1113: Add tapset tests to distribution. - PR1117: IcedTea6 prebuilds far too many classes on bootstrap - PR1121: Old installs still suffer from GCC PR41686 - PR1119: Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields) are actually missing from the boot JDK - PR1114: Provide option to turn off downloading of tarballs (--disable-downloading) - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive - G422525: Apply pax markings before using a freshly built JVM. - PR986: IcedTea fails to build with IcedTea6 CACAO due to low max heap size * CACAO - PR1120: Unified version for icedtea6/7 - CA166, CA167: check-langtools fixes for icedtea6 - Implemented sun.misc.Perf.highResCounter - CACAO now identifies by its own Mercurial revision - Some memory barrier maintenance - Ability to run when compiled as Thumb on armv5 (no Thumb JIT though) - Stop creating pseudo files for OpenJDK (libjsig.so, Xusage.txt) - Clang fix for the i386 backend - CONTRIBUTE: Reference code submission process wiki instructions. - INSTALL.CACAO: Update, so following the instruction actually works. - Make doxygen work - CA172, PR1266, G453612: ARM hardfloat support - src/scripts/java.in: Look for cacao executable in install path, not in PATH. - src/vm/jit/alpha/asmpart.S: Fix copyright header. - src/vm/jit/alpha/asmpart.S: Properly set up GP in asm_abstractmethoderror - Use @abs_top_builddir@ for support scripts * JamVM - ARMv6 armhf: Changes for Raspbian (Raspberry Pi) - PPC: Don't use lwsync if it isn't supported - X86: Generate machine-dependent stubs for i386 - When suspending, ignore detached threads that have died, this prevents a user caused deadlock when an external thread has been attached to the VM via JNI and it has exited without detaching - Add missing REF_TO_OBJs for references passed from JNI, this enable JamVM to run Qt-Jambi - PR1155: Do not put version number in libjvm.so SONAME * SystemTap - Addition of garbage collection probes The tarball can be downloaded from: * http://icedtea.classpath.org/download/source/icedtea6-1.12.0.tar.gz SHA256 checksums: 4f27f3f42b57836cfb11541736282ccfc22de3f4acc0e540560fcf5512d66ced icedtea6-1.12.0.tar.gz Each tarball is accompanied by a digital signature (available at the above URL + '.sig'). This is produced using my public key. See details below. The following people helped with this release: * Lukas Berk (garbage collection probes) * Andrew Haley (PR584 & other ARM32 port fixes) * Andrew John Hughes (all other fixes, OpenJDK updates & release management) * Robert Lougher (JamVM fixes) * Omair Majid (PR1050 & other PulseAudio fixes) * Xerxes R?nby (JamVM updates & ARM32 fixes) * Stefan Ring (CACAO updates & fixes) * Ralph Sennhauser (G422525) * Yasumasa Suenaga (SystemTap fixes) * Pavel Tisnovsky (S4465490, S6883983, S6761072, S6764553, patch & test fixes) * Jon VanAlten (tapset test work) * Mark Wielaard (SystemTap & makefile fixes) We would also like to thank the bug reporters and testers! To get started: $ tar xzf icedtea6-1.12.0.tar.gz Full build requirements and instructions are in INSTALL: $ mkdir icedtea6-build $ cd icedtea6-build $ ../icedtea6-1.12.0/configure [--enable-zero --enable-pulse-java --enable-systemtap ...] $ make Happy hacking! [1] http://icedtea.classpath.org/wiki/ReleasePolicy -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07 -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/679549f4/attachment.bin From andrew at icedtea.classpath.org Tue Jan 29 07:29:24 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 29 Jan 2013 15:29:24 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 73dc59c4b6df in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=73dc59c4b6df author: Andrew John Hughes date: Tue Jan 29 15:27:37 2013 +0000 Update NEWS to match release announcement. 2013-01-29 Andrew John Hughes * NEWS: Update to match announcement. changeset 62524789314e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=62524789314e author: Andrew John Hughes date: Tue Jan 29 15:29:17 2013 +0000 Prepare for 1.13.0. 2013-01-29 Andrew John Hughes * configure.ac: Bump to 1.13.0pre. * NEWS: Add 1.13.0 section. diffstat: ChangeLog | 9 +++++++++ NEWS | 16 +++++++++++++++- configure.ac | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diffs (65 lines): diff -r 69b6ee297123 -r 62524789314e ChangeLog --- a/ChangeLog Tue Jan 29 04:11:25 2013 +0000 +++ b/ChangeLog Tue Jan 29 15:29:17 2013 +0000 @@ -1,3 +1,12 @@ +2013-01-29 Andrew John Hughes + + * configure.ac: Bump to 1.13.0pre. + * NEWS: Add 1.13.0 section. + +2013-01-29 Andrew John Hughes + + * NEWS: Update to match announcement. + 2013-01-28 Andrew John Hughes * patches/cacao/memory.patch: diff -r 69b6ee297123 -r 62524789314e NEWS --- a/NEWS Tue Jan 29 04:11:25 2013 +0000 +++ b/NEWS Tue Jan 29 15:29:17 2013 +0000 @@ -10,7 +10,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.12 (2012-01-25): +New in release 1.13.0 (201X-XX-XX): + +New in release 1.12.0 (2012-01-29): * Import of OpenJDK6 b27 (all changes already in security updates) * Import of OpenJDK6 b26 @@ -46,6 +48,16 @@ - S6873605: Missing finishedDispatch() call in ORBImpl causes test failures after 5u20 b04 - S6980681: CORBA deadlock in Java SE believed to be related to CR 6238477 - S7162902: Umbrella port of a number of corba bug fixes from JDK 6 to jdk7u/8 + - S6414899: P11Digest should support cloning + - S4898461: Support for ECB and CBC/PKCS5Padding + - S6604496: Support for CKM_AES_CTR (counter mode) + - S6682411: JCK test failed w/ ArrayIndexOutOfBoundException (-1) when decrypting with no data + - S6682417: JCK test failed w/ ProviderException when decrypted data is not multiple of blocks + - S6687725: Internal PKCS5Padding impl should throw IllegalBlockSizeException and not BadPaddingException + - S6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider + - S6867345: Turkish regional options cause NPE in sun.security.x509.AlgorithmId.algOID + - S6924489: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_OPERATION_NOT_INITIALIZED + - S7088989: Improve the performance for T4 by utilizing the newly provided crypto APIs * Bug fixes - PR902: PulseAudioClip getMicrosecondsLength() returns length in milliseconds, not microseconds - PR1050: Stream objects not garbage collected @@ -86,6 +98,8 @@ - Add missing REF_TO_OBJs for references passed from JNI, this enable JamVM to run Qt-Jambi - PR1155: Do not put version number in libjvm.so SONAME +* SystemTap + - Addition of garbage collection probes New in release 1.11.5 (2012-10-16): diff -r 69b6ee297123 -r 62524789314e configure.ac --- a/configure.ac Tue Jan 29 04:11:25 2013 +0000 +++ b/configure.ac Tue Jan 29 15:29:17 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.12.0],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.13.0pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From adomurad at redhat.com Tue Jan 29 08:01:09 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 29 Jan 2013 11:01:09 -0500 Subject: [rfc] [icedtea-web] better error reporting for LaunchException in plugin In-Reply-To: <50FD2819.90701@redhat.com> References: <50FD2819.90701@redhat.com> Message-ID: <5107F245.3060807@redhat.com> On 01/21/2013 06:35 AM, Jiri Vanek wrote: > Launch errors are thrown from netx, and printed out .. somewhere. At > the end plugin (correctly) fails with NPE. > It Is not nice. Eg in SplashError dialogue they can not be shown. > > I have added static accumulator for LaunchErrors (== all errors > preceding npe in plugin) and then I'm adding this chain of exception > to Splash error report. > > It is quite useful - see example - but there is one pitfall. As > accumulator being static, it is cumulating errors from all running > applets :( > However I have not found a way how to distinguish between individual > applets :( (any idea welcomed!) Hmm. Well each applet has an associated thread-group -- you could use that to determine the current applet. As well, I do not like adding a static accumulator to each constructor -- I would prefer a special launch error utility class that is always used, that takes a JNLPFile (in cases where its available) -or- tries to determine one by the current ThreadGroup. This will unfortunately need some additional 'infrastructure'. > I have added small warkaround with timestamps and localised > explanation.. and.. it is still better then nothing :) > > > J. I know you want this in as 'better than nothing' but it does seem too hackish to me :-/ IMO constructors should not have such side-effects. However I am all for LaunchException's capturing a time-stamp in their constructor. > > > **example** > > So now instead of plain, nothing saying > "IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ > Mon Jan 21 12:29:17 CET 2013 > java.lang.NullPointerException > at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) > at sun.applet.AppletPanel.run(AppletPanel.java:380) > at java.lang.Thread.run(Thread.java:679)" > > Is there: > > IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ > Mon Jan 21 12:29:17 CET 2013 > java.lang.NullPointerException > at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) > at sun.applet.AppletPanel.run(AppletPanel.java:380) > at java.lang.Thread.run(Thread.java:679) > > Chain: > 1) at Mon Jan 21 12:27:27 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The > applet was unsigned. The applet was unsigned, and the security policy > prevented it from running. > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > 2) at Mon Jan 21 12:27:27 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: > Could not initialize applet. > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application > Error: The applet was unsigned. The applet was unsigned, and the > security policy prevented it from running. > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > ... 2 more > 3) at Mon Jan 21 12:27:29 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The > applet was unsigned. The applet was unsigned, and the security policy > prevented it from running. > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > 4) at Mon Jan 21 12:27:29 CET 2013 > net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: > Could not initialize applet. > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) > at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) > at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) > Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application > Error: The applet was unsigned. The applet was unsigned, and the > security policy prevented it from running. > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) > at > net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) > at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) > ... 2 more > Comments inline. > diff -r b646c8b9c2e2 netx/net/sourceforge/jnlp/LaunchException.java > --- a/netx/net/sourceforge/jnlp/LaunchException.java Fri Jan 18 > 12:49:37 2013 +0100 > +++ b/netx/net/sourceforge/jnlp/LaunchException.java Mon Jan 21 > 12:20:20 2013 +0100 > @@ -16,6 +16,10 @@ > > package net.sourceforge.jnlp; > > +import java.util.Date; > +import java.util.LinkedList; > +import java.util.List; > + > /** > * Thrown when a JNLP application, applet, or installer could not > * be created. > @@ -25,6 +29,29 @@ > */ > public class LaunchException extends Exception { > > + > + public static class LaunchExceptionWithStamp{ > + private final LaunchException ex; > + private final Date stamp; > + > + private LaunchExceptionWithStamp(LaunchException ex) { > + this.ex=ex; > + this.stamp=new Date(); > + } > + > + public LaunchException getEx() { > + return ex; > + } > + > + public Date getStamp() { > + return stamp; > + } > + > + > + > + } > + public static final List > launchExceptionChain = new LinkedList(); > + > private static final long serialVersionUID = 7283827853612357423L; > > /** the file being launched */ > @@ -54,6 +81,7 @@ > this.summary = summary; > this.description = description; > this.severity = severity; > + saveLaunchException(this); Bit too much of a hack, for me. > } > > /** > @@ -61,6 +89,7 @@ > */ > public LaunchException(Throwable cause) { > super(cause); > + saveLaunchException(this); > } > > /** > @@ -68,6 +97,7 @@ > */ > public LaunchException(String message, Throwable cause) { > super(message, cause); > + saveLaunchException(this); > } > > /** > @@ -78,6 +108,7 @@ > */ > public LaunchException(String message) { > super(message); > + saveLaunchException(this); > } > > /** > @@ -117,4 +148,9 @@ > return severity; > } > > + private void saveLaunchException(LaunchException ex) { Should be synchronized, surely ? > + launchExceptionChain.add(new LaunchExceptionWithStamp(ex)); > + > + } > + > } > diff -r b646c8b9c2e2 > netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Jan > 18 12:49:37 2013 +0100 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan > 21 12:20:20 2013 +0100 > @@ -478,3 +478,4 @@ > SPLASHdefaultHomepage = Unspecified homepage, verify source rather > SPLASHerrorInInformation = Error during loading of information > element, verify source rather > SPLASHmissingInformation = Information element is missing, verify > source rather > +SPLASHchainWas = There is list of exceptions which provided start of > you applet. Please note, those exceptions can be from multiple > applets. For good bug report, it is wothy to run your applet isolated. Hm, s/wothy/worthy/, but probably better is: 'This is the list of exceptions that occurred launching your applet' ... 'For a good bug report, be sure to run only one applet.' > diff -r b646c8b9c2e2 > netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > Fri Jan 18 12:49:37 2013 +0100 > +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > Mon Jan 21 12:20:20 2013 +0100 > @@ -468,4 +468,5 @@ > SPLASHanotherInfo= Dal\u0161\u00ed dostupn\u00e9 informace > SPLASHdefaultHomepage = Nespecifikovan\u00e1 domovsk\u00e1 > st\u00e1nka, je doporu\u010deno zkontrolovat zdroj > SPLASHerrorInInformation = Chyba na\u010d\u00edt\u00e1n\u00ed > informa\u010dn\u00edho elementu, je doporu\u010deno zkontrolovat zdroj > -SPLASHmissingInformation = Informa\u010dn\u00ed element chyb\u00fd, > je doporu\u010deno zkontrolovat zdroj > \ No newline at end of file > +SPLASHmissingInformation = Informa\u010dn\u00ed element chyb\u00fd, > je doporu\u010deno zkontrolovat zdroj > +SPLASHchainWas = N\u00ed\u017ee je seznam v\u00fdjimek, kter\u00e9 > prov\u00e1zely start appeltu. Tento seznam ale m\u016f\u017er > poch\u00e1zet z n\u011bkolik\u00e1 r\u016fzn\u00fdch applet\u016f. Pro > dob\u00e9 chybo\u00e9 hl\u00e1\u0161en\u00ed stoj\u00e9 za to pustit > applet izolovane. > \ No newline at end of file > diff -r b646c8b9c2e2 > netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java > --- > a/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java > Fri Jan 18 12:49:37 2013 +0100 > +++ > b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java > Mon Jan 21 12:20:20 2013 +0100 > @@ -42,6 +42,8 @@ > import java.awt.event.WindowEvent; > import java.io.PrintWriter; > import java.io.StringWriter; > +import java.text.DateFormat; > +import java.util.Date; > import java.util.List; > import javax.swing.BorderFactory; > import javax.swing.GroupLayout; > @@ -60,6 +62,7 @@ > import javax.swing.WindowConstants; > import javax.swing.event.HyperlinkEvent; > import javax.swing.event.HyperlinkListener; > +import net.sourceforge.jnlp.LaunchException; > import net.sourceforge.jnlp.runtime.Translator; > > public class JEditorPaneBasedExceptionDialog extends JDialog > implements HyperlinkListener { > @@ -78,15 +81,19 @@ > // End of components declaration > private final String message; > private final Throwable exception; > + private final Date shown; > + private final String anotherInfo; > > /** Creates new form JEditorPaneBasedExceptionDialog */ > public JEditorPaneBasedExceptionDialog(java.awt.Frame parent, > boolean modal, Throwable ex, InformationElement information, String > anotherInfo) { > super(parent, modal); > + shown = new Date(); > initComponents(); > htmlErrorAndHelpPanel.setContentType("text/html"); > htmlErrorAndHelpPanel.setEditable(false); > + this.anotherInfo=anotherInfo; > List l = infoElementToList(information); > - this.message = getText(ex, l, anotherInfo); > + this.message = getText(ex, l, anotherInfo, shown); > this.exception = ex; > if (exception == null) { > closeAndCopyButton.setVisible(false); > @@ -199,7 +206,7 @@ > private void > copyAndCloseButtonActionPerformed(java.awt.event.ActionEvent evt) { > if (exception != null) { > try { > - StringSelection data = new > StringSelection(getExceptionStackTraceAsString(exception)); > + StringSelection data = new > StringSelection(anotherInfo+"\n"+shown.toString()+"\n"+getExceptionStackTraceAsString(exception)+addPlainChain()); > Clipboard clipboard = > Toolkit.getDefaultToolkit().getSystemClipboard(); > clipboard.setContents(data, data); > } catch (Exception ex) { > @@ -241,7 +248,7 @@ > }); > } > > - static String getText(Throwable ex, List l, String > anotherInfo) { > + static String getText(Throwable ex, List l, String > anotherInfo,Date shown) { > StringBuilder s = new StringBuilder(""); > String info = "

" > + Translator.R(InfoItem.SPLASH + "mainL1", createLink()) > @@ -258,9 +265,11 @@ > + Translator.R(InfoItem.SPLASH + "mainL4") > + "

\n" > + info + formatListInfoList(l) + > formatInfo(anotherInfo) > + +"
"+DateFormat.getInstance().format(shown)+"
" > + "

" > + Translator.R(InfoItem.SPLASH + "exWas") > - + "
\n" + "

" + 
> getExceptionStackTraceAsString(ex) + "
"; > + + "
\n" + "
" + 
> getExceptionStackTraceAsString(ex) + "
" > + + addChain(); > > > } else { > @@ -354,4 +363,47 @@ > } > > > + private static String addChain() { > + if (LaunchException.launchExceptionChain.isEmpty()) { > + return ""; > + } > + return Translator.R(InfoItem.SPLASH + "chainWas") > + + "
\n" + "
" + getChainAsString(true) + 
> "
"; > + > + } > + > + private static String addPlainChain() { > + if (LaunchException.launchExceptionChain.isEmpty()) { > + return ""; > + } > + return "\n Chain: \n" + getChainAsString(false); > + > + } > + > + private static String getChainAsString(boolean formatTime) { > + return getChainAsString(LaunchException.launchExceptionChain, > formatTime); > + } > + > + private static String > getChainAsString(List > launchExceptionChain, boolean formatTime) { > + String s = ""; > + if (launchExceptionChain != null) { > + int i = 0; > + for (LaunchException.LaunchExceptionWithStamp > launchException : launchExceptionChain) { > + i++; > + s = s + i + ") at " + > formatTime(launchException.getStamp(), formatTime) + "\n" + > getExceptionStackTraceAsString(launchException.getEx()); > + } > + } > + return s; > + } > + > + private static String formatTime(Date dateTime, boolean formatTime) { > + if (dateTime == null) { > + return "unknown time"; > + } > + if (formatTime) { > + return DateFormat.getInstance().format(dateTime); > + } else { > + return dateTime.toString(); > + } > + } > } From andrew at icedtea.classpath.org Tue Jan 29 09:07:00 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 29 Jan 2013 17:07:00 +0000 Subject: /hg/release/icedtea6-1.12: 3 new changesets Message-ID: changeset b09752863b7c in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=b09752863b7c author: Andrew John Hughes date: Tue Jan 29 16:58:04 2013 +0000 Added tag icedtea6-1.12 for changeset 69b6ee297123 changeset fcfbceedf12d in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=fcfbceedf12d author: Andrew John Hughes date: Tue Jan 29 15:27:37 2013 +0000 Update NEWS to match release announcement. 2013-01-29 Andrew John Hughes * NEWS: Update to match announcement. changeset 7c511d9ab452 in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=7c511d9ab452 author: Andrew John Hughes date: Tue Jan 29 17:06:45 2013 +0000 Prepare for 1.12.1. 2013-01-29 Andrew John Hughes * configure.ac: Bump to 1.12.1pre. * NEWS: Add 1.12.1 section. diffstat: .hgtags | 1 + ChangeLog | 9 +++++++++ NEWS | 16 +++++++++++++++- configure.ac | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diffs (73 lines): diff -r 69b6ee297123 -r 7c511d9ab452 .hgtags --- a/.hgtags Tue Jan 29 04:11:25 2013 +0000 +++ b/.hgtags Tue Jan 29 17:06:45 2013 +0000 @@ -22,3 +22,4 @@ 21f2a8d158545a161ba0d997c13bdba1e6166394 icedtea6-1.10-branchpoint 24c5bd2e7d574441813bfb8f9e4636e50c5d7c28 icedtea6-1.11-branchpoint 5a1e1b39664409e9a0945ba49b558f25ef976c58 icedtea6-1.12-branchpoint +69b6ee29712304225f57535e507e6745e478ae9e icedtea6-1.12 diff -r 69b6ee297123 -r 7c511d9ab452 ChangeLog --- a/ChangeLog Tue Jan 29 04:11:25 2013 +0000 +++ b/ChangeLog Tue Jan 29 17:06:45 2013 +0000 @@ -1,3 +1,12 @@ +2013-01-29 Andrew John Hughes + + * configure.ac: Bump to 1.12.1pre. + * NEWS: Add 1.12.1 section. + +2013-01-29 Andrew John Hughes + + * NEWS: Update to match announcement. + 2013-01-28 Andrew John Hughes * patches/cacao/memory.patch: diff -r 69b6ee297123 -r 7c511d9ab452 NEWS --- a/NEWS Tue Jan 29 04:11:25 2013 +0000 +++ b/NEWS Tue Jan 29 17:06:45 2013 +0000 @@ -10,7 +10,9 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY -New in release 1.12 (2012-01-25): +New in release 1.12.1 (2012-02-XX): + +New in release 1.12.0 (2012-01-29): * Import of OpenJDK6 b27 (all changes already in security updates) * Import of OpenJDK6 b26 @@ -46,6 +48,16 @@ - S6873605: Missing finishedDispatch() call in ORBImpl causes test failures after 5u20 b04 - S6980681: CORBA deadlock in Java SE believed to be related to CR 6238477 - S7162902: Umbrella port of a number of corba bug fixes from JDK 6 to jdk7u/8 + - S6414899: P11Digest should support cloning + - S4898461: Support for ECB and CBC/PKCS5Padding + - S6604496: Support for CKM_AES_CTR (counter mode) + - S6682411: JCK test failed w/ ArrayIndexOutOfBoundException (-1) when decrypting with no data + - S6682417: JCK test failed w/ ProviderException when decrypted data is not multiple of blocks + - S6687725: Internal PKCS5Padding impl should throw IllegalBlockSizeException and not BadPaddingException + - S6812738: SSL stress test with GF leads to 32 bit max process size in less than 5 minutes with PCKS11 provider + - S6867345: Turkish regional options cause NPE in sun.security.x509.AlgorithmId.algOID + - S6924489: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_OPERATION_NOT_INITIALIZED + - S7088989: Improve the performance for T4 by utilizing the newly provided crypto APIs * Bug fixes - PR902: PulseAudioClip getMicrosecondsLength() returns length in milliseconds, not microseconds - PR1050: Stream objects not garbage collected @@ -86,6 +98,8 @@ - Add missing REF_TO_OBJs for references passed from JNI, this enable JamVM to run Qt-Jambi - PR1155: Do not put version number in libjvm.so SONAME +* SystemTap + - Addition of garbage collection probes New in release 1.11.5 (2012-10-16): diff -r 69b6ee297123 -r 7c511d9ab452 configure.ac --- a/configure.ac Tue Jan 29 04:11:25 2013 +0000 +++ b/configure.ac Tue Jan 29 17:06:45 2013 +0000 @@ -1,4 +1,4 @@ -AC_INIT([icedtea6],[1.12.0],[distro-pkg-dev at openjdk.java.net]) +AC_INIT([icedtea6],[1.12.1pre],[distro-pkg-dev at openjdk.java.net]) AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) AC_CONFIG_FILES([Makefile]) From andrew at icedtea.classpath.org Tue Jan 29 12:53:52 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 29 Jan 2013 20:53:52 +0000 Subject: /hg/release/icedtea6-1.12: Fix the release date of 1.12.0; it is... Message-ID: changeset c3d7a7f46fcb in /hg/release/icedtea6-1.12 details: http://icedtea.classpath.org/hg/release/icedtea6-1.12?cmd=changeset;node=c3d7a7f46fcb author: Andrew John Hughes date: Tue Jan 29 20:53:39 2013 +0000 Fix the release date of 1.12.0; it is no longer 2012. 2013-01-29 Andrew John Hughes * NEWS: Use the correct year; it is no longer 2012. diffstat: ChangeLog | 5 +++++ NEWS | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (24 lines): diff -r 7c511d9ab452 -r c3d7a7f46fcb ChangeLog --- a/ChangeLog Tue Jan 29 17:06:45 2013 +0000 +++ b/ChangeLog Tue Jan 29 20:53:39 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-29 Andrew John Hughes + + * NEWS: Use the correct year; it is + no longer 2012. + 2013-01-29 Andrew John Hughes * configure.ac: Bump to 1.12.1pre. diff -r 7c511d9ab452 -r c3d7a7f46fcb NEWS --- a/NEWS Tue Jan 29 17:06:45 2013 +0000 +++ b/NEWS Tue Jan 29 20:53:39 2013 +0000 @@ -12,7 +12,7 @@ New in release 1.12.1 (2012-02-XX): -New in release 1.12.0 (2012-01-29): +New in release 1.12.0 (2013-01-29): * Import of OpenJDK6 b27 (all changes already in security updates) * Import of OpenJDK6 b26 From andrew at icedtea.classpath.org Tue Jan 29 12:55:02 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 29 Jan 2013 20:55:02 +0000 Subject: /hg/icedtea6: Fix the release date of 1.12.0; it is no longer 2012. Message-ID: changeset 3f4adb2d1fc2 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=3f4adb2d1fc2 author: Andrew John Hughes date: Tue Jan 29 20:54:39 2013 +0000 Fix the release date of 1.12.0; it is no longer 2012. 2013-01-29 Andrew John Hughes * NEWS: Use the correct year; it is no longer 2012. diffstat: ChangeLog | 5 +++++ NEWS | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) diffs (24 lines): diff -r 62524789314e -r 3f4adb2d1fc2 ChangeLog --- a/ChangeLog Tue Jan 29 15:29:17 2013 +0000 +++ b/ChangeLog Tue Jan 29 20:54:39 2013 +0000 @@ -1,3 +1,8 @@ +2013-01-29 Andrew John Hughes + + * NEWS: Use the correct year; it is + no longer 2012. + 2013-01-29 Andrew John Hughes * configure.ac: Bump to 1.13.0pre. diff -r 62524789314e -r 3f4adb2d1fc2 NEWS --- a/NEWS Tue Jan 29 15:29:17 2013 +0000 +++ b/NEWS Tue Jan 29 20:54:39 2013 +0000 @@ -12,7 +12,7 @@ New in release 1.13.0 (201X-XX-XX): -New in release 1.12.0 (2012-01-29): +New in release 1.12.0 (2013-01-29): * Import of OpenJDK6 b27 (all changes already in security updates) * Import of OpenJDK6 b26 From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:23:27 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:23:27 +0000 Subject: [Bug 1238] Java fatal error - Linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1238 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #807|application/octet-stream |text/plain mime type| | -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/fe9459c4/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:24:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:24:19 +0000 Subject: [Bug 1238] Java fatal error - Linux In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1238 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/f4e6bae3/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:24:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:24:59 +0000 Subject: [Bug 699] A problem with libre office In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=699 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #3 from Andrew John Hughes --- This release is no longer supported. Please re-open if it can be replicated with a supported version. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/9f7ca59e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:27:55 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:27:55 +0000 Subject: [Bug 709] Crash in native code, problematic frame: libfreetype.so.6 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=709 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #5 from Andrew John Hughes --- This release is no longer supported. Please re-open if it can be replicated with a supported version. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/3cc3fbee/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:33:48 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:33:48 +0000 Subject: [Bug 1272] New: [TRACKER] IcedTea6 1.13 Release Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Bug ID: 1272 Summary: [TRACKER] IcedTea6 1.13 Release Classification: Unclassified Product: IcedTea Version: 6-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Tracker for next IcedTea6 major release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/894ec8de/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:34:14 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:34:14 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/f85a39ea/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:38:04 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:38:04 +0000 Subject: [Bug 1273] New: [IcedTea8] Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields) are actually missing from the boot JDK Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1273 Bug ID: 1273 Summary: [IcedTea8] Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields) are actually missing from the boot JDK Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR1119 for 8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/8e8cef19/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:38:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:38:32 +0000 Subject: [Bug 1273] [IcedTea8] Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields) are actually missing from the boot JDK In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1273 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/f9a17e14/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:40:04 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:40:04 +0000 Subject: [Bug 1274] New: [TRACKER] IcedTea 2.4.0 Release Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1274 Bug ID: 1274 Summary: [TRACKER] IcedTea 2.4.0 Release Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Tracker for next IcedTea7 release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/397347f1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:40:53 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:40:53 +0000 Subject: [Bug 1275] New: [IcedTea8] Provide option to turn off downloading of tarballs (--disable-downloading) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1275 Bug ID: 1275 Summary: [IcedTea8] Provide option to turn off downloading of tarballs (--disable-downloading) Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR1114 for IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/490ef81a/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:41:30 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:41:30 +0000 Subject: [Bug 1275] [IcedTea8] Provide option to turn off downloading of tarballs (--disable-downloading) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1275 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/dca1a317/attachment.html From adomurad at redhat.com Tue Jan 29 13:42:42 2013 From: adomurad at redhat.com (Adam Domurad) Date: Tue, 29 Jan 2013 16:42:42 -0500 Subject: [icedtea-web][rfc] Fix for PR580: http://www.horaoficial.cl/ loads improperly Message-ID: <51084252.60607@redhat.com> Hi all -- so this was a fix that I was working on for the unsigned applet confirmation pop-up dialogue (similar to Oracle's security levels). Turns out this applet is a pretty a good stress test. Basically it causes 13 createApplet calls, which is a good way to reveal concurrency issues in getInstance. Prior to patch: - Some or all of the 3 times that show up never finish loading, except after refresh After patch: - All times show without needing to refresh, as expected So why did it work mysteriously after refreshing ? After refresh, the shared classloader is still around (although it -should- be cleared! thats another bug!), and on the second round of loading all applets latch on to the correct classloader. There was some basic synchronization on urlToLoader, but not enough. It needs to synchronize all instances of the unique key for the entire duration of the get/put. The first approach I took was to simply make JNLPClassLoader#getInstance 'synchronized' -- however parallel loading of different-unique-key applets would suffer. While same-unique-key applets must load sequentially for correct behaviour, a long-loading applet could make a short-loading applet wait a long time if getInstance was simply synchronized. JNLPClassLoader continues to get more complicated, unfortunately ... but this fix is needed. I have also removed a try ... catch that did nothing but re-threw the exception -- although I know this is unrelated, it allowed the diff to be cleaner :-) Feel free to force it back ... Fix changelog: 2013-XX-XX Adam Domurad Fix PR580: http://www.horaoficial.cl/ loads improperly. Applets that must share a class-loader now load sequentially. * NEWS: Mention the fix. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (getUniqueKeyLock): New, atomically grabs or creates a lock for the unique key. (getInstance): Ensure classloader initialization is locked by unique key. (decrementLoaderUseCount): Ensure classloader deinitialization is locked by unique key, get rid of no-longer used locks. -------------- next part -------------- A non-text attachment was scrubbed... Name: PR580.patch Type: text/x-patch Size: 7121 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/0ec32e14/PR580.patch From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:45:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:45:33 +0000 Subject: [Bug 1276] New: [IcedTea7] Synchronise CACAO rules between IcedTea6/7/8 where possible Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1276 Bug ID: 1276 Summary: [IcedTea7] Synchronise CACAO rules between IcedTea6/7/8 where possible Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: CACAO Assignee: stefan at complang.tuwien.ac.at Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org, xerxes at zafena.se Split off PR1176 for IcedTea7. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d6b9545f/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:47:03 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:47:03 +0000 Subject: [Bug 1274] [TRACKER] IcedTea 2.4.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1274 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1276 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/efb613e1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:47:03 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:47:03 +0000 Subject: [Bug 1276] [IcedTea7] Synchronise CACAO rules between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1276 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1274 --- Comment #1 from Andrew John Hughes --- Block 2.4.0 release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/05d76223/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:47:56 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:47:56 +0000 Subject: [Bug 1277] New: [IcedTea8] Synchronise CACAO rules between IcedTea6/7/8 where possible Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1277 Bug ID: 1277 Summary: [IcedTea8] Synchronise CACAO rules between IcedTea6/7/8 where possible Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: CACAO Assignee: stefan at complang.tuwien.ac.at Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org, xerxes at zafena.se Duplicate of PR1176 for IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/873e31a3/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:52:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:52:39 +0000 Subject: [Bug 1113] make distcheck fails due to test/tapset not being distributed In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1113 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |847 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/010a438a/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:52:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:52:39 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |847 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/47cda65e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:52:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:52:39 +0000 Subject: [Bug 986] IcedTea7 fails to build with IcedTea6 CACAO due to to low max heap size. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=986 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |847 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/953b473e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:53:58 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:53:58 +0000 Subject: [Bug 1266] unable to build dev-java/icedtea-6.1.11.5 using gcj-jdk In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1266 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/f5ccd63e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:55:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:55:12 +0000 Subject: [Bug 1278] New: [IcedTea7] Synchronise CACAO versions between IcedTea6/7/8 where possible Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1278 Bug ID: 1278 Summary: [IcedTea7] Synchronise CACAO versions between IcedTea6/7/8 where possible Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: CACAO Assignee: stefan at complang.tuwien.ac.at Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org, xerxes at zafena.se Clone of PR1120 for IcedTea7. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d50e24db/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:56:04 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:56:04 +0000 Subject: [Bug 1279] New: [IcedTea8] Synchronise CACAO versions between IcedTea6/7/8 where possible Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1279 Bug ID: 1279 Summary: [IcedTea8] Synchronise CACAO versions between IcedTea6/7/8 where possible Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: CACAO Assignee: stefan at complang.tuwien.ac.at Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org, xerxes at zafena.se Clone of PR1120 for IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/169dbfdc/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:58:22 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:58:22 +0000 Subject: [Bug 1280] New: [IcedTea7] Shared class data archive should be generated post-build on architectures with the client VM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1280 Bug ID: 1280 Summary: [IcedTea7] Shared class data archive should be generated post-build on architectures with the client VM Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR1171 for IcedTea7. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/52eff31d/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:59:27 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:59:27 +0000 Subject: [Bug 1280] [IcedTea7] Shared class data archive should be generated post-build on architectures with the client VM In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1280 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Target Milestone|--- |2.4.0 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/48db0f92/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 13:59:43 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 21:59:43 +0000 Subject: [Bug 1281] New: [IcedTea8] Shared class data archive should be generated post-build on architectures with the client VM Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1281 Bug ID: 1281 Summary: [IcedTea8] Shared class data archive should be generated post-build on architectures with the client VM Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR1171 for IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/2e4de7c5/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:02:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:02:37 +0000 Subject: [Bug 1278] [IcedTea7] Synchronise CACAO versions between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1278 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d6c7d7b9/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:02:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:02:37 +0000 Subject: [Bug 1279] [IcedTea8] Synchronise CACAO versions between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1279 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/661bdbaf/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:02:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:02:37 +0000 Subject: [Bug 1280] [IcedTea7] Shared class data archive should be generated post-build on architectures with the client VM In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1280 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/5b5b0f63/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:02:37 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:02:37 +0000 Subject: [Bug 1281] [IcedTea8] Shared class data archive should be generated post-build on architectures with the client VM In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1281 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/0bbad266/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:02:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:02:49 +0000 Subject: [Bug 1276] [IcedTea7] Synchronise CACAO rules between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1276 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.4.0 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/8ad5be79/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:03:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:03:05 +0000 Subject: [Bug 1276] [IcedTea7] Synchronise CACAO rules between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1276 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|stefan at complang.tuwien.ac.a |gnu.andrew at redhat.com |t | --- Comment #2 from Andrew John Hughes --- Taking. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/765778c2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:05:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:05:12 +0000 Subject: [Bug 1274] [TRACKER] IcedTea 2.4.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1274 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1280 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/0b487ab2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:05:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:05:12 +0000 Subject: [Bug 1280] [IcedTea7] Shared class data archive should be generated post-build on architectures with the client VM In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1280 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1274 --- Comment #1 from Andrew John Hughes --- Block 2.4.0 release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/63d27fe2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:08:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:08:25 +0000 Subject: [Bug 1282] New: [TRACKER] IcedTea 3.0.0pre1 Release Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Bug ID: 1282 Summary: [TRACKER] IcedTea 3.0.0pre1 Release Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Tracker for first pre-release of IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6b6cecbe/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:09:17 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:09:17 +0000 Subject: [Bug 1279] [IcedTea8] Synchronise CACAO versions between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1279 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|stefan at complang.tuwien.ac.a |gnu.andrew at redhat.com |t | Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target first pre-release of 3.0.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/89c827f4/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:09:36 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:09:36 +0000 Subject: [Bug 1279] [IcedTea8] Synchronise CACAO versions between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1279 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1282 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/10bff3cc/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:09:36 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:09:36 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1279 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/3990c4cd/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:10:05 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:10:05 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Target Milestone|--- |3.0.0pre1 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/b22caebf/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:11:06 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:11:06 +0000 Subject: [Bug 1278] [IcedTea7] Synchronise CACAO versions between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1278 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1274 Assignee|stefan at complang.tuwien.ac.a |gnu.andrew at redhat.com |t | Target Milestone|--- |2.4.0 --- Comment #1 from Andrew John Hughes --- Target 2.4.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/2012dead/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:11:06 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:11:06 +0000 Subject: [Bug 1274] [TRACKER] IcedTea 2.4.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1274 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1278 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/1c4034c5/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:12:24 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:12:24 +0000 Subject: [Bug 1281] [IcedTea8] Shared class data archive should be generated post-build on architectures with the client VM In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1281 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target first pre-release of 3.0.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d94797de/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:12:24 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:12:24 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1281 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6a95c17d/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:13:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:13:41 +0000 Subject: [Bug 1277] [IcedTea8] Synchronise CACAO rules between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1277 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Assignee|stefan at complang.tuwien.ac.a |gnu.andrew at redhat.com |t | Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target first 3.0.0 pre-release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6a73d77f/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:13:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:13:41 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1277 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/ade5a63f/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:15:56 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:15:56 +0000 Subject: [Bug 716] IcedTea7 should bootstrap with IcedTea6 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=716 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|2.1.0 |2.5.0 --- Comment #5 from Andrew John Hughes --- Deferred to 2.5.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/71f534f1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:17:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:17:01 +0000 Subject: [Bug 1275] [IcedTea8] Provide option to turn off downloading of tarballs (--disable-downloading) In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1275 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target first 3.0.0 pre-release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/8d571394/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:17:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:17:01 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1275 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/5330226e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:20:54 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:20:54 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |26 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/df83c7b8/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:22:36 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:22:36 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |94 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d4c7a2d1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:23:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:23:08 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |718 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d31c935f/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:24:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:24:19 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |848 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/0f2e9546/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:24:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:24:19 +0000 Subject: [Bug 848] [IcedTea6] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=848 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks|847 |1272 Assignee|unassigned at icedtea.classpat |gnu.andrew at redhat.com |h.org | Target Milestone|6-1.12.0 |6-1.13.0 Summary|Use XML for AUTHORS/NEWS to |[IcedTea6] Use XML for |ensure reliable formatting |AUTHORS/NEWS to ensure |for producing e.g. release |reliable formatting for |notes. |producing e.g. release | |notes. --- Comment #2 from Andrew John Hughes --- Targetting to 1.13.0. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/01b82c70/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:25:41 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:25:41 +0000 Subject: [Bug 1283] New: [IcedTea8] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1283 Bug ID: 1283 Summary: [IcedTea8] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes. Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR848 for IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/3fdcb510/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:26:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:26:12 +0000 Subject: [Bug 1283] [IcedTea8] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1283 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target first pre-release of 3.0.0 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6f3c65ed/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:26:12 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:26:12 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1283 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/9eee6469/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:28:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:28:26 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |901 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/8ffef0bd/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:28:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:28:26 +0000 Subject: [Bug 901] [IcedTea6] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=901 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Version|unspecified |6-hg Blocks|847 |1272 Target Milestone|--- |6-1.12.0 Summary|[METABUG] Give top priority |[IcedTea6] [METABUG] Give |to the PKCS11 NSS provider, |top priority to the PKCS11 |due to performance |NSS provider, due to |advantages |performance advantages -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/b10ff986/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:28:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:28:49 +0000 Subject: [Bug 901] [IcedTea6] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=901 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|6-1.12.0 |6-1.13.0 --- Comment #2 from Andrew John Hughes --- Target to 1.13.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/a5a4391f/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:29:53 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:29:53 +0000 Subject: [Bug 1284] New: [TRACKER] IcedTea 2.5.0 Release Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1284 Bug ID: 1284 Summary: [TRACKER] IcedTea 2.5.0 Release Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Tracker for IcedTea7 2.5.0 major release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/55b73c5d/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:30:10 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:30:10 +0000 Subject: [Bug 1284] [TRACKER] IcedTea 2.5.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1284 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Target Milestone|--- |2.5.0 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6b73e815/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:31:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:31:16 +0000 Subject: [Bug 1285] New: [IcedTea7] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1285 Bug ID: 1285 Summary: [IcedTea7] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR848 for IcedTea7. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/42bcbd12/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:31:42 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:31:42 +0000 Subject: [Bug 1285] [IcedTea7] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1285 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1284 Target Milestone|--- |2.5.0 --- Comment #1 from Andrew John Hughes --- Target 2.5.0 release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/1e09a836/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:31:42 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:31:42 +0000 Subject: [Bug 1284] [TRACKER] IcedTea 2.5.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1284 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1285 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/7c900753/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:33:13 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:33:13 +0000 Subject: [Bug 1286] New: [IcedTea7] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1286 Bug ID: 1286 Summary: [IcedTea7] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages Classification: Unclassified Product: IcedTea Version: 7-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR901 for IcedTea7. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/1fe238e1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:33:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:33:39 +0000 Subject: [Bug 1286] [IcedTea7] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1286 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1284 Target Milestone|--- |2.5.0 --- Comment #1 from Andrew John Hughes --- Target 2.5.0 release. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6d893b26/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:33:39 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:33:39 +0000 Subject: [Bug 1284] [TRACKER] IcedTea 2.5.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1284 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1286 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/c2ba81e8/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:34:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:34:26 +0000 Subject: [Bug 1287] New: [IcedTea8] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1287 Bug ID: 1287 Summary: [IcedTea8] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR901 for IcedTea8. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/9251c115/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:35:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:35:07 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1287 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/386413e2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:35:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:35:07 +0000 Subject: [Bug 1287] [IcedTea8] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1287 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Aim for 3.0.0 pre-release 1. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/b9dd7f19/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:37:02 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:37:02 +0000 Subject: [Bug 1288] New: [IcedTea6] Allow JARs to optionally be compressed by setting COMPRESS_JARS Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1288 Bug ID: 1288 Summary: [IcedTea6] Allow JARs to optionally be compressed by setting COMPRESS_JARS Classification: Unclassified Product: IcedTea Version: 6-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org Clone of PR1137 for IcedTea6. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/ecbc4f4b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:37:40 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:37:40 +0000 Subject: [Bug 1288] [IcedTea6] Allow JARs to optionally be compressed by setting COMPRESS_JARS In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1288 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1272 Target Milestone|--- |6-1.13.0 --- Comment #1 from Andrew John Hughes --- Aim for 1.13.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/2a6b2169/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:37:40 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:37:40 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1288 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/932d30b1/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:39:04 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:39:04 +0000 Subject: [Bug 1289] New: [IcedTea8] Allow JARs to optionally be compressed by setting COMPRESS_JARS Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1289 Bug ID: 1289 Summary: [IcedTea8] Allow JARs to optionally be compressed by setting COMPRESS_JARS Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/c0bce1e0/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:40:17 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:40:17 +0000 Subject: [Bug 1289] [IcedTea8] Allow JARs to optionally be compressed by setting COMPRESS_JARS In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1289 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target to 3.0.0 pre-release 1. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6cfb51a4/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:40:17 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:40:17 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1289 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/7ee1766c/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:42:14 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:42:14 +0000 Subject: [Bug 1273] [IcedTea8] Only add classes to rt-source-files.txt if the class (or one or more of its methods/fields) are actually missing from the boot JDK In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1273 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target for 3.0.0 pre-release 1. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/55665680/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:42:14 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:42:14 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1273 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/e53a7dc8/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:42:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:42:25 +0000 Subject: [Bug 1274] [TRACKER] IcedTea 2.4.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1274 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Target Milestone|--- |2.4.0 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/44e079e3/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 901] [IcedTea6] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=901 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/fb226bd3/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1276] [IcedTea7] Synchronise CACAO rules between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1276 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/f95697a2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1277] [IcedTea8] Synchronise CACAO rules between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1277 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/b28b9c1c/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1285] [IcedTea7] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1285 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d5823509/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1283] [IcedTea8] Use XML for AUTHORS/NEWS to ensure reliable formatting for producing e.g. release notes. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1283 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/77e9c6e8/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1286] [IcedTea7] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1286 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/d0e2e1d3/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1287] [IcedTea8] [METABUG] Give top priority to the PKCS11 NSS provider, due to performance advantages In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1287 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/ea0df82c/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1288] [IcedTea6] Allow JARs to optionally be compressed by setting COMPRESS_JARS In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1288 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/879b6415/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:50:16 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:50:16 +0000 Subject: [Bug 1289] [IcedTea8] Allow JARs to optionally be compressed by setting COMPRESS_JARS In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1289 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/eec288f2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:53:49 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:53:49 +0000 Subject: [Bug 1290] New: [IcedTea6] Ensure unlimited crypto policy or crypto removal patch is in place. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1290 Bug ID: 1290 Summary: [IcedTea6] Ensure unlimited crypto policy or crypto removal patch is in place. Classification: Unclassified Product: IcedTea Version: 6-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/b10fa30b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:54:23 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:54:23 +0000 Subject: [Bug 1290] [IcedTea6] Ensure unlimited crypto policy or crypto removal patch is in place. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1290 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks| |1272 Target Milestone|--- |6-1.13.0 --- Comment #1 from Andrew John Hughes --- Target to 1.13.0. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/5230d87c/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:54:23 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:54:23 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1290 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/e2ba4299/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:54:59 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:54:59 +0000 Subject: [Bug 1291] New: [IcedTea8] Ensure unlimited crypto policy or crypto removal patch is in place. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1291 Bug ID: 1291 Summary: [IcedTea8] Ensure unlimited crypto policy or crypto removal patch is in place. Classification: Unclassified Product: IcedTea Version: 8-hg Hardware: all OS: All Status: NEW Severity: normal Priority: P3 Component: IcedTea Assignee: gnu.andrew at redhat.com Reporter: gnu.andrew at redhat.com CC: unassigned at icedtea.classpath.org -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/025aac7a/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:55:11 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:55:11 +0000 Subject: [Bug 1274] [TRACKER] IcedTea 2.4.0 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1274 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1170 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/49816865/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:56:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:56:01 +0000 Subject: [Bug 1291] [IcedTea8] Ensure unlimited crypto policy or crypto removal patch is in place. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1291 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/93dabdae/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:56:01 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:56:01 +0000 Subject: [Bug 1290] [IcedTea6] Ensure unlimited crypto policy or crypto removal patch is in place. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1290 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/84c07fc6/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:58:08 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:58:08 +0000 Subject: [Bug 1272] [TRACKER] IcedTea6 1.13 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1272 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |914 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/280d8c81/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:58:58 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:58:58 +0000 Subject: [Bug 915] OpenJDK crashes with no aparent reason In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=915 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Version|unspecified |6-1.10.6 Resolution|--- |WONTFIX --- Comment #1 from Andrew John Hughes --- This version is no longer supported. Please try with a current version and reopen if the problem persists. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/c19758da/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 14:59:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 22:59:19 +0000 Subject: [Bug 978] A fatal error has been detected by the Java Runtime Environment In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=978 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Resolution|--- |WONTFIX Target Milestone|--- |6-1.10.6 --- Comment #1 from Andrew John Hughes --- This version is no longer supported. Please try with a current version and reopen if the problem persists. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/0bc80073/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:01:40 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:01:40 +0000 Subject: [Bug 1291] [IcedTea8] Ensure unlimited crypto policy or crypto removal patch is in place. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1291 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Blocks|1118 |1282 Target Milestone|--- |3.0.0pre1 --- Comment #1 from Andrew John Hughes --- Target to 3.0.0 pre-release 1. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/b2ae09ae/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:01:40 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:01:40 +0000 Subject: [Bug 1282] [TRACKER] IcedTea 3.0.0pre1 Release In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1282 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |1291 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/cf3f55f2/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:01:57 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:01:57 +0000 Subject: [Bug 1291] [IcedTea8] Ensure unlimited crypto policy or crypto removal patch is in place. In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1291 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1118 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/0ac887f5/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:04:45 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:04:45 +0000 Subject: [Bug 856] Applet with Resource Library Fails to Load In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=856 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gnu.andrew at redhat.com Component|NPPlugin |Plugin Product|IcedTea |IcedTea-Web -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/73578c9c/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:05:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:05:07 +0000 Subject: [Bug 873] Crash from simple GUI app In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=873 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gnu.andrew at redhat.com Resolution|--- |WONTFIX --- Comment #1 from Andrew John Hughes --- This version is no longer supported. Please try with a current version and reopen if the problem persists. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/9e1583c4/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:05:53 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:05:53 +0000 Subject: [Bug 877] CUPS should not be a mandatory requirement In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=877 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Version|unspecified |8-hg -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/864b6bfd/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:09:45 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:09:45 +0000 Subject: [Bug 983] try to open app named zekr In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=983 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gnu.andrew at redhat.com Hardware|32-bit |x86 Version|unspecified |2.1.0 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/a60991b6/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:10:54 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:10:54 +0000 Subject: [Bug 1014] eclipse crach In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1014 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gnu.andrew at redhat.com Version|unspecified |6-1.11.1 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/2f3b3a0a/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:11:26 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:11:26 +0000 Subject: [Bug 873] Crash from simple GUI app In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=873 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |6-1.7.4 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/f91a25a8/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:14:32 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:14:32 +0000 Subject: [Bug 983] try to open app named zekr In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=983 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID --- Comment #4 from Andrew John Hughes --- As the RH bug mentions, this is a crash in libxul code not IcedTea/OpenJDK. -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/fea48e3b/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:16:13 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:16:13 +0000 Subject: [Bug 1196] Internal Error (os_linux_zero.cpp:270) fatal error: caught unhandled signal 7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1196 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gnu.andrew at redhat.com Version|unspecified |6-hg OS|Other |Linux -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/a993dbdf/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:16:50 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:16:50 +0000 Subject: [Bug 1202] SunPKCS11 ends with an incorrect template when importing sign-only (no decrypt) on card, PKCS11 does well In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1202 --- Comment #7 from Andrew John Hughes --- What release are you testing on? How can this be reproduced? -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/12e2887a/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:18:20 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:18:20 +0000 Subject: [Bug 1196] Internal Error (os_linux_zero.cpp:270) fatal error: caught unhandled signal 7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1196 Andrew John Hughes changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |INVALID -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/48373f4e/attachment.html From bugzilla-daemon at icedtea.classpath.org Tue Jan 29 15:22:19 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 29 Jan 2013 23:22:19 +0000 Subject: [Bug 1202] SunPKCS11 ends with an incorrect template when importing sign-only (no decrypt) on card, PKCS11 does well In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1202 --- Comment #8 from Andrew John Hughes --- We don't build on Windows, so if that is required to replicate this bug, we'll be unable to help. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130129/6dde1455/attachment.html From andrew at icedtea.classpath.org Tue Jan 29 16:52:28 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 30 Jan 2013 00:52:28 +0000 Subject: /hg/icedtea6: Add missing bug ID. Message-ID: changeset d8acef41b7b6 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d8acef41b7b6 author: Andrew John Hughes date: Wed Jan 30 00:52:15 2013 +0000 Add missing bug ID. 2013-01-29 Andrew John Hughes * NEWS: Add missing bug ID. diffstat: ChangeLog | 4 ++++ NEWS | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) diffs (23 lines): diff -r 3f4adb2d1fc2 -r d8acef41b7b6 ChangeLog --- a/ChangeLog Tue Jan 29 20:54:39 2013 +0000 +++ b/ChangeLog Wed Jan 30 00:52:15 2013 +0000 @@ -1,3 +1,7 @@ +2013-01-29 Andrew John Hughes + + * NEWS: Add missing bug ID. + 2013-01-29 Andrew John Hughes * NEWS: Use the correct year; it is diff -r 3f4adb2d1fc2 -r d8acef41b7b6 NEWS --- a/NEWS Tue Jan 29 20:54:39 2013 +0000 +++ b/NEWS Wed Jan 30 00:52:15 2013 +0000 @@ -68,7 +68,7 @@ are actually missing from the boot JDK - PR1114: Provide option to turn off downloading of tarballs (--disable-downloading) - PR1176: Synchronise CACAO rules between IcedTea6/7/8 where possible - - RH513605: Updating/Installing OpenJDK should recreate the shared class-data archive + - RH513605, PR1171: Updating/Installing OpenJDK should recreate the shared class-data archive - G422525: Apply pax markings before using a freshly built JVM. - PR986: IcedTea7 fails to build with IcedTea6 CACAO due to low max heap size * CACAO From andrew at icedtea.classpath.org Tue Jan 29 18:03:32 2013 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 30 Jan 2013 02:03:32 +0000 Subject: /hg/icedtea6-hg: 19 new changesets Message-ID: changeset de38248f4db4 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=de38248f4db4 author: Andrew John Hughes date: Fri Jan 11 17:11:43 2013 +0000 Explicitly test for the presence of Classpath bug PR43389 and only pre-build StandardMBean if present. 2013-01-11 Andrew John Hughes * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of javax.management.StandardMBean dependent on the 1.6 constructors being missing. * acinclude.m4: (IT_CHECK_FOR_CLASS): Write class toString() output to System.err rather than throwing it away. It then appears in config.log and may be useful in debugging. (IT_CHECK_FOR_METHOD): Fix documentation and add System.err output as for IT_CHECK_FOR_CLASS. (IT_CHECK_FOR_CONSTRUCTOR): New macro to test for the presence of a specific constructor. Works with both private & protected constructors by using a subclass for the compile test. * configure.ac: Add IT_CHECK_FOR_CONSTRUCTOR calls for the two javax.management.StandardMBean constructors added in 1.6. changeset 5c5bde48dfb9 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5c5bde48dfb9 author: Andrew John Hughes date: Mon Jan 21 19:56:33 2013 +0000 Only copy tz.properties if the destination exists. Do it verbosely. 2013-01-14 Andrew John Hughes * Makefile.am: (add-tzdata-support): Only copy tz.properties if destination exists. Do it verbosely. (clean-add-tzdata-support): Only remove tz.properties if present and do so verbosely. (add-tzdata-support-debug): Same as add-tzdata-support but for debug. (clean-add-tzdata-support-debug): Same as clean-add-tzdata-support but for debug. (add-tzdata-support-ecj): Same as add-tzdata-support but for bootstrap. (clean-add-tzdata-support-ecj): Same as clean-add-tzdata-support but for bootstrap. changeset cc35a9049bdd in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=cc35a9049bdd author: Andrew John Hughes date: Mon Jan 21 21:46:50 2013 +0000 PR1119: Detect whether required methods in java.security.cert.X509{Cert,CRL}Selector are actually missing. 2013-01-21 Andrew John Hughes * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of java.security.cert.X509{Cert,CRL}Selector dependent on the necessary methods being missing. * configure.ac: Add IT_CHECK_FOR_METHOD calls for the missing java.security.cert.X509{Cert,CRL}Selector methods added in 1.5. changeset 3465dd7f9596 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=3465dd7f9596 author: Andrew John Hughes date: Mon Jan 21 22:34:53 2013 +0000 Make the inclusion of javax.security.auth.kerberos.KerberosTicket dependent on getSessionKeyType() being missing. 2013-01-21 Andrew John Hughes * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion of javax.security.auth.kerberos.KerberosTicket dependent on getSessionKeyType() being missing. * configure.ac: Add IT_CHECK_FOR_METHOD calls for getSessionKeyType() which is missing in some older versions of GCJ and GNU Classpath (<0.99). changeset bc8359665940 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=bc8359665940 author: Andrew John Hughes date: Tue Jan 22 13:53:18 2013 +0000 JamVM PR1155: Do not put version number in libjvm.so SONAME 2012-09-25 Xerxes Ranby JamVM PR1155: Do not put version number in libjvm.so SONAME * NEWS: Updated. * Makefile.am (JAMVM_VERSION): Updated JamVM to 2012-09-25 revision. (JAMVM_SHA256SUM): Updated. changeset 5c83d26b2437 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5c83d26b2437 author: Andrew John Hughes date: Wed Jan 23 20:58:41 2013 +0000 CA172, PR1266, G453612: ARM hardfloat support for CACAO 2013-01-23 Andrew John Hughes CA172, PR1266: Add ARM hardfloat support to CACAO. * Makefile.am: (CACAO_VERSION): Updated to latest head. (CACAO_SHA256SUM): Likewise. * NEWS: List changes in CACAO since last revision. * patches/cacao/armhf.patch: Patch to enable hardfloat on triplet used by Gentoo. changeset 14c3c86148a4 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=14c3c86148a4 author: Andrew John Hughes date: Fri Jan 25 15:16:55 2013 +0000 Complete work on PR1119 by making javax.security.sasl.Sasl conditional and working with empty ICEDTEA_BOOTSTRAP_CLASSES. 2013-01-25 Andrew John Hughes PR1119: Only add classes to rt-source-files.txt if the class, or one or more of its methods/fields, are actually missing from the boot JDK * Makefile.am: (ICEDTEA_BOOTSTRAP_CLASSES): Initialise to empty. Make the inclusion of javax.security.sasl.Sasl dependent on the CREDENTIALS field being missing. * acinclude.m4: (IT_CHECK_FOR_STATIC_FIELD): New method to check for a static field. * configure.ac: Invoke IT_CHECK_FOR_STATIC_FIELD for javax.security.sasl.Sasl.CREDENTIALS. 2012-08-16 Andrew John Hughes * Makefile.am: (rt-class-files.stamp): Add test of contents of ICEDTEA_BOOTSTRAP_CLASSES. Note; need to use grep as field contains whitespace. (rt.stamp): Likewise. 2010-09-14 Andrew John Hughes * Makefile.am, (rt-source-files.txt): Remove any existing version prior to generation to avoid duplication of source files. changeset b6442f2ba732 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=b6442f2ba732 author: Andrew John Hughes date: Fri Jan 25 15:20:00 2013 +0000 Fix bad bug reference caught by Stefan Ring. 2013-01-25 Andrew John Hughes * NEWS: Fix bad bug reference caught by Stefan Ring. changeset 5c657c998832 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5c657c998832 author: Andrew John Hughes date: Fri Jan 25 19:30:32 2013 +0000 Prepare for release. 2013-01-25 Andrew John Hughes * configure.ac: Set to 1.12.0. * NEWS: Add release date. changeset 2bb62ac6d345 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=2bb62ac6d345 author: Andrew John Hughes date: Fri Jan 25 19:48:41 2013 +0000 G422525: Apply pax markings before using a freshly built JVM. 2012-06-24 Ralph Sennhauser * Makefile.am: (ICEDTEA_PATCHES): Replace HAS_PAX with WITH_PAX. Add RMIC patch. (icedtea): Invoke pax-mark-vm on built image. (icedtea-ecj): Likewise. * acinclude.m4: (IT_WITH_PAX): New macro to specify pax utility. * configure.ac: Call IT_WITH_PAX instead of IT_CHECK_FOR_PAX. * patches/pax-mark-rmic-java.patch: New patch to PaX mark VM before running just-built rmic. changeset 6af17f5442ff in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6af17f5442ff author: Andrew John Hughes date: Fri Jan 25 21:28:47 2013 +0000 Cleanup pax marking additions from Gentoo and mention in NEWS. 2013-01-25 Andrew John Hughes * Makefile.am: (.PHONY): Add clean-pax-mark-vm, clean-pax-mark-vm-debug, clean-pax-mark-vm-ecj. (icedtea): Move pax-mark-vm invocation to its own rule. (icedtea-against-icedtea): Depend on pax-mark-vm. (clean-icedtea-against-icedtea): Likewise for clean-pax-mark-vm. (icedtea-debug-against-icedtea): Likewise for pax-mark-vm-debug. (clean-icedtea-debug-against-icedtea): Likewise for clean-pax-mark-vm-debug. (clean-add-archive): Delete the archive. (clean-add-archive-debug): Likewise for debug. (pax-mark-vm): Move pax marking to here. (clean-pax-mark-vm): And remove stamp here. (pax-mark-vm-debug): Pax marking for debug build. (clean-pax-mark-vm-debug): And remove stamp here. (icedtea-ecj): Move pax-mark-vm to its own rule. (icedtea-against-icedtea): Depend on pax-mark-vm-ecj. (clean-icedtea-against-icedtea): Likewise for clean-pax-mark-vm-ecj. (clean-add-archive-ecj): Delete the archive. (pax-mark-vm-ecj): Move ecj pax marking to here. (clean-pax-mark-vm-ecj): And remove stamp here. * acinclude.m4: (IT_CHECK_FOR_PAX): Remove now unused macro. * NEWS: Mention pax marking fixes. changeset f6a0a42bf443 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=f6a0a42bf443 author: Andrew John Hughes date: Fri Jan 25 21:33:29 2013 +0000 Add pax-mark-vm.in script template missing in earlier commit. 2013-01-25 Andrew John Hughes * pax-mark-vm.in: Add template for pax mark script. changeset 5a1e1b396644 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=5a1e1b396644 author: Andrew John Hughes date: Tue Jan 29 01:21:09 2013 +0000 PR986: IcedTea7 fails to build with IcedTea6 CACAO due to low max heap size 2013-01-28 Andrew John Hughes * patches/cacao/memory.patch: Extend with additional cases in HotSpot and JAXWS. 2012-06-12 Andrew John Hughes PR986 * Makefile.am: (ICEDTEA_PATCHES): Add memory patch when building using CACAO as well, even if the result is not a CACAO build. * acinclude.m4: (IT_USING_CACAO): New macro; detects use of CACAO as the build VM so memory limits can be raised accordingly. * configure.ac: Call IT_USING_CACAO. * NEWS: Updated. changeset 69b6ee297123 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=69b6ee297123 author: Andrew John Hughes date: Tue Jan 29 04:11:25 2013 +0000 Added tag icedtea6-1.12-branchpoint for changeset 5a1e1b396644 changeset 73dc59c4b6df in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=73dc59c4b6df author: Andrew John Hughes date: Tue Jan 29 15:27:37 2013 +0000 Update NEWS to match release announcement. 2013-01-29 Andrew John Hughes * NEWS: Update to match announcement. changeset 62524789314e in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=62524789314e author: Andrew John Hughes date: Tue Jan 29 15:29:17 2013 +0000 Prepare for 1.13.0. 2013-01-29 Andrew John Hughes * configure.ac: Bump to 1.13.0pre. * NEWS: Add 1.13.0 section. changeset 3f4adb2d1fc2 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=3f4adb2d1fc2 author: Andrew John Hughes date: Tue Jan 29 20:54:39 2013 +0000 Fix the release date of 1.12.0; it is no longer 2012. 2013-01-29 Andrew John Hughes * NEWS: Use the correct year; it is no longer 2012. changeset d8acef41b7b6 in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=d8acef41b7b6 author: Andrew John Hughes date: Wed Jan 30 00:52:15 2013 +0000 Add missing bug ID. 2013-01-29 Andrew John Hughes * NEWS: Add missing bug ID. changeset 6b20a50ba2fa in /hg/icedtea6-hg details: http://icedtea.classpath.org/hg/icedtea6-hg?cmd=changeset;node=6b20a50ba2fa author: Andrew John Hughes date: Wed Jan 30 01:18:32 2013 +0000 Merge diffstat: .hgtags | 1 + ChangeLog | 213 +++++++++++++++++++++++++++++++++++++++ Makefile.am | 185 ++++++++++++++++++++++++++------- NEWS | 31 +++++- acinclude.m4 | 206 ++++++++++++++++++++++++++++++++++--- configure.ac | 53 +++++++++- patches/cacao/armhf.patch | 12 ++ patches/cacao/memory.patch | 48 ++++++++ patches/pax-mark-rmic-java.patch | 10 + pax-mark-vm.in | 13 ++ 10 files changed, 709 insertions(+), 63 deletions(-) diffs (truncated from 1104 to 500 lines): diff -r cea49ba2afcd -r 6b20a50ba2fa .hgtags --- a/.hgtags Wed Nov 28 14:42:31 2012 +0000 +++ b/.hgtags Wed Jan 30 01:18:32 2013 +0000 @@ -21,3 +21,4 @@ cb463b94b82da269ea089c481ed5e39700525a8a icedtea6-1.9-branchpoint 21f2a8d158545a161ba0d997c13bdba1e6166394 icedtea6-1.10-branchpoint 24c5bd2e7d574441813bfb8f9e4636e50c5d7c28 icedtea6-1.11-branchpoint +5a1e1b39664409e9a0945ba49b558f25ef976c58 icedtea6-1.12-branchpoint diff -r cea49ba2afcd -r 6b20a50ba2fa ChangeLog --- a/ChangeLog Wed Nov 28 14:42:31 2012 +0000 +++ b/ChangeLog Wed Jan 30 01:18:32 2013 +0000 @@ -1,3 +1,211 @@ +2013-01-29 Andrew John Hughes + + * NEWS: Add missing bug ID. + +2013-01-29 Andrew John Hughes + + * NEWS: Use the correct year; it is + no longer 2012. + +2013-01-29 Andrew John Hughes + + * configure.ac: Bump to 1.13.0pre. + * NEWS: Add 1.13.0 section. + +2013-01-29 Andrew John Hughes + + * NEWS: Update to match announcement. + +2013-01-28 Andrew John Hughes + + * patches/cacao/memory.patch: + Extend with additional cases in HotSpot and + JAXWS. + +2012-06-12 Andrew John Hughes + + PR986 + * Makefile.am: + (ICEDTEA_PATCHES): Add memory patch when + building using CACAO as well, even if the + result is not a CACAO build. + * acinclude.m4: + (IT_USING_CACAO): New macro; detects use of + CACAO as the build VM so memory limits can + be raised accordingly. + * configure.ac: Call IT_USING_CACAO. + * NEWS: Updated. + +2013-01-25 Andrew John Hughes + + * pax-mark-vm.in: Add template for pax mark + script. + +2013-01-25 Andrew John Hughes + + * Makefile.am: + (.PHONY): Add clean-pax-mark-vm, + clean-pax-mark-vm-debug, clean-pax-mark-vm-ecj. + (icedtea): Move pax-mark-vm invocation to + its own rule. + (icedtea-against-icedtea): Depend on pax-mark-vm. + (clean-icedtea-against-icedtea): Likewise for + clean-pax-mark-vm. + (icedtea-debug-against-icedtea): Likewise for + pax-mark-vm-debug. + (clean-icedtea-debug-against-icedtea): Likewise for + clean-pax-mark-vm-debug. + (clean-add-archive): Delete the archive. + (clean-add-archive-debug): Likewise for debug. + (pax-mark-vm): Move pax marking to here. + (clean-pax-mark-vm): And remove stamp here. + (pax-mark-vm-debug): Pax marking for debug build. + (clean-pax-mark-vm-debug): And remove stamp here. + (icedtea-ecj): Move pax-mark-vm to its own rule. + (icedtea-against-icedtea): Depend on pax-mark-vm-ecj. + (clean-icedtea-against-icedtea): Likewise for + clean-pax-mark-vm-ecj. + (clean-add-archive-ecj): Delete the archive. + (pax-mark-vm-ecj): Move ecj pax marking to here. + (clean-pax-mark-vm-ecj): And remove stamp here. + * acinclude.m4: + (IT_CHECK_FOR_PAX): Remove now unused macro. + * NEWS: Mention pax marking fixes. + +2012-06-24 Ralph Sennhauser + + * Makefile.am: + (ICEDTEA_PATCHES): Replace HAS_PAX with + WITH_PAX. Add RMIC patch. + (icedtea): Invoke pax-mark-vm on built image. + (icedtea-ecj): Likewise. + * acinclude.m4: + (IT_WITH_PAX): New macro to specify pax utility. + * configure.ac: + Call IT_WITH_PAX instead of IT_CHECK_FOR_PAX. + * patches/pax-mark-rmic-java.patch: + New patch to PaX mark VM before running just-built + rmic. + +2013-01-25 Andrew John Hughes + + * configure.ac: Set to 1.12.0. + * NEWS: Add release date. + +2013-01-25 Andrew John Hughes + + * NEWS: Fix bad bug reference caught by + Stefan Ring. + +2013-01-25 Andrew John Hughes + + PR1119: Only add classes to rt-source-files.txt if + the class, or one or more of its methods/fields, + are actually missing from the boot JDK + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Initialise to + empty. Make the inclusion of + javax.security.sasl.Sasl dependent on the + CREDENTIALS field being missing. + * acinclude.m4: + (IT_CHECK_FOR_STATIC_FIELD): New method to + check for a static field. + * configure.ac: Invoke IT_CHECK_FOR_STATIC_FIELD + for javax.security.sasl.Sasl.CREDENTIALS. + +2012-08-16 Andrew John Hughes + + * Makefile.am: + (rt-class-files.stamp): Add test of contents of + ICEDTEA_BOOTSTRAP_CLASSES. Note; need to use grep as + field contains whitespace. + (rt.stamp): Likewise. + +2010-09-14 Andrew John Hughes + + * Makefile.am, + (rt-source-files.txt): Remove any existing + version prior to generation to avoid duplication + of source files. + +2013-01-23 Andrew John Hughes + + CA172, PR1266: Add ARM hardfloat support to CACAO. + * Makefile.am: + (CACAO_VERSION): Updated to latest head. + (CACAO_SHA256SUM): Likewise. + * NEWS: List changes in CACAO since last revision. + * patches/cacao/armhf.patch: + Patch to enable hardfloat on triplet used by Gentoo. + +2012-09-25 Xerxes R??nby + + JamVM + PR1155: Do not put version number in libjvm.so SONAME + * NEWS: Updated. + * Makefile.am + (JAMVM_VERSION): Updated JamVM to 2012-09-25 revision. + (JAMVM_SHA256SUM): Updated. + +2013-01-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion + of javax.security.auth.kerberos.KerberosTicket + dependent on getSessionKeyType() being missing. + * configure.ac: + Add IT_CHECK_FOR_METHOD calls for + getSessionKeyType() which is missing in some + older versions of GCJ and GNU Classpath (<0.99). + +2013-01-21 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion + of java.security.cert.X509{Cert,CRL}Selector + dependent on the necessary methods being missing. + * configure.ac: + Add IT_CHECK_FOR_METHOD calls for the + missing java.security.cert.X509{Cert,CRL}Selector + methods added in 1.5. + +2013-01-14 Andrew John Hughes + + * Makefile.am: + (add-tzdata-support): Only copy tz.properties if + destination exists. Do it verbosely. + (clean-add-tzdata-support): Only remove tz.properties + if present and do so verbosely. + (add-tzdata-support-debug): Same as add-tzdata-support + but for debug. + (clean-add-tzdata-support-debug): Same as + clean-add-tzdata-support but for debug. + (add-tzdata-support-ecj): Same as add-tzdata-support + but for bootstrap. + (clean-add-tzdata-support-ecj): Same as + clean-add-tzdata-support but for bootstrap. + +2013-01-11 Andrew John Hughes + + * Makefile.am: + (ICEDTEA_BOOTSTRAP_CLASSES): Make the inclusion + of javax.management.StandardMBean dependent on + the 1.6 constructors being missing. + * acinclude.m4: + (IT_CHECK_FOR_CLASS): Write class toString() output + to System.err rather than throwing it away. It then + appears in config.log and may be useful in debugging. + (IT_CHECK_FOR_METHOD): Fix documentation and add + System.err output as for IT_CHECK_FOR_CLASS. + (IT_CHECK_FOR_CONSTRUCTOR): New macro to test for + the presence of a specific constructor. Works + with both private & protected constructors by + using a subclass for the compile test. + * configure.ac: + Add IT_CHECK_FOR_CONSTRUCTOR calls for the + two javax.management.StandardMBean constructors + added in 1.6. + 2012-11-28 Andrew John Hughes * javac.in: @@ -107,6 +315,11 @@ 2012-10-31 Andrew John Hughes + * Makefile.am: + (OPENJDK_VERSION): Bump to next release, b28. + +2012-10-31 Andrew John Hughes + * generated/com/sun/corba/se/impl/logging/ActivationSystemException.java, * generated/com/sun/corba/se/impl/logging/IORSystemException.java, * generated/com/sun/corba/se/impl/logging/InterceptorsSystemException.java, diff -r cea49ba2afcd -r 6b20a50ba2fa Makefile.am --- a/Makefile.am Wed Nov 28 14:42:31 2012 +0000 +++ b/Makefile.am Wed Jan 30 01:18:32 2013 +0000 @@ -2,17 +2,17 @@ OPENJDK_DATE = 26_oct_2012 OPENJDK_SHA256SUM = 044c3877b15940ff04f8aa817337f2878a00cc89674854557f1a02f15b1802a0 -OPENJDK_VERSION = b27 +OPENJDK_VERSION = b28 OPENJDK_URL = http://download.java.net/openjdk/jdk6/promoted/$(OPENJDK_VERSION)/ -CACAO_VERSION = 9968abd511a3 -CACAO_SHA256SUM = 3b1ce9d2205d2afba4614a194484341758ee2cb340396310ac2c00e5a2a20955 +CACAO_VERSION = 68fe50ac34ec +CACAO_SHA256SUM = b8230f20d7022f9230bbfea13b2f3f179b2f42db40138ac6d32c82fc418ffc3a CACAO_BASE_URL = http://icedtea.classpath.org/download/drops/cacao CACAO_URL = $(CACAO_BASE_URL)/$(CACAO_VERSION).tar.gz CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz -JAMVM_VERSION = e70f2450890b82c37422616cc85e1a23385f03cd -JAMVM_SHA256SUM = 3ca7e297ef4daa56c3dd733e21bce795d57ab071243369aa9400c0384ada8a4c +JAMVM_VERSION = 0972452d441544f7dd29c55d64f1ce3a5db90d82 +JAMVM_SHA256SUM = bfa706402ac934d24f7119eb78f6be65e91439a4b2e49dbcc21e288137808f03 JAMVM_BASE_URL = http://icedtea.classpath.org/download/drops/jamvm JAMVM_URL = $(JAMVM_BASE_URL)/jamvm-$(JAMVM_VERSION).tar.gz JAMVM_SRC_ZIP = jamvm-$(JAMVM_VERSION).tar.gz @@ -63,16 +63,7 @@ # Sources used from OpenJDK. -# PR42003 - javax.swing.plaf.basic.BasicDirectoryModel -# PR43389 - javax.management.StandardMBean -# PR54274 - sun.security.other requires missing X509CRLSelector methods -# PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field -ICEDTEA_BOOTSTRAP_CLASSES = \ - $(SHARE)/javax/management/StandardMBean.java \ - $(SHARE)/java/security/cert/X509CRLSelector.java \ - $(SHARE)/java/security/cert/X509CertSelector.java \ - $(SHARE)/javax/security/sasl/Sasl.java \ - $(SHARE)/javax/security/auth/kerberos/KerberosTicket.java +ICEDTEA_BOOTSTRAP_CLASSES = #PR42003 - Missing javax.swing.plaf.basic.BasicDirectoryModel methods cause OpenJDK build failure if LACKS_JAVAX_SWING_PLAF_BASIC_BASICDIRECTORYMODEL_ADDPROPERTYCHANGELISTENER @@ -88,6 +79,54 @@ endif endif +# PR43389 - javax.management.StandardMBean +if LACKS_JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/management/StandardMBean.java +else +if LACKS_JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_THREE_ARG +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/management/StandardMBean.java +endif +endif + +# PR54274 - sun.security.other requires missing X509CRLSelector methods +if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_GETSUBJECT +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CertSelector.java +else +if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_SETISSUER +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CertSelector.java +else +if LACKS_JAVA_SECURITY_CERT_X509CERTSELECTOR_SETSUBJECT +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CertSelector.java +endif +endif +endif +if LACKS_JAVA_SECURITY_CERT_X509CRLSELECTOR_ADDISSUER +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CRLSelector.java +if LACKS_JAVA_SECURITY_CERT_X509CRLSELECTOR_SETISSUERS +else +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/java/security/cert/X509CRLSelector.java +endif +endif + +# PR41686 - Building sun.security.jgss.GSSUtil requires javax.security.auth.kerberos.KerberosTicket.getSessionKeyType() +if LACKS_JAVAX_SECURITY_AUTH_KERBEROS_KERBEROSTICKET_GETSESSIONKEYTYPE +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/security/auth/kerberos/KerberosTicket.java +endif + +# PR54275 - sun.security.sasl requires missing Sasl.CREDENTIALS field +if LACKS_JAVAX_SECURITY_SASL_SASL_CREDENTIALS +ICEDTEA_BOOTSTRAP_CLASSES += \ + $(SHARE)/javax/security/sasl/Sasl.java +endif + # Flags MEMORY_LIMIT = -J-Xmx1024m IT_CFLAGS=$(CFLAGS) $(ARCHFLAG) @@ -441,8 +480,14 @@ if BUILD_CACAO ICEDTEA_PATCHES += \ patches/cacao/launcher.patch \ + patches/cacao/memory.patch \ + patches/cacao/armhf.patch +else +if USING_CACAO +ICEDTEA_PATCHES += \ patches/cacao/memory.patch endif +endif if ENABLE_PULSE_JAVA ICEDTEA_PATCHES += \ @@ -471,8 +516,10 @@ NSS_PATCHES = patches/nss-not-enabled-config.patch endif -if HAS_PAX -ICEDTEA_PATCHES += patches/no-test_gamma.patch +if WITH_PAX +ICEDTEA_PATCHES += \ + patches/no-test_gamma.patch \ + patches/pax-mark-rmic-java.patch endif ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES) @@ -507,7 +554,7 @@ endif endif -if !HAS_PAX +if !WITH_PAX ICEDTEA_ECJ_PATCHES += patches/ecj/no-test_gamma.patch endif @@ -721,7 +768,8 @@ clean-add-pulseaudio clean-add-pulseaudio-debug clean-add-nss clean-add-nss-debug \ clean-add-tzdata-support clean-add-tzdata-support-debug clean-add-systemtap-ecj \ clean-add-pulseaudio-ecj clean-add-nss-ecj clean-add-tzdata-support-ecj clean-fonts \ - clean-download-hotspot clean-tests clean-tapset-report jtregcheck + clean-download-hotspot clean-tests clean-tapset-report jtregcheck clean-pax-mark-vm \ + clean-pax-mark-vm-debug clean-pax-mark-vm-ecj env: @echo 'unset JAVA_HOME' @@ -1523,27 +1571,28 @@ stamps/icedtea-against-icedtea.stamp: stamps/icedtea.stamp \ stamps/add-jamvm.stamp stamps/add-cacao.stamp stamps/add-zero.stamp \ - stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp stamps/add-tzdata-support.stamp \ - stamps/add-archive.stamp + stamps/add-systemtap.stamp stamps/add-pulseaudio.stamp stamps/add-nss.stamp \ + stamps/add-tzdata-support.stamp stamps/add-archive.stamp stamps/pax-mark-vm.stamp mkdir -p stamps touch stamps/icedtea-against-icedtea.stamp clean-icedtea-against-icedtea: clean-add-jamvm clean-add-zero clean-add-cacao \ clean-add-systemtap clean-add-pulseaudio clean-add-nss clean-add-tzdata-support \ - clean-add-archive + clean-add-archive clean-pax-mark-vm rm -f stamps/icedtea-against-icedtea.stamp stamps/icedtea-debug-against-icedtea.stamp: stamps/icedtea-debug.stamp \ stamps/add-jamvm-debug.stamp stamps/add-cacao-debug.stamp \ stamps/add-zero-debug.stamp stamps/add-systemtap-debug.stamp stamps/add-pulseaudio-debug.stamp \ - stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp stamps/add-archive-debug.stamp + stamps/add-nss-debug.stamp stamps/add-tzdata-support-debug.stamp stamps/add-archive-debug.stamp \ + stamps/pax-mark-vm-debug.stamp mkdir -p stamps touch stamps/icedtea-debug-against-icedtea.stamp clean-icedtea-debug-against-icedtea: clean-add-zero-debug \ clean-add-jamvm-debug clean-add-cacao-debug clean-add-systemtap-debug \ clean-add-pulseaudio-debug clean-add-nss-debug clean-add-tzdata-support-debug \ - clean-add-archive-debug + clean-add-archive-debug clean-pax-mark-vm-debug rm -f stamps/icedtea-debug-against-icedtea.stamp stamps/add-systemtap.stamp: stamps/icedtea.stamp @@ -1757,24 +1806,32 @@ stamps/add-tzdata-support.stamp: stamps/icedtea.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ; \ + fi endif touch stamps/add-tzdata-support.stamp clean-add-tzdata-support: - rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support.stamp stamps/add-tzdata-support-debug.stamp: stamps/icedtea-debug.stamp if WITH_TZDATA_DIR - cp $(abs_top_builddir)/tz.properties \ - $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib ] ; then \ + cp -v $(abs_top_builddir)/tz.properties \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; \ + fi endif touch stamps/add-tzdata-support-debug.stamp clean-add-tzdata-support-debug: - rm -f $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties + if [ -e $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ] ; then \ + rm -vf $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/tz.properties ; \ + fi rm -f stamps/add-tzdata-support-debug.stamp stamps/add-archive.stamp: stamps/icedtea.stamp @@ -1788,6 +1845,7 @@ touch stamps/add-archive.stamp clean-add-archive: + rm -vf $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)/*/*.jsa rm -f stamps/add-archive.stamp stamps/add-archive-debug.stamp: stamps/icedtea-debug.stamp @@ -1801,8 +1859,27 @@ touch stamps/add-archive-debug.stamp clean-add-archive-debug: + rm -vf $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)/*/*.jsa rm -f stamps/add-archive-debug.stamp +stamps/pax-mark-vm.stamp: stamps/icedtea.stamp +if WITH_PAX + $(abs_top_builddir)/pax-mark-vm $(BUILD_OUTPUT_DIR)/j2sdk-image +endif + touch $@ + +clean-pax-mark-vm: + rm -f stamps/pax-mark-vm.stamp + +stamps/pax-mark-vm-debug.stamp: stamps/icedtea-debug.stamp +if WITH_PAX + $(abs_top_builddir)/pax-mark-vm $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image +endif + touch $@ + +clean-pax-mark-vm-debug: + rm -f stamps/pax-mark-vm-debug.stamp + # OpenJDK ecj Targets # =================== @@ -1824,12 +1901,12 @@ stamps/icedtea-against-ecj.stamp: stamps/icedtea-ecj.stamp stamps/add-systemtap-ecj.stamp \ stamps/add-pulseaudio-ecj.stamp stamps/add-nss-ecj.stamp stamps/add-tzdata-support-ecj.stamp \ - stamps/add-archive-ecj.stamp + stamps/add-archive-ecj.stamp stamps/pax-mark-vm-ecj.stamp mkdir -p stamps touch stamps/icedtea-against-ecj.stamp clean-icedtea-against-ecj: clean-add-systemtap-ecj clean-add-pulseaudio-ecj clean-add-nss-ecj \ From ptisnovs at icedtea.classpath.org Wed Jan 30 00:13:18 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 30 Jan 2013 08:13:18 +0000 Subject: /hg/gfx-test: Ten new tests added into the test suite Paths.java. Message-ID: changeset f1dfde32c5a5 in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=f1dfde32c5a5 author: Pavel Tisnovsky date: Wed Jan 30 09:16:14 2013 +0100 Ten new tests added into the test suite Paths.java. diffstat: ChangeLog | 5 + src/org/gfxtest/testsuites/Paths.java | 222 ++++++++++++++++++++++++++++++++++ 2 files changed, 227 insertions(+), 0 deletions(-) diffs (244 lines): diff -r a631f9ef36fb -r f1dfde32c5a5 ChangeLog --- a/ChangeLog Tue Jan 29 09:58:37 2013 +0100 +++ b/ChangeLog Wed Jan 30 09:16:14 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-30 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/Paths.java: + Ten new tests added into the test suite Paths.java. + 2013-01-29 Pavel Tisnovsky * src/org/gfxtest/testsuites/BitBltBasicTests.java: diff -r a631f9ef36fb -r f1dfde32c5a5 src/org/gfxtest/testsuites/Paths.java --- a/src/org/gfxtest/testsuites/Paths.java Tue Jan 29 09:58:37 2013 +0100 +++ b/src/org/gfxtest/testsuites/Paths.java Wed Jan 30 09:16:14 2013 +0100 @@ -898,6 +898,228 @@ } /** + * Check if closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClosedPathDoubleThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawClosedPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCrossedClosedPathFloatThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawCrossedPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with thick stroke width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCrossedClosedPathDoubleThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeThickWidth(graphics2d); + // draw the path + drawCrossedPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by an ellipse shape. Path is rendered + * using stroke paint with extra thick width. + * Line path is constructed using new Path.Float() + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testLinePathFloatExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawLinePathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by an ellipse shape. Path is rendered + * using stroke paint with extra thick width. + * Line path is constructed using new Path.Double() + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testLinePathDoubleExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawLinePathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testQuadraticPathFloatExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawQuadraticPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if quadratic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testQuadraticPathDoubleExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawQuadraticPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCubicPathFloatExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawCubicPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if cubic Bezier path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCubicPathDoubleExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawCubicPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClosedPathFloatExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawClosedPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args From ptisnovs at icedtea.classpath.org Wed Jan 30 00:19:03 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Wed, 30 Jan 2013 08:19:03 +0000 Subject: /hg/rhino-tests: Three new tests added into the test suite Scrip... Message-ID: changeset 667993be1ed8 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=667993be1ed8 author: Pavel Tisnovsky date: Wed Jan 30 09:22:04 2013 +0100 Three new tests added into the test suite ScriptEngineClassTest. diffstat: ChangeLog | 5 + src/org/RhinoTests/ScriptEngineClassTest.java | 72 ++++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 1 deletions(-) diffs (115 lines): diff -r 5292981a360e -r 667993be1ed8 ChangeLog --- a/ChangeLog Tue Jan 29 09:47:12 2013 +0100 +++ b/ChangeLog Wed Jan 30 09:22:04 2013 +0100 @@ -1,3 +1,8 @@ +2013-01-30 Pavel Tisnovsky + + * src/org/RhinoTests/ScriptEngineClassTest.java: + Three new tests added into the test suite ScriptEngineClassTest. + 2013-01-29 Pavel Tisnovsky * src/org/RhinoTests/ScriptContextClassTest.java: diff -r 5292981a360e -r 667993be1ed8 src/org/RhinoTests/ScriptEngineClassTest.java --- a/src/org/RhinoTests/ScriptEngineClassTest.java Tue Jan 29 09:47:12 2013 +0100 +++ b/src/org/RhinoTests/ScriptEngineClassTest.java Wed Jan 30 09:22:04 2013 +0100 @@ -1,7 +1,7 @@ /* Rhino test framework - Copyright (C) 2011, 2012 Red Hat + Copyright (C) 2011, 2012, 2013 Red Hat This file is part of IcedTea. @@ -45,6 +45,7 @@ import java.util.List; import java.util.Map; import java.util.HashMap; +import java.util.TreeMap; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -261,6 +262,15 @@ } /** + * Test for method javax.script.ScriptEngine.getClass().getCanonicalName() + */ + protected void testGetCanonicalName() { + String canonicalName = this.scriptEngineClass.getCanonicalName(); + assertEquals(canonicalName, "javax.script.ScriptEngine", + "Method javax.script.ScriptEngine.getClass().getCanonicalName() returns wrong value " + canonicalName); + } + + /** * Test for method javax.script.ScriptEngine.getClass().getSuperclass() */ protected void testGetSuperclass() { @@ -314,6 +324,66 @@ } /** + * Test for method javax.script.ScriptEngine.getClass().getConstructor() + */ + protected void testGetConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.scriptEngineClass.getConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.ScriptEngine.getClass().getDeclaredConstructor() + */ + protected void testGetDeclaredConstructor() { + // following constructors should exist + Map constructorsThatShouldExist_jdk6 = new TreeMap(); + + Map constructorsThatShouldExist_jdk7 = new TreeMap(); + + Map constructorsThatShouldExist = getJavaVersion() < 7 ? constructorsThatShouldExist_jdk6 : constructorsThatShouldExist_jdk7; + + // check if all required constructors really exist + for (Map.Entry constructorThatShouldExists : constructorsThatShouldExist.entrySet()) { + try { + Constructor constructor = this.scriptEngineClass.getDeclaredConstructor(constructorThatShouldExists.getValue()); + assertNotNull(constructor, + "constructor " + constructorThatShouldExists.getKey() + " not found"); + String constructorName = constructor.getName(); + assertNotNull(constructorName, + "constructor " + constructorThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(constructorName.equals(constructorThatShouldExists.getKey()), + "constructor " + constructorThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.ScriptEngine.getClass().getFields() */ protected void testGetFields() { From bugzilla-daemon at icedtea.classpath.org Wed Jan 30 00:27:50 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 30 Jan 2013 08:27:50 +0000 Subject: [Bug 1202] SunPKCS11 ends with an incorrect template when importing sign-only (no decrypt) on card, PKCS11 does well In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1202 --- Comment #9 from helpcrypto at gmail.com --- (In reply to comment #8) > We don't build on Windows, so if that is required to replicate this bug, > we'll be unable to help. Hi Andrew. IIRC this also happened in Linux, i'll check for it and keep you informed. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/11cb532d/attachment.html From jvanek at redhat.com Wed Jan 30 04:06:27 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 30 Jan 2013 13:06:27 +0100 Subject: Newbie questions In-Reply-To: <201301290216.r0T2GU9f027456@mail-web03.excite.co.jp> References: <201301290216.r0T2GU9f027456@mail-web03.excite.co.jp> Message-ID: <51090CC3.4020406@redhat.com> On 01/29/2013 03:16 AM, Jakob Wisor wrote: > "Jiri Vanek" wrote: >> On 01/28/2013 07:47 PM, Omair Majid wrote: >>> Hi, >>> >>> On 01/27/2013 06:18 AM, Jakob Wisor wrote: >>>> I have been working with the javaws deployment tool recently and have >>>> noticed that it lacks a localization for Polish. So, I looked for the >>>> localized resource files and thought I could provide that. I was >>>> quickly able to localize javaws' syntax description in >>>> jre/lib/deploy/messages.properties. But I was a little bit stuck with >>>> the rest. After building a Polish ListResourceBundle based on >>>> deploy.jar/com/sun/deploy/resources/Deployment.class and successfully >>>> testing it, I was wondering whether the source code for the >>>> deployment tool is included in OpenJDK. Greping OpenJDK's source code >>>> brought no enlightenment. Is the deployment tool indeed not part of >>>> OpenJDK? If not, where should I send my patch for review to? >>> >>> You are correct: OpenJDK does not include the source for javaws. The >>> javaws implementation that is shipped with Oracle's JDK/JRE is >>> proprietary. I don't know where you would send patches for that. >>> >>> Some of us are working on an open source implementation of javaws, >>> called IcedTea-Web [1], that does include include the source and accepts >>> localization patches for any language. It is not included in OpenJDK, >>> though most Linux distributions do ship it along with OpenJDK as the >>> plugin and javaws implementation. We normally hang out on >>> distro-pkg-dev at openjdk.java.net (cc'ed). >>> >>>> Are there any plans or any intention to localize OpenJDK to other >>>> languages than the existing en, ja, and zh? Would localizations to de >>>> and pl be welcomed? If so, where should I send patches for review to >>>> (yes, I have read the contributors and faq sections, but I am still >>>> confused)? >>> >>> I can't speak for OpenJDK, but for IcedTea-Web, we are willing to >>> localize to any language that you can provide translations for. >>> distro-pkg-dev at openjdk.java.net is the right place for any patches for >>> IcedTea-Web. >>> >>> Thanks, >>> Omair >> >> IcedTea-web is currently localised to CZ-cs an (default) English. We are looking forward for translation! >> >> You can see that localisation is simple file that you are already familiar with - >> http://icedtea.classpath.org/hg/icedtea-web/file/74a70e0b15ef/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties >> http://icedtea.classpath.org/hg/icedtea-web/file/74a70e0b15ef/netx/net/sourceforge/jnlp/resources/Messages.properties >> >> So the only think you need to do is to provide transalted Messages_pl_PL.properties > > Is falling back to a default resource for a specific language handled correctly, e.g. de_AT falls back to de_DE? The locales are failing back as java handles it. So the chain language+country -> language -> default, should be kept > >> Currently there is no Polish developer active, so your file will be probably not-checked :) I forgot Adam do speak a bit of Polish! > > Just for the sake of fairness, I am actually not simply Polish, so please do not stick any premature frivolous attributes to me. Sorry, however my sentence was not mentioned to do add any attribute - never mind :) > >> I would like to help you with any problems you may encounter - both by developer point of view and from guy who provided CZ translation. >> >> J. > > Thank you guys. I would be really glad to help you, but unfortunately there is a problem while cloning the repository on Windows systems since they do not support case-sensitive file systems by default. > > tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html > tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html > > are causing an abort. Please resolve this issue. I see:(( It will not be solved as fast as one want. I have looked into the Mercurial configuration and manual, but there is no option to rename conflicting file names. The operation is simply aborted. But, there is an option that emits a warning when commiting file names that may cause problems on different operating systems. Might be a hint for the future. ;) > I would rather not download a tgz or tbz since I still will not be able to submit a patch. Actually you can live with tarball pretty fine as patch is not needed. Or even without icedtea-web sources/compilation completely - the only necessary output of yours is the Messages_pl_PL.properties file. > > Btw, I do not run a Linux machine, not even as a VM and I do not have the time to set one up. And as far as I understand icedtea-web is not available for Windows, so some of you guys is going to have to test those new localized property files. Icedtea-web itself should be compilable on windows, however I'm afraid no one ever tried :( And I'm pretty sure there will be some complications. So yes, testing (Also crating of automated tests) will be necessary and probably I will do it. Thanx again for your kind offer J. From jvanek at redhat.com Wed Jan 30 04:15:42 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 30 Jan 2013 13:15:42 +0100 Subject: [rfc][icedtea-web] Fix for resolving name of versioned jar in JNLP In-Reply-To: <50E6FEA8.3010407@redhat.com> References: <50E6FEA8.3010407@redhat.com> Message-ID: <51090EEE.9070600@redhat.com> On 01/04/2013 05:09 PM, Adam Domurad wrote: > Hi all. This fixes a bug in the versioning of jars, described here > http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/avoidingUnnecessaryUpdateChecks.html > . > > This bug prevented Spring jars such as j2-org.springframework.beans.jar from downloading with the > proper versioned name when I looked into problems with the JNLP game 'ADOM2'. > Eg, j2-org.springframework.beans.jar with version 1.0 > expected: j2-org.springframework.beans__V1.0.jar > result: j2-org__V1.0.springframework.beans.jar > > The fix was easy, however I have added a few extra tests because this part of the code did not seem > to be under test (please do inform me if it is tested somewhere). > The specific problem is tested in the unit-test ResourceUrlCreatorTest.testVersionWithPeriods > > 2013-01-04 Adam Domurad > > Fix for resolving name of versioned jar in JNLP. > * netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java > (getUrl): Fix versioning of jar names that have periods, eg > 'foo.bar.jar'. Make method static for testing. > * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceUrlCreatorTest.java: > New, test version & pack URL encoding. > * tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarDisabled.jnlp: > New, tries to use versioned jar with versioning not turned on. > * tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarEnabled.jnlp: > New, tries to use versioned jar with versioning turned on. > * tests/reproducers/simple/VersionedJar__V1/srcs/VersionedJar.java: > New, prints simple message. > * tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java: > New, tests if VersionedJar has ran only with versioning turned on. > > Happy hacking, > -Adam Yap, I think it can go to head. And I will be for 1.3 after some time in head to. Also I think it is worthy of NEWS record. J. From jvanek at redhat.com Wed Jan 30 04:42:31 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Wed, 30 Jan 2013 13:42:31 +0100 Subject: [rfc] [icedtea-web] better error reporting for LaunchException in plugin In-Reply-To: <5107F245.3060807@redhat.com> References: <50FD2819.90701@redhat.com> <5107F245.3060807@redhat.com> Message-ID: <51091537.7060600@redhat.com> On 01/29/2013 05:01 PM, Adam Domurad wrote: > On 01/21/2013 06:35 AM, Jiri Vanek wrote: >> Launch errors are thrown from netx, and printed out .. somewhere. At the end plugin (correctly) >> fails with NPE. >> It Is not nice. Eg in SplashError dialogue they can not be shown. >> >> I have added static accumulator for LaunchErrors (== all errors preceding npe in plugin) and then >> I'm adding this chain of exception to Splash error report. >> >> It is quite useful - see example - but there is one pitfall. As accumulator being static, it is >> cumulating errors from all running applets :( >> However I have not found a way how to distinguish between individual applets :( (any idea welcomed!) > > Hmm. Well each applet has an associated thread-group -- you could use that to determine the current > applet. Tried.. Do not work :(( The best will be to know jnlpFile(or pluginbridge) and then have map jnlpFile,LaunchError - however, see below. > > As well, I do not like adding a static accumulator to each constructor -- I would prefer a special it is not so nasty :) > launch error utility class that is always used, that takes a JNLPFile (in cases where its available) > -or- tries to determine one by the current ThreadGroup. This will unfortunately need some additional > 'infrastructure'. Yap, then there is question if such a infrastructure and following refactoring is worthy - IMHO is not:( So just mior fixed patch attached. > >> I have added small warkaround with timestamps and localised explanation.. and.. it is still >> better then nothing :) >> >> >> J. > > I know you want this in as 'better than nothing' but it does seem too hackish to me :-/ IMO > constructors should not have such side-effects. It is not side effect. This is quite common. I agree it is hackich. But not so bad as you consider it for :)) > However I am all for LaunchException's capturing a time-stamp in their constructor. > >> >> >> **example** >> >> So now instead of plain, nothing saying >> "IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ >> Mon Jan 21 12:29:17 CET 2013 >> java.lang.NullPointerException >> at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) >> at sun.applet.AppletPanel.run(AppletPanel.java:380) >> at java.lang.Thread.run(Thread.java:679)" >> >> Is there: >> >> IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ >> Mon Jan 21 12:29:17 CET 2013 >> java.lang.NullPointerException >> at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) >> at sun.applet.AppletPanel.run(AppletPanel.java:380) >> at java.lang.Thread.run(Thread.java:679) >> >> Chain: >> 1) at Mon Jan 21 12:27:27 CET 2013 >> net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The >> applet was unsigned, and the security policy prevented it from running. >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >> 2) at Mon Jan 21 12:27:27 CET 2013 >> net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. >> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) >> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >> Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was >> unsigned. The applet was unsigned, and the security policy prevented it from running. >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >> ... 2 more >> 3) at Mon Jan 21 12:27:29 CET 2013 >> net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was unsigned. The >> applet was unsigned, and the security policy prevented it from running. >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >> 4) at Mon Jan 21 12:27:29 CET 2013 >> net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize applet. >> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) >> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >> Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The applet was >> unsigned. The applet was unsigned, and the security policy prevented it from running. >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >> at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >> ... 2 more >> > > Comments inline. > > >> diff -r b646c8b9c2e2 netx/net/sourceforge/jnlp/LaunchException.java >> --- a/netx/net/sourceforge/jnlp/LaunchException.java Fri Jan 18 12:49:37 2013 +0100 >> +++ b/netx/net/sourceforge/jnlp/LaunchException.java Mon Jan 21 12:20:20 2013 +0100 >> @@ -16,6 +16,10 @@ >> >> package net.sourceforge.jnlp; >> >> +import java.util.Date; >> +import java.util.LinkedList; >> +import java.util.List; >> + >> /** >> * Thrown when a JNLP application, applet, or installer could not >> * be created. >> @@ -25,6 +29,29 @@ >> */ >> public class LaunchException extends Exception { >> >> + >> + public static class LaunchExceptionWithStamp{ >> + private final LaunchException ex; >> + private final Date stamp; >> + >> + private LaunchExceptionWithStamp(LaunchException ex) { >> + this.ex=ex; >> + this.stamp=new Date(); >> + } >> + >> + public LaunchException getEx() { >> + return ex; >> + } >> + >> + public Date getStamp() { >> + return stamp; >> + } >> + >> + >> + >> + } >> + public static final List launchExceptionChain = new >> LinkedList(); >> + >> private static final long serialVersionUID = 7283827853612357423L; >> >> /** the file being launched */ >> @@ -54,6 +81,7 @@ >> this.summary = summary; >> this.description = description; >> this.severity = severity; >> + saveLaunchException(this); > > Bit too much of a hack, for me.\ it is really not so evil:) > >> } >> >> /** >> @@ -61,6 +89,7 @@ >> */ >> public LaunchException(Throwable cause) { >> super(cause); >> + saveLaunchException(this); >> } >> >> /** >> @@ -68,6 +97,7 @@ >> */ >> public LaunchException(String message, Throwable cause) { >> super(message, cause); >> + saveLaunchException(this); >> } >> >> /** >> @@ -78,6 +108,7 @@ >> */ >> public LaunchException(String message) { >> super(message); >> + saveLaunchException(this); >> } >> >> /** >> @@ -117,4 +148,9 @@ >> return severity; >> } >> >> + private void saveLaunchException(LaunchException ex) { > > Should be synchronized, surely ? agree > >> + launchExceptionChain.add(new LaunchExceptionWithStamp(ex)); >> + >> + } >> + >> } >> diff -r b646c8b9c2e2 netx/net/sourceforge/jnlp/resources/Messages.properties >> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri Jan 18 12:49:37 2013 +0100 >> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan 21 12:20:20 2013 +0100 >> @@ -478,3 +478,4 @@ >> SPLASHdefaultHomepage = Unspecified homepage, verify source rather >> SPLASHerrorInInformation = Error during loading of information element, verify source rather >> SPLASHmissingInformation = Information element is missing, verify source rather >> +SPLASHchainWas = There is list of exceptions which provided start of you applet. Please note, >> those exceptions can be from multiple applets. For good bug report, it is wothy to run your applet >> isolated. > > Hm, s/wothy/worthy/, but probably better is: > 'This is the list of exceptions that occurred launching your applet' ... 'For a good bug report, be > sure to run only one applet.' As always, As you wish. > >> diff -r b646c8b9c2e2 netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties >> --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Fri Jan 18 12:49:37 2013 +0100 >> +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Mon Jan 21 12:20:20 2013 +0100 >> @@ -468,4 +468,5 @@ >> SPLASHanotherInfo= Dal\u0161\u00ed dostupn\u00e9 informace snip J. -------------- next part -------------- A non-text attachment was scrubbed... Name: moreErrorReporting2.patch Type: text/x-patch Size: 8995 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/21357496/moreErrorReporting2.patch From adomurad at redhat.com Wed Jan 30 06:58:01 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 30 Jan 2013 09:58:01 -0500 Subject: [rfc] [icedtea-web] better error reporting for LaunchException in plugin In-Reply-To: <51091537.7060600@redhat.com> References: <50FD2819.90701@redhat.com> <5107F245.3060807@redhat.com> <51091537.7060600@redhat.com> Message-ID: <510934F9.4060709@redhat.com> On 01/30/2013 07:42 AM, Jiri Vanek wrote: > On 01/29/2013 05:01 PM, Adam Domurad wrote: >> On 01/21/2013 06:35 AM, Jiri Vanek wrote: >>> Launch errors are thrown from netx, and printed out .. somewhere. At >>> the end plugin (correctly) >>> fails with NPE. >>> It Is not nice. Eg in SplashError dialogue they can not be shown. >>> >>> I have added static accumulator for LaunchErrors (== all errors >>> preceding npe in plugin) and then >>> I'm adding this chain of exception to Splash error report. >>> >>> It is quite useful - see example - but there is one pitfall. As >>> accumulator being static, it is >>> cumulating errors from all running applets :( >>> However I have not found a way how to distinguish between individual >>> applets :( (any idea welcomed!) >> >> Hmm. Well each applet has an associated thread-group -- you could use >> that to determine the current >> applet. > > Tried.. Do not work :(( > > The best will be to know jnlpFile(or pluginbridge) and then have map > jnlpFile,LaunchError - however, see below. >> >> As well, I do not like adding a static accumulator to each >> constructor -- I would prefer a special > > it is not so nasty :) >> launch error utility class that is always used, that takes a JNLPFile >> (in cases where its available) >> -or- tries to determine one by the current ThreadGroup. This will >> unfortunately need some additional >> 'infrastructure'. > > Yap, then there is question if such a infrastructure and following > refactoring is worthy - IMHO is not:( > > So just mior fixed patch attached. >> >>> I have added small warkaround with timestamps and localised >>> explanation.. and.. it is still >>> better then nothing :) >>> >>> >>> J. >> >> I know you want this in as 'better than nothing' but it does seem too >> hackish to me :-/ IMO >> constructors should not have such side-effects. > > It is not side effect. This is quite common. > I agree it is hackich. But not so bad as you consider it for :)) Agree to disagree :-) > >> However I am all for LaunchException's capturing a time-stamp in >> their constructor. >> >>> >>> >>> **example** >>> >>> So now instead of plain, nothing saying >>> "IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ >>> Mon Jan 21 12:29:17 CET 2013 >>> java.lang.NullPointerException >>> at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) >>> at sun.applet.AppletPanel.run(AppletPanel.java:380) >>> at java.lang.Thread.run(Thread.java:679)" >>> >>> Is there: >>> >>> IcedTea-Web Plugin version: 1.4pre+rb646c8b9c2e2+ >>> Mon Jan 21 12:29:17 CET 2013 >>> java.lang.NullPointerException >>> at net.sourceforge.jnlp.NetxPanel.runLoader(NetxPanel.java:130) >>> at sun.applet.AppletPanel.run(AppletPanel.java:380) >>> at java.lang.Thread.run(Thread.java:679) >>> >>> Chain: >>> 1) at Mon Jan 21 12:27:27 CET 2013 >>> net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The >>> applet was unsigned. The >>> applet was unsigned, and the security policy prevented it from running. >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >>> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >>> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >>> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >>> 2) at Mon Jan 21 12:27:27 CET 2013 >>> net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: >>> Could not initialize applet. >>> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) >>> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >>> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >>> Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application >>> Error: The applet was >>> unsigned. The applet was unsigned, and the security policy prevented >>> it from running. >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >>> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >>> ... 2 more >>> 3) at Mon Jan 21 12:27:29 CET 2013 >>> net.sourceforge.jnlp.LaunchException: Fatal: Application Error: The >>> applet was unsigned. The >>> applet was unsigned, and the security policy prevented it from running. >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >>> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >>> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >>> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >>> 4) at Mon Jan 21 12:27:29 CET 2013 >>> net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: >>> Could not initialize applet. >>> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:784) >>> at net.sourceforge.jnlp.Launcher.getApplet(Launcher.java:713) >>> at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:942) >>> Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application >>> Error: The applet was >>> unsigned. The applet was unsigned, and the security policy prevented >>> it from running. >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:680) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.(JNLPClassLoader.java:240) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:374) >>> at >>> net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:347) >>> at net.sourceforge.jnlp.Launcher.createApplet(Launcher.java:751) >>> ... 2 more >>> >> >> Comments inline. >> >> >>> diff -r b646c8b9c2e2 netx/net/sourceforge/jnlp/LaunchException.java >>> --- a/netx/net/sourceforge/jnlp/LaunchException.java Fri Jan 18 >>> 12:49:37 2013 +0100 >>> +++ b/netx/net/sourceforge/jnlp/LaunchException.java Mon Jan 21 >>> 12:20:20 2013 +0100 >>> @@ -16,6 +16,10 @@ >>> >>> package net.sourceforge.jnlp; >>> >>> +import java.util.Date; >>> +import java.util.LinkedList; >>> +import java.util.List; >>> + >>> /** >>> * Thrown when a JNLP application, applet, or installer could not >>> * be created. >>> @@ -25,6 +29,29 @@ >>> */ >>> public class LaunchException extends Exception { >>> >>> + >>> + public static class LaunchExceptionWithStamp{ >>> + private final LaunchException ex; >>> + private final Date stamp; >>> + >>> + private LaunchExceptionWithStamp(LaunchException ex) { >>> + this.ex=ex; >>> + this.stamp=new Date(); >>> + } >>> + >>> + public LaunchException getEx() { >>> + return ex; >>> + } >>> + >>> + public Date getStamp() { >>> + return stamp; >>> + } >>> + >>> + >>> + >>> + } >>> + public static final List >>> launchExceptionChain = new >>> LinkedList(); >>> + >>> private static final long serialVersionUID = 7283827853612357423L; >>> >>> /** the file being launched */ >>> @@ -54,6 +81,7 @@ >>> this.summary = summary; >>> this.description = description; >>> this.severity = severity; >>> + saveLaunchException(this); >> >> Bit too much of a hack, for me.\ > it is really not so evil:) >> >>> } >>> >>> /** >>> @@ -61,6 +89,7 @@ >>> */ >>> public LaunchException(Throwable cause) { >>> super(cause); >>> + saveLaunchException(this); >>> } >>> >>> /** >>> @@ -68,6 +97,7 @@ >>> */ >>> public LaunchException(String message, Throwable cause) { >>> super(message, cause); >>> + saveLaunchException(this); >>> } >>> >>> /** >>> @@ -78,6 +108,7 @@ >>> */ >>> public LaunchException(String message) { >>> super(message); >>> + saveLaunchException(this); >>> } >>> >>> /** >>> @@ -117,4 +148,9 @@ >>> return severity; >>> } >>> >>> + private void saveLaunchException(LaunchException ex) { >> >> Should be synchronized, surely ? > agree > >> >>> + launchExceptionChain.add(new LaunchExceptionWithStamp(ex)); >>> + >>> + } >>> + >>> } >>> diff -r b646c8b9c2e2 >>> netx/net/sourceforge/jnlp/resources/Messages.properties >>> --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Fri >>> Jan 18 12:49:37 2013 +0100 >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Mon >>> Jan 21 12:20:20 2013 +0100 >>> @@ -478,3 +478,4 @@ >>> SPLASHdefaultHomepage = Unspecified homepage, verify source rather >>> SPLASHerrorInInformation = Error during loading of information >>> element, verify source rather >>> SPLASHmissingInformation = Information element is missing, verify >>> source rather >>> +SPLASHchainWas = There is list of exceptions which provided start >>> of you applet. Please note, >>> those exceptions can be from multiple applets. For good bug report, >>> it is wothy to run your applet >>> isolated. >> >> Hm, s/wothy/worthy/, but probably better is: >> 'This is the list of exceptions that occurred launching your applet' >> ... 'For a good bug report, be >> sure to run only one applet.' > > As always, As you wish. >> >>> diff -r b646c8b9c2e2 >>> netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties >>> --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties >>> Fri Jan 18 12:49:37 2013 +0100 >>> +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties >>> Mon Jan 21 12:20:20 2013 +0100 >>> @@ -468,4 +468,5 @@ >>> SPLASHanotherInfo= Dal\u0161\u00ed dostupn\u00e9 informace > snip > > J. > OK. Improving it significantly did seem difficult. Just a thought though -- I think the exception launch lists shouldn't be public, I'm thinking access to it needs to be synchronized. Should probably synchronize + return copy. Once that is fixed, OK for HEAD. -Adam From adomurad at redhat.com Wed Jan 30 07:09:43 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 30 Jan 2013 10:09:43 -0500 Subject: [rfc][icedtea-web] Refactor part of JNLPClassLoader#getInstance into new createInstance method Message-ID: <510937B7.4060602@redhat.com> Motivation here is that for unsigned-applet-confirmation patch, yet more distinction is made between 'new JNLPClassLoader()' and initializing a class-loader. 2013-XX-XX Adam Domurad * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java: (createInstance): Extract initialization logic from 'getInstance' into new 'createInstace' method. (getInstance): Call newly introduced createInstance method. -------------- next part -------------- A non-text attachment was scrubbed... Name: create-instance-refactoring.patch Type: text/x-patch Size: 3958 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/3bb4d64a/create-instance-refactoring.patch From adomurad at redhat.com Wed Jan 30 07:29:46 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 30 Jan 2013 10:29:46 -0500 Subject: [rfc][icedtea-web] fixed locales and unittest for them In-Reply-To: <5107CCEE.5020804@redhat.com> References: <5107CCEE.5020804@redhat.com> Message-ID: <51093C6A.3050007@redhat.com> On 01/29/2013 08:21 AM, Jiri Vanek wrote: > With (maybe!) possible another localisation of ITW i have synced our > current locales and added unittest to cough inconsistent states - > empty keys, same values in translations (with exceptions), missing > translations and especially redundant translations. > > > J. You are on your honour to not be swearing at the user in Czech :-) > diff -r 74a70e0b15ef > netx/net/sourceforge/jnlp/resources/Messages.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan > 28 11:38:34 2013 -0500 > +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Tue Jan > 29 14:14:11 2013 +0100 > @@ -51,11 +51,11 @@ > LNullUpdatePolicy=Update policy cannot be null. > > LThreadInterrupted=Thread interrupted while waiting for file to launch. > -LThreadInterruptedInfo= > +LThreadInterruptedInfo=This can lead to deadlock or corrupted run, > please restart your application/browser > LCouldNotLaunch=Could not launch JNLP file. > -LCouldNotLaunchInfo= > +LCouldNotLaunchInfo=Application was not initialize, for more > information execute javaws/browser from commandline and sent bugreport > LCantRead=Could not read or parse the JNLP file. > -LCantReadInfo= > +LCantReadInfo=You can try to download this file manually and send it > as bugreport to IcedTea-Web team Nit: s/bugreport/a bug report/ Adding a period may be more consistent ? > LNullLocation=Could not determine .jnlp file location. > LNullLocationInfo=An attempt was made to launch a JNLP file in > another JVM, but the file could not be located. In order to launch in > an external JVM, the runtime must be able to locate the .jnlp file > either in the local filesystem or on a server. > LNetxJarMissing=Could not determine location of netx.jar. > @@ -69,9 +69,9 @@ > LNoInstallers=Installers not supported. > LNoInstallersInfo=JNLP installer files are not yet supported. > LInitApplet=Could not initialize applet. > -LInitAppletInfo= > +LInitAppletInfo=For ore information click "more information button" > LInitApplication=Could not initialize application. > -LInitApplicationInfo= > +LInitApplicationInfo=Application was not initialize, for more > information execute javaws from commandline s/initialize/initialized/ Adding a period may be more consistent ? > LNotLaunchable=Not a launchable JNLP file. > LNotLaunchableInfo=File must be a JNLP application, applet, or > installer type. > LCantDetermineMainClass=Unknown Main-Class. > @@ -96,7 +96,7 @@ > LNotVerified=Jars not verified. > LCancelOnUserRequest=Canceled on user request. > LFatalVerification=A fatal error occurred while trying to verify jars. > -LFatalVerificationInfo= > +LFatalVerificationInfo=We caught an Exception from the > JarCertVerifier class. One of these exceptions could be from not being > able to read the cacerts or trusted.certs files. > > LNotVerifiedDialog=Not all jars could be verified. > LAskToContinue=Would you still like to continue running this application? > diff -r 74a70e0b15ef > netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > Mon Jan 28 11:38:34 2013 -0500 > +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties > Tue Jan 29 14:14:11 2013 +0100 > @@ -51,11 +51,11 @@ > LNullUpdatePolicy=Pravidla pro aktualizaci nesm\u00ed b\u00fdt > pr\u00e1zdn\u00e1. > > LThreadInterrupted=Vl\u00e1kno bylo p\u0159eru\u0161eno p\u0159i > \u010dek\u00e1n\u00ed na spu\u0161t\u011bn\u00ed souboru. > -LThreadInterruptedInfo= > +LThreadInterruptedInfo=Toto m\u016f\u017ee v\u00e1st k zamrznut\u00ed > nebo nedefinovan\u00e9mu chov\u00e1n\u00ed chov\u00e1n\u00ed aplikace. > Restartuje apliakci/prohl\u00ed\u017ee\u010d. > LCouldNotLaunch=Nelze spustit soubor JNLP. > -LCouldNotLaunchInfo= > +LCouldNotLaunchInfo=Apliakce nebyla inicializov\u00e1na, pro > v\u00edce informac\u00ed spus\u0165te javaws/prohl\u00ed\u017ee\u010d > z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a za\u0161lete n\u00e1m > chybovou zpr\u00e1vu > LCantRead=Nelze \u010d\u00edst nebo analyzovat soubor JNLP. > -LCantReadInfo= > +LCantReadInfo=Zkuste tento JNLP soubor st\u00e1hnout ru\u010dn\u011b, > a posalt z\u00e1rove\u0148 s hl\u00e1\u0161en\u00edm chyby t\u00fdmu > IcedTea-Web > LNullLocation=Nelze ur\u010dit um\u00edst\u011bn\u00ed souboru JNLP. > LNullLocationInfo=Byl u\u010din\u011bn pokus o > spu\u0161t\u011bn\u00ed souboru JNLP v jin\u00e9m prost\u0159ed\u00ed > JVM, av\u0161ak soubor nebyl nalezen. Chcete-li spustit extern\u00ed > prost\u0159ed\u00ed JVM, modul runtime mus\u00ed b\u00fdt schopen > nal\u00e9zt soubor .jnlp v lok\u00e1ln\u00edm souborov\u00e9m > syst\u00e9mu nebo na serveru. > LNetxJarMissing=Nelze ur\u010dit um\u00edst\u011bn\u00ed souboru > netx.jar. > @@ -69,15 +69,17 @@ > LNoInstallers=Instal\u00e1tory nejsou podporov\u00e1ny. > LNoInstallersInfo=Instal\u00e1tory JNLP je\u0161t\u011b nejsou > podporov\u00e1ny. > LInitApplet=Nelze inicializovat applet. > -LInitAppletInfo= > +LInitAppletInfo=Pro v\u00edce informac\u00ed klikn\u011bte na > tla\u010d\u00edtko pro v\u00edce informac\u00ed\ Adding a period may be more consistent ? > LInitApplication=Nelze inicializovat aplikaci. > -LInitApplicationInfo= > +LInitApplicationInfo=Apliakce nebyla inicializov\u00e1na, pro > v\u00edce informac\u00ed spus\u0165te javaws z > p\u0159\u00edkazov\u00e9 \u0159\u00e1dky Adding a period may be more consistent ? > LNotLaunchable=Nejedn\u00e1 se o spustiteln\u00fd soubor JNLP. > LNotLaunchableInfo=Soubor mus\u00ed b\u00fdt aplikac\u00ed, appletem > nebo instal\u00e1torem JNLP. > LCantDetermineMainClass=Nezn\u00e1m\u00e1 t\u0159\u00edda Main-Class. > LCantDetermineMainClassInfo=Nelze ur\u010dit t\u0159\u00eddu main > class pro tuto aplikaci. > LUnsignedJarWithSecurity=Nelze ud\u011blit opr\u00e1vn\u011bn\u00ed > nepodepsan\u00fdm soubor\u016fm JAR. > LUnsignedJarWithSecurityInfo=Aplikace po\u017e\u00e1dala o > bezpe\u010dnostn\u00ed opr\u00e1vn\u011bn\u00ed, av\u0161ak soubory > JAR nejsou podeps\u00e1ny. > +LSignedJNLPAppDifferentCerts=JNLP aplikace nen\u00ed pln\u011b > podeps\u00e1na jedin\u00fdm cectifik\u00e1tem > +LSignedJNLPAppDifferentCertsInfo=JNLP aplikace m\u00e1 podeps\u00e1ny > v\u0161echny komponenty, ale jednotliv\u00e9 certifik\u00e1ty se > li\u0161\u00ed. > LSignedAppJarUsingUnsignedJar=Podepsan\u00e1 aplikace > pou\u017e\u00edvaj\u00edc\u00ed nepodepsan\u00e9 soubory JAR. > LSignedAppJarUsingUnsignedJarInfo=Hlavn\u00ed soubor JAR aplikace je > podepsan\u00fd, av\u0161ak n\u011bkter\u00e9 z dal\u0161\u00edch > pou\u017e\u00edvan\u00fdch soubor\u016f JAR nejsou podeps\u00e1ny. > LSignedJNLPFileDidNotMatch=Podepsan\u00fd soubor JNLP se neshoduje se > spou\u0161t\u011bn\u00fdm souborem JNLP. > @@ -94,7 +96,7 @@ > LNotVerified=Soubory JAR nebyly ov\u011b\u0159eny. > LCancelOnUserRequest=Zru\u0161eno u\u017eivatelem. > LFatalVerification=P\u0159i ov\u011b\u0159ov\u00e1n\u00ed > soubor\u016f JAR do\u0161lo k z\u00e1va\u017en\u00e9 chyb\u011b. > -LFatalVerificationInfo= > +LFatalVerificationInfo=Byla odchycena v\u00fdjimka z mechanismu > ov\u011b\u0159ov\u00e1n\u00ed certifik\u00e1t\u016f. Mo\u017en\u00fd > zdroj m\u016f\u017ee b\u00fdt nemo\u017enost p\u0159e\u010d\u00edst > cacerts nebi trusted.certs soubory. > > LNotVerifiedDialog=Nemohly b\u00fdt ov\u011b\u0159eny v\u0161echny > soubory JAR. > LAskToContinue=Chcete p\u0159esto pokra\u010dovat ve > spou\u0161t\u011bn\u00ed t\u00e9to aplikace? > @@ -228,7 +230,6 @@ > SBadKeyUsage=Zdroj obsahuje polo\u017eky, u nich\u017e > roz\u0161\u00ed\u0159en\u00ed pou\u017eit\u00ed kl\u00ed\u010de > KeyUsage certifik\u00e1tu podepisovatele nedovoluje > podeps\u00e1n\u00ed k\u00f3du. > SBadExtendedKeyUsage=Zdroj obsahuje polo\u017eky, u nich\u017e > roz\u0161\u00ed\u0159en\u00ed pou\u017eit\u00ed kl\u00ed\u010de > ExtendedKeyUsage certifik\u00e1tu podepisovatele nedovoluje > podeps\u00e1n\u00ed k\u00f3du. > SBadNetscapeCertType=Zdroj obsahuje polo\u017eky, u nich\u017e > roz\u0161\u00ed\u0159en\u00ed pou\u017eit\u00ed kl\u00ed\u010de > NetscapeCertType certifik\u00e1tu podepisovatele nedovoluje > podeps\u00e1n\u00ed k\u00f3du. > -SHasUnsignedEntry=Zdroje obsahuj\u00ed nepodepsan\u00e9 polo\u017eky, > jejich\u017e integrita nebyla zkontrolov\u00e1na. > SHasExpiredCert=Platnost digit\u00e1ln\u00edho podpisu vypr\u0161ela. > SHasExpiringCert=Zdroje obsahuj\u00ed polo\u017eky, u nich\u017e > vypr\u0161\u00ed platnost certifik\u00e1tu jejich podepisovatele do > \u0161esti m\u011bs\u00edc\u016f. > SNotYetValidCert=Zdroje obsahuj\u00ed polo\u017eky, u nich\u017e > je\u0161t\u011b nen\u00ed platn\u00fd certifik\u00e1t podepisovatele. > @@ -299,6 +300,7 @@ > CPSecurityDescription=Konfigurace nastaven\u00ed zabezpe\u010den\u00ed > CPDebuggingDescription=Zapnut\u00ed mo\u017enost\u00ed > pom\u00e1haj\u00edc\u00edch p\u0159i lad\u011bn\u00ed > CPDesktopIntegrationDescription=Nastaven\u00ed, zda m\u00e1 b\u00fdt > povoleno vytvo\u0159en\u00ed z\u00e1stupce na plo\u0161e > +CPJVMPluginArguments = Nastavit argumenty JVM pro plugin. > > # Control Panel - Buttons > CPButAbout=O aplikaci IcedTea-Web > @@ -317,6 +319,7 @@ > CPHeadDebugging=Nastaven\u00ed lad\u011bn\u00ed > CPHeadDesktopIntegration=Integrace s pracovn\u00ed plochou > CPHeadSecurity=Nastaven\u00ed zabezpe\u010den\u00ed > +CPHeadJVMSettings=Nastaven\u00ed JVM > > # Control Panel - Tabs > CPTabAbout=O aplikaci IcedTea-Web > @@ -328,6 +331,7 @@ > CPTabNetwork=S\u00ed\u0165 > CPTabRuntimes=Moduly runtime > CPTabSecurity=Zabezpe\u010den\u00ed > +CPTabJVMSettings=Nastaven\u00ed JVM > > # Control Panel - AboutPanel > CPAboutInfo=Toto je ovl\u00e1dac\u00ed panel > umo\u017e\u0148uj\u00edc\u00ed nastavit > deployment.properties.
Dokud nebudou implementov\u00e1ny > v\u0161echny funkce, n\u011bkter\u00e9 z nich nebudou > \u00fa\u010dinn\u00e9.
V sou\u010dasnosti nen\u00ed > podporov\u00e1no pou\u017e\u00edv\u00e1n\u00ed v\u00edce > prost\u0159ed\u00ed JRE.
> diff -r 74a70e0b15ef > tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java > --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > +++ > b/tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java > Tue Jan 29 14:14:11 2013 +0100 > @@ -0,0 +1,245 @@ > +/* Copyright (C) 2012 Red Hat, Inc. > + > + This file is part of IcedTea. > + > + IcedTea is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 2, or (at your option) > + any later version. > + > + IcedTea is distributed in the hope that it will be useful, but > + WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with IcedTea; see the file COPYING. If not, write to the > + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, > Boston, MA > + 02110-1301 USA. > + > + Linking this library statically or dynamically with other modules is > + making a combined work based on this library. Thus, the terms and > + conditions of the GNU General Public License cover the whole > + combination. > + > + As a special exception, the copyright holders of this library give you > + permission to link this library with independent modules to produce an > + executable, regardless of the license terms of these independent > + modules, and to copy and distribute the resulting executable under > + terms of your choice, provided that you also meet, for each linked > + independent module, the terms and conditions of the license of that > + module. An independent module is a module which is not derived from > + or based on this library. If you modify this library, you may extend > + this exception to your version of the library, but you are not > + obligated to do so. If you do not wish to do so, delete this > + exception statement from your version. */ > +package net.sourceforge.jnlp.resources; > + > +import java.util.ArrayList; > +import java.util.Enumeration; > +import java.util.List; > +import java.util.Locale; > +import java.util.MissingResourceException; > +import java.util.ResourceBundle; > +import net.sourceforge.jnlp.ServerAccess; > +import net.sourceforge.jnlp.annotations.KnownToFail; > +import static org.junit.Assert.assertNotNull; > +import static org.junit.Assert.assertTrue; > +import org.junit.BeforeClass; > +import org.junit.Test; > + > +public class MessagesPropertiesTest { > + > + public static final String mainFile = "Messages"; > + public static final String[] secondaryCountries = new String[]{"cs"}; > + public static final String[] secondaryLanguages = new String[]{"CZ"}; > + public static ResourceBundle main; > + public static ResourceBundle[] secondary = new > ResourceBundle[secondaryCountries.length]; > + > + @BeforeClass > + public static void loadResourceBoundels() { > + assertTrue("lenght of countries and languages must be same", > secondaryCountries.length == secondaryLanguages.length); s/lenght/length/ > + //get default by non existing language and country > + main = > ResourceBundle.getBundle("net.sourceforge.jnlp.resources." + mainFile, > new Locale("dfgdfg", "gvff")); > + secondary = new ResourceBundle[secondaryCountries.length]; > + assertNotNull(main); > + for (int i = 0; i < secondaryCountries.length; i++) { > + String country = secondaryCountries[i]; > + String language = secondaryLanguages[i]; > + secondary[i] = > ResourceBundle.getBundle("net.sourceforge.jnlp.resources." + mainFile, > new Locale(country, language)); > + assertNotNull(secondary[i]); > + } > + } > + > + @Test > + public void allResourcesAreReallyDifferent() { > + List ids = new ArrayList(secondary.length + 1); > + ids.add("default"); > + List boundles = new > ArrayList(secondary.length + 1); > + boundles.add(main); > + int errors = 0; > + for (int i = 0; i < secondaryCountries.length; i++) { > + String country = secondaryCountries[i]; > + String language = secondaryLanguages[i]; > + ids.add(country + "_" + language); > + boundles.add(secondary[i]); > + > + } > + for (int i = 0; i < boundles.size(); i++) { > + ResourceBundle resourceBundle1 = boundles.get(i); > + String id1 = ids.get(i); > + Enumeration keys1 = resourceBundle1.getKeys(); > + for (int j = 0; j < boundles.size(); j++) { > + if (i == j) { > + break; > + } > + ResourceBundle resourceBundle2 = boundles.get(j); > + String id2 = ids.get(j); > + outLog("Checking for same items between " + > resourceBundle1.getLocale() + " x " + resourceBundle2.getLocale() + " > (should be " + id1 + " x " + id2 + ")"); > + errLog("Checking for same items between " + > resourceBundle1.getLocale() + " x " + resourceBundle2.getLocale() + " > (should be " + id1 + " x " + id2 + ")"); > + int localErrors=0; > + while (keys1.hasMoreElements()) { > + String key = (String) keys1.nextElement(); > + String val1 = > getMissingResourceAsEmpty(resourceBundle1, key); > + String val2 = > getMissingResourceAsEmpty(resourceBundle2, key); > + outLog("\""+val1+"\" x \""+val2); > + if (val1.trim().equalsIgnoreCase(val2.trim())) { > + if (val1.trim().length() <= 5 /*"ok", "", > ...*/ || val1.toLowerCase().contains("://") /*urls...*/) { > + errLog("Warning! Items equals for: " + > key + " = " + val1 + " but are in allowed subset"); > + } else { > + errors++; > + localErrors++; > + errLog("Error! Items equals for: " + key > + " = " + val1); > + } > + } > + } > + errLog(localErrors+" errors > allResourcesAreReallyDifferent fo "+id2+" x "+id1); > + > + } > + } > + assertTrue("Several - " + errors + " - items are same in > boundles. See error logs for details", errors == 0); s/boundles/bundles/ Eclipse has a spell-checker for comments + strings y'know :-D > + } > + > + private String getMissingResourceAsEmpty(ResourceBundle res, > String key) { > + try { > + return res.getString(key); > + } catch (MissingResourceException ex) { > + return ""; > + } > + } > + > + @Test > + @KnownToFail//it is not critical that some localisations are > missing, however good to know Reminder to remove this @KTF as we have discussed > + public void warnForNotLocalisedStrings() { > + int errors = 0; > + Enumeration keys = main.getKeys(); > + for (int i = 0; i < secondary.length; i++) { > + int localErrors = 0; > + ResourceBundle sec = secondary[i]; > + String country = secondaryCountries[i]; > + String language = secondaryLanguages[i]; > + String id = country + "_" + language; > + outLog("Checking for missing strings in " + > sec.getLocale() + " (should be " + id + ") compared with default"); > + errLog("Checking for missing strings in " + > sec.getLocale() + " (should be " + id + ") compared with default"); > + while (keys.hasMoreElements()) { > + String key = (String) keys.nextElement(); > + String val1 = getMissingResourceAsEmpty(main, key); > + String val2 = getMissingResourceAsEmpty(sec, key); > + outLog("\""+val1+"\" x \""+val2); > + if (val1.trim().isEmpty()) { > + } else { > + if (val2.trim().isEmpty()){ > + errors++; > + localErrors++; > + errLog("Error! There is value for default: " + > key + ", but for " + id+" is missing"); > + } > + > + } > + } > + errLog(localErrors+" warnForNotLocalisedStrings errors > for "+id); > + > + } > + assertTrue("Several - " + errors + " - items have missing > localisations. See error logs for details", errors == 0); > + } > + > + > + > + @Test > + public void noEmptyResources() { > + List ids = new ArrayList(secondary.length + 1); > + ids.add("default"); > + List boundles = new > ArrayList(secondary.length + 1); > + boundles.add(main); > + int errors = 0; > + for (int i = 0; i < secondaryCountries.length; i++) { > + String country = secondaryCountries[i]; > + String language = secondaryLanguages[i]; > + ids.add(country + "_" + language); > + boundles.add(secondary[i]); > + > + } > + for (int i = 0; i < boundles.size(); i++) { > + ResourceBundle resourceBundle = boundles.get(i); > + String id = ids.get(i); > + Enumeration keys = resourceBundle.getKeys(); > + outLog("Checking for empty items in " + > resourceBundle.getLocale() + " (should be " + id + ")"); > + errLog("Checking for empty items in " + > resourceBundle.getLocale() + " (should be " + id + ")"); > + int localErrors=0; > + while (keys.hasMoreElements()) { > + String key = (String) keys.nextElement(); > + String val = > getMissingResourceAsEmpty(resourceBundle, key); > + outLog("\""+key+"\" = \""+val); > + if (val.trim().isEmpty()) { > + errors++; > + localErrors++; > + errLog("Error! Key: " + key + " have no > vlue"); > + } > + > + } > + errLog(localErrors+" noEmptyResources errors for "+id); > + > + } > + assertTrue("Several - " + errors + " - items have no > values", errors == 0); Maybe a bit better is "Several items (" + errors + ")... > + } > + > + > + @Test > + public void findKeysWhichAreInLoclisedButNotInDefault() { s/Loclised/Localised/ > + int errors = 0; > + for (int i = 0; i < secondary.length; i++) { > + int localErrors = 0; > + ResourceBundle sec = secondary[i]; > + Enumeration keys = sec.getKeys(); > + String country = secondaryCountries[i]; > + String language = secondaryLanguages[i]; > + String id = country + "_" + language; > + outLog("Checking for redundant keys in " + > sec.getLocale() + " (should be " + id + ") compared with default"); > + errLog("Checking for redundant keys in " + > sec.getLocale() + " (should be " + id + ") compared with default"); > + while (keys.hasMoreElements()) { > + String key = (String) keys.nextElement(); > + String val2 = getMissingResourceAsEmpty(main, key); > + String val1 = getMissingResourceAsEmpty(sec, key); > + outLog("\""+val1+"\" x \""+val2); > + if (val2.trim().isEmpty() && !val1.trim().isEmpty()){ > + errors++; > + localErrors++; > + errLog("Error! There is value for "+id+", key " + > key + ", but for default is missing"); > + } > + > + } > + errLog(localErrors+" > findKeysWhichAreInLoclisedButNotInDefault errors for "+id); s/Loclised/Localised/ > + > + } > + assertTrue("Several - " + errors + " - items have value in > localised version but not in default one", errors == 0); > + } > + > + > + > + private void errLog(String string) { > + ServerAccess.logErrorReprint(string); > + } > + > + private void outLog(String string) { > + ServerAccess.logOutputReprint(string); > + } > +} OK for HEAD, fixes optional and can be done without repost (although typo fixes would be nice :-) -Adam From bugzilla-daemon at icedtea.classpath.org Wed Jan 30 07:40:33 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 30 Jan 2013 15:40:33 +0000 Subject: [Bug 1292] New: Javaws does not resolve versioned jar names with periods correctly Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1292 Bug ID: 1292 Summary: Javaws does not resolve versioned jar names with periods correctly Classification: Unclassified Product: IcedTea-Web Version: hg Hardware: x86_64 OS: Linux Status: NEW Severity: normal Priority: P3 Component: NetX (javaws) Assignee: omajid at redhat.com Reporter: adomurad at redhat.com CC: unassigned at icedtea.classpath.org There is a a bug in the versioning of jars with periods, Jar versioning is described here http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/avoidingUnnecessaryUpdateChecks.html . This bug prevents downloading Spring jars such as j2-org.springframework.beans.jar. Eg, j2-org.springframework.beans.jar with version 1.0 expected: j2-org.springframework.beans__V1.0.jar result: j2-org__V1.0.springframework.beans.jar -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/31d0264c/attachment.html From jvanek at icedtea.classpath.org Wed Jan 30 07:50:42 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 30 Jan 2013 15:50:42 +0000 Subject: /hg/icedtea-web: Splashscreen error report made more detailed by... Message-ID: changeset f321ab6fb6c5 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=f321ab6fb6c5 author: Jiri Vanek date: Wed Jan 30 16:51:08 2013 +0100 Splashscreen error report made more detailed by stored LaunchErrors * netx/net/sourceforge/jnlp/LaunchException.java: (LaunchExceptionWithStamp) new inner class for storing timestamp togetehr with error. (launchExceptionChain) new static list to capture LaunchErrors during runtime. * /netx/net/sourceforge/jnlp/resources/Messages.properties: * netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties: Added explanation string * netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: Is now displaying launchExceptionChain in its error report and is copying it to clipboard. * tests/unit/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialogTest.java: (getTextTest) adapted calls of getText for new Date. diffstat: ChangeLog | 16 ++ netx/net/sourceforge/jnlp/LaunchException.java | 43 +++++++ netx/net/sourceforge/jnlp/resources/Messages.properties | 1 + netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties | 3 +- netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java | 60 +++++++++- tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialogTest.java | 9 +- 6 files changed, 123 insertions(+), 9 deletions(-) diffs (282 lines): diff -r 74a70e0b15ef -r f321ab6fb6c5 ChangeLog --- a/ChangeLog Mon Jan 28 11:38:34 2013 -0500 +++ b/ChangeLog Wed Jan 30 16:51:08 2013 +0100 @@ -1,3 +1,19 @@ +2013-01-30 Jiri Vanek + + Splashscreen error report made more detailed by stored LaunchErrors + * netx/net/sourceforge/jnlp/LaunchException.java: (LaunchExceptionWithStamp) + new inner class for storing timestamp togetehr with error. + (launchExceptionChain) new static list to capture LaunchErrors during + runtime. + * /netx/net/sourceforge/jnlp/resources/Messages.properties: + * netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties: + Added explanation string + * netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: + Is now displaying launchExceptionChain in its error report and is copying + it to clipboard. + * tests/unit/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialogTest.java: + (getTextTest) adapted calls of getText for new Date. + 2013-01-28 Adam Domurad Fix PR1157: Applets can hang browser after fatal exception diff -r 74a70e0b15ef -r f321ab6fb6c5 netx/net/sourceforge/jnlp/LaunchException.java --- a/netx/net/sourceforge/jnlp/LaunchException.java Mon Jan 28 11:38:34 2013 -0500 +++ b/netx/net/sourceforge/jnlp/LaunchException.java Wed Jan 30 16:51:08 2013 +0100 @@ -16,6 +16,11 @@ package net.sourceforge.jnlp; +import java.util.Collections; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; + /** * Thrown when a JNLP application, applet, or installer could not * be created. @@ -25,6 +30,29 @@ */ public class LaunchException extends Exception { + + public static class LaunchExceptionWithStamp{ + private final LaunchException ex; + private final Date stamp; + + private LaunchExceptionWithStamp(LaunchException ex) { + this.ex=ex; + this.stamp=new Date(); + } + + public LaunchException getEx() { + return ex; + } + + public Date getStamp() { + return stamp; + } + + + + } + private static final List launchExceptionChain = Collections.synchronizedList(new LinkedList()); + private static final long serialVersionUID = 7283827853612357423L; /** the file being launched */ @@ -54,6 +82,7 @@ this.summary = summary; this.description = description; this.severity = severity; + saveLaunchException(this); } /** @@ -61,6 +90,7 @@ */ public LaunchException(Throwable cause) { super(cause); + saveLaunchException(this); } /** @@ -68,6 +98,7 @@ */ public LaunchException(String message, Throwable cause) { super(message, cause); + saveLaunchException(this); } /** @@ -78,6 +109,7 @@ */ public LaunchException(String message) { super(message); + saveLaunchException(this); } /** @@ -117,4 +149,15 @@ return severity; } + private synchronized void saveLaunchException(LaunchException ex) { + launchExceptionChain.add(new LaunchExceptionWithStamp(ex)); + + } + + public synchronized static List getLaunchExceptionChain() { + return launchExceptionChain; + } + + + } diff -r 74a70e0b15ef -r f321ab6fb6c5 netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Mon Jan 28 11:38:34 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Jan 30 16:51:08 2013 +0100 @@ -473,3 +473,4 @@ SPLASHdefaultHomepage = Unspecified homepage, verify source rather SPLASHerrorInInformation = Error during loading of information element, verify source rather SPLASHmissingInformation = Information element is missing, verify source rather +SPLASHchainWas = This is the list of exceptions that occurred launching your applet. Please note, those exceptions can be from multiple applets. For a good bug report, be sure to run only one applet. diff -r 74a70e0b15ef -r f321ab6fb6c5 netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Mon Jan 28 11:38:34 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Wed Jan 30 16:51:08 2013 +0100 @@ -468,4 +468,5 @@ SPLASHanotherInfo= Dal\u0161\u00ed dostupn\u00e9 informace SPLASHdefaultHomepage = Nespecifikovan\u00e1 domovsk\u00e1 st\u00e1nka, je doporu\u010deno zkontrolovat zdroj SPLASHerrorInInformation = Chyba na\u010d\u00edt\u00e1n\u00ed informa\u010dn\u00edho elementu, je doporu\u010deno zkontrolovat zdroj -SPLASHmissingInformation = Informa\u010dn\u00ed element chyb\u00fd, je doporu\u010deno zkontrolovat zdroj \ No newline at end of file +SPLASHmissingInformation = Informa\u010dn\u00ed element chyb\u00fd, je doporu\u010deno zkontrolovat zdroj +SPLASHchainWas = N\u00ed\u017ee je seznam v\u00fdjimek, kter\u00e9 prov\u00e1zely start appeltu. Tento seznam ale m\u016f\u017er poch\u00e1zet z n\u011bkolik\u00e1 r\u016fzn\u00fdch applet\u016f. Pro dob\u00e9 chybo\u00e9 hl\u00e1\u0161en\u00ed stoj\u00e9 za to pustit applet izolovane. \ No newline at end of file diff -r 74a70e0b15ef -r f321ab6fb6c5 netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java --- a/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Mon Jan 28 11:38:34 2013 -0500 +++ b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Wed Jan 30 16:51:08 2013 +0100 @@ -42,6 +42,8 @@ import java.awt.event.WindowEvent; import java.io.PrintWriter; import java.io.StringWriter; +import java.text.DateFormat; +import java.util.Date; import java.util.List; import javax.swing.BorderFactory; import javax.swing.GroupLayout; @@ -60,6 +62,7 @@ import javax.swing.WindowConstants; import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkListener; +import net.sourceforge.jnlp.LaunchException; import net.sourceforge.jnlp.runtime.Translator; public class JEditorPaneBasedExceptionDialog extends JDialog implements HyperlinkListener { @@ -78,15 +81,19 @@ // End of components declaration private final String message; private final Throwable exception; + private final Date shown; + private final String anotherInfo; /** Creates new form JEditorPaneBasedExceptionDialog */ public JEditorPaneBasedExceptionDialog(java.awt.Frame parent, boolean modal, Throwable ex, InformationElement information, String anotherInfo) { super(parent, modal); + shown = new Date(); initComponents(); htmlErrorAndHelpPanel.setContentType("text/html"); htmlErrorAndHelpPanel.setEditable(false); + this.anotherInfo=anotherInfo; List l = infoElementToList(information); - this.message = getText(ex, l, anotherInfo); + this.message = getText(ex, l, anotherInfo, shown); this.exception = ex; if (exception == null) { closeAndCopyButton.setVisible(false); @@ -199,7 +206,7 @@ private void copyAndCloseButtonActionPerformed(java.awt.event.ActionEvent evt) { if (exception != null) { try { - StringSelection data = new StringSelection(getExceptionStackTraceAsString(exception)); + StringSelection data = new StringSelection(anotherInfo+"\n"+shown.toString()+"\n"+getExceptionStackTraceAsString(exception)+addPlainChain()); Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); clipboard.setContents(data, data); } catch (Exception ex) { @@ -241,7 +248,7 @@ }); } - static String getText(Throwable ex, List l, String anotherInfo) { + static String getText(Throwable ex, List l, String anotherInfo,Date shown) { StringBuilder s = new StringBuilder(""); String info = "

" + Translator.R(InfoItem.SPLASH + "mainL1", createLink()) @@ -258,9 +265,11 @@ + Translator.R(InfoItem.SPLASH + "mainL4") + "

\n" + info + formatListInfoList(l) + formatInfo(anotherInfo) + +"
"+DateFormat.getInstance().format(shown)+"
" + "

" + Translator.R(InfoItem.SPLASH + "exWas") - + "
\n" + "

" + getExceptionStackTraceAsString(ex) + "
"; + + "
\n" + "
" + getExceptionStackTraceAsString(ex) + "
" + + addChain(); } else { @@ -354,4 +363,47 @@ } + private static String addChain() { + if (LaunchException.getLaunchExceptionChain().isEmpty()) { + return ""; + } + return Translator.R(InfoItem.SPLASH + "chainWas") + + "
\n" + "
" + getChainAsString(true) + "
"; + + } + + private static String addPlainChain() { + if (LaunchException.getLaunchExceptionChain().isEmpty()) { + return ""; + } + return "\n Chain: \n" + getChainAsString(false); + + } + + private static String getChainAsString(boolean formatTime) { + return getChainAsString(LaunchException.getLaunchExceptionChain(), formatTime); + } + + private static String getChainAsString(List launchExceptionChain, boolean formatTime) { + String s = ""; + if (launchExceptionChain != null) { + int i = 0; + for (LaunchException.LaunchExceptionWithStamp launchException : launchExceptionChain) { + i++; + s = s + i + ") at " + formatTime(launchException.getStamp(), formatTime) + "\n" + getExceptionStackTraceAsString(launchException.getEx()); + } + } + return s; + } + + private static String formatTime(Date dateTime, boolean formatTime) { + if (dateTime == null) { + return "unknown time"; + } + if (formatTime) { + return DateFormat.getInstance().format(dateTime); + } else { + return dateTime.toString(); + } + } } diff -r 74a70e0b15ef -r f321ab6fb6c5 tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialogTest.java --- a/tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialogTest.java Mon Jan 28 11:38:34 2013 -0500 +++ b/tests/netx/unit/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialogTest.java Wed Jan 30 16:51:08 2013 +0100 @@ -40,6 +40,7 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import net.sourceforge.jnlp.runtime.Translator; import org.junit.Assert; @@ -107,10 +108,10 @@ @Test public void getTextTest() { - String s1 = JEditorPaneBasedExceptionDialog.getText(ex, l, ai); - String s2 = JEditorPaneBasedExceptionDialog.getText(ex, l, null); - String s3 = JEditorPaneBasedExceptionDialog.getText(ex, null, ai); - String s4 = JEditorPaneBasedExceptionDialog.getText(null, l, ai); + String s1 = JEditorPaneBasedExceptionDialog.getText(ex, l, ai, new Date()); + String s2 = JEditorPaneBasedExceptionDialog.getText(ex, l, null, new Date()); + String s3 = JEditorPaneBasedExceptionDialog.getText(ex, null, ai, new Date()); + String s4 = JEditorPaneBasedExceptionDialog.getText(null, l, ai, new Date()); assertHtml(s1); assertHtml(s2); assertHtml(s3); From adomurad at redhat.com Wed Jan 30 08:01:46 2013 From: adomurad at redhat.com (Adam Domurad) Date: Wed, 30 Jan 2013 11:01:46 -0500 Subject: [icedtea-web][rfc] Fix for PR580: http://www.horaoficial.cl/ loads improperly In-Reply-To: <51084252.60607@redhat.com> References: <51084252.60607@redhat.com> Message-ID: <510943EA.7070100@redhat.com> On 01/29/2013 04:42 PM, Adam Domurad wrote: > Hi all -- so this was a fix that I was working on for the unsigned > applet confirmation pop-up dialogue (similar to Oracle's security > levels). > > Turns out this applet is a pretty a good stress test. Basically it > causes 13 createApplet calls, which is a good way to reveal > concurrency issues in getInstance. > > Prior to patch: > - Some or all of the 3 times that show up never finish loading, > except after refresh > After patch: > - All times show without needing to refresh, as expected > > So why did it work mysteriously after refreshing ? After refresh, the > shared classloader is still around (although it -should- be cleared! > thats another bug!), and on the second round of loading all applets > latch on to the correct classloader. > > There was some basic synchronization on urlToLoader, but not enough. > It needs to synchronize all instances of the unique key for the entire > duration of the get/put. > > The first approach I took was to simply make > JNLPClassLoader#getInstance 'synchronized' -- however parallel loading > of different-unique-key applets would suffer. While same-unique-key > applets must load sequentially for correct behaviour, a long-loading > applet could make a short-loading applet wait a long time if > getInstance was simply synchronized. > > JNLPClassLoader continues to get more complicated, unfortunately ... > but this fix is needed. > I have also removed a try ... catch that did nothing but re-threw the > exception -- although I know this is unrelated, it allowed the diff to > be cleaner :-) Feel free to force it back ... > > Fix changelog: > 2013-XX-XX Adam Domurad > > Fix PR580: http://www.horaoficial.cl/ loads improperly. Applets that > must share a class-loader now load sequentially. > * NEWS: > Mention the fix. > * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java > (getUniqueKeyLock): New, atomically grabs or creates a lock for the > unique key. > (getInstance): Ensure classloader initialization is locked by unique > key. > (decrementLoaderUseCount): Ensure classloader deinitialization is > locked by unique key, get rid of no-longer used locks. Sorry originally I had: - private static Map urlToLoader = - new HashMap(); // never garbage collected! + /** map from JNLPFile unique key to shared classloader */ + private static Map uniqueKeyToLoader = new ConcurrentHashMap(); the ConcurrentHashMap is needed for correct behaviour. It got lost in patch reworking. Please consider patch as if it had it. -Adam From jvanek at icedtea.classpath.org Wed Jan 30 08:44:18 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 30 Jan 2013 16:44:18 +0000 Subject: /hg/icedtea-web: Iteration over launchExceptionChain done by poi... Message-ID: changeset c6b48ce8f868 in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=c6b48ce8f868 author: Jiri Vanek date: Wed Jan 30 17:44:44 2013 +0100 Iteration over launchExceptionChain done by pointer/get instead by iterator to prevent ConcurrentModificationException. diffstat: ChangeLog | 6 ++++++ netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java | 7 +++---- 2 files changed, 9 insertions(+), 4 deletions(-) diffs (30 lines): diff -r f321ab6fb6c5 -r c6b48ce8f868 ChangeLog --- a/ChangeLog Wed Jan 30 16:51:08 2013 +0100 +++ b/ChangeLog Wed Jan 30 17:44:44 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-30 Jiri Vanek + + * netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: + Iteration over launchExceptionChain done by pointer/get instead by iterator + to prevent ConcurrentModificationException. + 2013-01-30 Jiri Vanek Splashscreen error report made more detailed by stored LaunchErrors diff -r f321ab6fb6c5 -r c6b48ce8f868 netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java --- a/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Wed Jan 30 16:51:08 2013 +0100 +++ b/netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java Wed Jan 30 17:44:44 2013 +0100 @@ -387,10 +387,9 @@ private static String getChainAsString(List launchExceptionChain, boolean formatTime) { String s = ""; if (launchExceptionChain != null) { - int i = 0; - for (LaunchException.LaunchExceptionWithStamp launchException : launchExceptionChain) { - i++; - s = s + i + ") at " + formatTime(launchException.getStamp(), formatTime) + "\n" + getExceptionStackTraceAsString(launchException.getEx()); + for (int i = 0; i < launchExceptionChain.size(); i++) { + LaunchException.LaunchExceptionWithStamp launchException = launchExceptionChain.get(i); + s = s + (i+1) + ") at " + formatTime(launchException.getStamp(), formatTime) + "\n" + getExceptionStackTraceAsString(launchException.getEx()); } } return s; From adomurad at icedtea.classpath.org Wed Jan 30 09:01:16 2013 From: adomurad at icedtea.classpath.org (adomurad at icedtea.classpath.org) Date: Wed, 30 Jan 2013 17:01:16 +0000 Subject: /hg/icedtea-web: Fix for PR1292: Javaws does not resolve version... Message-ID: changeset fd0e84ce013e in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=fd0e84ce013e author: Adam Domurad date: Wed Jan 30 12:01:11 2013 -0500 Fix for PR1292: Javaws does not resolve versioned jar names with periods properly diffstat: ChangeLog | 18 ++ NEWS | 1 + netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java | 23 ++- tests/netx/unit/net/sourceforge/jnlp/cache/ResourceUrlCreatorTest.java | 43 ++++++ tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarDisabled.jnlp | 52 ++++++++ tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarEnabled.jnlp | 52 ++++++++ tests/reproducers/simple/VersionedJar__V1/srcs/VersionedJar.java | 46 +++++++ tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java | 64 ++++++++++ 8 files changed, 293 insertions(+), 6 deletions(-) diffs (356 lines): diff -r c6b48ce8f868 -r fd0e84ce013e ChangeLog --- a/ChangeLog Wed Jan 30 17:44:44 2013 +0100 +++ b/ChangeLog Wed Jan 30 12:01:11 2013 -0500 @@ -1,3 +1,21 @@ +2013-01-30 Adam Domurad + + Fix for PR1292: Javaws does not resolve versioned jar names with + periods correctly + * netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java + (getUrl): Fix versioning of jar names that have periods, eg + 'foo.bar.jar'. Make method static for testing. + * tests/netx/unit/net/sourceforge/jnlp/cache/ResourceUrlCreatorTest.java: + New, test version & pack URL encoding. + * tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarDisabled.jnlp: + New, tries to use versioned jar with versioning not turned on. + * tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarEnabled.jnlp: + New, tries to use versioned jar with versioning turned on. + * tests/reproducers/simple/VersionedJar__V1/srcs/VersionedJar.java: + New, prints simple message. + * tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java: + New, tests if VersionedJar has ran only with versioning turned on. + 2013-01-30 Jiri Vanek * netx/net/sourceforge/jnlp/splashscreen/parts/JEditorPaneBasedExceptionDialog.java: diff -r c6b48ce8f868 -r fd0e84ce013e NEWS --- a/NEWS Wed Jan 30 17:44:44 2013 +0100 +++ b/NEWS Wed Jan 30 12:01:11 2013 -0500 @@ -19,6 +19,7 @@ * NetX - PR1027: DownloadService is not supported by IcedTea-Web - PR725: JNLP applications will prompt for creating desktop shortcuts every time they are run + - PR1292: Javaws does not resolve versioned jar names with periods correctly * Plugin - PR1106: Buffer overflow in plugin table- - PR1166: Embedded JNLP File is not supported in applet tag diff -r c6b48ce8f868 -r fd0e84ce013e netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java --- a/netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java Wed Jan 30 17:44:44 2013 +0100 +++ b/netx/net/sourceforge/jnlp/cache/ResourceUrlCreator.java Wed Jan 30 12:01:11 2013 -0500 @@ -102,9 +102,9 @@ * @param resource the resource * @param usePack whether the URL should point to the pack200 file * @param useVersion whether the URL should be modified to include the version - * @return a URL for the resource or null if an appropraite URL can not be found + * @return a URL for the resource or null if an appropriate URL can not be found */ - protected URL getUrl(Resource resource, boolean usePack, boolean useVersion) { + static URL getUrl(Resource resource, boolean usePack, boolean useVersion) { if (!(usePack || useVersion)) { throw new IllegalArgumentException("either pack200 or version required"); } @@ -116,10 +116,21 @@ } String filename = location.substring(lastSlash + 1); if (useVersion && resource.requestVersion != null) { - String parts[] = filename.split("\\.", 2); - String name = parts[0]; - String extension = parts[1]; - filename = name + "__V" + resource.requestVersion + "." + extension; + // With 'useVersion', j2-commons-cli.jar becomes, for example, j2-commons-cli__V1.0.jar + String parts[] = filename.split("\\.", -1 /* Keep blank strings*/); + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < parts.length; i++) { + sb.append(parts[i]); + // Append __V before last '.' + if (i == parts.length -2) { + sb.append("__V" + resource.requestVersion); + } + sb.append('.'); + } + sb.setLength(sb.length() - 1); // remove last '.' + + filename = sb.toString(); } if (usePack) { filename = filename + ".pack.gz"; diff -r c6b48ce8f868 -r fd0e84ce013e tests/netx/unit/net/sourceforge/jnlp/cache/ResourceUrlCreatorTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceUrlCreatorTest.java Wed Jan 30 12:01:11 2013 -0500 @@ -0,0 +1,43 @@ +package net.sourceforge.jnlp.cache; + +import static org.junit.Assert.assertEquals; + +import java.net.MalformedURLException; +import java.net.URL; + +import net.sourceforge.jnlp.Version; + +import org.junit.Test; + +public class ResourceUrlCreatorTest { + + @Test + public void testVersionEncode() throws MalformedURLException { + Resource resource = Resource.getResource(new URL("http://test.jar"), new Version("1.1"), null); + URL result = ResourceUrlCreator.getUrl(resource, false /*don't use pack suffix*/, true /*use version suffix*/); + assertEquals("http://test__V1.1.jar", result.toString()); + } + + @Test + public void testVersionWithPeriods() throws MalformedURLException { + Resource resource = Resource.getResource(new URL("http://test.with.periods.jar"), new Version("1.1"), null); + URL result = ResourceUrlCreator.getUrl(resource, false /*don't use pack suffix*/, true /*use version suffix*/); + + // A previous bug had this as "test__V1.1.with.periods.jar" + assertEquals("http://test.with.periods__V1.1.jar", result.toString()); + } + + @Test + public void testPackEncode() throws MalformedURLException { + Resource resource = Resource.getResource(new URL("http://test.jar"), new Version("1.1"), null); + URL result = ResourceUrlCreator.getUrl(resource, true /*use pack suffix*/, false /*don't use version suffix*/); + assertEquals("http://test.jar.pack.gz", result.toString()); + } + + @Test + public void testVersionAndPackEncode() throws MalformedURLException { + Resource resource = Resource.getResource(new URL("http://test.jar"), new Version("1.1"), null); + URL result = ResourceUrlCreator.getUrl(resource, true /*use pack suffix*/, true/*use version suffix*/); + assertEquals("http://test__V1.1.jar.pack.gz", result.toString()); + } +} diff -r c6b48ce8f868 -r fd0e84ce013e tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarDisabled.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarDisabled.jnlp Wed Jan 30 12:01:11 2013 -0500 @@ -0,0 +1,52 @@ + + + + + + + Test versioned jars + IcedTea + + + + + + + diff -r c6b48ce8f868 -r fd0e84ce013e tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarEnabled.jnlp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/VersionedJar__V1/resources/VersionedJarEnabled.jnlp Wed Jan 30 12:01:11 2013 -0500 @@ -0,0 +1,52 @@ + + + + + + + Test replacing security manager + IcedTea + + + + + + + diff -r c6b48ce8f868 -r fd0e84ce013e tests/reproducers/simple/VersionedJar__V1/srcs/VersionedJar.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/VersionedJar__V1/srcs/VersionedJar.java Wed Jan 30 12:01:11 2013 -0500 @@ -0,0 +1,46 @@ +/* Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + +import java.applet.*; +import java.awt.*; +import java.lang.reflect.Array; +import java.lang.reflect.Field; + +public class VersionedJar { + static public void main(String[] args) { + System.out.println("Versioned jar was accessed."); + } +} \ No newline at end of file diff -r c6b48ce8f868 -r fd0e84ce013e tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/reproducers/simple/VersionedJar__V1/testcases/VersionedJarTest.java Wed Jan 30 12:01:11 2013 -0500 @@ -0,0 +1,64 @@ +/* Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as published by +the Free Software Foundation, version 2. + +IcedTea is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + + +import junit.framework.Assert; + +import net.sourceforge.jnlp.ProcessResult; +import net.sourceforge.jnlp.ServerAccess; + +import org.junit.Test; + +public class VersionedJarTest { + + private static final ServerAccess server = new ServerAccess(); + private static final String VERSIONED = "Versioned jar was accessed."; + private static final String FAILURE = "net.sourceforge.jnlp.LaunchException"; + + @Test + public void testDisabledVersionParameter() throws Exception { + ProcessResult pr = server.executeJavawsHeadless("/VersionedJarDisabled.jnlp"); + Assert.assertFalse("Stdout should NOT contain '" + VERSIONED + "', but did.", pr.stdout.contains(VERSIONED)); + Assert.assertTrue("Stderr should contain '" +FAILURE + "', but did not.", pr.stderr.contains(FAILURE)); + } + + @Test + public void testEnabledVersionParameter() throws Exception { + ProcessResult pr = server.executeJavawsHeadless("/VersionedJarEnabled.jnlp"); + Assert.assertTrue("Stdout should contain '" + VERSIONED + "', but did not.", pr.stdout.contains(VERSIONED)); + Assert.assertFalse("Stderr should NOT contain '" +FAILURE + "', but did.", pr.stderr.contains(FAILURE)); + } +} \ No newline at end of file From bugzilla-daemon at icedtea.classpath.org Wed Jan 30 09:01:25 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 30 Jan 2013 17:01:25 +0000 Subject: [Bug 1292] Javaws does not resolve versioned jar names with periods correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1292 --- Comment #1 from hg commits --- details: http://icedtea.classpath.org//hg/icedtea-web?cmd=changeset;node=fd0e84ce013e author: Adam Domurad date: Wed Jan 30 12:01:11 2013 -0500 Fix for PR1292: Javaws does not resolve versioned jar names with periods properly -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/d2db6c24/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 30 09:15:04 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 30 Jan 2013 17:15:04 +0000 Subject: [Bug 1292] Javaws does not resolve versioned jar names with periods correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1292 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|omajid at redhat.com |adomurad at redhat.com -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/a16cba96/attachment.html From bugzilla-daemon at icedtea.classpath.org Wed Jan 30 09:15:22 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 30 Jan 2013 17:15:22 +0000 Subject: [Bug 1292] Javaws does not resolve versioned jar names with periods correctly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1292 Adam Domurad changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Adam Domurad --- Fixed in HEAD. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130130/aa3107e2/attachment.html From jvanek at icedtea.classpath.org Wed Jan 30 10:08:37 2013 From: jvanek at icedtea.classpath.org (jvanek at icedtea.classpath.org) Date: Wed, 30 Jan 2013 18:08:37 +0000 Subject: /hg/icedtea-web: Add unit tests for locales and locales fixed Message-ID: changeset 1648b9f9cddf in /hg/icedtea-web details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=1648b9f9cddf author: Jiri Vanek date: Wed Jan 30 19:09:09 2013 +0100 Add unit tests for locales and locales fixed * netx/net/sourceforge/jnlp/resources/Messages.properties: * netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties: Added missing, filled empty and removed dangling items * tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java: New unittest for missing, empty, duplicate or dangling locales. diffstat: ChangeLog | 9 + netx/net/sourceforge/jnlp/resources/Messages.properties | 12 +- netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties | 18 +- tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java | 244 ++++++++++ 4 files changed, 270 insertions(+), 13 deletions(-) diffs (382 lines): diff -r fd0e84ce013e -r 1648b9f9cddf ChangeLog --- a/ChangeLog Wed Jan 30 12:01:11 2013 -0500 +++ b/ChangeLog Wed Jan 30 19:09:09 2013 +0100 @@ -1,3 +1,12 @@ +2013-01-30 Jiri Vanek + + Add unit tests for locales and locales fixed + * netx/net/sourceforge/jnlp/resources/Messages.properties: + * netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties: + Added missing, filled empty and removed dangling items + * tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java: + New unittest for missing, empty, duplicate or dangling locales. + 2013-01-30 Adam Domurad Fix for PR1292: Javaws does not resolve versioned jar names with diff -r fd0e84ce013e -r 1648b9f9cddf netx/net/sourceforge/jnlp/resources/Messages.properties --- a/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Jan 30 12:01:11 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages.properties Wed Jan 30 19:09:09 2013 +0100 @@ -51,11 +51,11 @@ LNullUpdatePolicy=Update policy cannot be null. LThreadInterrupted=Thread interrupted while waiting for file to launch. -LThreadInterruptedInfo= +LThreadInterruptedInfo=This can lead to deadlock or corrupted run, please restart your application/browser LCouldNotLaunch=Could not launch JNLP file. -LCouldNotLaunchInfo= +LCouldNotLaunchInfo=Application was not initialized, for more information execute javaws/browser from commandline and sent bug report. LCantRead=Could not read or parse the JNLP file. -LCantReadInfo= +LCantReadInfo=You can try to download this file manually and send it as bug report to IcedTea-Web team. LNullLocation=Could not determine .jnlp file location. LNullLocationInfo=An attempt was made to launch a JNLP file in another JVM, but the file could not be located. In order to launch in an external JVM, the runtime must be able to locate the .jnlp file either in the local filesystem or on a server. LNetxJarMissing=Could not determine location of netx.jar. @@ -69,9 +69,9 @@ LNoInstallers=Installers not supported. LNoInstallersInfo=JNLP installer files are not yet supported. LInitApplet=Could not initialize applet. -LInitAppletInfo= +LInitAppletInfo=For more information click "more information button". LInitApplication=Could not initialize application. -LInitApplicationInfo= +LInitApplicationInfo=Application was not initialized, for more information execute javaws from commandline. LNotLaunchable=Not a launchable JNLP file. LNotLaunchableInfo=File must be a JNLP application, applet, or installer type. LCantDetermineMainClass=Unknown Main-Class. @@ -96,7 +96,7 @@ LNotVerified=Jars not verified. LCancelOnUserRequest=Canceled on user request. LFatalVerification=A fatal error occurred while trying to verify jars. -LFatalVerificationInfo= +LFatalVerificationInfo=We caught an Exception from the JarCertVerifier class. One of these exceptions could be from not being able to read the cacerts or trusted.certs files. LNotVerifiedDialog=Not all jars could be verified. LAskToContinue=Would you still like to continue running this application? diff -r fd0e84ce013e -r 1648b9f9cddf netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties --- a/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Wed Jan 30 12:01:11 2013 -0500 +++ b/netx/net/sourceforge/jnlp/resources/Messages_cs_CZ.properties Wed Jan 30 19:09:09 2013 +0100 @@ -51,11 +51,11 @@ LNullUpdatePolicy=Pravidla pro aktualizaci nesm\u00ed b\u00fdt pr\u00e1zdn\u00e1. LThreadInterrupted=Vl\u00e1kno bylo p\u0159eru\u0161eno p\u0159i \u010dek\u00e1n\u00ed na spu\u0161t\u011bn\u00ed souboru. -LThreadInterruptedInfo= +LThreadInterruptedInfo=Toto m\u016f\u017ee v\u00e1st k zamrznut\u00ed nebo nedefinovan\u00e9mu chov\u00e1n\u00ed chov\u00e1n\u00ed aplikace. Restartuje apliakci/prohl\u00ed\u017ee\u010d. LCouldNotLaunch=Nelze spustit soubor JNLP. -LCouldNotLaunchInfo= +LCouldNotLaunchInfo=Apliakce nebyla inicializov\u00e1na, pro v\u00edce informac\u00ed spus\u0165te javaws/prohl\u00ed\u017ee\u010d z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky a za\u0161lete n\u00e1m chybovou zpr\u00e1vu. LCantRead=Nelze \u010d\u00edst nebo analyzovat soubor JNLP. -LCantReadInfo= +LCantReadInfo=Zkuste tento JNLP soubor st\u00e1hnout ru\u010dn\u011b, a posalt z\u00e1rove\u0148 s hl\u00e1\u0161en\u00edm chyby t\u00fdmu IcedTea-Web. LNullLocation=Nelze ur\u010dit um\u00edst\u011bn\u00ed souboru JNLP. LNullLocationInfo=Byl u\u010din\u011bn pokus o spu\u0161t\u011bn\u00ed souboru JNLP v jin\u00e9m prost\u0159ed\u00ed JVM, av\u0161ak soubor nebyl nalezen. Chcete-li spustit extern\u00ed prost\u0159ed\u00ed JVM, modul runtime mus\u00ed b\u00fdt schopen nal\u00e9zt soubor .jnlp v lok\u00e1ln\u00edm souborov\u00e9m syst\u00e9mu nebo na serveru. LNetxJarMissing=Nelze ur\u010dit um\u00edst\u011bn\u00ed souboru netx.jar. @@ -69,15 +69,17 @@ LNoInstallers=Instal\u00e1tory nejsou podporov\u00e1ny. LNoInstallersInfo=Instal\u00e1tory JNLP je\u0161t\u011b nejsou podporov\u00e1ny. LInitApplet=Nelze inicializovat applet. -LInitAppletInfo= +LInitAppletInfo=Pro v\u00edce informac\u00ed klikn\u011bte na tla\u010d\u00edtko pro v\u00edce informac\u00ed\u00e9. LInitApplication=Nelze inicializovat aplikaci. -LInitApplicationInfo= +LInitApplicationInfo=Apliakce nebyla inicializov\u00e1na, pro v\u00edce informac\u00ed spus\u0165te javaws z p\u0159\u00edkazov\u00e9 \u0159\u00e1dky. LNotLaunchable=Nejedn\u00e1 se o spustiteln\u00fd soubor JNLP. LNotLaunchableInfo=Soubor mus\u00ed b\u00fdt aplikac\u00ed, appletem nebo instal\u00e1torem JNLP. LCantDetermineMainClass=Nezn\u00e1m\u00e1 t\u0159\u00edda Main-Class. LCantDetermineMainClassInfo=Nelze ur\u010dit t\u0159\u00eddu main class pro tuto aplikaci. LUnsignedJarWithSecurity=Nelze ud\u011blit opr\u00e1vn\u011bn\u00ed nepodepsan\u00fdm soubor\u016fm JAR. LUnsignedJarWithSecurityInfo=Aplikace po\u017e\u00e1dala o bezpe\u010dnostn\u00ed opr\u00e1vn\u011bn\u00ed, av\u0161ak soubory JAR nejsou podeps\u00e1ny. +LSignedJNLPAppDifferentCerts=JNLP aplikace nen\u00ed pln\u011b podeps\u00e1na jedin\u00fdm cectifik\u00e1tem +LSignedJNLPAppDifferentCertsInfo=JNLP aplikace m\u00e1 podeps\u00e1ny v\u0161echny komponenty, ale jednotliv\u00e9 certifik\u00e1ty se li\u0161\u00ed. LSignedAppJarUsingUnsignedJar=Podepsan\u00e1 aplikace pou\u017e\u00edvaj\u00edc\u00ed nepodepsan\u00e9 soubory JAR. LSignedAppJarUsingUnsignedJarInfo=Hlavn\u00ed soubor JAR aplikace je podepsan\u00fd, av\u0161ak n\u011bkter\u00e9 z dal\u0161\u00edch pou\u017e\u00edvan\u00fdch soubor\u016f JAR nejsou podeps\u00e1ny. LSignedJNLPFileDidNotMatch=Podepsan\u00fd soubor JNLP se neshoduje se spou\u0161t\u011bn\u00fdm souborem JNLP. @@ -94,7 +96,7 @@ LNotVerified=Soubory JAR nebyly ov\u011b\u0159eny. LCancelOnUserRequest=Zru\u0161eno u\u017eivatelem. LFatalVerification=P\u0159i ov\u011b\u0159ov\u00e1n\u00ed soubor\u016f JAR do\u0161lo k z\u00e1va\u017en\u00e9 chyb\u011b. -LFatalVerificationInfo= +LFatalVerificationInfo=Byla odchycena v\u00fdjimka z mechanismu ov\u011b\u0159ov\u00e1n\u00ed certifik\u00e1t\u016f. Mo\u017en\u00fd zdroj m\u016f\u017ee b\u00fdt nemo\u017enost p\u0159e\u010d\u00edst cacerts nebi trusted.certs soubory. LNotVerifiedDialog=Nemohly b\u00fdt ov\u011b\u0159eny v\u0161echny soubory JAR. LAskToContinue=Chcete p\u0159esto pokra\u010dovat ve spou\u0161t\u011bn\u00ed t\u00e9to aplikace? @@ -228,7 +230,6 @@ SBadKeyUsage=Zdroj obsahuje polo\u017eky, u nich\u017e roz\u0161\u00ed\u0159en\u00ed pou\u017eit\u00ed kl\u00ed\u010de KeyUsage certifik\u00e1tu podepisovatele nedovoluje podeps\u00e1n\u00ed k\u00f3du. SBadExtendedKeyUsage=Zdroj obsahuje polo\u017eky, u nich\u017e roz\u0161\u00ed\u0159en\u00ed pou\u017eit\u00ed kl\u00ed\u010de ExtendedKeyUsage certifik\u00e1tu podepisovatele nedovoluje podeps\u00e1n\u00ed k\u00f3du. SBadNetscapeCertType=Zdroj obsahuje polo\u017eky, u nich\u017e roz\u0161\u00ed\u0159en\u00ed pou\u017eit\u00ed kl\u00ed\u010de NetscapeCertType certifik\u00e1tu podepisovatele nedovoluje podeps\u00e1n\u00ed k\u00f3du. -SHasUnsignedEntry=Zdroje obsahuj\u00ed nepodepsan\u00e9 polo\u017eky, jejich\u017e integrita nebyla zkontrolov\u00e1na. SHasExpiredCert=Platnost digit\u00e1ln\u00edho podpisu vypr\u0161ela. SHasExpiringCert=Zdroje obsahuj\u00ed polo\u017eky, u nich\u017e vypr\u0161\u00ed platnost certifik\u00e1tu jejich podepisovatele do \u0161esti m\u011bs\u00edc\u016f. SNotYetValidCert=Zdroje obsahuj\u00ed polo\u017eky, u nich\u017e je\u0161t\u011b nen\u00ed platn\u00fd certifik\u00e1t podepisovatele. @@ -299,6 +300,7 @@ CPSecurityDescription=Konfigurace nastaven\u00ed zabezpe\u010den\u00ed CPDebuggingDescription=Zapnut\u00ed mo\u017enost\u00ed pom\u00e1haj\u00edc\u00edch p\u0159i lad\u011bn\u00ed CPDesktopIntegrationDescription=Nastaven\u00ed, zda m\u00e1 b\u00fdt povoleno vytvo\u0159en\u00ed z\u00e1stupce na plo\u0161e +CPJVMPluginArguments = Nastavit argumenty JVM pro plugin. # Control Panel - Buttons CPButAbout=O aplikaci IcedTea-Web @@ -317,6 +319,7 @@ CPHeadDebugging=Nastaven\u00ed lad\u011bn\u00ed CPHeadDesktopIntegration=Integrace s pracovn\u00ed plochou CPHeadSecurity=Nastaven\u00ed zabezpe\u010den\u00ed +CPHeadJVMSettings=Nastaven\u00ed JVM # Control Panel - Tabs CPTabAbout=O aplikaci IcedTea-Web @@ -328,6 +331,7 @@ CPTabNetwork=S\u00ed\u0165 CPTabRuntimes=Moduly runtime CPTabSecurity=Zabezpe\u010den\u00ed +CPTabJVMSettings=Nastaven\u00ed JVM # Control Panel - AboutPanel CPAboutInfo=Toto je ovl\u00e1dac\u00ed panel umo\u017e\u0148uj\u00edc\u00ed nastavit deployment.properties.
Dokud nebudou implementov\u00e1ny v\u0161echny funkce, n\u011bkter\u00e9 z nich nebudou \u00fa\u010dinn\u00e9.
V sou\u010dasnosti nen\u00ed podporov\u00e1no pou\u017e\u00edv\u00e1n\u00ed v\u00edce prost\u0159ed\u00ed JRE.
diff -r fd0e84ce013e -r 1648b9f9cddf tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/netx/unit/net/sourceforge/jnlp/resources/MessagesPropertiesTest.java Wed Jan 30 19:09:09 2013 +0100 @@ -0,0 +1,244 @@ +/* Copyright (C) 2012 Red Hat, Inc. + + This file is part of IcedTea. + + IcedTea is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + IcedTea is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with IcedTea; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License cover the whole + combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from + or based on this library. If you modify this library, you may extend + this exception to your version of the library, but you are not + obligated to do so. If you do not wish to do so, delete this + exception statement from your version. */ +package net.sourceforge.jnlp.resources; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.Locale; +import java.util.MissingResourceException; +import java.util.ResourceBundle; +import net.sourceforge.jnlp.ServerAccess; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import org.junit.BeforeClass; +import org.junit.Test; + +public class MessagesPropertiesTest { + + public static final String mainFile = "Messages"; + public static final String[] secondaryCountries = new String[]{"cs"}; + public static final String[] secondaryLanguages = new String[]{"CZ"}; + public static ResourceBundle main; + public static ResourceBundle[] secondary = new ResourceBundle[secondaryCountries.length]; + + @BeforeClass + public static void loadResourceBoundels() { + assertTrue("length of countries and languages must be same", secondaryCountries.length == secondaryLanguages.length); + //get default by non existing language and country + main = ResourceBundle.getBundle("net.sourceforge.jnlp.resources." + mainFile, new Locale("dfgdfg", "gvff")); + secondary = new ResourceBundle[secondaryCountries.length]; + assertNotNull(main); + for (int i = 0; i < secondaryCountries.length; i++) { + String country = secondaryCountries[i]; + String language = secondaryLanguages[i]; + secondary[i] = ResourceBundle.getBundle("net.sourceforge.jnlp.resources." + mainFile, new Locale(country, language)); + assertNotNull(secondary[i]); + } + } + + @Test + public void allResourcesAreReallyDifferent() { + List ids = new ArrayList(secondary.length + 1); + ids.add("default"); + List bundles = new ArrayList(secondary.length + 1); + bundles.add(main); + int errors = 0; + for (int i = 0; i < secondaryCountries.length; i++) { + String country = secondaryCountries[i]; + String language = secondaryLanguages[i]; + ids.add(country + "_" + language); + bundles.add(secondary[i]); + + } + for (int i = 0; i < bundles.size(); i++) { + ResourceBundle resourceBundle1 = bundles.get(i); + String id1 = ids.get(i); + Enumeration keys1 = resourceBundle1.getKeys(); + for (int j = 0; j < bundles.size(); j++) { + if (i == j) { + break; + } + ResourceBundle resourceBundle2 = bundles.get(j); + String id2 = ids.get(j); + outLog("Checking for same items between " + resourceBundle1.getLocale() + " x " + resourceBundle2.getLocale() + " (should be " + id1 + " x " + id2 + ")"); + errLog("Checking for same items between " + resourceBundle1.getLocale() + " x " + resourceBundle2.getLocale() + " (should be " + id1 + " x " + id2 + ")"); + int localErrors=0; + while (keys1.hasMoreElements()) { + String key = (String) keys1.nextElement(); + String val1 = getMissingResourceAsEmpty(resourceBundle1, key); + String val2 = getMissingResourceAsEmpty(resourceBundle2, key); + outLog("\""+val1+"\" x \""+val2); + if (val1.trim().equalsIgnoreCase(val2.trim())) { + if (val1.trim().length() <= 5 /*"ok", "", ...*/ || val1.toLowerCase().contains("://") /*urls...*/) { + errLog("Warning! Items equals for: " + key + " = " + val1 + " but are in allowed subset"); + } else { + errors++; + localErrors++; + errLog("Error! Items equals for: " + key + " = " + val1); + } + } + } + errLog(localErrors+" errors allResourcesAreReallyDifferent fo "+id2+" x "+id1); + + } + } + assertTrue("Several - " + errors + " - items are same in bundles. See error logs for details", errors == 0); + } + + private String getMissingResourceAsEmpty(ResourceBundle res, String key) { + try { + return res.getString(key); + } catch (MissingResourceException ex) { + return ""; + } + } + + @Test + //it is not critical that some localisations are missing, however good to know + public void warnForNotLocalisedStrings() { + int errors = 0; + Enumeration keys = main.getKeys(); + for (int i = 0; i < secondary.length; i++) { + int localErrors = 0; + ResourceBundle sec = secondary[i]; + String country = secondaryCountries[i]; + String language = secondaryLanguages[i]; + String id = country + "_" + language; + outLog("Checking for missing strings in " + sec.getLocale() + " (should be " + id + ") compared with default"); + errLog("Checking for missing strings in " + sec.getLocale() + " (should be " + id + ") compared with default"); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + String val1 = getMissingResourceAsEmpty(main, key); + String val2 = getMissingResourceAsEmpty(sec, key); + outLog("\""+val1+"\" x \""+val2); + if (val1.trim().isEmpty()) { + } else { + if (val2.trim().isEmpty()){ + errors++; + localErrors++; + errLog("Error! There is value for default: " + key + ", but for " + id+" is missing"); + } + + } + } + errLog(localErrors+" warnForNotLocalisedStrings errors for "+id); + + } + assertTrue("Several - " + errors + " - items have missing localization. See error logs for details", errors == 0); + } + + + + @Test + public void noEmptyResources() { + List ids = new ArrayList(secondary.length + 1); + ids.add("default"); + List bundles = new ArrayList(secondary.length + 1); + bundles.add(main); + int errors = 0; + for (int i = 0; i < secondaryCountries.length; i++) { + String country = secondaryCountries[i]; + String language = secondaryLanguages[i]; + ids.add(country + "_" + language); + bundles.add(secondary[i]); + + } + for (int i = 0; i < bundles.size(); i++) { + ResourceBundle resourceBundle = bundles.get(i); + String id = ids.get(i); + Enumeration keys = resourceBundle.getKeys(); + outLog("Checking for empty items in " + resourceBundle.getLocale() + " (should be " + id + ")"); + errLog("Checking for empty items in " + resourceBundle.getLocale() + " (should be " + id + ")"); + int localErrors=0; + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + String val = getMissingResourceAsEmpty(resourceBundle, key); + outLog("\""+key+"\" = \""+val); + if (val.trim().isEmpty()) { + errors++; + localErrors++; + errLog("Error! Key: " + key + " have no vlue"); + } + + } + errLog(localErrors+" noEmptyResources errors for "+id); + + } + assertTrue("Several - " + errors + " - items have no values", errors == 0); + } + + + @Test + public void findKeysWhichAreInLocalisedButNotInDefault() { + int errors = 0; + for (int i = 0; i < secondary.length; i++) { + int localErrors = 0; + ResourceBundle sec = secondary[i]; + Enumeration keys = sec.getKeys(); + String country = secondaryCountries[i]; + String language = secondaryLanguages[i]; + String id = country + "_" + language; + outLog("Checking for redundant keys in " + sec.getLocale() + " (should be " + id + ") compared with default"); + errLog("Checking for redundant keys in " + sec.getLocale() + " (should be " + id + ") compared with default"); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + String val2 = getMissingResourceAsEmpty(main, key); + String val1 = getMissingResourceAsEmpty(sec, key); + outLog("\""+val1+"\" x \""+val2); + if (val2.trim().isEmpty() && !val1.trim().isEmpty()){ + errors++; + localErrors++; + errLog("Error! There is value for "+id+", key " + key + ", but for default is missing"); + } + + } + errLog(localErrors+" findKeysWhichAreInLocalisedButNotInDefault errors for "+id); + + } + assertTrue("Several - " + errors + " - items have value in localized version but not in default one", errors == 0); + } + + + + private void errLog(String string) { + ServerAccess.logErrorReprint(string); + } + + private void outLog(String string) { + ServerAccess.logOutputReprint(string); + } +} From gitne at excite.co.jp Wed Jan 30 13:34:36 2013 From: gitne at excite.co.jp (=?ISO-2022-JP?B?SmFrb2IgV2lzb3I=?=) Date: Thu, 31 Jan 2013 06:34:36 +0900 Subject: =?ISO-2022-JP?B?UmU6IDxpMThuIGRldj4gTmV3YmllIHF1ZXN0aW9ucw==?= Message-ID: <201301302134.r0ULYaEk020161@mail-web02.excite.co.jp> "Jiri Vanek" wrote: >>> Currently there is no Polish developer active, so your file will be probably >>> not-checked :) > > I forgot Adam do speak a bit of Polish! And there is probably Miachal Gorny who did the Netscape plug-in integration ;) >>> I would like to help you with any problems you may encounter - both by >>> developer point of view and from guy who provided CZ translation. Hey thanks, that is kind of you. I sure need any help I might get. Regarding the translation; Did you follow any policy or guide while translating to cz? I was not sure how close to stay to the en original. I tried to stay as close as possible rather then doing a more semanticly oriented translation. What is the preferred policy on that? >>> Thank you guys. I would be really glad to help you, but unfortunately there >>> is a problem while cloning the repository on Windows systems since they do >>> not support case-sensitive file systems by default. >> >> tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_ >> 2e.html >> tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_ >> 2E.html >> >> are causing an abort. Please resolve this issue. > > I see:(( It will not be solved as fast as one want. Well, as long as it stays on the agenda that should be fine. I will try to contact the person that has created the test or has touched it lately, so as to perhaps speed up the process a bit. > I have looked into the Mercurial configuration and manual, but there is no > option to rename conflicting file names. The operation is simply aborted. But, > there is an option that emits a warning when commiting file names that may > cause problems on different operating systems. Might be a hint for the future. > ;) >> I would rather not download a tgz or tbz since I still will not be able to >> submit a patch. > > Actually you can live with tarball pretty fine as patch is not needed. Or even > without icedtea-web sources/compilation completely - the only necessary output > of yours is the Messages_pl_PL.properties file. Yes, I know, a working local repository would still make life easier. I have downloaded the original Messages.properties and made translations for all officially German speaking localities de_AT, de_BE, de_CH, de_DE, de_LI, and de_LU first. I am going to take on pl_PL next. >> Btw, I do not run a Linux machine, not even as a VM and I do not have the >> time to set one up. And as far as I understand icedtea-web is not available >> for Windows, so some of you guys is going to have to test those new localized >> property files. > > Icedtea-web itself should be compilable on windows, however I'm afraid no one > ever tried :( And I'm pretty sure there will be some complications. > > So yes, testing (Also crating of automated tests) will be necessary and > probably I will do it. I might take a look into this matter after I am done with translations. But before that, I have to figure out how to upload files for review. Wish me luck! ;) Jacob From ptisnovs at icedtea.classpath.org Thu Jan 31 00:49:08 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 31 Jan 2013 08:49:08 +0000 Subject: /hg/rhino-tests: Three new tests added into BindingsClassTest: g... Message-ID: changeset 358cb09b56b9 in /hg/rhino-tests details: http://icedtea.classpath.org/hg/rhino-tests?cmd=changeset;node=358cb09b56b9 author: Pavel Tisnovsky date: Thu Jan 31 09:52:04 2013 +0100 Three new tests added into BindingsClassTest: getMethod(), getDeclaredMethod() and getAnnotation(). diffstat: ChangeLog | 6 + src/org/RhinoTests/BindingsClassTest.java | 139 ++++++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 8 deletions(-) diffs (212 lines): diff -r 667993be1ed8 -r 358cb09b56b9 ChangeLog --- a/ChangeLog Wed Jan 30 09:22:04 2013 +0100 +++ b/ChangeLog Thu Jan 31 09:52:04 2013 +0100 @@ -1,3 +1,9 @@ +2013-01-31 Pavel Tisnovsky + + * src/org/RhinoTests/BindingsClassTest.java: + Three new tests added into BindingsClassTest: getMethod(), + getDeclaredMethod() and getAnnotation(). + 2013-01-30 Pavel Tisnovsky * src/org/RhinoTests/ScriptEngineClassTest.java: diff -r 667993be1ed8 -r 358cb09b56b9 src/org/RhinoTests/BindingsClassTest.java --- a/src/org/RhinoTests/BindingsClassTest.java Wed Jan 30 09:22:04 2013 +0100 +++ b/src/org/RhinoTests/BindingsClassTest.java Thu Jan 31 09:52:04 2013 +0100 @@ -497,7 +497,7 @@ */ protected void testGetMethods() { // following methods should be inherited - final String[] methodsThatShouldExists_jdk6 = { + final String[] methodsThatShouldExist_jdk6 = { "public abstract boolean java.util.Map.containsValue(java.lang.Object)", "public abstract boolean java.util.Map.equals(java.lang.Object)", "public abstract boolean java.util.Map.isEmpty()", @@ -515,7 +515,7 @@ "public abstract void javax.script.Bindings.putAll(java.util.Map)", }; - final String[] methodsThatShouldExists_jdk7 = { + final String[] methodsThatShouldExist_jdk7 = { "public abstract boolean java.util.Map.containsValue(java.lang.Object)", "public abstract boolean java.util.Map.equals(java.lang.Object)", "public abstract boolean java.util.Map.isEmpty()", @@ -540,9 +540,9 @@ for (Method method : methods) { methodsAsString.add(method.toString()); } - String[] methodsThatShouldExists = getJavaVersion() < 7 ? methodsThatShouldExists_jdk6 : methodsThatShouldExists_jdk7; + String[] methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; // check if all required methods really exists - for (String methodThatShouldExists : methodsThatShouldExists) { + for (String methodThatShouldExists : methodsThatShouldExist) { assertTrue(methodsAsString.contains(methodThatShouldExists), "method " + methodThatShouldExists + " not found"); } @@ -553,7 +553,7 @@ */ protected void testGetDeclaredMethods() { // following methods should be declared - final String[] declaredMethodsThatShouldExists_jdk6 = { + final String[] declaredMethodsThatShouldExist_jdk6 = { "public abstract boolean javax.script.Bindings.containsKey(java.lang.Object)", "public abstract java.lang.Object javax.script.Bindings.get(java.lang.Object)", "public abstract java.lang.Object javax.script.Bindings.put(java.lang.String,java.lang.Object)", @@ -561,7 +561,7 @@ "public abstract void javax.script.Bindings.putAll(java.util.Map)", }; - final String[] declaredMethodsThatShouldExists_jdk7 = { + final String[] declaredMethodsThatShouldExist_jdk7 = { "public abstract boolean javax.script.Bindings.containsKey(java.lang.Object)", "public abstract java.lang.Object javax.script.Bindings.get(java.lang.Object)", "public abstract java.lang.Object javax.script.Bindings.put(java.lang.String,java.lang.Object)", @@ -576,15 +576,115 @@ for (Method method : declaredMethods) { methodsAsString.add(method.toString()); } - String[] declaredMethodsThatShouldExists = getJavaVersion() < 7 ? declaredMethodsThatShouldExists_jdk6 : declaredMethodsThatShouldExists_jdk7; + String[] declaredMethodsThatShouldExist = getJavaVersion() < 7 ? declaredMethodsThatShouldExist_jdk6 : declaredMethodsThatShouldExist_jdk7; // check if all required methods really exists - for (String methodThatShouldExists : declaredMethodsThatShouldExists) { + for (String methodThatShouldExists : declaredMethodsThatShouldExist) { assertTrue(methodsAsString.contains(methodThatShouldExists), "declared method " + methodThatShouldExists + " not found"); } } /** + * Test for method javax.script.Bindings.getClass().getMethod() + */ + protected void testGetMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("get", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("putAll", new Class[] {java.util.Map.class}); + methodsThatShouldExist_jdk6.put("remove", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("containsKey", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.Object.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("hashCode", new Class[] {}); + methodsThatShouldExist_jdk6.put("equals", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("clear", new Class[] {}); + methodsThatShouldExist_jdk6.put("size", new Class[] {}); + methodsThatShouldExist_jdk6.put("isEmpty", new Class[] {}); + methodsThatShouldExist_jdk6.put("values", new Class[] {}); + methodsThatShouldExist_jdk6.put("entrySet", new Class[] {}); + methodsThatShouldExist_jdk6.put("keySet", new Class[] {}); + methodsThatShouldExist_jdk6.put("containsValue", new Class[] {java.lang.Object.class}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("remove", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("get", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("putAll", new Class[] {java.util.Map.class}); + methodsThatShouldExist_jdk7.put("containsKey", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.Object.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("equals", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("values", new Class[] {}); + methodsThatShouldExist_jdk7.put("hashCode", new Class[] {}); + methodsThatShouldExist_jdk7.put("clear", new Class[] {}); + methodsThatShouldExist_jdk7.put("isEmpty", new Class[] {}); + methodsThatShouldExist_jdk7.put("size", new Class[] {}); + methodsThatShouldExist_jdk7.put("entrySet", new Class[] {}); + methodsThatShouldExist_jdk7.put("keySet", new Class[] {}); + methodsThatShouldExist_jdk7.put("containsValue", new Class[] {java.lang.Object.class}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.bindingsClass.getMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** + * Test for method javax.script.Bindings.getClass().getDeclaredMethod() + */ + protected void testGetDeclaredMethod() { + // following methods should exist + Map methodsThatShouldExist_jdk6 = new TreeMap(); + methodsThatShouldExist_jdk6.put("get", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("putAll", new Class[] {java.util.Map.class}); + methodsThatShouldExist_jdk6.put("remove", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk6.put("containsKey", new Class[] {java.lang.Object.class}); + + Map methodsThatShouldExist_jdk7 = new TreeMap(); + methodsThatShouldExist_jdk7.put("remove", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("get", new Class[] {java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("put", new Class[] {java.lang.String.class, java.lang.Object.class}); + methodsThatShouldExist_jdk7.put("putAll", new Class[] {java.util.Map.class}); + methodsThatShouldExist_jdk7.put("containsKey", new Class[] {java.lang.Object.class}); + + Map methodsThatShouldExist = getJavaVersion() < 7 ? methodsThatShouldExist_jdk6 : methodsThatShouldExist_jdk7; + + // check if all required methods really exist + for (Map.Entry methodThatShouldExists : methodsThatShouldExist.entrySet()) { + try { + Method method = this.bindingsClass.getDeclaredMethod(methodThatShouldExists.getKey(), methodThatShouldExists.getValue()); + assertNotNull(method, + "method " + methodThatShouldExists.getKey() + " not found"); + String methodName = method.getName(); + assertNotNull(methodName, + "method " + methodThatShouldExists.getKey() + " does not have name assigned"); + assertTrue(methodName.equals(methodThatShouldExists.getKey()), + "method " + methodThatShouldExists.getKey() + " not found"); + } + catch (Exception e) { + e.printStackTrace(); + throw new AssertionError(e.getMessage()); + } + } + } + + /** * Test for method javax.script.Bindings.getClass().getAnnotations() */ protected void testGetAnnotations() { @@ -639,6 +739,29 @@ } /** + * Test for method javax.script.Bindings.getClass().getAnnotation() + */ + protected void testGetAnnotation() { + Annotation annotation; + annotation = this.bindingsClass.getAnnotation(java.lang.annotation.Annotation.class); + assertNull(annotation, "annotation java.lang.annotation.Annotation should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.annotation.Documented.class); + assertNull(annotation, "annotation java.lang.annotation.Documented should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.annotation.Inherited.class); + assertNull(annotation, "annotation java.lang.annotation.Inherited should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.annotation.Retention.class); + assertNull(annotation, "annotation java.lang.annotation.Retention should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.annotation.Target.class); + assertNull(annotation, "annotation java.lang.annotation.Target should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.Deprecated.class); + assertNull(annotation, "annotation java.lang.Deprecated should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.Override.class); + assertNull(annotation, "annotation java.lang.Override should not be returned"); + annotation = this.bindingsClass.getAnnotation(java.lang.SuppressWarnings.class); + assertNull(annotation, "annotation java.lang.SuppressWarnings should not be returned"); + } + + /** * Test for method javax.script.Bindings.getClass().getEnclosingClass() */ protected void testGetEnclosingClass() { From ptisnovs at icedtea.classpath.org Thu Jan 31 00:53:56 2013 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Thu, 31 Jan 2013 08:53:56 +0000 Subject: /hg/gfx-test: Added five new tests into the test suite Paths.jav... Message-ID: changeset 9c7ac29d5ebe in /hg/gfx-test details: http://icedtea.classpath.org/hg/gfx-test?cmd=changeset;node=9c7ac29d5ebe author: Pavel Tisnovsky date: Thu Jan 31 09:56:58 2013 +0100 Added five new tests into the test suite Paths.java: testClosedPathDoubleExtraThickStrokePaint, testCrossedClosedPathFloatExtraThickStrokePaint, testCrossedClosedPathDoubleExtraThickStrokePaint, testLinePathFloatDashedStrokePaint and testLinePathDoubleDashedStrokePaint. diffstat: ChangeLog | 10 +++ src/org/gfxtest/testsuites/Paths.java | 108 ++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 0 deletions(-) diffs (135 lines): diff -r f1dfde32c5a5 -r 9c7ac29d5ebe ChangeLog --- a/ChangeLog Wed Jan 30 09:16:14 2013 +0100 +++ b/ChangeLog Thu Jan 31 09:56:58 2013 +0100 @@ -1,3 +1,13 @@ +2013-01-31 Pavel Tisnovsky + + * src/org/gfxtest/testsuites/Paths.java: + Added five new tests into the test suite Paths.java: + testClosedPathDoubleExtraThickStrokePaint, + testCrossedClosedPathFloatExtraThickStrokePaint, + testCrossedClosedPathDoubleExtraThickStrokePaint, + testLinePathFloatDashedStrokePaint and + testLinePathDoubleDashedStrokePaint. + 2013-01-30 Pavel Tisnovsky * src/org/gfxtest/testsuites/Paths.java: diff -r f1dfde32c5a5 -r 9c7ac29d5ebe src/org/gfxtest/testsuites/Paths.java --- a/src/org/gfxtest/testsuites/Paths.java Wed Jan 30 09:16:14 2013 +0100 +++ b/src/org/gfxtest/testsuites/Paths.java Thu Jan 31 09:56:58 2013 +0100 @@ -1120,6 +1120,114 @@ } /** + * Check if closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testClosedPathDoubleExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawClosedPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCrossedClosedPathFloatExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawCrossedPathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if crossed closed path could be clipped by an ellipse shape. Path + * is rendered using stroke paint with extra thick width. + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testCrossedClosedPathDoubleExtraThickStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set stroke color + CommonRenderingStyles.setStrokeColor(graphics2d); + // set stroke width + CommonRenderingStyles.setStrokeExtraThickWidth(graphics2d); + // draw the path + drawCrossedPathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with default stroke width. + * Line path is constructed using new Path.Float() + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testLinePathFloatDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // draw the path + drawLinePathFloat(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** + * Check if line path could be clipped by an ellipse shape. Path is + * rendered using stroke paint with default stroke width. + * Line path is constructed using new Path.Double() + * + * @param image + * work image + * @param graphics2d + * graphics canvas + * @return test result status - PASSED, FAILED or ERROR + */ + public TestResult testLinePathDoubleDashedStrokePaint(TestImage image, Graphics2D graphics2d) + { + // set dashed pattern + CommonRenderingStyles.setDashedStrokePattern(graphics2d); + // draw the path + drawLinePathDouble(image, graphics2d); + // test result + return TestResult.PASSED; + } + + /** * Entry point to the test suite. * * @param args From jvanek at redhat.com Thu Jan 31 00:56:12 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 31 Jan 2013 09:56:12 +0100 Subject: Newbie questions In-Reply-To: <201301302134.r0ULYaEk020161@mail-web02.excite.co.jp> References: <201301302134.r0ULYaEk020161@mail-web02.excite.co.jp> Message-ID: <510A31AC.6000902@redhat.com> On 01/30/2013 10:34 PM, Jakob Wisor wrote: > "Jiri Vanek" wrote: >>>> Currently there is no Polish developer active, so your file will be probably >>>> not-checked :) >> >> I forgot Adam do speak a bit of Polish! > > And there is probably Miachal Gorny who did the Netscape plug-in integration ;) > >>>> I would like to help you with any problems you may encounter - both by >>>> developer point of view and from guy who provided CZ translation. > > Hey thanks, that is kind of you. I sure need any help I might get. > > Regarding the translation; Did you follow any policy or guide while translating to cz? I was not sure how close to stay to the en original. I tried to stay as close as possible rather then doing a more semanticly oriented translation. What is the preferred policy on that? This is answer from Alexandr (CCed) who created cz transaltion: " Hello, as far as I know there is no style guide or policy. I tried to stay as close to the source text as possible. But of course I adapted the sentence structure etc., so that it reads naturally in Czech and according to context (instruction for users x description of a feature, etc.). In some cases the meaning wasn't very clear. Then I contacted the software developers for clarifying. In some cases the meaning turned out to be quite different from the original source text, so I recommend to ask whenever you are not sure about anything." => Quite a throng of emails;) > >>>> Thank you guys. I would be really glad to help you, but unfortunately there >>>> is a problem while cloning the repository on Windows systems since they do >>>> not support case-sensitive file systems by default. >>> >>> tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_ >>> 2e.html >>> tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_ >>> 2E.html >>> >>> are causing an abort. Please resolve this issue. >> >> I see:(( It will not be solved as fast as one want. > > Well, as long as it stays on the agenda that should be fine. I will try to contact the person that has created the test or has touched it lately, so as to perhaps speed up the process a bit. well.... I'm the guilty :( Ok. see the rebuke - going to post the patch today. > >> I have looked into the Mercurial configuration and manual, but there is no >> option to rename conflicting file names. The operation is simply aborted. But, >> there is an option that emits a warning when commiting file names that may >> cause problems on different operating systems. Might be a hint for the future. >> ;) >>> I would rather not download a tgz or tbz since I still will not be able to >>> submit a patch. >> >> Actually you can live with tarball pretty fine as patch is not needed. Or even >> without icedtea-web sources/compilation completely - the only necessary output >> of yours is the Messages_pl_PL.properties file. > > Yes, I know, a working local repository would still make life easier. I have downloaded the original Messages.properties and made translations for all officially German speaking localities de_AT, de_BE, de_CH, de_DE, de_LI, and de_LU first. I am going to take on pl_PL next. Wou. Quite a speed. > > >>> Btw, I do not run a Linux machine, not even as a VM and I do not have the >>> time to set one up. And as far as I understand icedtea-web is not available >>> for Windows, so some of you guys is going to have to test those new localized >>> property files. >> >> Icedtea-web itself should be compilable on windows, however I'm afraid no one >> ever tried :( And I'm pretty sure there will be some complications. >> >> So yes, testing (Also crating of automated tests) will be necessary and >> probably I will do it. > > I might take a look into this matter after I am done with translations. But before that, I have to figure out how to upload files for review. Wish me luck! ;) No figuring out needed! Just sent the new properties files and I will check! Best regards, J. From bugzilla-daemon at icedtea.classpath.org Thu Jan 31 01:34:44 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 31 Jan 2013 09:34:44 +0000 Subject: [Bug 1198] JSObject passed to Javascript incorrectly In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1198 --- Comment #10 from helpcrypto at gmail.com --- Works like a charm. I have tested everything im using and works ok (with todays HEAD) Thank you all! PS: Someday in the future, i will test how it works using callbacks and other javascript-complex objects. -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/1f2e7ba3/attachment.html From jvanek at redhat.com Thu Jan 31 01:53:17 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 31 Jan 2013 10:53:17 +0100 Subject: [rfc][icedtea-web] Renaming of conflict names for case insensitive systems Message-ID: <510A3F0D.10906@redhat.com> 2013-01-31 Jiri Vanek Renamed conflict file for case insensitive systems * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html: Renamed to ParallelAppletsTest_1_x_2EE.html * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2EE.html: new file. * tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java: (testParallelAppletsTest1x2E) adapted to renaming -------------- next part -------------- A non-text attachment was scrubbed... Name: diff.patch Type: text/x-patch Size: 5245 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/198657f4/diff.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: gitDiff.patch Type: text/x-patch Size: 1098 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/198657f4/gitDiff.patch From helpcrypto at gmail.com Thu Jan 31 02:21:49 2013 From: helpcrypto at gmail.com (helpcrypto helpcrypto) Date: Thu, 31 Jan 2013 11:21:49 +0100 Subject: [icedtea-web] Idea - do not start ITW applets automatically In-Reply-To: <50FFDDCC.6030303@redhat.com> References: <50A550CD.7010504@redhat.com> <50F6F87B.4040805@redhat.com> <50F6FB05.5010909@redhat.com> <50F81054.8080809@redhat.com> <50F9365F.3000205@redhat.com> <50F9A3A3.9020701@redhat.com> <50FD746C.5010805@redhat.com> <50FE9BE5.1070806@redhat.com> <50FFDDCC.6030303@redhat.com> Message-ID: Not the same topic but related: I have a page which loads an applet from foo.jar, showing the browser java-warning to enable the applet. Using an html input click event, the applet should be removed from the page, and another applet from bar.jar should be loaded. This should show another warning to enable the second java/applet, isnt it? (actually is not working for me, but i must be doing something wrong) From jvanek at redhat.com Thu Jan 31 02:53:58 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 31 Jan 2013 11:53:58 +0100 Subject: Newbie questions In-Reply-To: References: <201301302134.r0ULYaEk020161@mail-web02.excite.co.jp> <510A31AC.6000902@redhat.com> Message-ID: <510A4D46.7080400@redhat.com> On 01/31/2013 11:25 AM, skolnag at gmail.com wrote: > --- Regarding the translation; Did you follow any policy or guide while translating to cz? I was > not sure how close to stay to the en original. I tried to stay as close as possible rather then > doing a more semanticly oriented translation. What is the preferred policy on that? > > This is answer from Alexandr (CCed) who created cz transaltion: > > " Hello, as far as I know there is no style guide or policy. I tried to stay as close to the source > text as possible. But of course I adapted the sentence structure etc., so that it reads naturally in > Czech and according to context (instruction for users x description of a feature, etc.). In some > cases the meaning wasn't very clear. Then I contacted the software developers for clarifying. In > some cases the meaning turned out to be quite different from the original source text, so I > recommend to ask whenever you are not sure about anything."--- > > Hello, > > May be a few more comments, that might be helpful. Generally, if no specific style guide si > provided, it is mostly good to follow Microsoft style guide, which is de facto standard for IT > translations, is very useful and is mostly used in professional IT translations. The MS style guides > can be downloaded here: > > http://www.microsoft.com/Language/en-US/StyleGuides.aspx > > With regard to terminology, I mostly followed suggestions from Open-Tran.eu (http://open-tran.eu/ ; > terminology as used in several important open source projects) and/or Microsoft glossaries > (http://www.microsoft.com/Language/en-US/Default.aspx) > > Also you probably noticed that already, but just to be sure - a part of the file has restrictions > for the length of the string (check "Boot options" part in the Messages.properties file). This might > complicate the translation a bit :-) > > Greetings, > Alexandr > Just small addition. Several corrupted entries were fixed yesterday, so maybe update to your *_DE translations will be needed - see http://icedtea.classpath.org/hg/icedtea-web/rev/1648b9f9cddf Also from developer perspective the only need is encoding and line-endings. All lines should end by LF as linux do and not by CR LF as windows do. Also encoding utf-8 (and not windows' iso) have to be kept. I should write this to you probably earlier :(, sincerely sorry. J. From jvanek at redhat.com Thu Jan 31 05:29:06 2013 From: jvanek at redhat.com (Jiri Vanek) Date: Thu, 31 Jan 2013 14:29:06 +0100 Subject: [rfc][icedtea-web] tests for hanging firefox Message-ID: <510A71A2.4090404@redhat.com> Following tests are testing now fixed, hanging of firefox after the LaunchExceeption. To achieve this I have missused AddShutDown test. It was one of the most stable test... So I'm looking forward how my changes will destabilize it :) (not expected!) 2013-01-31 Jiri Vanek Added test for hanging firefox by LaunchException and Improved AddShutdownHookTest * tests/reproducers/simple/AddShutdownHook/resources/AddShutdownHook.html: new file to launch applet with RuntimeException as result. * tests/reproducers/simple/AddShutdownHook/resources/AddShutdownHook_wrong.html: new file to launch applet with LaunchException as result. * tests/reproducers/simple/AddShutdownHook/srcs/AddShutdownHook.java: is now also applet. * tests/reproducers/simple/AddShutdownHook/testcases/AddShutdownHookTest.java: Added test (AddShutdownHookApplet)for applet, removed duplicate code by rules. * tests/reproducers/simple/AddShutdownHook/testcases/HangFirefoxTests.java: New test set which is launching exception throwing applet, and after exception is thrown then it tries jsut stdou-ing applet. Second applet have to be launched. -------------- next part -------------- A non-text attachment was scrubbed... Name: AddFirefoxHangTests.diff Type: text/x-patch Size: 17551 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/6cc9b1c1/AddFirefoxHangTests.diff From adomurad at redhat.com Thu Jan 31 06:42:19 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 31 Jan 2013 09:42:19 -0500 Subject: [rfc][icedtea-web] Renaming of conflict names for case insensitive systems In-Reply-To: <510A3F0D.10906@redhat.com> References: <510A3F0D.10906@redhat.com> Message-ID: <510A82CB.3020608@redhat.com> On 01/31/2013 04:53 AM, Jiri Vanek wrote: > 2013-01-31 Jiri Vanek > > Renamed conflict file for case insensitive systems > * > tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html: > Renamed to ParallelAppletsTest_1_x_2EE.html > * > tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2EE.html: > new file. > * > tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java: > (testParallelAppletsTest1x2E) adapted to renaming Looks good. Approved. -Adam From bugzilla-daemon at icedtea.classpath.org Thu Jan 31 08:07:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 31 Jan 2013 16:07:07 +0000 Subject: [Bug 806] CACAO doesn't work with OpenJDK7 In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=806 Josef Eisl changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |zapster at complang.tuwien.ac. | |at Depends on| |1278 -- You are receiving this mail because: You are the assignee for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/1ccf112d/attachment.html From bugzilla-daemon at icedtea.classpath.org Thu Jan 31 08:07:07 2013 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 31 Jan 2013 16:07:07 +0000 Subject: [Bug 1278] [IcedTea7] Synchronise CACAO versions between IcedTea6/7/8 where possible In-Reply-To: References: Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1278 Josef Eisl changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |806 -- You are receiving this mail because: You are on the CC list for the bug. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/7968c711/attachment.html From adomurad at redhat.com Thu Jan 31 13:49:19 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 31 Jan 2013 16:49:19 -0500 Subject: [rfc][icedtea-web] Provide names for all unnamed threads Message-ID: <510AE6DF.8000408@redhat.com> Simple patch, but very nice for debugging/ tooling. This will make it easier to track down specific threads while debugging or using Thermostat. An absolute must IMO for sane debugging of problems occurring in multiple threads. 2013-XX-XX Adam Domurad Name threads for easier debugging/tooling. Remove 2 erroneous VoidPluginCallRequest header comments. * netx/net/sourceforge/jnlp/NetxPanel.java: Provide name for thread that calls (run). * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: Provide name for shutdown hook thread. * plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java: Remove erroneous VoidPluginCallRequest comment. Provide name for ConsumerThread thread. * plugin/icedteanp/java/sun/applet/PluginMessageHandlerWorker.java: Provide name for worker thread. * plugin/icedteanp/java/sun/applet/PluginStreamHandler.java: Remove erroneous VoidPluginCallRequest comment. Provide name for stream listener thread. -------------- next part -------------- A non-text attachment was scrubbed... Name: thread-naming.patch Type: text/x-patch Size: 3091 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/1e5bd8f4/thread-naming.patch From adomurad at redhat.com Thu Jan 31 14:05:52 2013 From: adomurad at redhat.com (Adam Domurad) Date: Thu, 31 Jan 2013 17:05:52 -0500 Subject: [rfc][icedtea-web] Ensure applet shutdown finishes without exceptions Message-ID: <510AEAC0.2010104@redhat.com> Hi all. Another round of what I think could be important stability fixes for icedtea-web. I noticed while doing my unsigned-applet-confirmation patch that JNLPClassLoader instances did not always reach reference-count == 0 when all their instances should have been destroyed. The first part of that was the applet synchronization issue, that I have posted a patch for. 3 additional problems fixed here: Fixed in npe-fix-and-wait-for-init.patch: 1.) There was a sometimes-occurring NPE in JNLPClassLoader#getPermisions, when a CodeSource did not have an associated location when an applet was destroyed. This could cause the destroyApplet code to not finish. This was fixed with a simple null check guard. This fixes some spurious exceptions being printed out during shutdown (causing some noise in reproducer system). 2.) Applets can actually be destroyed from one thread *in the middle of initialization*, while somewhat hard to reproduce, spamming refresh on a many-applet page inevitably caused it. Luckily a mechanism was already in place for efficiently waiting for applets to initialize. Fixed in dont-interrupt-workers.patch: 3.) Applets were being interrupted while shutting down -- a major cause of spurious exceptions being printed out (causing even more noise in reproducer system). This interrupt facility was too heavy-weight for the desired task. Instead Java's builtin wait & notify facilities are now used to perform the same operation on a much finer scale. ** Note that I looked into the matter and saw that the method notifyWorkerIsFree did not actually perform the desired task and was removed as misleading. In fact the consumer thread spins around looking for free workers and did not wait for an interruption. This behaviour has not changed, and the method is not needed (nor was it needed how the code was before). npe-fix-and-wait-for-init.patch changes: 2013-XX-XX Adam Domurad Ensure applet destruction cannot in the middle of initialization. Prevent NPE that can sometimes occurs (especially with this change). * netx/net/sourceforge/jnlp/NetxPanel.java (destroyApplet): wait for applet initialization * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (getPermissions): avoid potential NPE if code source location is missing dont-interrupt-workers.patch changes: 2013-XX-XX Adam Domurad Don't interrupt worker/consumer threads (can prevent shutdown code from executing); instead use Object wait/notify methods. * plugin/icedteanp/java/sun/applet/PluginMessageConsumer.java (notifyHasWork): Replacement for thread interruption (waitForWork): Replacement for thread sleeping (run): Use waitForWork instead of Thread.sleep (notifyWorkerIsFree): Removed -- misleading method. * netx/net/sourceforge/jnlp/runtime/JNLPClassLoader.java (message): Make volatile, as it should have always been. (notifyHasWork): Replacement for thread interruption (waitForWork): Replacement for thread sleeping (run): Use waitForWork instead of Thread.sleep (getPermissions): avoid potential NPE if code source location is missing (free): Remove reference to notifyWorkerIsFree. I am excited to see these changes get in. I will see soon if there's any effect on the amount of noise in the test system. Happy hacking, -Adam -------------- next part -------------- A non-text attachment was scrubbed... Name: npe-fix-and-wait-for-init.patch Type: text/x-patch Size: 1401 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/d83de69a/npe-fix-and-wait-for-init.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: dont-interrupt-workers.patch Type: text/x-patch Size: 4348 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/d83de69a/dont-interrupt-workers.patch From andy at luto.us Tue Jan 22 11:18:24 2013 From: andy at luto.us (Andrew Lutomirski) Date: Tue, 22 Jan 2013 19:18:24 -0000 Subject: The "Security Approval Required" dialog is inflexible and misses the point Message-ID: This is moved from Bug 1264 (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1264). The original bug is: > It is not at all obvious what "Do you want to run the application?" > means. I researched it a bit, and AFAICT it means: if the application > is signed (by anyone at all), then run it with full permissions; if the > application is unsigned, then run it sandboxed. > > If this is correct, then: > > 1. The dialog box should say so. If the app is signed, then it should > ask if you want to give the app full, unrestricted access to your > computer. If the app is unsigned, it should ask you if you want to run > the app in the sandbox. > > 2. Even if the app is signed, there should still be a way to run it in > the sandbox. I've yet to encounter a JNLP app in the wild that has any > legitimate reason to do anything other than access the internet, create > some temporary files, and occasionally use the file picker. Let me run > it in the sandbox, please. Here's a mockup of a possible improvement (as plain text): -------------------------------------------------------- Title: Security Approval Required Big box on top: This application is requesting unrestricted access to your computer. Do you want to grant this access? Name: Publisher: This application is digitally signed by the publisher. The signature has been validated by a trusted source. [More Information...] From: Checkbox: Always grant unrestricted access to applications by this publisher Button: Run with unrestricted access Button: Run without unrestricted access Button: Do not run Note: If you run without unrestricted access, the application may malfunction or crash. -------------------------------------------------------- The two major improvements over the current dialog box are: 1. With the current dialog box, there's no indication that the mere presence of the signature means that the application would run outside the sandbox. This is even worse than the old ActiveX crud. I used to have illusions that java applets and JWS applications were supposed to be safe (assuming there are no security bugs involved). This is simply not true for signed JWS apps. 2. The apps I use the most have no legitimate reasons at all to have any access to my local machine, other than the kind of access allowed within the sandbox. I'd like to try running them inside the sandbox. Thoughts? --Andy From andy at luto.us Tue Jan 22 11:43:54 2013 From: andy at luto.us (Andrew Lutomirski) Date: Tue, 22 Jan 2013 19:43:54 -0000 Subject: The "Security Approval Required" dialog is inflexible and misses the point In-Reply-To: References: Message-ID: On Tue, Jan 22, 2013 at 11:18 AM, Andrew Lutomirski wrote: > This is moved from Bug 1264 > (http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1264). The > original bug is: > >> It is not at all obvious what "Do you want to run the application?" >> means. I researched it a bit, and AFAICT it means: if the application >> is signed (by anyone at all), then run it with full permissions; if the >> application is unsigned, then run it sandboxed. >> >> If this is correct, then: >> >> 1. The dialog box should say so. If the app is signed, then it should >> ask if you want to give the app full, unrestricted access to your >> computer. If the app is unsigned, it should ask you if you want to run >> the app in the sandbox. >> >> 2. Even if the app is signed, there should still be a way to run it in >> the sandbox. I've yet to encounter a JNLP app in the wild that has any >> legitimate reason to do anything other than access the internet, create >> some temporary files, and occasionally use the file picker. Let me run >> it in the sandbox, please. > > Here's a mockup of a possible improvement (as plain text): > > -------------------------------------------------------- > > Title: Security Approval Required > > Big box on top: This application is requesting unrestricted access to > your computer. Do you want to grant this access? > It's worse than this. AFAICT the same exact dialog box appears regardless of whether appears in the jnlp file. This is bad -- the presence of that tag changes the meaning of the question being asked of the user, and the dialog box should reflect that. --Andy From sdhulipala at maprtech.com Wed Jan 23 16:41:51 2013 From: sdhulipala at maprtech.com (Subra Dhulipala) Date: Thu, 24 Jan 2013 00:41:51 -0000 Subject: make is giving errors Message-ID: Hi, I downloaded and ran configure script as mentioned in the website. But after I issued make, I got the following error. Has anybody seen it? [root at molamola icedtea-web-1.3]# ./make -bash: ./make: No such file or directory [root at molamola icedtea-web-1.3]# make mkdir -p /root/downloads/icedtea-web-1.3/plugin/icedteanp && \ cd /root/downloads/icedtea-web-1.3/plugin/icedteanp && \ g++ \ -DPACKAGE_NAME=\"icedtea-web\" -DPACKAGE_TARNAME=\"icedtea-web\" -DPACKAGE_VERSION=\"1.3\" -DPACKAGE_STRING=\"icedtea-web\ 1.3\" -DPACKAGE_BUGREPORT=\"distro-pkg-dev at openjdk.java.net\" -DPACKAGE_URL=\" http://icedtea.classpath.org/wiki/IcedTea-Web\" -DPACKAGE=\"icedtea-web\" -DVERSION=\"1.3\" -DHAVE_LIBZ=1 -DLEGACY_XULRUNNERAPI=1 \ -DJDK_UPDATE_VERSION="\"50\"" \ -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \ -DPLUGIN_VERSION="\"IcedTea-Web 1.3\"" \ -DPACKAGE_URL="\"http://icedtea.classpath.org/wiki/IcedTea-Web\"" \ -DMOZILLA_VERSION_COLLAPSED="2000000" \ -DICEDTEA_WEB_JRE="\"/usr/lib/jvm/java-openjdk/jre\"" \ -DPLUGIN_BOOTCLASSPATH='"-Xbootclasspath/a:/usr/local/share/icedtea-web/netx.jar:/usr/local/share/icedtea-web/plugin.jar:/usr/share/java/js.jar"' \ -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include \ -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 \ -DXP_UNIX -I/usr/include/xulrunner-2 \ -fPIC -o /root/downloads/icedtea-web-1.3/plugin/icedteanp/IcedTeaNPPlugin.o -c /root/downloads/icedtea-web-1.3/plugin/icedteanp/IcedTeaNPPlugin.cc /root/downloads/icedtea-web-1.3/plugin/icedteanp/IcedTeaNPPlugin.cc: In function ?char* NP_GetMIMEDescription()?: /root/downloads/icedtea-web-1.3/plugin/icedteanp/IcedTeaNPPlugin.cc:2372: error: new declaration ?char* NP_GetMIMEDescription()? /usr/include/xulrunner-2/npfunctions.h:307: error: ambiguates old declaration ?const char* NP_GetMIMEDescription()? make: *** [/root/downloads/icedtea-web-1.3/plugin/icedteanp/IcedTeaNPPlugin.o] Error 1 [root at molamola icedtea-web-1.3]# Thanks, Subra -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130124/0aaeddd1/attachment.html From skolnag at gmail.com Thu Jan 31 02:25:26 2013 From: skolnag at gmail.com (skolnag at gmail.com) Date: Thu, 31 Jan 2013 11:25:26 +0100 Subject: Newbie questions In-Reply-To: <510A31AC.6000902@redhat.com> References: <201301302134.r0ULYaEk020161@mail-web02.excite.co.jp> <510A31AC.6000902@redhat.com> Message-ID: > > --- Regarding the translation; Did you follow any policy or guide while > translating to cz? I was not sure how close to stay to the en original. I > tried to stay as close as possible rather then doing a more semanticly > oriented translation. What is the preferred policy on that? > > This is answer from Alexandr (CCed) who created cz transaltion: > > " Hello, as far as I know there is no style guide or policy. I tried to > stay as close to the source > text as possible. But of course I adapted the sentence structure etc., so > that it reads naturally in > Czech and according to context (instruction for users x description of a > feature, etc.). In some > cases the meaning wasn't very clear. Then I contacted the software > developers for clarifying. In > some cases the meaning turned out to be quite different from the original > source text, so I > recommend to ask whenever you are not sure about anything."--- > > Hello, May be a few more comments, that might be helpful. Generally, if no specific style guide si provided, it is mostly good to follow Microsoft style guide, which is de facto standard for IT translations, is very useful and is mostly used in professional IT translations. The MS style guides can be downloaded here: http://www.microsoft.com/Language/en-US/StyleGuides.aspx With regard to terminology, I mostly followed suggestions from Open-Tran.eu (http://open-tran.eu/ ; terminology as used in several important open source projects) and/or Microsoft glossaries ( http://www.microsoft.com/Language/en-US/Default.aspx) Also you probably noticed that already, but just to be sure - a part of the file has restrictions for the length of the string (check "Boot options" part in the Messages.properties file). This might complicate the translation a bit :-) Greetings, Alexandr -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20130131/38c2576b/attachment.html