From howard.lovatt at gmail.com Tue Jun 1 01:07:50 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Tue, 1 Jun 2010 18:07:50 +1000 Subject: Too terse and too alien? Message-ID: R?mi Forax forax at univ-mlv.fr Sat May 29 07:14:34 PDT 2010 wrote: > I've tried a swearword but legal: > > #()(#(){}).(); > > The compiler knows more slang words than me :) R?mi comment, whilst very amusing, is a little worrying. Also there are already a number of negative comments, e.g.: http://groups.google.com/group/javaposse/browse_frm/thread/54ab72091a1ffe95 and http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/comment-page-1/#comment-2023 Anyone else worried about the reaction of Java developers who are not so involved with lambda dev? Is the syntax too terse and too alien? -- Howard. From alessiostalla at gmail.com Tue Jun 1 01:46:03 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 1 Jun 2010 10:46:03 +0200 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: On Tue, Jun 1, 2010 at 10:07 AM, Howard Lovatt wrote: > R?mi Forax forax at univ-mlv.fr ?Sat May 29 07:14:34 PDT 2010 wrote: >> I've tried a swearword but legal: >> >> #()(#(){}).(); >> >> The compiler knows more slang words than me :) > > R?mi comment, whilst very amusing, is a little worrying. Also there are > already a number of negative comments, e.g.: > > http://groups.google.com/group/javaposse/browse_frm/thread/54ab72091a1ffe95 > > > and > > http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/comment-page-1/#comment-2023 > > > ?Anyone else worried about the reaction of Java developers who are not so > involved with lambda dev? Is the syntax too terse and too alien? I'm not too worried. The C function pointer syntax is also complicated and a bit "alien", but it's regularly used. I don't particularly like myself the proposed Java closure syntax, but in the end I think it doesn't matter much; people will get accustomed to it. At least this is my opinion; I must say that I'm not a newcomer to functional programming, so I'm probably biased and not representative of the Java developer population. OTOH, the growing popularity of languages such as Scala and Groovy means that more and more Java devs are being exposed to closures in those languages... Just my .02 Cheers, Alessio From maurizio.cimadamore at oracle.com Tue Jun 1 03:05:55 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 01 Jun 2010 11:05:55 +0100 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: <4C04DB83.2060707@oracle.com> On 01/06/10 09:07, Howard Lovatt wrote: > R?mi Forax forax at univ-mlv.fr Sat May 29 07:14:34 PDT 2010 wrote: > >> I've tried a swearword but legal: >> >> #()(#(){}).(); >> >> The compiler knows more slang words than me :) >> > R?mi comment, whilst very amusing, is a little worrying. Also there are > already a number of negative comments, e.g.: > > http://groups.google.com/group/javaposse/browse_frm/thread/54ab72091a1ffe95 > > > and > > http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/comment-page-1/#comment-2023 > > > Anyone else worried about the reaction of Java developers who are not so > involved with lambda dev? Is the syntax too terse and too alien? > > -- Howard. > > Hi Howard, I admit than I'm relieved in seeing that syntax is the biggest problem the current prototype has ;-) Jokes aside, I think that there's a conceptual mismatch between language consumers and language designers; this is not the first time we are exposed to it; for instance Gilad's words [1] do a pretty good job (while I don't necessarily agree with them, see below) in proving the point that language designers are typically concerned about semantics (e.g. will this new feature interact nicely with other existing features? Will this new feature irreversibly break the existing programming model?), while language consumers are usually concerned about syntax and ease of use. The truth lies, as often it's the case, somewhere in between; in fact, a carefully designed language feature with an awful syntax it's just as useless as a beautifully cooked language extension that reveals a huge type-safety flaw. Back to lambda, the decision to support the strawman syntax was mainly a pragmatic one; that syntax has the advantage of being an LL(1) grammar, easy to parse, very good for rapid prototyping; at this stage, where (as you can see from other messages in this mailing list) many 'deep' details still need to be flushed out, we decided to stick with a minimal syntax we all agree (sorta) upon. This could give everyone the opportunity of playing with the prototype a bit, finding out both flaws and merits. [1] - http://blogs.sun.com/gbracha/entry/developing_modules_for_development Maurizio From scolebourne at joda.org Tue Jun 1 03:52:58 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Tue, 1 Jun 2010 11:52:58 +0100 Subject: Too terse and too alien? In-Reply-To: <4C04DB83.2060707@oracle.com> References: <4C04DB83.2060707@oracle.com> Message-ID: Thanks for the clarification about the role of the current code wrt semantics. This is probably the right approach as it is also allowing early feedback on the syntax. My view is that the syntax is taking a real bashing out there, and some tuning is definitely needed. I've already given my feedback on the semantics more than once. However, it would be useful if Oracle wants semantic feedback to guide the process by indicating any specific areas or questions that you want evaluated. Stephen On 1 June 2010 11:05, Maurizio Cimadamore wrote: > Back to lambda, the decision to support the strawman syntax was mainly a > pragmatic one; that syntax has the advantage of being an LL(1) grammar, > easy to parse, very good for rapid prototyping; at this stage, where (as > you can see from other messages in this mailing list) many 'deep' > details still need to be flushed out, we decided to stick with a minimal > syntax we all agree (sorta) upon. This could give everyone the > opportunity of playing with the prototype a bit, finding out both flaws > and merits. > > [1] - http://blogs.sun.com/gbracha/entry/developing_modules_for_development > > Maurizio > > From reinier at zwitserloot.com Tue Jun 1 03:58:50 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 1 Jun 2010 12:58:50 +0200 Subject: Clarification request: is it #int(int, int)(throws IOException, SQLException) or something else? Message-ID: The spec v0.1.5 (is that the latest version?) seems ambiguous (or perhaps just confusingly worded) in regards to the syntax for multiple checked exception types in a closure type. Or I'm having trouble reading it. Is it: A) #int(int, int)(throws IOException | SQLException) [parens, bar] B) #int(int, int)(throws IOException, SQLException) [parens, comma] C) #int(int, int) throws IOException | SQLException [no parens, bar] D) #int(int, int) throws IOException, SQLException [no parens, comma - this would be unparsable syntax] E) #int(int, int)(IOException, SQLException) [no throws, comma] F) #int(int, int)(IOException | SQLException) [no throws, bar] Versions A, B en E all occur in the spec, between clarifications, examples, and official syntax. I'm fairly sure version C has been discussed on this mailing list before. --Reinier Zwitserloot From pbenedict at apache.org Tue Jun 1 07:42:12 2010 From: pbenedict at apache.org (Paul Benedict) Date: Tue, 1 Jun 2010 09:42:12 -0500 Subject: Too terse and too alien? Message-ID: My biggest repulsion is the "anonymous method" syntax. My thoughts on the matter haven't changed. A method invocation without a method name .() is absolutely confusing and not in line with Java's syntactical pedigree. If there's a chance for "invoke" to come back -- or anything with a name -- let it come back. Paul From reinier at zwitserloot.com Tue Jun 1 08:08:25 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 1 Jun 2010 17:08:25 +0200 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: With all due respect, the notion that some syntax form is "not in line with Java's syntactical pedigree" is trivial and not helpful. Of course it isn't - it's not legal java code (java6 code, at any rate), because it's for a new feature that doesn't exist in today's java. If instead you meant that it doesn't really "feel" like java, even future java, then - well, okay, but that's just an opinion. I for one think it's particularly elegant but I get the urge to sigh when I see the syntax for function types. But that's neither here nor there. The point is: everyone has their own opinion on what 'feels like' java and what 'does not feel like java'. Therefore using that as an argument (this does not feel like java to me) just means there as 6 billion arguments, each as valid as any other. Perhaps some sort of poll would help here, though polling in such a way that you get an unbiased representative sample of the greater java community is probably impossible, and that's assuming that designing programming language features by popular vote from the masses is a good idea in the first place. Lest these threads turn into too much of an endless stream of glorified meaningless back and forth ("I like it", "it sucks", "I like it", etcetera, dressed up with nice looking but in the end meaningless feeling-based backup for these statements), perhaps we can focus on measurable or provable issues about syntax. For example, the closure syntax avoids "new" as well as a type name and thus do not look like objects. Therefore I would posit that letting "this" refer to the closure is a bad idea, because that's surprising. Also, it seems trivially true that referring to the object you're in is far more likely to occur than writing a recursive closure, and the most common case should get the nicest syntax. Better to find some other way to allow recursion. The argument then isn't so much "I don't like it", nor "It's just not java", but instead: "It's confusing because the 'this' syntax hints at object nature but lack of the 'new' keyword doesn't make this obvious" combined with "Referring to the enclosing object is more common than recursive closures, and should therefore get the nicer syntax". A good thing that var.() has going for it is that it looks visually unique (which is good, because it turns out invoking closures is a more or less unique concept too), yet the '.' retains its current universal 'dereference' meaning. On a purely personal 'taste' note I'm ambivalent; var.() and var.invoke() are both perfectly fine in my book. So long as it won't be just "var()" I'm happy. Another thing it has going for it is that the changes to the grammar required to support it are small. (Contrast to e.g. "var()", where the required changes to the underlying java parsing tools is gigantic, as they'll now have to do even more resolution analysis which is already one of the most complicated aspects of java source parsing). --Reinier Zwitserloot On Tue, Jun 1, 2010 at 4:42 PM, Paul Benedict wrote: > My biggest repulsion is the "anonymous method" syntax. My thoughts on > the matter haven't changed. A method invocation without a method name > .() is absolutely confusing and not in line with Java's syntactical > pedigree. If there's a chance for "invoke" to come back -- or anything > with a name -- let it come back. > > Paul > > From jkuhnert at gmail.com Tue Jun 1 10:36:13 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Tue, 1 Jun 2010 13:36:13 -0400 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: Though I know I'm now expressing a different opinion than I was originally (thanks to Alex for pointing it out), a lot of this is indeed artistic / creative and not strictly measurable in the traditional sense. If we did things that way we'd just slap some blue colors on it like google and call it a day right? (not trying to pick on google too much, but well ...) Much like traditional art, not all opinions are created equal. Not saying that anyone is right / wrong, just that I'd tend to trust the most knowledgeable to brainstorm and find something that feels the most natural above anything else. (not that alternative syntax options probably aren't welcome as long as they fit all the same functional goals) On Tue, Jun 1, 2010 at 11:08 AM, Reinier Zwitserloot wrote: > > From pbenedict at apache.org Tue Jun 1 10:48:08 2010 From: pbenedict at apache.org (Paul Benedict) Date: Tue, 1 Jun 2010 12:48:08 -0500 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: Right on, Jesse. I will not be writing a dissertation to prove why something "feels" like Java or not. I get closures are new and so new conventions must exist, but I don't think my opinion is any less valid. There are reasons hackles are being raised over the Internet over the proposal -- the proposal easily violates Java's simplicity philosophy, in my opinion, of course. There's no "proof" for that other than one's internal perspective. On Tue, Jun 1, 2010 at 12:36 PM, Jesse Kuhnert wrote: > Though I know I'm now expressing a different opinion than I was > originally (thanks to Alex for pointing it out), a lot of this is > indeed artistic / creative and not strictly measurable in the > traditional sense. If we did things that way we'd just slap some blue > colors on it like google and call it a day right? (not trying to pick > on google too much, but well ...) > > Much like traditional art, not all opinions are created equal. Not > saying that anyone is right / wrong, just that I'd tend to trust the > most knowledgeable to brainstorm and find something that feels the > most natural above anything else. (not that alternative syntax options > probably aren't welcome as long as they fit all the same functional > goals) > > On Tue, Jun 1, 2010 at 11:08 AM, Reinier Zwitserloot > wrote: > >> >> > From ruben.badaro at gmail.com Tue Jun 1 10:59:25 2010 From: ruben.badaro at gmail.com (=?ISO-8859-1?Q?Ruben_Badar=F3?=) Date: Tue, 1 Jun 2010 18:59:25 +0100 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: I believe that aesthetics, with their effect on perception and emotional response are being a bit ignored during this process. We're (mostly) all engineers here and it's normal for functional goals to supersede other less objective concerns. Regarding the feel of Java, I would say there is a generalized, almost unintelligible feeling of what looks like Java and what doesn't. This is a similar notion to what the Python community calls "being pythonic". While most people in this case don't really know what it should look like, the feedback from outside the mailing list appears to point that a number of people (in my personal sampled universe, a lot of people) don't think the proposal feels like Java. In my opinion, the group should consider this feedback very seriously. Best Regards, Ruben Badar? On Tue, Jun 1, 2010 at 6:36 PM, Jesse Kuhnert wrote: > Though I know I'm now expressing a different opinion than I was > originally (thanks to Alex for pointing it out), a lot of this is > indeed artistic / creative and not strictly measurable in the > traditional sense. If we did things that way we'd just slap some blue > colors on it like google and call it a day right? (not trying to pick > on google too much, but well ...) > > Much like traditional art, not all opinions are created equal. Not > saying that anyone is right / wrong, just that I'd tend to trust the > most knowledgeable to brainstorm and find something that feels the > most natural above anything else. (not that alternative syntax options > probably aren't welcome as long as they fit all the same functional > goals) > > On Tue, Jun 1, 2010 at 11:08 AM, Reinier Zwitserloot > wrote: > > > > > > > From brian.goetz at oracle.com Tue Jun 1 11:15:45 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 1 Jun 2010 11:15:45 -0700 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: <90EBFA9B-2293-409E-9019-A80DFC1C8379@oracle.com> Let's take a breath here. Let me quote the strawman: > The concrete syntax shown here is strictly provisional. The syntax outlined in the strawman is *simply a placeholder*. As Maurizio says, it is easy to parse, and we need a concrete syntax so we can have the more significant discussions about semantics and scope. Oracle is well aware of how important syntax is in the usability of the language and how it shapes users mental models of language features. We are also well aware that this syntax is "alien" (as well as other adjectives.) We just have far more important things to pay attention to right now. I promise you syntax WILL be revisited. However, having syntax discussions on this list at this time is counterproductive, so I ask that this forum focus its energies elsewhere for now. On Jun 1, 2010, at 1:07 AM, Howard Lovatt wrote: > R?mi Forax forax at univ-mlv.fr Sat May 29 07:14:34 PDT 2010 wrote: >> I've tried a swearword but legal: >> >> #()(#(){}).(); >> >> The compiler knows more slang words than me :) > > R?mi comment, whilst very amusing, is a little worrying. Also there are > already a number of negative comments, e.g.: > > http://groups.google.com/group/javaposse/browse_frm/thread/54ab72091a1ffe95 > > > and > > http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/comment-page-1/#comment-2023 > > > Anyone else worried about the reaction of Java developers who are not so > involved with lambda dev? Is the syntax too terse and too alien? > > -- Howard. > From jkuhnert at gmail.com Tue Jun 1 11:16:17 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Tue, 1 Jun 2010 14:16:17 -0400 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: My only concern is being able to distinguish between syntax opinions coming from seeing something "new" vs something "wrong". On Tue, Jun 1, 2010 at 1:59 PM, Ruben Badar? wrote: > I believe that aesthetics, with their effect on perception and emotional > response are being a bit ignored during this process.?We're (mostly) all > engineers here and it's normal for functional goals to supersede other less > objective concerns. > Regarding the feel of Java, I would say there is a generalized, > almost?unintelligible?feeling?of what looks like Java and what doesn't. This > is a similar notion to what the Python community calls "being pythonic". > While most people in this case don't really know what it should look like, > the feedback from outside the mailing list appears to point that a number of > people (in my personal sampled universe, a lot of people) don't think the > proposal feels like Java. > In my opinion, the group should consider this feedback very seriously. > > Best Regards, > Ruben Badar? > > > On Tue, Jun 1, 2010 at 6:36 PM, Jesse Kuhnert wrote: >> >> Though I know I'm now expressing a different opinion than I was >> originally (thanks to Alex for pointing it out), a lot of this is >> indeed artistic / creative and not strictly measurable in the >> traditional sense. If we did things that way we'd just slap some blue >> colors on it like google and call it a day right? (not trying to pick >> on google too much, but well ...) >> >> Much like traditional art, not all opinions are created equal. Not >> saying that anyone is right / wrong, just that I'd tend to trust the >> most knowledgeable to brainstorm and find something that feels the >> most natural above anything else. (not that alternative syntax options >> probably aren't welcome as long as they fit all the same functional >> goals) >> >> On Tue, Jun 1, 2010 at 11:08 AM, Reinier Zwitserloot >> wrote: >> >> > >> > >> > > From grev at miginfocom.com Tue Jun 1 11:54:32 2010 From: grev at miginfocom.com (Mikael Grev) Date: Tue, 1 Jun 2010 20:54:32 +0200 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Thanks Ruben, I feel the exact same way and has been going on and off if I was to say something given that almost all on this list seem to be very compiler focused, at least those who respond. What won't be understood by the general (95%) developer is the reasons why syntax turned ugly/non-Java/whatever. They will all judge closures by the simplicity of the syntax, how "Java-like" it is, and do so swiftly with a few examples. And mind you, Java-like will mean different things to different people, which makes this all so complex. As I think Oracle already know, things like myClosure.(1, 5) won't fly very well with the general developer. The reasoning behind the dot, that the name otherwise lives in the same name space as methods, is not understandable by most. And even for me it looks like a compiler purists way of reasoning. myClosure(1, 5) is the only way. It looks Java (my interpretation if it) and my IDE will color/font code it for me to distinguish it from a method call, which it isn't completely unrelated to anyway. I also believe that myMethod(Runnable r) should be invoked myMethod( #{System.out.pringln("") } ); and that the parsing should be lenient with all the missing parenthesis and semi colon stuff, if at all possible without creating ambiguities. Same there, I understand the reasoning why someone wants to keep the parsing clean but, again, that is the parser coder's problem and I would happily give the extra resources for it if I were at Oracle. All in the very important name of shaping how this will be received in the blogosphere. Also, #(int i) (i * i) should be written #(int i) {i * i} just like a normal closure. There's no need to make it special and use parenthesis just because it is only one expression in there. That's for the parser/compiler to figure out. Less to learn, easier for the user. And he can write it #(int i) {return i * i} or even #(int i) {return i * i;} without making it look like something else entirely. I don't in any way say that the syntax simplifications above is the ultimate answer, or even better. But anyone that don't understand why those kind of user-space simplifications are important shouldn't have a final call on the syntax IMO. KISS, and let the compiler/parser do the heavy lifting. Cheers, Mikael On Jun 1, 2010, at 19:59 PM, Ruben Badar? wrote: > I believe that aesthetics, with their effect on perception and emotional > response are being a bit ignored during this process. We're (mostly) all > engineers here and it's normal for functional goals to supersede other less > objective concerns. > > Regarding the feel of Java, I would say there is a generalized, > almost unintelligible feeling of what looks like Java and what doesn't. This > is a similar notion to what the Python community calls "being pythonic". > While most people in this case don't really know what it should look like, > the feedback from outside the mailing list appears to point that a number of > people (in my personal sampled universe, a lot of people) don't think the > proposal feels like Java. > > In my opinion, the group should consider this feedback very seriously. > > > Best Regards, > > Ruben Badar? > > > On Tue, Jun 1, 2010 at 6:36 PM, Jesse Kuhnert wrote: > >> Though I know I'm now expressing a different opinion than I was >> originally (thanks to Alex for pointing it out), a lot of this is >> indeed artistic / creative and not strictly measurable in the >> traditional sense. If we did things that way we'd just slap some blue >> colors on it like google and call it a day right? (not trying to pick >> on google too much, but well ...) >> >> Much like traditional art, not all opinions are created equal. Not >> saying that anyone is right / wrong, just that I'd tend to trust the >> most knowledgeable to brainstorm and find something that feels the >> most natural above anything else. (not that alternative syntax options >> probably aren't welcome as long as they fit all the same functional >> goals) >> >> On Tue, Jun 1, 2010 at 11:08 AM, Reinier Zwitserloot >> wrote: >> >>> >>> >> >> From alessiostalla at gmail.com Tue Jun 1 12:35:58 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 1 Jun 2010 21:35:58 +0200 Subject: Too terse and too alien? In-Reply-To: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 8:54 PM, Mikael Grev wrote: > Thanks Ruben, I feel the exact same way and has been going on and off if I was to say something given that almost all on this list seem to be very compiler focused, at least those who respond. > > What won't be understood by the general (95%) developer is the reasons why syntax turned ugly/non-Java/whatever. They will all judge closures by the simplicity of the syntax, how "Java-like" it is, and do so swiftly with a few examples. And mind you, Java-like will mean different things to different people, which makes this all so complex. > > As I think Oracle already know, things like > > ?myClosure.(1, 5) > > won't fly very well with the general developer. The reasoning behind the dot, that the name otherwise lives in the same name space as methods, is not understandable by most. And even for me it looks like a compiler purists way of reasoning. myClosure(1, 5) is the only way. It looks Java (my interpretation if it) and my IDE will color/font code it for me to distinguish it from a method call, which it isn't completely unrelated to anyway. I don't like .(...) either, but saying that myClosure(1, 5) is the only way is a bit simplistic imho. This substantially affects an important aspect of the language, that is, how symbols are resolved to program constructs. So far in Java foo() is only legal if foo is a method, while foo.bar is only legal if foo is a variable or a field. By choosing to (or not to) invoke closures like methods, you're making a trade-off between uniformity - everything that can be called is called like foo() - and separation of namespaces - you can't accidentally shadow a method with a variable (or a field!) or vice-versa, depending on how precedence between the two is specified: is foo.bar() a call to method bar() or a call to the closure stored in the field named bar? If I'm allowed to divert a bit to non-Java folklore, this issue resembles very closely what in the Lisp world is known as Lisp-1 vs Lisp-2, i.e., one namespace for functions and variables vs two separate namespaces. The first makes functional programming more convenient (there's no need of an explicit operator to call a closure, like the dot in this case), the latter makes name clashes much rarer and so, for example, makes it safer to write macros (i.e., code transformations - making a parallel with Java, you could say that it makes refactoring less problematic, for example). People are very passionate about this issue even today, many years later than it was first raised, so I wouldn't dismiss it as a problem for compiler purists only. > I also believe that > > ? myMethod(Runnable r) > > should be invoked > > ? myMethod( #{System.out.pringln("") } ); > > and that the parsing should be lenient with all the missing parenthesis and semi colon stuff, if at all possible without creating ambiguities. Same there, I understand the reasoning why someone wants to keep the parsing clean but, again, that is the parser coder's problem and I would happily give the extra resources for it if I were at Oracle. All in the very important name of shaping how this will be received in the blogosphere. > I agree to a certain extent, but keep in mind that complicating the parser too much has a negative effect not only on the parser itself, but on all the tools that parse Java code, including IDEs, so it's again a matter of trade-offs. > Also, > > #(int i) (i * i) > > should be written > > #(int i) {i * i} > > just like a normal closure. There's no need to make it special and use parenthesis just because it is only one expression in there. That's for the parser/compiler to figure out. Less to learn, easier for the user. And he can write it > > #(int i) {return i * i} > ?or even > #(int i) {return i * i;} > > without making it look like something else entirely. I agree to having only a single syntax, #(int i) {return i * i;}. An extra return won't make much difference, and special-casing closures with a single expression as their body makes it slightly inconvenient to change them in case you later need to have more than an expression. Consider also that Java is not a functional language, and its expressions are limited to math, assignments, comparisons, and ternary conditionals; if, try-catch, switch, etc. are not expressions, so I think single-expression closures will be seldom used anyway. > > I don't in any way say that the syntax simplifications above is the ultimate answer, or even better. But anyone that don't understand why those kind of user-space simplifications are important shouldn't have a final call on the syntax IMO. > > KISS, and let the compiler/parser do the heavy lifting. > > Cheers, > Mikael > Cheers, Alessio From grev at miginfocom.com Tue Jun 1 12:48:37 2010 From: grev at miginfocom.com (Mikael Grev) Date: Tue, 1 Jun 2010 21:48:37 +0200 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: <74F7FA30-5D00-4FCE-A441-E7CECF9E9E57@miginfocom.com> On Jun 1, 2010, at 21:35 PM, Alessio Stalla wrote: > On Tue, Jun 1, 2010 at 8:54 PM, Mikael Grev wrote: >> Thanks Ruben, I feel the exact same way and has been going on and off if I was to say something given that almost all on this list seem to be very compiler focused, at least those who respond. >> >> What won't be understood by the general (95%) developer is the reasons why syntax turned ugly/non-Java/whatever. They will all judge closures by the simplicity of the syntax, how "Java-like" it is, and do so swiftly with a few examples. And mind you, Java-like will mean different things to different people, which makes this all so complex. >> >> As I think Oracle already know, things like >> >> myClosure.(1, 5) >> >> won't fly very well with the general developer. The reasoning behind the dot, that the name otherwise lives in the same name space as methods, is not understandable by most. And even for me it looks like a compiler purists way of reasoning. myClosure(1, 5) is the only way. It looks Java (my interpretation if it) and my IDE will color/font code it for me to distinguish it from a method call, which it isn't completely unrelated to anyway. > > I don't like .(...) either, but saying that myClosure(1, 5) is the > only way is a bit simplistic imho. This substantially affects an > important aspect of the language, that is, how symbols are resolved to > program constructs. So far in Java foo() is only legal if foo is a > method, while foo.bar is only legal if foo is a variable or a field. > By choosing to (or not to) invoke closures like methods, you're making > a trade-off between uniformity - everything that can be called is > called like foo() - and separation of namespaces - you can't > accidentally shadow a method with a variable (or a field!) or > vice-versa, depending on how precedence between the two is specified: > is foo.bar() a call to method bar() or a call to the closure stored in > the field named bar? Should we optimize for the 1 .% that will have this as an issue, or for the other 999 that have to write the dot all the time? IDEs will warn you, and color code it for you to make the distinction. If your IDE can't do that, change. The problem of them not supporting is will pass. The extra dot will never go away. And, the problem is still there with the dot. If you forget the dot, you might be in trouble anyway. This is a non-issue IMO. > If I'm allowed to divert a bit to non-Java folklore, this issue > resembles very closely what in the Lisp world is known as Lisp-1 vs > Lisp-2, i.e., one namespace for functions and variables vs two > separate namespaces. The first makes functional programming more > convenient (there's no need of an explicit operator to call a closure, > like the dot in this case), the latter makes name clashes much rarer > and so, for example, makes it safer to write macros (i.e., code > transformations - making a parallel with Java, you could say that it > makes refactoring less problematic, for example). People are very > passionate about this issue even today, many years later than it was > first raised, so I wouldn't dismiss it as a problem for compiler > purists only. LISP was really a language for the people and it made it big time. :) > >> I also believe that >> >> myMethod(Runnable r) >> >> should be invoked >> >> myMethod( #{System.out.pringln("") } ); >> >> and that the parsing should be lenient with all the missing parenthesis and semi colon stuff, if at all possible without creating ambiguities. Same there, I understand the reasoning why someone wants to keep the parsing clean but, again, that is the parser coder's problem and I would happily give the extra resources for it if I were at Oracle. All in the very important name of shaping how this will be received in the blogosphere. >> > > I agree to a certain extent, but keep in mind that complicating the > parser too much has a negative effect not only on the parser itself, > but on all the tools that parse Java code, including IDEs, so it's > again a matter of trade-offs. Take the pain once for your second part. Take the pain again for the first part, it is worth it. Besides, this is most likely the biggest change to Java that will be in the next 10 years so lets not already now start optimizing for a future that might or might not come. I don't think we should be short sighted, but this is worth it (given my perspective as a user and not a compiler/parser writer). > >> Also, >> >> #(int i) (i * i) >> >> should be written >> >> #(int i) {i * i} >> >> just like a normal closure. There's no need to make it special and use parenthesis just because it is only one expression in there. That's for the parser/compiler to figure out. Less to learn, easier for the user. And he can write it >> >> #(int i) {return i * i} >> or even >> #(int i) {return i * i;} >> >> without making it look like something else entirely. > > I agree to having only a single syntax, #(int i) {return i * i;}. An > extra return won't make much difference, and special-casing closures > with a single expression as their body makes it slightly inconvenient > to change them in case you later need to have more than an expression. > Consider also that Java is not a functional language, and its > expressions are limited to math, assignments, comparisons, and ternary > conditionals; if, try-catch, switch, etc. are not expressions, so I > think single-expression closures will be seldom used anyway. > >> >> I don't in any way say that the syntax simplifications above is the ultimate answer, or even better. But anyone that don't understand why those kind of user-space simplifications are important shouldn't have a final call on the syntax IMO. >> >> KISS, and let the compiler/parser do the heavy lifting. >> >> Cheers, >> Mikael >> > > Cheers, > Alessio From alessiostalla at gmail.com Tue Jun 1 13:56:25 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 1 Jun 2010 22:56:25 +0200 Subject: Too terse and too alien? In-Reply-To: <74F7FA30-5D00-4FCE-A441-E7CECF9E9E57@miginfocom.com> References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> <74F7FA30-5D00-4FCE-A441-E7CECF9E9E57@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 9:48 PM, Mikael Grev wrote: > On Jun 1, 2010, at 21:35 PM, Alessio Stalla wrote: > >> On Tue, Jun 1, 2010 at 8:54 PM, Mikael Grev wrote: >>> Thanks Ruben, I feel the exact same way and has been going on and off if I was to say something given that almost all on this list seem to be very compiler focused, at least those who respond. >>> >>> What won't be understood by the general (95%) developer is the reasons why syntax turned ugly/non-Java/whatever. They will all judge closures by the simplicity of the syntax, how "Java-like" it is, and do so swiftly with a few examples. And mind you, Java-like will mean different things to different people, which makes this all so complex. >>> >>> As I think Oracle already know, things like >>> >>> ?myClosure.(1, 5) >>> >>> won't fly very well with the general developer. The reasoning behind the dot, that the name otherwise lives in the same name space as methods, is not understandable by most. And even for me it looks like a compiler purists way of reasoning. myClosure(1, 5) is the only way. It looks Java (my interpretation if it) and my IDE will color/font code it for me to distinguish it from a method call, which it isn't completely unrelated to anyway. >> >> I don't like .(...) either, but saying that myClosure(1, 5) is the >> only way is a bit simplistic imho. This substantially affects an >> important aspect of the language, that is, how symbols are resolved to >> program constructs. So far in Java foo() is only legal if foo is a >> method, while foo.bar is only legal if foo is a variable or a field. >> By choosing to (or not to) invoke closures like methods, you're making >> a trade-off between uniformity - everything that can be called is >> called like foo() - and separation of namespaces - you can't >> accidentally shadow a method with a variable (or a field!) or >> vice-versa, depending on how precedence between the two is specified: >> is foo.bar() a call to method bar() or a call to the closure stored in >> the field named bar? > > Should we optimize for the 1 .% that will have this as an issue, or for the other 999 that have to write the dot all the time? > IDEs will warn you, and color code it for you to make the distinction. If your IDE can't do that, change. The problem of them not supporting is will pass. The extra dot will never go away. It's not a matter of IDE support; that will come whatever syntax is chosen - well, if it's reasonably parseable ;) It's really a matter of language design: do you want closures to be indistinguishable from methods (and if so, how do you want to handle the name clashes?), or do you want to make a difference - at the language level! - between invocation of a closure and invocation of a method? Note that the dot is merely *one* way of achieving the latter, you could well have .invoke or .call or whatever can distinguish a call on a variable/field from a call to a method. I'm not advocating the dot in particular :) Another analogy - properties in C#. They have chosen to make them work with = so it's indistinguishable if you're assigning to a field or to a property (not 100% true, there are different naming conventions, but let's ignore that). They could have chosen instead to make them accessible via fake set()/get() methods. Which is better? As you can see, it's not a matter of IDE support at all. It may be true that only 1% will stumble into a name clash, but if you design a language you have to specify corner cases as well. I'm personally more confident with writing foo.invoke(...) and being sure that foo is a closure than with writing foo(...) and having to remember complicated precedence rules that might be triggered if someone else later adds a method called foo, maybe even in a superclass I don't control at all. It's a personal opinion of course, I'm just saying that the decision to follow a path or another does change how the language "feels", and not just the parser. > And, the problem is still there with the dot. If you forget the dot, you might be in trouble anyway. Right, but this is a different kind of trouble; it's more like calling the wrong overload of a method because you forgot a parameter. The language can only go that far in preventing programmer errors. > This is a non-issue IMO. > > >> If I'm allowed to divert a bit to non-Java folklore, this issue >> resembles very closely what in the Lisp world is known as Lisp-1 vs >> Lisp-2, i.e., one namespace for functions and variables vs two >> separate namespaces. The first makes functional programming more >> convenient (there's no need of an explicit operator to call a closure, >> like the dot in this case), the latter makes name clashes much rarer >> and so, for example, makes it safer to write macros (i.e., code >> transformations - making a parallel with Java, you could say that it >> makes refactoring less problematic, for example). People are very >> passionate about this issue even today, many years later than it was >> first raised, so I wouldn't dismiss it as a problem for compiler >> purists only. > > LISP was really a language for the people and it made it big time. :) Heh, I don't want to get into language flame wars (btw Lisp rocks! :D) I just cited it to point out that the similar problems have been discussed countless times in other camps and valid points have been provided for both alternatives, so that no clear winner has emerged. To me, this is a sign that none of the two approaches is absolutely "better", they simply have different, incompatible goals, which can be summarized to more functional and uniform vs more resilient to code changes/transformations. Another source of inspiration, much closer to Java, are delegates in C#, and they are called like methods, as you suggest. For what is worth (very little), I have done little C# in my life, but I do remember being bitten by a delegate with the same name as a method :) Cheers, Alessio > >> >>> I also believe that >>> >>> ? myMethod(Runnable r) >>> >>> should be invoked >>> >>> ? myMethod( #{System.out.pringln("") } ); >>> >>> and that the parsing should be lenient with all the missing parenthesis and semi colon stuff, if at all possible without creating ambiguities. Same there, I understand the reasoning why someone wants to keep the parsing clean but, again, that is the parser coder's problem and I would happily give the extra resources for it if I were at Oracle. All in the very important name of shaping how this will be received in the blogosphere. >>> >> >> I agree to a certain extent, but keep in mind that complicating the >> parser too much has a negative effect not only on the parser itself, >> but on all the tools that parse Java code, including IDEs, so it's >> again a matter of trade-offs. > > Take the pain once for your second part. Take the pain again for the first part, it is worth it. Besides, this is most likely the biggest change to Java that will be in the next 10 years so lets not already now start optimizing for a future that might or might not come. I don't think we should be short sighted, but this is worth it (given my perspective as a user and not a compiler/parser writer). > >> >>> Also, >>> >>> #(int i) (i * i) >>> >>> should be written >>> >>> #(int i) {i * i} >>> >>> just like a normal closure. There's no need to make it special and use parenthesis just because it is only one expression in there. That's for the parser/compiler to figure out. Less to learn, easier for the user. And he can write it >>> >>> #(int i) {return i * i} >>> ?or even >>> #(int i) {return i * i;} >>> >>> without making it look like something else entirely. >> >> I agree to having only a single syntax, #(int i) {return i * i;}. An >> extra return won't make much difference, and special-casing closures >> with a single expression as their body makes it slightly inconvenient >> to change them in case you later need to have more than an expression. >> Consider also that Java is not a functional language, and its >> expressions are limited to math, assignments, comparisons, and ternary >> conditionals; if, try-catch, switch, etc. are not expressions, so I >> think single-expression closures will be seldom used anyway. >> >>> >>> I don't in any way say that the syntax simplifications above is the ultimate answer, or even better. But anyone that don't understand why those kind of user-space simplifications are important shouldn't have a final call on the syntax IMO. >>> >>> KISS, and let the compiler/parser do the heavy lifting. >>> >>> Cheers, >>> Mikael >>> >> >> Cheers, >> Alessio > > From neal at gafter.com Tue Jun 1 14:02:08 2010 From: neal at gafter.com (Neal Gafter) Date: Tue, 1 Jun 2010 14:02:08 -0700 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 12:35 PM, Alessio Stalla wrote: > I agree to having only a single syntax, #(int i) {return i * i;}. An > extra return won't make much difference, and special-casing closures > with a single expression as their body makes it slightly inconvenient > to change them in case you later need to have more than an expression. > Consider also that Java is not a functional language, and its > expressions are limited to math, assignments, comparisons, and ternary > conditionals; if, try-catch, switch, etc. are not expressions, so I > think single-expression closures will be seldom used anyway. > I think single-expression closures will be the most common form, especially in the context of the kinds of aggregate (possibly concurrent) operations that is cited as the primary motivation for adding closures at this time. An extra return does make a difference, particularly if we ever hope to more fully support transparency ala BGGA in a future extension. From grev at miginfocom.com Tue Jun 1 14:15:10 2010 From: grev at miginfocom.com (Mikael Grev) Date: Tue, 1 Jun 2010 23:15:10 +0200 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> <74F7FA30-5D00-4FCE-A441-E7CECF9E9E57@miginfocom.com> Message-ID: <4EBD2988-A980-4C2E-832C-AE6A549D6F2C@miginfocom.com> >>> >> >> Should we optimize for the 1 .% that will have this as an issue, or for the other 999 that have to write the dot all the time? >> IDEs will warn you, and color code it for you to make the distinction. If your IDE can't do that, change. The problem of them not supporting is will pass. The extra dot will never go away. > > It's not a matter of IDE support; that will come whatever syntax is > chosen - well, if it's reasonably parseable ;) > It's really a matter of language design: do you want closures to be > indistinguishable from methods (and if so, how do you want to handle > the name clashes?), or do you want to make a difference - at the > language level! - between invocation of a closure and invocation of a > method? Note that the dot is merely *one* way of achieving the latter, > you could well have .invoke or .call or whatever can distinguish a > call on a variable/field from a call to a method. I'm not advocating > the dot in particular :) > Another analogy - properties in C#. They have chosen to make them work > with = so it's indistinguishable if you're assigning to a field or to > a property (not 100% true, there are different naming conventions, but > let's ignore that). They could have chosen instead to make them > accessible via fake set()/get() methods. Which is better? As you can > see, it's not a matter of IDE support at all. > > It may be true that only 1% will stumble into a name clash, but if you > design a language you have to specify corner cases as well. I'm > personally more confident with writing foo.invoke(...) and being sure > that foo is a closure than with writing foo(...) and having to > remember complicated precedence rules that might be triggered if > someone else later adds a method called foo, maybe even in a > superclass I don't control at all. It's a personal opinion of course, > I'm just saying that the decision to follow a path or another does > change how the language "feels", and not just the parser. If it will/must be the case that one can add a method in a super class and it will change the binding of the closure in a subclass I agree wholeheartedly. I would expect same name would not be allowed for a closure field and a method when recompiling. Cheers, Mikael From alessiostalla at gmail.com Tue Jun 1 14:26:54 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 1 Jun 2010 23:26:54 +0200 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 11:02 PM, Neal Gafter wrote: > On Tue, Jun 1, 2010 at 12:35 PM, Alessio Stalla > wrote: >> >> I agree to having only a single syntax, #(int i) {return i * i;}. An >> extra return won't make much difference, and special-casing closures >> with a single expression as their body makes it slightly inconvenient >> to change them in case you later need to have more than an expression. >> Consider also that Java is not a functional language, and its >> expressions are limited to math, assignments, comparisons, and ternary >> conditionals; if, try-catch, switch, etc. are not expressions, so I >> think single-expression closures will be seldom used anyway. > > I think single-expression closures will be the most common form, especially > in the context of the kinds of aggregate (possibly concurrent) operations > that is cited as the primary motivation for adding closures at this time. Are those aggregate operations expected to be usually limited to simple math, assignments, ternary ifs and method calls with no try-catch, switch, loops? I don't think so. I also think other important use cases for closures are the java.util.concurrent API, to execute whole blocks of code asynchronously, and event handlers, and both usually consist of much more than a single expression. To me, the no-return variant seems like an attempt to mimic functional languages, which usually don't need an explicit return. However, there's a reason for them not needing it: in most functional languages, everything is an expression and thus returns a value, including complex control structures. Not so in Java. > An extra return does make a difference, particularly if we ever hope to more > fully support transparency ala BGGA in a future extension. Well, AFAIK return is mandatory for multiple-statement closures, with the semantics of returning a value from the closure, so this already makes them incompatible with the BGGA proposed behaviour (which I don't like btw, but that doesn't count). Cheers, Alessio From neal at gafter.com Tue Jun 1 14:38:16 2010 From: neal at gafter.com (Neal Gafter) Date: Tue, 1 Jun 2010 14:38:16 -0700 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 2:26 PM, Alessio Stalla wrote: > On Tue, Jun 1, 2010 at 11:02 PM, Neal Gafter wrote: > > I think single-expression closures will be the most common form, > especially > > in the context of the kinds of aggregate (possibly concurrent) operations > > that is cited as the primary motivation for adding closures at this time. > > Are those aggregate operations expected to be usually limited to > simple math, assignments, ternary ifs and method calls with no > try-catch, switch, loops? In my experience, yes, virtually always. > I also think other > important use cases for closures are the java.util.concurrent API, to > execute whole blocks of code asynchronously, and event handlers, and > both usually consist of much more than a single expression. > Right. Those other contexts are ones in which transparency is more important, and yielding a result value is rare. > An extra return does make a difference, particularly if we ever hope to > more > > fully support transparency ala BGGA in a future extension. > Well, AFAIK return is mandatory for multiple-statement closures, with > the semantics of returning a value from the closure, so this already > makes them incompatible with the BGGA proposed behaviour (which I > don't like btw, but that doesn't count). > Yes, that is the current state of the proposal, which is why it's valuable to address it now. From alex.buckley at oracle.com Tue Jun 1 14:55:58 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Tue, 01 Jun 2010 14:55:58 -0700 Subject: Clarification request: is it #int(int, int)(throws IOException, SQLException) or something else? In-Reply-To: References: Message-ID: <4C0581EE.7020608@oracle.com> On 6/1/2010 3:58 AM, Reinier Zwitserloot wrote: > Is it: > > A) #int(int, int)(throws IOException | SQLException) [parens, bar] > B) #int(int, int)(throws IOException, SQLException) [parens, comma] > C) #int(int, int) throws IOException | SQLException [no parens, bar] > D) #int(int, int) throws IOException, SQLException [no parens, comma - > this would be unparsable syntax] > E) #int(int, int)(IOException, SQLException) [no throws, comma] > F) #int(int, int)(IOException | SQLException) [no throws, bar] > > Versions A, B en E all occur in the spec, between clarifications, examples, > and official syntax. I'm fairly sure version C has been discussed on this > mailing list before. B. The fundamental unit is the existing Throws production, which is then parenthesized. You're right about an erroneous instance of A; it will be removed. Alex From alessiostalla at gmail.com Tue Jun 1 15:19:26 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Wed, 2 Jun 2010 00:19:26 +0200 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 11:38 PM, Neal Gafter wrote: > On Tue, Jun 1, 2010 at 2:26 PM, Alessio Stalla > wrote: >> >> On Tue, Jun 1, 2010 at 11:02 PM, Neal Gafter wrote: >> > I think single-expression closures will be the most common form, >> > especially >> > in the context of the kinds of aggregate (possibly concurrent) >> > operations >> > that is cited as the primary motivation for adding closures at this >> > time. >> >> Are those aggregate operations expected to be usually limited to >> simple math, assignments, ternary ifs and method calls with no >> try-catch, switch, loops? > > In my experience, yes, virtually always. Really? I forgot to mention no local variables, since Java doesn't have let. I can come up with reasonable counterexamples: sorting people by surname and name (middle name omitted for brevity :D): Collections.sort(people, #(Person p, Person q) ( p.getSurname().compareTo(q.getSurname()) != 0 ? p.getSurname().compareTo(q.getSurname()) : p.getName().compareTo(q.getName()) )); vs Collections.sort(people, #(Person p, Person q) { int surnameComparison = p.getSurname().compareTo(q.getSurname()); return surnameComparison != 0 ? surnameComparison : p.getName().compareTo(q.getName()) }); processing all event handlers in a list: Collections.map(list, #(EventListener e) { try { e.handle(event); } catch(Exception e) { log.error("Exception while processing listener", e); } }); accessing non-thread-safe objects in a collection: Collections.map(list, #(Object o) { synchronized(o) { return o.something(...); } }); etc. these are really just simple examples. >> >> I also think other >> important use cases for closures are the java.util.concurrent API, to >> execute whole blocks of code asynchronously, and event handlers, and >> both usually consist of much more than a single expression. > > Right.? Those other contexts are ones in which transparency is more > important, and yielding a result value is rare. Fair enough. >> > An extra return does make a difference, particularly if we ever hope to >> > more >> >> > fully support transparency ala BGGA in a future extension. >> >> Well, AFAIK return is mandatory for multiple-statement closures, with >> >> the semantics of returning a value from the closure, so this already >> makes them incompatible with the BGGA proposed behaviour (which I >> don't like btw, but that doesn't count). > > Yes, that is the current state of the proposal, which is why it's valuable > to address it now. Ok, I misinterpreted "future extension". -- Alessio From neal at gafter.com Tue Jun 1 15:33:41 2010 From: neal at gafter.com (Neal Gafter) Date: Tue, 1 Jun 2010 15:33:41 -0700 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: On Tue, Jun 1, 2010 at 3:19 PM, Alessio Stalla wrote: > On Tue, Jun 1, 2010 at 11:38 PM, Neal Gafter wrote: > > On Tue, Jun 1, 2010 at 2:26 PM, Alessio Stalla > >> Are those aggregate operations expected to be usually limited to > >> simple math, assignments, ternary ifs and method calls with no > >> try-catch, switch, loops? > > > > In my experience, yes, virtually always. > > Really? I forgot to mention no local variables, since Java doesn't have > let. > I can come up with reasonable counterexamples: > Reasonable, perhaps, but in my experience they hardly ever occur. sorting people by surname and name (middle name omitted for brevity :D): > > Collections.sort(people, #(Person p, Person q) ( > p.getSurname().compareTo(q.getSurname()) != 0 ? > p.getSurname().compareTo(q.getSurname()) : > p.getName().compareTo(q.getName()) )); > You should probably be using an explicit comparator object here. This is likely not the only place in your code base where Person is handled and name surname/name comparisons are done. processing all event handlers in a list: > > Collections.map(list, #(EventListener e) { > try { e.handle(event); } catch(Exception e) { log.error("Exception > while processing listener", e); } > }); > Won't compile. map() is the wrong operation, as there is no returned value. (You're not even using "return") > accessing non-thread-safe objects in a collection: > > Collections.map(list, #(Object o) { > synchronized(o) { > return o.something(...); > } > }); > Very dangerous mix of concurrency strategies. I hope you don't expect to do this routinely. > etc. these are really just simple examples. > And contrived. I've worked with thousands of lines of concurrent-aggregate code and haven't seen much of this. From reinier at zwitserloot.com Tue Jun 1 18:21:49 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 2 Jun 2010 03:21:49 +0200 Subject: Too terse and too alien? In-Reply-To: References: Message-ID: Paul, where did I claim your opinions are somehow less valid? You're flipping the argument around. I observed that your opinions are not MORE valid than those of anyone else. That was the entire point of my missive. If you took away from it that your opinion is LESS valid than I must have missed the mark entirely. Of course the closure proposal "feels complicated". It feels complicated to you, Paul, and it feels complicated to the unnammed masses that Ruben is referring to, because closures, the concept, is inherently complicated. Just like generics, particularly co/contravariance, is just inherently complicated. Trying to magic this complication out of the syntax is a fool's errand. We could for example leave generics out entirely, but co/contravariance doesn't go away. It just becomes invisible again, like it used to be pre java 1.5 syntax. The 'masses', so to speak, don't understand any of this, so if they suggest a closure proposal is too complicated, I don't think that's meaningful. Unless, of course, they've got some arguments suggesting alternatives which aren't (as) complicated, making sure to check that they aren't just shuffling the complication around. I've read countless rainbows-and-ponies arguments where people "just want simple closures, like other languages have!", with absolutely no idea on how to go about obtaining such a unicorn. I don't think this means lambda-dev should continue searching until the end of times for such a legendary closure proposal, nor should it mean that closures should just be dropped (which would undoubtedly cause even more whinging from the masses as implementing something that tends to be considered as 'too complicated'). The rest of this thread is doing a great job at proving that there really is no such thing as an almost universal sense of "java feel", as everyone is as usual trotting out their personal syntax preferences and suggesting their personal preference is clearly the only way that "has the java feel". --Reinier Zwitserloot On Tue, Jun 1, 2010 at 7:48 PM, Paul Benedict wrote: > Right on, Jesse. > > I will not be writing a dissertation to prove why something "feels" > like Java or not. I get closures are new and so new conventions must > exist, but I don't think my opinion is any less valid. There are > reasons hackles are being raised over the Internet over the proposal > -- the proposal easily violates Java's simplicity philosophy, in my > opinion, of course. There's no "proof" for that other than one's > internal perspective. > > On Tue, Jun 1, 2010 at 12:36 PM, Jesse Kuhnert wrote: > > Though I know I'm now expressing a different opinion than I was > > originally (thanks to Alex for pointing it out), a lot of this is > > indeed artistic / creative and not strictly measurable in the > > traditional sense. If we did things that way we'd just slap some blue > > colors on it like google and call it a day right? (not trying to pick > > on google too much, but well ...) > > > > Much like traditional art, not all opinions are created equal. Not > > saying that anyone is right / wrong, just that I'd tend to trust the > > most knowledgeable to brainstorm and find something that feels the > > most natural above anything else. (not that alternative syntax options > > probably aren't welcome as long as they fit all the same functional > > goals) > > > > On Tue, Jun 1, 2010 at 11:08 AM, Reinier Zwitserloot > > wrote: > > > >> > >> > > > From mthornton at optrak.co.uk Wed Jun 2 00:36:28 2010 From: mthornton at optrak.co.uk (Mark Thornton) Date: Wed, 02 Jun 2010 08:36:28 +0100 Subject: Too terse and too alien? In-Reply-To: References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: <4C0609FC.4020701@optrak.co.uk> On 01/06/2010 22:26, Alessio Stalla wrote: > > Are those aggregate operations expected to be usually limited to > simple math, assignments, ternary ifs and method calls with no > try-catch, switch, loops? I don't think so. I also think other > +,*,min,max would probably be by far the most common operations in such contexts. Mark Thornton From fweimer at bfk.de Wed Jun 2 01:06:06 2010 From: fweimer at bfk.de (Florian Weimer) Date: Wed, 02 Jun 2010 08:06:06 +0000 Subject: Too terse and too alien? In-Reply-To: (Alessio Stalla's message of "Wed\, 2 Jun 2010 00\:19\:26 +0200") References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: <82typlx3ip.fsf@mid.bfk.de> * Alessio Stalla: > Really? I forgot to mention no local variables, since Java doesn't have let. > I can come up with reasonable counterexamples: > > sorting people by surname and name (middle name omitted for brevity :D): > > Collections.sort(people, #(Person p, Person q) ( > p.getSurname().compareTo(q.getSurname()) != 0 ? > p.getSurname().compareTo(q.getSurname()) : > p.getName().compareTo(q.getName()) )); > > vs > > Collections.sort(people, #(Person p, Person q) { > int surnameComparison = p.getSurname().compareTo(q.getSurname()); > return surnameComparison != 0 ? surnameComparison : > p.getName().compareTo(q.getName()) > }); This is not a realistic example. It will look more like this in JDK 7: Collections.sort(people, mkComparator(Person#getSurname(), Person#getName())); People will write combinator libraries soon to make this programming style popular. (I'm not sure about the exact syntax.) > processing all event handlers in a list: > > Collections.map(list, #(EventListener e) { > try { e.handle(event); } catch(Exception e) { log.error("Exception > while processing listener", e); } > }); Collections.map(list, suppressException1(e#handle(EventListener), #(Exception e) (log.error("Exception while processing listener", e)))); and so on. -- Florian Weimer BFK edv-consulting GmbH http://www.bfk.de/ Kriegsstra?e 100 tel: +49-721-96201-1 D-76133 Karlsruhe fax: +49-721-96201-99 From howard.lovatt at gmail.com Wed Jun 2 01:20:02 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Wed, 2 Jun 2010 18:20:02 +1000 Subject: Too terse and too alien? In-Reply-To: <90EBFA9B-2293-409E-9019-A80DFC1C8379@oracle.com> References: <90EBFA9B-2293-409E-9019-A80DFC1C8379@oracle.com> Message-ID: @Brian & Maurizio, Glad to hear that there is a definite intention to revisit the syntax, I wouldn't want this important feature, lambdas, to be derailed because of something, that is on one level at least, 'trivial'. When you feel you have the resources to devote to syntax one option would be to start by requesting for a list of criteria that the syntax should meet. Oracle, along with comments on lambda dev, could then sift that list. Once the criteria are decided, then a request for concrete syntaxes could be posted on lambda dev. Oracle, along with lambda dev, could then mark the proposed syntaxes against the criteria. If done in this public manner, it may well help to foster support in the wider community. It would also be a great resource in explaining to other developers who are not following lambda dev why the eventually chosen syntax was a good, well-considered choice, rather than a whim or rushed choice. Congratulations on getting a running prototype. Cheers, -- Howard. On 2 June 2010 04:15, Brian Goetz wrote: > Let's take a breath here. Let me quote the strawman: > > > The concrete syntax shown here is strictly provisional. > > The syntax outlined in the strawman is *simply a placeholder*. As Maurizio > says, it is easy to parse, and we need a concrete syntax so we can have the > more significant discussions about semantics and scope. > > Oracle is well aware of how important syntax is in the usability of the > language and how it shapes users mental models of language features. We are > also well aware that this syntax is "alien" (as well as other adjectives.) > We just have far more important things to pay attention to right now. > > I promise you syntax WILL be revisited. However, having syntax discussions > on this list at this time is counterproductive, so I ask that this forum > focus its energies elsewhere for now. > > > > On Jun 1, 2010, at 1:07 AM, Howard Lovatt wrote: > > > R?mi Forax forax at univ-mlv.fr Sat May 29 07:14:34 PDT 2010 wrote: > >> I've tried a swearword but legal: > >> > >> #()(#(){}).(); > >> > >> The compiler knows more slang words than me :) > > > > R?mi comment, whilst very amusing, is a little worrying. Also there are > > already a number of negative comments, e.g.: > > > > > http://groups.google.com/group/javaposse/browse_frm/thread/54ab72091a1ffe95 > > > > > > and > > > > > http://www.baptiste-wicht.com/2010/05/oracle-pushes-a-first-version-of-closures/comment-page-1/#comment-2023 > > > > > > Anyone else worried about the reaction of Java developers who are not so > > involved with lambda dev? Is the syntax too terse and too alien? > > > > -- Howard. > > > > -- -- Howard. From fweimer at bfk.de Wed Jun 2 01:26:43 2010 From: fweimer at bfk.de (Florian Weimer) Date: Wed, 02 Jun 2010 08:26:43 +0000 Subject: Too terse and too alien? In-Reply-To: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> (Mikael Grev's message of "Tue\, 1 Jun 2010 20\:54\:32 +0200") References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> Message-ID: <82k4qhvnzw.fsf@mid.bfk.de> * Mikael Grev: > As I think Oracle already know, things like > > myClosure.(1, 5) > > won't fly very well with the general developer. The reasoning behind > the dot, that the name otherwise lives in the same name space as > methods, is not understandable by most. And even for me it looks > like a compiler purists way of reasoning. myClosure(1, 5) is the > only way. It looks Java (my interpretation if it) and my IDE will > color/font code it for me to distinguish it from a method call, > which it isn't completely unrelated to anyway. Isn't there an ambiguity when the dot is omitted and there's some syntax for method handles in the language? -- Florian Weimer BFK edv-consulting GmbH http://www.bfk.de/ Kriegsstra?e 100 tel: +49-721-96201-1 D-76133 Karlsruhe fax: +49-721-96201-99 From alessiostalla at gmail.com Wed Jun 2 01:51:17 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Wed, 2 Jun 2010 10:51:17 +0200 Subject: Too terse and too alien? In-Reply-To: <82typlx3ip.fsf@mid.bfk.de> References: <88B28227-FD9A-41CC-B88E-38072408FE69@miginfocom.com> <82typlx3ip.fsf@mid.bfk.de> Message-ID: On Wed, Jun 2, 2010 at 10:06 AM, Florian Weimer wrote: > * Alessio Stalla: > >> Really? I forgot to mention no local variables, since Java doesn't have let. >> I can come up with reasonable counterexamples: >> >> sorting people by surname and name (middle name omitted for brevity :D): >> >> Collections.sort(people, #(Person p, Person q) ( >> ? p.getSurname().compareTo(q.getSurname()) != 0 ? >> ? p.getSurname().compareTo(q.getSurname()) : >> ? p.getName().compareTo(q.getName()) )); >> >> vs >> >> Collections.sort(people, #(Person p, Person q) { >> ? int surnameComparison = p.getSurname().compareTo(q.getSurname()); >> ? return surnameComparison != 0 ? surnameComparison : >> p.getName().compareTo(q.getName()) >> }); > > This is not a realistic example. ?It will look more like this in > JDK 7: > > ?Collections.sort(people, mkComparator(Person#getSurname(), Person#getName())); > > People will write combinator libraries soon to make this programming > style popular. > > (I'm not sure about the exact syntax.) > >> processing all event handlers in a list: >> >> Collections.map(list, #(EventListener e) { >> ? try { e.handle(event); } catch(Exception e) { log.error("Exception >> while processing listener", e); } >> }); > > ?Collections.map(list, suppressException1(e#handle(EventListener), > ?#(Exception e) (log.error("Exception while processing listener", e)))); > > and so on. Ok, thanks, both you and Neal Gafter made some valid points for single-expression closures, and I now think that they will probably be far more popular than I previously thought. I'm still not convinced about distinguishing single vs multi-expression/statement at the syntax level, and about often using combinators instead of writing code the usual way in the body of the closure, but this falls into the realm of personal preference. Regards, Alessio From alex.buckley at oracle.com Thu Jun 3 19:00:50 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 03 Jun 2010 19:00:50 -0700 Subject: Extension method and covariant return type In-Reply-To: <4BF0FE28.5080205@univ-mlv.fr> References: <4BEDD9E9.7050300@oracle.com> <4BF0FE28.5080205@univ-mlv.fr> Message-ID: <4C085E52.1010201@oracle.com> Hi Remi, Clever stuff. It took me a while to swap in bridge methods for overriding with covariant return type. Let's clarify that this problem is about two kinds of bridge method: 1) the bridge method mentioned in Brian's doc, section 6, that dispatches through some yet-to-be-determined mechanism to the default method. Call this a Brian-bridge. 2) the bridge method inserted to ensure invokeinterface on the supertype resolves successfully when the receiver is a subtype whose source had a covariant return. Call this a Remi-bridge. A correct implementation must indeed add the necessary Remi-bridges for each Brian-bridge, via whatever mechanism is used for the Brian-bridge itself. (Multiple Remi-bridges may be required for each Brian-bridge if a subinterface's defender method overrides multiple superinterfaces' defender methods with a return that's covariant to all of them.) But the Remi-bridges are implementation details, like all bridge methods. Whatever the Java Language Spec says about the syntax and semantics of defender methods, the compilation of such methods to Brian-bridges and Remi-bridges will not be specified. The Java VM Spec may well define new ClassFile artifacts in support of Brian-bridges, but they won't be explicit supersets of corresponding JLS artifacts. Alex On 5/17/2010 1:28 AM, R?mi Forax wrote: > I think there is something which is not specified: how covariant return type > (and generics) interacts with the extension method. > > Suppose I have something like that: > > public interface Iterable { > extension Iterable map(F(E) lambda) > default Collections.iterableMap(F(E)); > } > > public interface Collection implements Iterable { > extension Collection map(F(E) lambda) > default Collections.collectionMap(F(E)); > } > > Currently when method that aren't defender method, > the compiler adds a bridge (ACC_BRIDGE) method > to all classes that implements the interfaces > to do the bridge between the methods. > > Because defender methods can be inserted at runtime, > the compiler can not add this bridge > (the class can be compiler with a non 1.7 compiler). > But the compiler can add another defender method that will do the bridge: > > public interface Collection implements Iterable { > extension Collection map(F(E) lambda) > default Collections.collectionMap(F(E)); > > extension Iterable map(F(E) lambda) > default (Collection)Collection.map(F(E)); // brige inserted > by the compiler > } > > This means that the spec must be changed a little to allow to > reference method that aren't static and with a slighty different signature > (bridge can require to cast parameter). > Note that because defender bridges are only added by the compiler, > the Java spec can only authorize static default but the JVM spec > must authorize reference to virtual method + casts > (Hotspot already have call stubs to insert casts without requiring a > full stack frame). > > A question remains, should declaration of extension method allowed in class > (not only in interface) to retrofit standard bridge mecanism to always > use defender bridge. > > R?mi From maurizio.cimadamore at oracle.com Fri Jun 4 04:36:29 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 04 Jun 2010 11:36:29 +0000 Subject: hg: lambda/lambda/langtools: The following issues have been addressed: Message-ID: <20100604113632.9E5C346F62@hg.openjdk.java.net> Changeset: d74a4b240764 Author: mcimadamore Date: 2010-06-04 12:34 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/d74a4b240764 The following issues have been addressed: *) fixed type-inference issues w.r.t. wildcard types *) fixed SAM conversion issues (now Object members are ignored as per strawman) *) fixed minor parser issues (wrong start position of lambdas)/ambiguities *) improved translation of nested lambda expression/lambda expression nested in inner classes/inner classes nested in lambda *) minor attribution fixes: added check for lambda method call, improved check for return expression in lambda context *) better diagnostic support ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/lambda/BadAccess.java + test/tools/javac/lambda/BadAccess.out + test/tools/javac/lambda/BadLambdaCall.java + test/tools/javac/lambda/BadLambdaCall.out + test/tools/javac/lambda/BadReturn.java + test/tools/javac/lambda/BadReturn.out + test/tools/javac/lambda/LambdaCapture02.java + test/tools/javac/lambda/LambdaCapture03.java + test/tools/javac/lambda/LambdaCapture04.java + test/tools/javac/lambda/LambdaCapture05.java + test/tools/javac/lambda/LambdaConv05.java + test/tools/javac/lambda/LambdaScope02.java ! test/tools/javac/lambda/NakedThis.out From brian.goetz at oracle.com Mon Jun 7 15:31:32 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Mon, 07 Jun 2010 18:31:32 -0400 Subject: Exception transparency Message-ID: <4C0D7344.2000903@oracle.com> [ Also posted to http://blogs.sun.com/briangoetz/entry/exception_transparency_in_java ] One of the features being considered under Project Lambda is *exception transparency*. While this feature is not specifically required for adding lambda expressions to the Java language, it increases the expressive power of generic libraries that use closures. ## Problem statement One of the weaknesses of generics in Java is the treatment of checked exceptions. Generics provide reasonable power at abstracting over method return types and argument types, but they do not do a very good job when abstracting over the types of checked exceptions that can be thrown by a method. The result of this has been that few libraries use generic exceptions. Instead, libraries which take callback objects tend to move towards one of two extremes, illustrated by Runnable (which throws nothing) and Callable (which throws everything): public interface Runnable { public void run(); } public interface Callable { V call() throws Exception; } Both of these extremes are undesirable. With Runnable, one must go through lengths to wrap the exception in an unchecked exception or invent an alternate means of exposing the exception to the initiator (see ExecutionException in java.util.concurrent). With Callable, one must catch Exception regardless of what the block throws, which is bad in two ways: unneeded boilerplate coding when the block does not throw, and encouraging users to catch Exception rather than a more targeted exception type. Adding closures to the language exacerbates this problem, as more libraries will want to take block-like constructs and execute them. The core of the problem is that generic type parameters are *monadic* [1]; a formal type parameter E of a generic type must represent exactly one type. But throws clauses are *variadic*; they can contain zero or more types. So while it is possible to generify over thrown exception types, one can only do so if one is willing to commit to the adicity of the throws clause, which is effectively useless for modeling arbitrary callbacks: // This is pretty much useless! public interface ExceptionalCallable { V call() throws E; } ## Variadic type parameters One solution to this problem is to extend generics to allow a restricted form of variadic type parameters, which can represent zero or more types with a common upper bound. There are few places where variable-length lists of types are permitted in the Java language; one is the throws clause of a method, and another is (or will be, being added under Project Coin) is the catch clause of a try block. A throws type parameter is a generic type parameter that is introduced with the keyword throws; throws type parameters implicitly have an upper bound of Exception (though any upper bound that is a subtype of Throwable may be explicitly specified) and can correspond to zero or more actual types that are subtypes of the upper bound. Here is an example of how this might look: interface Block { public void invoke(T element) throws E; } interface NewCollection { public forEach(Block block) throws E; } Here, Block is a generic interface whose type signature includes a throws type parameter E. The forEach method in NewCollection is a generic method, where the type parameter E of block is inferred from its argument, and forEach is declared to rethrow exactly the exceptions thrown by the block argument. Note that it is perfectly possible that a generic method or class might have more than one throws type parameter: T executeOne(Block first, Block second) throws X, Y { if (randomEvent()) first.invoke(); else second.invoke(); } ## Exception transparency With the throws type parameter on the Block interface, we can now accurately generify over the set of exceptions thrown by the Block; with the generic forEach method, we can mirror the exception behavior of the block in forEach(). This is called exception transparency because now the exception behavior of forEach can match the exception behavior of its block argument. Exception transparency simplifies the construction of library classes that implement idioms like internal iteration of data structures, because it is common that methods that accept function-valued arguments will invoke those functions, meaning that the library method will throw a superset of the exceptions thrown by its function-valued arguments. ## Details and open issues A throws type parameter is declared in the formal parameter list of a generic class or interface or of a generic method, is introduced by the keyword throws, and optionally may have an explicit upper bound (which must be a subtype of Throwable). If the upper bound is omitted, it is assumed to be Exception. A throws type parameter may appear in the actual parameter list for a generic variable declaration (only in a position corresponding to a throws parameter), in a throws clause of a method, or in the formal argument of a catch block. Where it appears in the catch block, it is treated by the compiler as a catch of its erasure. It is expected that most of the time, throws parameters will be inferred by the compiler rather than explicitly stated, such as when SAM-converting a lambda expression to a SAM interface type such as Block in our example. A syntax is required to indicate that an actual type parameter for a throws type variable is niladic. In BGGA this was "throws Nothing"; we will likely use "throws void" or "throws Void". We may wish to not require the throws keyword at the use site; Block instead of Block. [1] Monadic in the sense of fixed adicity (arity), not in the sense of category theory or functional programming. From neal at gafter.com Mon Jun 7 16:45:27 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 7 Jun 2010 16:45:27 -0700 Subject: Exception transparency In-Reply-To: <4C0D7344.2000903@oracle.com> References: <4C0D7344.2000903@oracle.com> Message-ID: You describe a syntax for declaring these new kinds of type parameters, but no syntax for the use site. The one-type case is familiar, and you make two suggestions for the no-type case, but what about the two-or-more case (e.g. "IOException or SQLException")? What about disjunctive bounds (they arise in APIs once you start using these type parameters). I conjecture that a new syntax may not be needed at the declaration site at all; it can be inferred from the explicit bound on the type parameter instead of vice-versa, simplifying the syntax and making it more familiar. Specifically, you can treat any type parameter as a throws type parameter if its bound is Throwable or a subtype. There is no need to restrict where the type parameter may be used. I conjecture that a new syntax may not be needed at the use site either, or at least not frequently. Explicit type parameters in an invocation always appear after a kitten-killing ".<", which cannot be confused with a less-than operator. In a function type, similarly, they appear where an expression cannot. When these are actual type parameters of an interface type, wildcards are most often needed at the use site to get proper subtyping, and that is enough of a syntactic hint that disjunctive types using "|" cannot be confused with a logical-or operator. In the base clause of a class or interface declaration, and in an object creation expression they are contextually unambiguous. Only cast expressions are syntactically problematic, and those may be disambiguated by looking ahead to the close-paren. If these conjectures turn out to be true, you may be able to do away with any special syntax in most code, with the exception of whatever syntax is needed to bound and/or separate the multiple types of the type parameters (I recommend "|"). How do these new type parameters interact with wildcards? Can they be used in function types? What are the subtyping rules? You suggest that inference will frequently provide these type parameters, but there is no provision for that in any of the draft specifications for project lambda. Type inference works based on subtype conversions, but not the lambda conversion, and it cannot infer anything other than a single type for a type parameter. Presumably this will be done with some new extensions to the type inference specification, as in BGGA. I'm very interested in how that might look in the context of project lambda. Has Maurizio gotten far enough on this that he might share something? Your suggestion that a type parameter may be used in a catch blocks and is treated as the erasure will be very confusing, and depending on precisely what you mean it might undermine exception checking. Can you please explain what motivated you to add that? Are you hoping that the interaction with final type parameters may allow intercepting exceptions even when the exception type is a formal generic parameter? On Mon, Jun 7, 2010 at 3:31 PM, Brian Goetz wrote: > [ Also posted to > http://blogs.sun.com/briangoetz/entry/exception_transparency_in_java ] > > One of the features being considered under Project Lambda is > *exception transparency*. While this feature is not specifically > required for adding lambda expressions to the Java language, it > increases the expressive power of generic libraries that use closures. > > > ## Problem statement > > One of the weaknesses of generics in Java is the treatment of checked > exceptions. Generics provide reasonable power at abstracting over > method return types and argument types, but they do not do a very good > job when abstracting over the types of checked exceptions that can be > thrown by a method. The result of this has been that few libraries > use generic exceptions. Instead, libraries which take callback > objects tend to move towards one of two extremes, illustrated by > Runnable (which throws nothing) and Callable (which throws > everything): > > public interface Runnable { > public void run(); > } > > public interface Callable { > V call() throws Exception; > } > > > Both of these extremes are undesirable. With Runnable, one must go > through lengths to wrap the exception in an unchecked exception or > invent an alternate means of exposing the exception to the initiator > (see ExecutionException in java.util.concurrent). With Callable, one > must catch Exception regardless of what the block throws, which is bad > in two ways: unneeded boilerplate coding when the block does not > throw, and encouraging users to catch Exception rather than a more > targeted exception type. > > Adding closures to the language exacerbates this problem, as more > libraries will want to take block-like constructs and execute them. > > The core of the problem is that generic type parameters are *monadic* > [1]; a formal type parameter E of a generic type must represent > exactly one type. But throws clauses are *variadic*; they can contain > zero or more types. So while it is possible to generify over thrown > exception types, one can only do so if one is willing to commit to the > adicity of the throws clause, which is effectively useless for > modeling arbitrary callbacks: > > // This is pretty much useless! > public interface ExceptionalCallable { > V call() throws E; > } > > > ## Variadic type parameters > > One solution to this problem is to extend generics to allow a > restricted form of variadic type parameters, which can represent zero > or more types with a common upper bound. There are few places where > variable-length lists of types are permitted in the Java language; one > is the throws clause of a method, and another is (or will be, being > added under Project Coin) is the catch clause of a try block. > > A throws type parameter is a generic type parameter that is introduced > with the keyword throws; throws type parameters implicitly have an > upper bound of Exception (though any upper bound that is a subtype of > Throwable may be explicitly specified) and can correspond to zero or > more actual types that are subtypes of the upper bound. > > Here is an example of how this might look: > > interface Block { > public void invoke(T element) throws E; > } > > interface NewCollection { > public forEach(Block block) throws E; > } > > Here, Block is a generic interface whose type signature includes a > throws type parameter E. The forEach method in NewCollection is a > generic method, where the type parameter E of block is inferred from > its argument, and forEach is declared to rethrow exactly the > exceptions thrown by the block argument. > > Note that it is perfectly possible that a generic method or class > might have more than one throws type parameter: > > > T executeOne(Block first, > Block second) > throws X, Y { > if (randomEvent()) > first.invoke(); > else > second.invoke(); > } > > > ## Exception transparency > > With the throws type parameter on the Block interface, we can now > accurately generify over the set of exceptions thrown by the Block; > with the generic forEach method, we can mirror the exception behavior > of the block in forEach(). This is called exception transparency > because now the exception behavior of forEach can match the exception > behavior of its block argument. Exception transparency simplifies the > construction of library classes that implement idioms like internal > iteration of data structures, because it is common that methods that > accept function-valued arguments will invoke those functions, meaning > that the library method will throw a superset of the exceptions thrown > by its function-valued arguments. > > ## Details and open issues > > A throws type parameter is declared in the formal parameter list of a > generic class or interface or of a generic method, is introduced by > the keyword throws, and optionally may have an explicit upper bound > (which must be a subtype of Throwable). If the upper bound is > omitted, it is assumed to be Exception. > > A throws type parameter may appear in the actual parameter list for a > generic variable declaration (only in a position corresponding to a > throws parameter), in a throws clause of a method, or in the formal > argument of a catch block. Where it appears in the catch block, it is > treated by the compiler as a catch of its erasure. > > It is expected that most of the time, throws parameters will be > inferred by the compiler rather than explicitly stated, such as when > SAM-converting a lambda expression to a SAM interface type such as > Block in our example. > > A syntax is required to indicate that an actual type parameter for a > throws type variable is niladic. In BGGA this was "throws > Nothing"; we will likely use "throws void" or "throws Void". > > We may wish to not require the throws keyword at the use site; > Block instead of Block. > > > [1] Monadic in the sense of fixed adicity (arity), not in the sense of > category theory or functional programming. > > From brian.goetz at oracle.com Mon Jun 7 17:08:57 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Mon, 07 Jun 2010 20:08:57 -0400 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> Message-ID: <4C0D8A19.2000104@oracle.com> Summary: Patience, Grasshopper. All of this will come in due time. > You describe a syntax for declaring these new kinds of type parameters, > but no syntax for the use site. The one-type case is familiar, and you > make two suggestions for the no-type case, but what about the > two-or-more case (e.g. "IOException or SQLException")? What about > disjunctive bounds (they arise in APIs once you start using these type > parameters). The disjunctive syntax (A|B) is the likely front-runner here. > I conjecture that a new syntax may not be needed at the declaration site > at all; it can be inferred from the explicit bound on the type parameter > instead of vice-versa, simplifying the syntax and making it more > familiar. Specifically, you can treat any type parameter as a throws > type parameter if its bound is Throwable or a subtype. There is no need > to restrict where the type parameter may be used. I suspect we might regret that. When you try to write a class like class ExceptionList implements List { ... } you'll find that the compiler has guessed your intentions incorrectly. Similarly we could go down the route of explicitly variadic type parameters (identified say by T... or T*). And the only place you could use them would be ... throws and maybe catch clauses, since those are the only places in the language where you can put a list of types. > I conjecture that a new syntax may not be needed at the use site either, > or at least not frequently. Likely true. There is a balance to be struck. On the one hand, new syntax means something new to learn. On the other hand, shoehorning new semantics into existing syntax means likely surprises. While it can probably be done with minimal new syntax, this may not be the best thing for the language or the community. The choice of "throws" or similar at the declaration site and nothing at the use site is probably a reasonable balance, but as always: syntax choices to be made last. > How do these new type parameters interact with wildcards? Can they be > used in function types? What are the subtyping rules? To be provided. > You suggest that inference will frequently provide these type > parameters, but there is no provision for that in any of the draft > specifications for project lambda. To be provided. > Your suggestion that a type parameter may be used in a catch blocks and > is treated as the erasure will be very confusing, and depending on > precisely what you mean it might undermine exception checking. Can you > please explain what motivated you to add that? Are you hoping that the > interaction with final type parameters may allow intercepting exceptions > even when the exception type is a formal generic parameter? The use in catch blocks is an optional element of this proposal, one that may well turn out in the end to be confusing or unworkable. But the desirability of such a feature should be obvious. We plan to explore it. From reinier at zwitserloot.com Mon Jun 7 21:53:42 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 8 Jun 2010 06:53:42 +0200 Subject: Exception transparency In-Reply-To: <4C0D8A19.2000104@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: Making the exceptions transparent by encoding them in the type system is going to be very unwieldy, even if a "throws T" variadic type parameter concept is introduced. I've got a much better idea: Escape detection on closures. Any closures that are guaranteed to run such that the runtime stack matches the lexical stack can get exception transparency completely free, no new syntax and no new concepts required; it would "just work". Let's take Comparator for example. Currently it is used in two contexts; Collections/Arrays.sort, as well as for the TreeSet constructor. It would make perfect sense for the sort variant to use the proposed variadic type parameter concept to make any exceptions thrown as part of the comparison transparent. Side-stepping for a moment the general shambles that occurs when trying to integrate functional types into existing library code, this would perhaps look something like so: public static void sort(List a, Comparator c) throws E { ... } Just look at that. Generics in libraries already has a tendency to look like gobbledygook and the above is not helping things at all. Even if we abandon Comparator here and use a straight closure type like so: public static void sort(List a, #int(T, T)(throws E) c) throws E { ... } isn't an improvement. But, let's stick with it, and inspect what happens to TreeSet. Now we run into even bigger trouble; applying a (variadic or monadic, doesn't matter) exceptions type parameter here is simply not possible. We'd have to add "throws E" to at the very least TreeSet's add and addAll methods, but we clearly can't; both of those methods come from the Set interface and those don't have any thrown exceptions declared today, so, that won't work. Even in a hypothetical world where we can break backwards compatibility we still can't pragmatically replace Set's current add method with: "public boolean add(T item) throws E" - because what's that E even stand for? In e.g. a HashSet, and most other sets, that "E" makes no sense at all. Its a unique aspect of TreeSet. We could simply not let TreeSet implement Set but that feels completely wrong. The most obvious solution then appears to be one of three options: (A) don't try; leave sort and TreeSet untouched and do not add exception transparency to sort. But that would be a shame. (B) overload Collections.sort with the variadic type parameter based exception transparency. Leave TreeSet untouched. But now we have two incompatible "comparator" concepts, so this too would be a weak solution. (C) hack it together by letting TreeSet rewrap any checked exceptions thrown during add/addAll into a custom unchecked class, akin to InvocationTargetException or ExecutionException). But that's the very ugliness we're trying to avoid! None of these feel like good solutions. Even going with the most likely one, option B, that still leaves us with this brain twiddler: public static void sort(List a, #int(T, T)(throws E) c) throws E { ... } One of the nice things of static typing is that the signature all by itself is usually enough documentation for a library user to know exactly what to do. But with signatures like those, I'm not sure that'll remain true. It's also highly redundant; creating new boilerplate is something we ought to try and avoid. So, here's my alternative: The first part: Create two separate kinds of closures, similar to a later addendum to the BGGA proposal concerning "safe" and "unsafe" closures. There are portable closures which have no restrictions of any kind but which are truly like portable code blocks; a simpler syntax for today's anonymous inner classes. They cannot capture (mutable) variables, do not and will never support long return/break/continue, have no exception transparency of any kind, but you can store them for later, move them to another thread, and otherwise treat them as one would any random object. The other kind of closure is a restricted closure: The compiler will ensure that if the closure is run at all, it is run in such a way that the runtime stack matches lexical scope. Such a closure can capture any variable, mutable or not (because threading cannot possibly be an issue, by definition - the stack is still there, so it must be the same thread), when java 8 rolls around, will support transfers (long break/continue/return), and has automagical exception transparency; it just works, no need for a variadic type parameter. Here's how this might work: TreeSet's constructor remains as it is now, and by default all closures are NOT restricted. Exception transparency for TreeSet's Comparator will not be supported, but we've already seen that supporting it is not feasible anyway, so that's a good result. For Collections.sort, on the other hand, we mark it as restricted, like so: public static void sort(List a, do Comparator c) { ... } note the "do" keyword there. It can be any keyword, such as "restricted", that's a detail that can be decided on later. What this does is two things: First of all, the compiler will ensure that the "c" variable is not assigned to anything (be it a field or a local variable), is not captured by a non-restricted closure, is not captured by a method local class, is not returned, and is not passed as variable to another method (with one exception: It's okay to pass c as a closure to another method that also has a 'do' keyword for that parameter). Secondly, that parameter is marked (via an extended field) as supporting a restricted closure. Then, IF a closure is passed directly as parameter, one gets hassle-free exception transparency, and one can legally write this: public void test() throws IOException { Collections.sort(someList, #(String a, String b) { if (a == null) throw new IOException(); return a.length() - b.length(); }); } It'll work because the compiler first realizes that the closure throws an IOException which isn't caught/declared anywhere in its own lexical scope, but it IS caught/declared in its containing scope, thus the exception itself is marked as "legal, but only if restricted". During the resolution phase, the compiler figures out that this closure is being passed in the position of a restricted parameter and just compiles it without complaining about not handling a checked exception. The JVM already supports this (checked exceptions are checked by javac, the jvm or the class verifier don't care - see any alternative JVM language, which all let you throw checked exceptions without declaring that you do). There's only one caveat: The author of the Collections.sort method may presume that any call to Comparator.compare() couldn't possibly throw, say, an IOException, because "compare()" does not declare this. And that would be a mistake - this entire concept is predicated on the notion that any checked exception not explicitly declared by that closure falls "through" all intermediate methods right back to the original lexical scope, at which point it'll be handled. That'll work, but only if all those intermediate methods don't touch that checked exception. So, something like this: public static void sort(List a, do Comparator c) { try { c.compare(null, null); new FileInputStream("foo.bar"); } catch (IOException e) { //I'll just presume this must have been the FileInputStream! } } would be a coding mistake - it'll fail because it'll catch any transparent IOExceptions from the closure as well. However, this is in practice not a problem at all, for two reasons: (1) Any java program that works like the above and assumes that IOException must have come from the FileInputStream is already buggy. It's the JVM you're coding for and not java (the language) programs; class files produced by jython, scalac, jruby, and just about any other alternative language routinely throw checked exceptions "sneakily". Even within the constraints of java itself, sneaky exceptions can happen. If not explicitly (via e.g. someClass.newInstance() which can sneaky throw), then implicitly, by mixing class files from different compile runs. Thus, this isn't really a new caveat. (2) Existing code will NEVER be bit with this. The author has to step in and add a do keyword to one of the parameters. When doing so the author assumes the responsibility of checking that his code doesn't make this assumption. Such a system is also backwards compatible. You can never remove a "do" keyword from a signature, but you can add it. Just to highlight how exception transparency is completely free in this system, at least for restricted closures: By definition the original stack is still intact, therefore, whatever construct (a catch or a throws clause) made it legal to throw a certain checked exception at the lexical location where the closure is defined is still "live" on the stack. Exceptions, by definition, walk up the stack until they find the nearest handler. Assuming all code in between the closure definition and its execution leave it alone, the exception will always end up at a point where it'll be handled (or thrown onwards but explicitly declared with a "throws" clause, which is ok). This leaves a hole for unrestricted closures, which would then not supported exception transparency at all, but just about every instance of unrestricted closure usage in libraries I can think of doesn't really need exception transparency. The rare case where that would be useful is mostly focussed around ParallelArrays and fork/join, in that PA transports the closure block across threads but it "emulates" the stack (in that the method call that runs an operation on the PA doesn't return until that operation is complete, though in the process of completing the operation, many threads will be used). This case can be supported by offering a native method that unshackles the escape detection from a parameter. The javadoc on this method can explain in detail how its the job of the caller to transport any and all exceptions, checked or not, back to the caller, and how in the future Break/Continue/ReturnTransfer throwables too may occur and should be transported back to the original thread. There are a few use cases where exception transparency is desired but there's no way, even with the above "transport the exception back to the caller" concept, to keep exception transparency out of the type system. However, I posit that with the above system in place these cases don't even get close to being common enough to warrant the considerable burden of adding the "throws E" concept to the type system. As has been pointed out by Brian, other than "throws" and "catch", a variadic type parameter can't really be used anywhere in java. Therefore, by adding restricted/portable status to closures, this particular dilemma is solved in a very simple fashion, and it'll also be quite useful for solving the problem with whether or not to allow capturing mutable variables, as well as be a good starting point for a future addition to closures to let them support "long" break/continue/return. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 2:08 AM, Brian Goetz wrote: > Summary: Patience, Grasshopper. All of this will come in due time. > > > You describe a syntax for declaring these new kinds of type parameters, > > but no syntax for the use site. The one-type case is familiar, and you > > make two suggestions for the no-type case, but what about the > > two-or-more case (e.g. "IOException or SQLException")? What about > > disjunctive bounds (they arise in APIs once you start using these type > > parameters). > > The disjunctive syntax (A|B) is the likely front-runner here. > > > I conjecture that a new syntax may not be needed at the declaration site > > at all; it can be inferred from the explicit bound on the type parameter > > instead of vice-versa, simplifying the syntax and making it more > > familiar. Specifically, you can treat any type parameter as a throws > > type parameter if its bound is Throwable or a subtype. There is no need > > to restrict where the type parameter may be used. > > I suspect we might regret that. When you try to write a class like > class ExceptionList implements List { ... } > you'll find that the compiler has guessed your intentions incorrectly. > > Similarly we could go down the route of explicitly variadic type parameters > (identified say by T... or T*). And the only place you could use them > would > be ... throws and maybe catch clauses, since those are the only places in > the > language where you can put a list of types. > > > I conjecture that a new syntax may not be needed at the use site either, > > or at least not frequently. > > Likely true. There is a balance to be struck. On the one hand, new syntax > means something new to learn. On the other hand, shoehorning new semantics > into existing syntax means likely surprises. While it can probably be done > with minimal new syntax, this may not be the best thing for the language or > the community. > > The choice of "throws" or similar at the declaration site and nothing at > the > use site is probably a reasonable balance, but as always: syntax choices to > be > made last. > > > How do these new type parameters interact with wildcards? Can they be > > used in function types? What are the subtyping rules? > > To be provided. > > > You suggest that inference will frequently provide these type > > parameters, but there is no provision for that in any of the draft > > specifications for project lambda. > > To be provided. > > > Your suggestion that a type parameter may be used in a catch blocks and > > is treated as the erasure will be very confusing, and depending on > > precisely what you mean it might undermine exception checking. Can you > > please explain what motivated you to add that? Are you hoping that the > > interaction with final type parameters may allow intercepting exceptions > > even when the exception type is a formal generic parameter? > > The use in catch blocks is an optional element of this proposal, one that > may > well turn out in the end to be confusing or unworkable. But the > desirability > of such a feature should be obvious. We plan to explore it. > > From tronicek at fit.cvut.cz Mon Jun 7 22:26:13 2010 From: tronicek at fit.cvut.cz (=?utf-8?B?IlpkZW7Em2sgVHJvbsOtxI1layI=?=) Date: Tue, 8 Jun 2010 07:26:13 +0200 Subject: Exception transparency In-Reply-To: <4C0D8A19.2000104@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: Brian Goetz napsal(a): >> I conjecture that a new syntax may not be needed at the declaration site >> at all; it can be inferred from the explicit bound on the type parameter >> instead of vice-versa, simplifying the syntax and making it more >> familiar. Specifically, you can treat any type parameter as a throws >> type parameter if its bound is Throwable or a subtype. There is no need >> to restrict where the type parameter may be used. > > I suspect we might regret that. When you try to write a class like > class ExceptionList implements List { ... } > you'll find that the compiler has guessed your intentions incorrectly. > Could you elaborate on what is wrong with the following code in your opinion? class ExceptionList implements List { ExceptionList() throws T { ... } ... } In comparison to class ExceptionList implements List { ExceptionList() throws E { ... } ... } the former syntax does not seem to be worse. Z. -- Zdenek Tronicek FIT CTU in Prague From neal at gafter.com Mon Jun 7 23:31:21 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 7 Jun 2010 23:31:21 -0700 Subject: Exception transparency In-Reply-To: <4C0D8A19.2000104@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: On Mon, Jun 7, 2010 at 5:08 PM, Brian Goetz wrote: > I conjecture that a new syntax may not be needed at the declaration site >> at all; it can be inferred from the explicit bound on the type parameter >> instead of vice-versa, simplifying the syntax and making it more >> familiar. Specifically, you can treat any type parameter as a throws >> type parameter if its bound is Throwable or a subtype. There is no need >> to restrict where the type parameter may be used. >> > > > I suspect we might regret that. When you try to write a class like > class ExceptionList implements List { ... } > you'll find that the compiler has guessed your intentions incorrectly. > The only place where it makes a difference (assuming BGGA is followed for exception transparency) is in the application of the lub() operation during type inference. The influence of that operation is actually rare in places where it would make a difference. In short, I don't think the compiler needs to guess any intentions where it will affect realistic code. Similarly we could go down the route of explicitly variadic type parameters > (identified say by T... or T*). And the only place you could use them would > be ... throws and maybe catch clauses, since those are the only places in > the language where you can put a list of types. Once you start spelling out the rules, I think you'll find that it is an error to think of these as variadic lists of types. (You can have lists of types in the bounds of type parameters) > I conjecture that a new syntax may not be needed at the use site either, >> or at least not frequently. >> > > Likely true. There is a balance to be struck. On the one hand, new syntax > means something new to learn. On the other hand, shoehorning new semantics > into existing syntax means likely surprises. While it can probably be done > with minimal new syntax, this may not be the best thing for the language or > the community. > The only place where I'm suggesting changed semantics for existing syntax is in the meaning of lub() during inference of formal type parameters. Currently, the result is a conjunctive type. As I propose, it would be a disjunctive type if the parameter is bounded by Throwable or a subtype. I don't believe there are any realistic programs in existence that can tell the difference. From peter.levart at marand.si Mon Jun 7 23:31:44 2010 From: peter.levart at marand.si (Peter Levart) Date: Tue, 8 Jun 2010 08:31:44 +0200 Subject: Exception transparency In-Reply-To: <4C0D8A19.2000104@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: <201006080831.45186.peter.levart@marand.si> On 06/08/10, Brian Goetz wrote: > On 06/08/10, Neal Gafter wrote: > > I conjecture that a new syntax may not be needed at the declaration site > > at all; it can be inferred from the explicit bound on the type parameter > > instead of vice-versa, simplifying the syntax and making it more > > familiar. Specifically, you can treat any type parameter as a throws > > type parameter if its bound is Throwable or a subtype. There is no need > > to restrict where the type parameter may be used. > > I suspect we might regret that. When you try to write a class like > class ExceptionList implements List { ... } > you'll find that the compiler has guessed your intentions incorrectly. > This is valid today and I don't see any problem with it. Unless you are thinking of this: class MixedExceptionList implements List {...} or this: static T catchException(#()(throws T) code) { try { code.(); } catch (T e) { return e; } } IOException ioe = catchException(#() { new FileInputStream("/etc/passwd").close(); }) ...and don't want to introduce disjunctive types as 1st class citizens. Not introducing disjunctive types as 1st class citizens might be more confusing than introducing them. People might ask why they can catch an exception into a local variable but can't return it's value or assign it to a field. Be prepared for another round of d?j? vu: why can't I do new A() where A is a type vaiable... Regards, Peter From neal at gafter.com Mon Jun 7 23:38:22 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 7 Jun 2010 23:38:22 -0700 Subject: Exception transparency In-Reply-To: <201006080831.45186.peter.levart@marand.si> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <201006080831.45186.peter.levart@marand.si> Message-ID: On Mon, Jun 7, 2010 at 11:31 PM, Peter Levart wrote: > Not introducing disjunctive types as 1st class citizens might be more > confusing than introducing them. People might ask why they can catch an > exception into a local variable but can't return it's value or assign it to > a field. Be prepared for another round of d?j? vu: why can't I do new A() > where A is a type vaiable... > Because the type A doesn't necessarily have a public no-args constructor. I suggest a more parallel question would be: why can't I declare a variable of type Serializable&Comparable. From neal at gafter.com Mon Jun 7 23:40:32 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 7 Jun 2010 23:40:32 -0700 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: On Mon, Jun 7, 2010 at 9:53 PM, Reinier Zwitserloot wrote: > Making the exceptions transparent by encoding them in the type system is > going to be very unwieldy, even if a "throws T" variadic type parameter > concept is introduced. I've got a much better idea: Escape detection on > closures. Any closures that are guaranteed to run such that the runtime > stack matches the lexical stack can get exception transparency completely > free, no new syntax and no new concepts required; it would "just work". > Reinier: your scheme, even assuming it could be checked at compile-time, does not work for functions that are to be stored in variables or in a data structure (for example, a collection of callback functions). It is not composable. From alessiostalla at gmail.com Tue Jun 8 00:15:23 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 8 Jun 2010 09:15:23 +0200 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <201006080831.45186.peter.levart@marand.si> Message-ID: On Tue, Jun 8, 2010 at 8:38 AM, Neal Gafter wrote: > On Mon, Jun 7, 2010 at 11:31 PM, Peter Levart wrote: > >> Not introducing disjunctive types as 1st class citizens might be more >> confusing than introducing them. People might ask why they can catch an >> exception into a local variable but can't return it's value or assign it to >> a field. Be prepared for another round of d?j? vu: why can't I do new A() >> where A is a type vaiable... >> > > Because the type A doesn't necessarily have a public no-args constructor. AND because Java generics do not specify a way to enforce A to have a public no-args constructor :) > I suggest a more parallel question would be: why can't I declare a variable > of type Serializable&Comparable. > Yep, this has bitten me a few times. If you have an object of unknown class which implements several interfaces you find yourself casting all the time, or assigning the same object to multiple variables. This happens, for example, with the javax.script.* interfaces ScriptEngine, Invocable and Compilable when you want to use all of them. Cheers, Alessio From reinier at zwitserloot.com Tue Jun 8 00:16:33 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 8 Jun 2010 09:16:33 +0200 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: Indeed. But how often does that happen? There are always pros and cons to be weighed. No one system is perfect. Brian's is unwieldy, and does not seem to answer a simple question - how to add exception transparency to Collections.sort. Mine is simpler and answers that question, but isn't composable. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 8:40 AM, Neal Gafter wrote: > On Mon, Jun 7, 2010 at 9:53 PM, Reinier Zwitserloot < > reinier at zwitserloot.com> wrote: > >> Making the exceptions transparent by encoding them in the type system is >> going to be very unwieldy, even if a "throws T" variadic type parameter >> concept is introduced. I've got a much better idea: Escape detection on >> closures. Any closures that are guaranteed to run such that the runtime >> stack matches the lexical stack can get exception transparency completely >> free, no new syntax and no new concepts required; it would "just work". >> > > Reinier: your scheme, even assuming it could be checked at compile-time, > does not work for functions that are to be stored in variables or in a data > structure (for example, a collection of callback functions). It is not > composable. > From alessiostalla at gmail.com Tue Jun 8 01:00:40 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 8 Jun 2010 10:00:40 +0200 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: On Tue, Jun 8, 2010 at 9:16 AM, Reinier Zwitserloot wrote: > Indeed. But how often does that happen? There are always pros and cons to be > weighed. No one system is perfect. Brian's is unwieldy, and does not seem to > answer a simple question - how to add exception transparency to > Collections.sort. Mine is simpler and answers that question, but isn't > composable. I don't know how often it happens, but I must say that to me one of the key points in favor of closures is the ability to compose them, store them in variables, pass them as parameters and return them from methods. To me, this exception transparency problem is mainly the *checked* exception transparency problem; unchecked exceptions do not exhibit it (unless they are caught by the method calling the closure, as in Reinier Zwitserloot's example, but that is a problem in any case). So, speculating wildly, what if: a) closures wrap all exceptions (or just checked ones?) thrown from their body in an unchecked final ClosureException. This is done automatically by the compiler, which also makes sure that type variable E is assigned CheckedException1|...|CheckedExceptionN depending on the exceptions that can escape the body of the closure, and ties this information to the type of the closure (which then is, say, #foo(bar, baz, ...) throws ClosureException). You can only assign a closure with type ...throws CE to a variable with the very same throws clause, or with a throws clause with a common supertype of A, B and C (Exception is thus always valid). b) ClosureException has a "special" (native?) method unwrap() which is final and which is known by the compiler to throw one of the checked exceptions specified in the generic type variable of ClosureException c) optionally, unwrapping could be done automatically, but I'm not sure about this one. If it's done, you need a way to tell the compiler not to unwrap, in case you want to propagate the exception to the caller (as it is the case for utility methods such as Collections.sort) Does this make any sense? Cheers, Alessio From daniel.yokomizo at gmail.com Tue Jun 8 01:08:15 2010 From: daniel.yokomizo at gmail.com (Daniel Yokomizo) Date: Tue, 8 Jun 2010 05:08:15 -0300 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: Reinier, On Tue, Jun 8, 2010 at 1:53 AM, Reinier Zwitserloot wrote: > Making the exceptions transparent by encoding them in the type system is > going to be very unwieldy, even if a "throws T" variadic type parameter > concept is introduced. I've got a much better idea: Escape detection on > closures. Any closures that are guaranteed to run such that the runtime > stack matches the lexical stack can get exception transparency completely > free, no new syntax and no new concepts required; it would "just work". > > Let's take Comparator for example. Currently it is used in two contexts; > Collections/Arrays.sort, as well as for the TreeSet constructor. It would > make perfect sense for the sort variant to use the proposed variadic type > parameter concept to make any exceptions thrown as part of the comparison > transparent. Side-stepping for a moment the general shambles that occurs > when trying to integrate functional types into existing library code, this > would perhaps look something like so: > > public static void sort(List a, Comparator c) > throws E { > ?... > } > > Just look at that. Generics in libraries already has a tendency to look like > gobbledygook and the above is not helping things at all. Even if we abandon > Comparator here and use a straight closure type like so: > > public static void sort(List a, #int(T, T)(throws E) c) > throws E { > ?... > } > > isn't an improvement. > > > But, let's stick with it, and inspect what happens to TreeSet. > > Now we run into even bigger trouble; applying a (variadic or monadic, > doesn't matter) exceptions type parameter here is simply not possible. We'd > have to add "throws E" to at the very least TreeSet's add and addAll > methods, but we clearly can't; both of those methods come from the Set > interface and those don't have any thrown exceptions declared today, so, > that won't work. Even in a hypothetical world where we can break backwards > compatibility we still can't pragmatically replace Set's current add method > with: "public boolean add(T item) throws E" - because what's that E even > stand for? In e.g. a HashSet, and most other sets, that "E" makes no sense > at all. Its a unique aspect of TreeSet. We could simply not let TreeSet > implement Set but that feels completely wrong. > > > The most obvious solution then appears to be one of three options: > > (A) don't try; leave sort and TreeSet untouched and do not add exception > transparency to sort. But that would be a shame. > (B) overload Collections.sort with the variadic type parameter based > exception transparency. Leave TreeSet untouched. But now we have two > incompatible "comparator" concepts, so this too would be a weak solution. > (C) hack it together by letting TreeSet rewrap any checked exceptions thrown > during add/addAll into a custom unchecked class, akin to > InvocationTargetException or ExecutionException). But that's the very > ugliness we're trying to avoid! [snip] Actually, assuming this change in Comparator, TreeSet constructor could have this signature: TreeSet(Comparator) It's only necessary to have this equivalence/subtyping rules (AFAICS): throws X ~ throws void throws X ~ throws void I'm actually concerned about composing such signatures. For example, if we have a Function type with a possible exception: interface Function { public G apply(F f) throws X; } It should be possible to write a safe compose: Function compose(Function fg, Function gh); And store the composed function in a variable. For this to work we need to have disjunctive type as a first class citizen (as Peter pointed in a previous message). I have such needs in production code today (i.e. composable exception transparency and first class disjunctive types), for a problem that is more complex than just functions that can be composed (but would use the same solution), so in my situation any solution without first class support for composition wouldn't match my needs. Best regards, Daniel Yokomizo From forax at univ-mlv.fr Tue Jun 8 03:12:46 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Tue, 08 Jun 2010 12:12:46 +0200 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: <4C0E179E.7040201@univ-mlv.fr> Le 08/06/2010 08:31, Neal Gafter a ?crit : > On Mon, Jun 7, 2010 at 5:08 PM, Brian Goetz wrote: > > >> I conjecture that a new syntax may not be needed at the declaration site >> >>> at all; it can be inferred from the explicit bound on the type parameter >>> instead of vice-versa, simplifying the syntax and making it more >>> familiar. Specifically, you can treat any type parameter as a throws >>> type parameter if its bound is Throwable or a subtype. There is no need >>> to restrict where the type parameter may be used. >>> >>> >> >> I suspect we might regret that. When you try to write a class like >> class ExceptionList implements List { ... } >> you'll find that the compiler has guessed your intentions incorrectly. >> >> > The only place where it makes a difference (assuming BGGA is followed for > exception transparency) is in the application of the lub() operation during > type inference. The influence of that operation is actually rare in places > where it would make a difference. In short, I don't think the compiler > needs to guess any intentions where it will affect realistic code. > Neal, I have trouble to figure out an example of such rare places. Do you have an example of such code ? R?mi From maurizio.cimadamore at oracle.com Tue Jun 8 03:21:25 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 08 Jun 2010 11:21:25 +0100 Subject: Exception transparency In-Reply-To: <4C0E179E.7040201@univ-mlv.fr> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E179E.7040201@univ-mlv.fr> Message-ID: <4C0E19A5.10201@oracle.com> On 08/06/10 11:12, R?mi Forax wrote: > Le 08/06/2010 08:31, Neal Gafter a ?crit : > >> On Mon, Jun 7, 2010 at 5:08 PM, Brian Goetz wrote: >> >> >> >>> I conjecture that a new syntax may not be needed at the declaration site >>> >>> >>>> at all; it can be inferred from the explicit bound on the type parameter >>>> instead of vice-versa, simplifying the syntax and making it more >>>> familiar. Specifically, you can treat any type parameter as a throws >>>> type parameter if its bound is Throwable or a subtype. There is no need >>>> to restrict where the type parameter may be used. >>>> >>>> >>>> >>> I suspect we might regret that. When you try to write a class like >>> class ExceptionList implements List { ... } >>> you'll find that the compiler has guessed your intentions incorrectly. >>> >>> >>> >> The only place where it makes a difference (assuming BGGA is followed for >> exception transparency) is in the application of the lub() operation during >> type inference. The influence of that operation is actually rare in places >> where it would make a difference. In short, I don't think the compiler >> needs to guess any intentions where it will affect realistic code. >> >> > Neal, > I have trouble to figure out an example of such rare places. > > Do you have an example of such code ? > Could be this? class A extends Exception {} class B extends A {} class C extends A {} E choose(E e1, E e2) { ... } choose(new B(), new C()); //what is the inferred type for E??? In JDK 5/6 E is inferred to be A>>. In JDK 7 with the proposed new semantics for 'exception-bound' type-vars the inferred type would be something like A | A, which, I guess, would need to be rejected as an ill-formed type on the grounds of type-disjointness (A and A are not provably distinct). Maurizio > R?mi > > From peter.levart at marand.si Tue Jun 8 04:54:47 2010 From: peter.levart at marand.si (Peter Levart) Date: Tue, 8 Jun 2010 13:54:47 +0200 Subject: Exception transparency In-Reply-To: <4C0E19A5.10201@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0E179E.7040201@univ-mlv.fr> <4C0E19A5.10201@oracle.com> Message-ID: <201006081354.48103.peter.levart@marand.si> On 06/08/10, Maurizio Cimadamore wrote: > >> needs to guess any intentions where it will affect realistic code. > >> > >> > > Neal, > > I have trouble to figure out an example of such rare places. > > > > Do you have an example of such code ? > > > Could be this? > > class A extends Exception {} > class B extends A {} > class C extends A {} > > E choose(E e1, E e2) { ... } > > choose(new B(), new C()); //what is the inferred type for E??? > > In JDK 5/6 E is inferred to be A Object & Comparable>>. In JDK 7 with the proposed new semantics for > 'exception-bound' type-vars the inferred type would be something like > A | A, which, I guess, would need to be rejected as an > ill-formed type on the grounds of type-disjointness (A and > A are not provably distinct). Are you suggesting to relax the rule that generic classes can not extend Throwable? Peter > > Maurizio > From maurizio.cimadamore at oracle.com Tue Jun 8 05:13:48 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 08 Jun 2010 13:13:48 +0100 Subject: Exception transparency In-Reply-To: <201006081354.48103.peter.levart@marand.si> References: <4C0D7344.2000903@oracle.com> <4C0E179E.7040201@univ-mlv.fr> <4C0E19A5.10201@oracle.com> <201006081354.48103.peter.levart@marand.si> Message-ID: <4C0E33FC.7060800@oracle.com> On 08/06/10 12:54, Peter Levart wrote: > On 06/08/10, Maurizio Cimadamore wrote: > >>>> needs to guess any intentions where it will affect realistic code. >>>> >>>> >>>> >>> Neal, >>> I have trouble to figure out an example of such rare places. >>> >>> Do you have an example of such code ? >>> >>> >> Could be this? >> >> class A extends Exception {} >> class B extends A {} >> class C extends A {} >> >> E choose(E e1, E e2) { ... } >> >> choose(new B(), new C()); //what is the inferred type for E??? >> >> In JDK 5/6 E is inferred to be A> Object& Comparable>>. In JDK 7 with the proposed new semantics for >> 'exception-bound' type-vars the inferred type would be something like >> A | A, which, I guess, would need to be rejected as an >> ill-formed type on the grounds of type-disjointness (A and >> A are not provably distinct). >> > Are you suggesting to relax the rule that generic classes can not extend Throwable? > Good catch - my example is illegal; no incompatibility here. Maurizio > Peter > > >> Maurizio >> >> From maurizio.cimadamore at oracle.com Tue Jun 8 05:25:40 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 08 Jun 2010 13:25:40 +0100 Subject: Exception transparency In-Reply-To: <4C0E33FC.7060800@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0E179E.7040201@univ-mlv.fr> <4C0E19A5.10201@oracle.com> <201006081354.48103.peter.levart@marand.si> <4C0E33FC.7060800@oracle.com> Message-ID: <4C0E36C4.3030509@oracle.com> On 08/06/10 13:13, Maurizio Cimadamore wrote: > On 08/06/10 12:54, Peter Levart wrote: > >> On 06/08/10, Maurizio Cimadamore wrote: >> >> >>>>> needs to guess any intentions where it will affect realistic code. >>>>> >>>>> >>>>> >>>>> >>>> Neal, >>>> I have trouble to figure out an example of such rare places. >>>> >>>> Do you have an example of such code ? >>>> >>>> >>>> >>> Could be this? >>> >>> class A extends Exception {} >>> class B extends A {} >>> class C extends A {} >>> >>> E choose(E e1, E e2) { ... } >>> >>> choose(new B(), new C()); //what is the inferred type for E??? >>> >>> In JDK 5/6 E is inferred to be A>> Object& Comparable>>. In JDK 7 with the proposed new semantics for >>> 'exception-bound' type-vars the inferred type would be something like >>> A | A, which, I guess, would need to be rejected as an >>> ill-formed type on the grounds of type-disjointness (A and >>> A are not provably distinct). >>> >>> >> Are you suggesting to relax the rule that generic classes can not extend Throwable? >> >> > Good catch - my example is illegal; no incompatibility here. > I tried harder ;-) : class Foo { void set(X x) {} } class A extends Exception {} class B extends Exception {} class Test { static Foo test(E e1, E e2){ return new Foo(); } public static void main(String args) { test(new A(), new B()).set(new Exception()); } } This compiles in JDK 5/6 (E inferred to be Exception); it fails to compile under JDK 7 if we assume that type-variables with Exception bound have a 'varadic' semantics; in fact in this case the type A|B would be inferred. But this means that you cannot pass an Exception where an A|B is expected. Maurizio > Maurizio > >> Peter >> >> >> >>> Maurizio >>> >>> >>> > > From brian.goetz at oracle.com Tue Jun 8 05:28:58 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 08:28:58 -0400 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: <4C0E378A.9020109@oracle.com> The problem has nothing to do with syntax; the problem has to do with the compiler incorrectly assuming a type parameter is variadic. In the latter case "implements List" would not compile! On 6/8/2010 1:26 AM, "Zden?k Tron??ek" wrote: > > Brian Goetz napsal(a): >>> I conjecture that a new syntax may not be needed at the declaration site >>> at all; it can be inferred from the explicit bound on the type parameter >>> instead of vice-versa, simplifying the syntax and making it more >>> familiar. Specifically, you can treat any type parameter as a throws >>> type parameter if its bound is Throwable or a subtype. There is no need >>> to restrict where the type parameter may be used. >> >> I suspect we might regret that. When you try to write a class like >> class ExceptionList implements List { ... } >> you'll find that the compiler has guessed your intentions incorrectly. >> > > Could you elaborate on what is wrong with the following code in your opinion? > > class ExceptionList implements List { > > ExceptionList() throws T { ... } > ... > } > > In comparison to > > class ExceptionList implements List { > > ExceptionList() throws E { ... } > ... > } > > the former syntax does not seem to be worse. > > Z. From opinali at gmail.com Tue Jun 8 05:48:03 2010 From: opinali at gmail.com (Osvaldo Doederlein) Date: Tue, 8 Jun 2010 09:48:03 -0300 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: Just adding $2c, the advantage of being composable should clearly be the highest priority at least in some extent: lambdas must support this quality at least well enough to match the existing mechanism that they replace (interfaces / SAM types / inner classes); for example you can put those inside collections without losing any type-safety, so any flavor of lambda that doesn't allow that is D.O.A. A+ Osvaldo 2010/6/8 Neal Gafter > On Mon, Jun 7, 2010 at 9:53 PM, Reinier Zwitserloot < > reinier at zwitserloot.com > > wrote: > > > Making the exceptions transparent by encoding them in the type system is > > going to be very unwieldy, even if a "throws T" variadic type parameter > > concept is introduced. I've got a much better idea: Escape detection on > > closures. Any closures that are guaranteed to run such that the runtime > > stack matches the lexical stack can get exception transparency completely > > free, no new syntax and no new concepts required; it would "just work". > > > > Reinier: your scheme, even assuming it could be checked at compile-time, > does not work for functions that are to be stored in variables or in a data > structure (for example, a collection of callback functions). It is not > composable. > > From brian.goetz at oracle.com Tue Jun 8 06:14:44 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 09:14:44 -0400 Subject: Virtual extension methods -- second draft In-Reply-To: <4BEDD9E9.7050300@oracle.com> References: <4BEDD9E9.7050300@oracle.com> Message-ID: <4C0E4244.60205@oracle.com> I've updated the draft on Defender Methods: http://cr.openjdk.java.net/~darcy/DefenderMethods.pdf On 5/14/2010 7:16 PM, Brian Goetz wrote: > The attached document reflects our current thinking in the area of > extension methods, which was introduced in section 8 of the Strawman > proposal. This document (arguably) improves on the static extension > method scheme presented there. > > Comments on the technical merits and flaws of the scheme are welcome > (there are lots of details to be fleshed out, of course.) Comparisons to > the previous (static) extension method scheme outlined in the strawman > are also fair game. > > Comments to the effect of "I like XYZ other scheme better" are not. > (Where XYZ could be use-site extension methods, traits, mixins, etc. > Those have already been considered and rejected as viable approaches for > Project Lambda.) > > > > From brian.goetz at oracle.com Tue Jun 8 06:16:25 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 09:16:25 -0400 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: <4C0E42A9.8060100@oracle.com> > It should be possible to write a safe compose: > > Function > compose(Function fg, Function gh); > > And store the composed function in a variable. For this to work we > need to have disjunctive type as a first class citizen (as Peter > pointed in a previous message). Can you elaborate on why this requires *first-class* disjunctive types? The signature you write seems perfectly allowable within a framework that allows a disjunction-like entity at the use site of a throws type variable. From brian.goetz at oracle.com Tue Jun 8 07:24:52 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 10:24:52 -0400 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: <4C0E52B4.4030502@oracle.com> What I like about this idea is that it clearly distinguishes between the features that are useful in a "portable" way vs those which are tied to the execution environment in which the lambda is captured. In order for such a system to work, it has to be reflected in the type system. One way to do so would be to introduce a characteristic of functions (call it "purity") and state: pure T->U <: T->U Then \lambda.{ 42 } is a pure function (of type Void->Int); \lambda.{ x } (where x is a nonfinal local) is not. Restricting non-pure closures to executing in their creating stack scope is easy. The hard part is reifying purity in the (nominal Java) type system. Otherwise, you run into problems. The purity of a closure would need to be identifiable statically (preferably) or dynamically (worst case) so that we didn't try to "transport" a non-pure closure. Consider a method like List.forEach(). If forEach() has to assume the worst (impurity), then forEach() must be sequential. But that is terrible! Adding closures and not allowing the possibility of parallel iteration? Not OK. If purity were reflected in the static type system, there could be overloaded versions of forEach() for pure and impure version, and the pure version could be parallel. If purity were reflected only dynamically, then forEach() could test for "if lambda instanceof pure" (or whatever) and choose between serial and parallel iteration. Add to that the need for migration compatibility -- whether we support denotable function types or not, this has to work with SAM types. The obvious way to tag purity with SAM types would be with a marker interface, but then decorator-like methods (like immutableList()) would "wash away" the marker. I like your idea, I really do. I hope you can figure out a way to address these problems! On 6/8/2010 12:53 AM, Reinier Zwitserloot wrote: > Making the exceptions transparent by encoding them in the type system is > going to be very unwieldy, even if a "throws T" variadic type parameter > concept is introduced. I've got a much better idea: Escape detection on > closures. Any closures that are guaranteed to run such that the runtime > stack matches the lexical stack can get exception transparency > completely free, no new syntax and no new concepts required; it would > "just work". > > Let's take Comparator for example. Currently it is used in two contexts; > Collections/Arrays.sort, as well as for the TreeSet constructor. It > would make perfect sense for the sort variant to use the proposed > variadic type parameter concept to make any exceptions thrown as part of > the comparison transparent. Side-stepping for a moment the general > shambles that occurs when trying to integrate functional types into > existing library code, this would perhaps look something like so: > > public static void sort(List a, Comparator E> c) throws E { > ... > } > > Just look at that. Generics in libraries already has a tendency to look > like gobbledygook and the above is not helping things at all. Even if we > abandon Comparator here and use a straight closure type like so: > > public static void sort(List a, #int(T, T)(throws E) c) > throws E { > ... > } > > isn't an improvement. > > > But, let's stick with it, and inspect what happens to TreeSet. > > Now we run into even bigger trouble; applying a (variadic or monadic, > doesn't matter) exceptions type parameter here is simply not possible. > We'd have to add "throws E" to at the very least TreeSet's add and > addAll methods, but we clearly can't; both of those methods come from > the Set interface and those don't have any thrown exceptions declared > today, so, that won't work. Even in a hypothetical world where we can > break backwards compatibility we still can't pragmatically replace Set's > current add method with: "public boolean add(T item) throws E" - because > what's that E even stand for? In e.g. a HashSet, and most other sets, > that "E" makes no sense at all. Its a unique aspect of TreeSet. We could > simply not let TreeSet implement Set but that feels completely wrong. > > > The most obvious solution then appears to be one of three options: > > (A) don't try; leave sort and TreeSet untouched and do not add exception > transparency to sort. But that would be a shame. > (B) overload Collections.sort with the variadic type parameter based > exception transparency. Leave TreeSet untouched. But now we have two > incompatible "comparator" concepts, so this too would be a weak solution. > (C) hack it together by letting TreeSet rewrap any checked exceptions > thrown during add/addAll into a custom unchecked class, akin to > InvocationTargetException or ExecutionException). But that's the very > ugliness we're trying to avoid! > > None of these feel like good solutions. Even going with the most likely > one, option B, that still leaves us with this brain twiddler: > > public static void sort(List a, #int(T, T)(throws E) c) > throws E { > ... > } > > One of the nice things of static typing is that the signature all by > itself is usually enough documentation for a library user to know > exactly what to do. But with signatures like those, I'm not sure that'll > remain true. It's also highly redundant; creating new boilerplate is > something we ought to try and avoid. > > So, here's my alternative: > > The first part: Create two separate kinds of closures, similar to a > later addendum to the BGGA proposal concerning "safe" and "unsafe" closures. > > There are portable closures which have no restrictions of any kind but > which are truly like portable code blocks; a simpler syntax for today's > anonymous inner classes. They cannot capture (mutable) variables, do not > and will never support long return/break/continue, have no exception > transparency of any kind, but you can store them for later, move them to > another thread, and otherwise treat them as one would any random object. > > The other kind of closure is a restricted closure: The compiler will > ensure that if the closure is run at all, it is run in such a way that > the runtime stack matches lexical scope. Such a closure can capture any > variable, mutable or not (because threading cannot possibly be an issue, > by definition - the stack is still there, so it must be the same > thread), when java 8 rolls around, will support transfers (long > break/continue/return), and has automagical exception transparency; it > just works, no need for a variadic type parameter. > > Here's how this might work: > > TreeSet's constructor remains as it is now, and by default all closures > are NOT restricted. Exception transparency for TreeSet's Comparator will > not be supported, but we've already seen that supporting it is not > feasible anyway, so that's a good result. For Collections.sort, on the > other hand, we mark it as restricted, like so: > > public static void sort(List a, do Comparator c) { > ... > } > > note the "do" keyword there. It can be any keyword, such as > "restricted", that's a detail that can be decided on later. What this > does is two things: First of all, the compiler will ensure that the "c" > variable is not assigned to anything (be it a field or a local > variable), is not captured by a non-restricted closure, is not captured > by a method local class, is not returned, and is not passed as variable > to another method (with one exception: It's okay to pass c as a closure > to another method that also has a 'do' keyword for that parameter). > Secondly, that parameter is marked (via an extended field) as supporting > a restricted closure. > > > Then, IF a closure is passed directly as parameter, one gets hassle-free > exception transparency, and one can legally write this: > > public void test() throws IOException { > Collections.sort(someList, #(String a, String b) { > if (a == null) throw new IOException(); > return a.length() - b.length(); > }); > } > > It'll work because the compiler first realizes that the closure throws > an IOException which isn't caught/declared anywhere in its own lexical > scope, but it IS caught/declared in its containing scope, thus the > exception itself is marked as "legal, but only if restricted". During > the resolution phase, the compiler figures out that this closure is > being passed in the position of a restricted parameter and just compiles > it without complaining about not handling a checked exception. The JVM > already supports this (checked exceptions are checked by javac, the jvm > or the class verifier don't care - see any alternative JVM language, > which all let you throw checked exceptions without declaring that you do). > > There's only one caveat: The author of the Collections.sort method may > presume that any call to Comparator.compare() couldn't possibly throw, > say, an IOException, because "compare()" does not declare this. And that > would be a mistake - this entire concept is predicated on the notion > that any checked exception not explicitly declared by that closure falls > "through" all intermediate methods right back to the original lexical > scope, at which point it'll be handled. That'll work, but only if all > those intermediate methods don't touch that checked exception. So, > something like this: > > public static void sort(List a, do Comparator c) { > try { > c.compare(null, null); > new FileInputStream("foo.bar"); > } catch (IOException e) { > //I'll just presume this must have been the FileInputStream! > } > } > > would be a coding mistake - it'll fail because it'll catch any > transparent IOExceptions from the closure as well. However, this is in > practice not a problem at all, for two reasons: > > (1) Any java program that works like the above and assumes that > IOException must have come from the FileInputStream is already buggy. > It's the JVM you're coding for and not java (the language) programs; > class files produced by jython, scalac, jruby, and just about any other > alternative language routinely throw checked exceptions "sneakily". Even > within the constraints of java itself, sneaky exceptions can happen. If > not explicitly (via e.g. someClass.newInstance() which can sneaky > throw), then implicitly, by mixing class files from different compile > runs. Thus, this isn't really a new caveat. > > (2) Existing code will NEVER be bit with this. The author has to step in > and add a do keyword to one of the parameters. When doing so the author > assumes the responsibility of checking that his code doesn't make this > assumption. > > > Such a system is also backwards compatible. You can never remove a "do" > keyword from a signature, but you can add it. > > > Just to highlight how exception transparency is completely free in this > system, at least for restricted closures: By definition the original > stack is still intact, therefore, whatever construct (a catch or a > throws clause) made it legal to throw a certain checked exception at the > lexical location where the closure is defined is still "live" on the > stack. Exceptions, by definition, walk up the stack until they find the > nearest handler. Assuming all code in between the closure definition and > its execution leave it alone, the exception will always end up at a > point where it'll be handled (or thrown onwards but explicitly declared > with a "throws" clause, which is ok). > > This leaves a hole for unrestricted closures, which would then not > supported exception transparency at all, but just about every instance > of unrestricted closure usage in libraries I can think of doesn't really > need exception transparency. The rare case where that would be useful is > mostly focussed around ParallelArrays and fork/join, in that PA > transports the closure block across threads but it "emulates" the stack > (in that the method call that runs an operation on the PA doesn't return > until that operation is complete, though in the process of completing > the operation, many threads will be used). This case can be supported by > offering a native method that unshackles the escape detection from a > parameter. The javadoc on this method can explain in detail how its the > job of the caller to transport any and all exceptions, checked or not, > back to the caller, and how in the future Break/Continue/ReturnTransfer > throwables too may occur and should be transported back to the original > thread. > > There are a few use cases where exception transparency is desired but > there's no way, even with the above "transport the exception back to the > caller" concept, to keep exception transparency out of the type system. > However, I posit that with the above system in place these cases don't > even get close to being common enough to warrant the considerable burden > of adding the "throws E" concept to the type system. As has been pointed > out by Brian, other than "throws" and "catch", a variadic type parameter > can't really be used anywhere in java. > > Therefore, by adding restricted/portable status to closures, this > particular dilemma is solved in a very simple fashion, and it'll also be > quite useful for solving the problem with whether or not to allow > capturing mutable variables, as well as be a good starting point for a > future addition to closures to let them support "long" > break/continue/return. > > --Reinier Zwitserloot > > > > On Tue, Jun 8, 2010 at 2:08 AM, Brian Goetz > wrote: > > Summary: Patience, Grasshopper. All of this will come in due time. > > > You describe a syntax for declaring these new kinds of type > parameters, > > but no syntax for the use site. The one-type case is familiar, > and you > > make two suggestions for the no-type case, but what about the > > two-or-more case (e.g. "IOException or SQLException")? What about > > disjunctive bounds (they arise in APIs once you start using these > type > > parameters). > > The disjunctive syntax (A|B) is the likely front-runner here. > > > I conjecture that a new syntax may not be needed at the > declaration site > > at all; it can be inferred from the explicit bound on the type > parameter > > instead of vice-versa, simplifying the syntax and making it more > > familiar. Specifically, you can treat any type parameter as a throws > > type parameter if its bound is Throwable or a subtype. There is > no need > > to restrict where the type parameter may be used. > > I suspect we might regret that. When you try to write a class like > class ExceptionList implements List { ... } > you'll find that the compiler has guessed your intentions incorrectly. > > Similarly we could go down the route of explicitly variadic type > parameters > (identified say by T... or T*). And the only place you could use > them would > be ... throws and maybe catch clauses, since those are the only > places in the > language where you can put a list of types. > > > I conjecture that a new syntax may not be needed at the use site > either, > > or at least not frequently. > > Likely true. There is a balance to be struck. On the one hand, new > syntax > means something new to learn. On the other hand, shoehorning new > semantics > into existing syntax means likely surprises. While it can probably > be done > with minimal new syntax, this may not be the best thing for the > language or > the community. > > The choice of "throws" or similar at the declaration site and > nothing at the > use site is probably a reasonable balance, but as always: syntax > choices to be > made last. > > > How do these new type parameters interact with wildcards? Can > they be > > used in function types? What are the subtyping rules? > > To be provided. > > > You suggest that inference will frequently provide these type > > parameters, but there is no provision for that in any of the draft > > specifications for project lambda. > > To be provided. > > > Your suggestion that a type parameter may be used in a catch > blocks and > > is treated as the erasure will be very confusing, and depending on > > precisely what you mean it might undermine exception checking. > Can you > > please explain what motivated you to add that? Are you hoping > that the > > interaction with final type parameters may allow intercepting > exceptions > > even when the exception type is a formal generic parameter? > > The use in catch blocks is an optional element of this proposal, one > that may > well turn out in the end to be confusing or unworkable. But the > desirability > of such a feature should be obvious. We plan to explore it. > > From brian.goetz at oracle.com Tue Jun 8 08:17:06 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 11:17:06 -0400 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: <4C0E5EF2.9010105@oracle.com> Note that there's no reason that exceptions can't cross threads here. Imagine that we had throws-type-parameters when designing JUC. Then it is possible we would have done this: interface Callable { public T call() throws E; } interface Future { ... public T get() throws InterruptedException, E; } interface ExecutorService { Future submit(Callable task); } rather than wrapping the exception thrown by the task in an ExecutionException. On 6/8/2010 12:53 AM, Reinier Zwitserloot wrote: > Making the exceptions transparent by encoding them in the type system is > going to be very unwieldy, even if a "throws T" variadic type parameter > concept is introduced. I've got a much better idea: Escape detection on > closures. Any closures that are guaranteed to run such that the runtime > stack matches the lexical stack can get exception transparency > completely free, no new syntax and no new concepts required; it would > "just work". > > Let's take Comparator for example. Currently it is used in two contexts; > Collections/Arrays.sort, as well as for the TreeSet constructor. It > would make perfect sense for the sort variant to use the proposed > variadic type parameter concept to make any exceptions thrown as part of > the comparison transparent. Side-stepping for a moment the general > shambles that occurs when trying to integrate functional types into > existing library code, this would perhaps look something like so: > > public static void sort(List a, Comparator E> c) throws E { > ... > } > > Just look at that. Generics in libraries already has a tendency to look > like gobbledygook and the above is not helping things at all. Even if we > abandon Comparator here and use a straight closure type like so: > > public static void sort(List a, #int(T, T)(throws E) c) > throws E { > ... > } > > isn't an improvement. > > > But, let's stick with it, and inspect what happens to TreeSet. > > Now we run into even bigger trouble; applying a (variadic or monadic, > doesn't matter) exceptions type parameter here is simply not possible. > We'd have to add "throws E" to at the very least TreeSet's add and > addAll methods, but we clearly can't; both of those methods come from > the Set interface and those don't have any thrown exceptions declared > today, so, that won't work. Even in a hypothetical world where we can > break backwards compatibility we still can't pragmatically replace Set's > current add method with: "public boolean add(T item) throws E" - because > what's that E even stand for? In e.g. a HashSet, and most other sets, > that "E" makes no sense at all. Its a unique aspect of TreeSet. We could > simply not let TreeSet implement Set but that feels completely wrong. > > > The most obvious solution then appears to be one of three options: > > (A) don't try; leave sort and TreeSet untouched and do not add exception > transparency to sort. But that would be a shame. > (B) overload Collections.sort with the variadic type parameter based > exception transparency. Leave TreeSet untouched. But now we have two > incompatible "comparator" concepts, so this too would be a weak solution. > (C) hack it together by letting TreeSet rewrap any checked exceptions > thrown during add/addAll into a custom unchecked class, akin to > InvocationTargetException or ExecutionException). But that's the very > ugliness we're trying to avoid! > > None of these feel like good solutions. Even going with the most likely > one, option B, that still leaves us with this brain twiddler: > > public static void sort(List a, #int(T, T)(throws E) c) > throws E { > ... > } > > One of the nice things of static typing is that the signature all by > itself is usually enough documentation for a library user to know > exactly what to do. But with signatures like those, I'm not sure that'll > remain true. It's also highly redundant; creating new boilerplate is > something we ought to try and avoid. > > So, here's my alternative: > > The first part: Create two separate kinds of closures, similar to a > later addendum to the BGGA proposal concerning "safe" and "unsafe" closures. > > There are portable closures which have no restrictions of any kind but > which are truly like portable code blocks; a simpler syntax for today's > anonymous inner classes. They cannot capture (mutable) variables, do not > and will never support long return/break/continue, have no exception > transparency of any kind, but you can store them for later, move them to > another thread, and otherwise treat them as one would any random object. > > The other kind of closure is a restricted closure: The compiler will > ensure that if the closure is run at all, it is run in such a way that > the runtime stack matches lexical scope. Such a closure can capture any > variable, mutable or not (because threading cannot possibly be an issue, > by definition - the stack is still there, so it must be the same > thread), when java 8 rolls around, will support transfers (long > break/continue/return), and has automagical exception transparency; it > just works, no need for a variadic type parameter. > > Here's how this might work: > > TreeSet's constructor remains as it is now, and by default all closures > are NOT restricted. Exception transparency for TreeSet's Comparator will > not be supported, but we've already seen that supporting it is not > feasible anyway, so that's a good result. For Collections.sort, on the > other hand, we mark it as restricted, like so: > > public static void sort(List a, do Comparator c) { > ... > } > > note the "do" keyword there. It can be any keyword, such as > "restricted", that's a detail that can be decided on later. What this > does is two things: First of all, the compiler will ensure that the "c" > variable is not assigned to anything (be it a field or a local > variable), is not captured by a non-restricted closure, is not captured > by a method local class, is not returned, and is not passed as variable > to another method (with one exception: It's okay to pass c as a closure > to another method that also has a 'do' keyword for that parameter). > Secondly, that parameter is marked (via an extended field) as supporting > a restricted closure. > > > Then, IF a closure is passed directly as parameter, one gets hassle-free > exception transparency, and one can legally write this: > > public void test() throws IOException { > Collections.sort(someList, #(String a, String b) { > if (a == null) throw new IOException(); > return a.length() - b.length(); > }); > } > > It'll work because the compiler first realizes that the closure throws > an IOException which isn't caught/declared anywhere in its own lexical > scope, but it IS caught/declared in its containing scope, thus the > exception itself is marked as "legal, but only if restricted". During > the resolution phase, the compiler figures out that this closure is > being passed in the position of a restricted parameter and just compiles > it without complaining about not handling a checked exception. The JVM > already supports this (checked exceptions are checked by javac, the jvm > or the class verifier don't care - see any alternative JVM language, > which all let you throw checked exceptions without declaring that you do). > > There's only one caveat: The author of the Collections.sort method may > presume that any call to Comparator.compare() couldn't possibly throw, > say, an IOException, because "compare()" does not declare this. And that > would be a mistake - this entire concept is predicated on the notion > that any checked exception not explicitly declared by that closure falls > "through" all intermediate methods right back to the original lexical > scope, at which point it'll be handled. That'll work, but only if all > those intermediate methods don't touch that checked exception. So, > something like this: > > public static void sort(List a, do Comparator c) { > try { > c.compare(null, null); > new FileInputStream("foo.bar"); > } catch (IOException e) { > //I'll just presume this must have been the FileInputStream! > } > } > > would be a coding mistake - it'll fail because it'll catch any > transparent IOExceptions from the closure as well. However, this is in > practice not a problem at all, for two reasons: > > (1) Any java program that works like the above and assumes that > IOException must have come from the FileInputStream is already buggy. > It's the JVM you're coding for and not java (the language) programs; > class files produced by jython, scalac, jruby, and just about any other > alternative language routinely throw checked exceptions "sneakily". Even > within the constraints of java itself, sneaky exceptions can happen. If > not explicitly (via e.g. someClass.newInstance() which can sneaky > throw), then implicitly, by mixing class files from different compile > runs. Thus, this isn't really a new caveat. > > (2) Existing code will NEVER be bit with this. The author has to step in > and add a do keyword to one of the parameters. When doing so the author > assumes the responsibility of checking that his code doesn't make this > assumption. > > > Such a system is also backwards compatible. You can never remove a "do" > keyword from a signature, but you can add it. > > > Just to highlight how exception transparency is completely free in this > system, at least for restricted closures: By definition the original > stack is still intact, therefore, whatever construct (a catch or a > throws clause) made it legal to throw a certain checked exception at the > lexical location where the closure is defined is still "live" on the > stack. Exceptions, by definition, walk up the stack until they find the > nearest handler. Assuming all code in between the closure definition and > its execution leave it alone, the exception will always end up at a > point where it'll be handled (or thrown onwards but explicitly declared > with a "throws" clause, which is ok). > > This leaves a hole for unrestricted closures, which would then not > supported exception transparency at all, but just about every instance > of unrestricted closure usage in libraries I can think of doesn't really > need exception transparency. The rare case where that would be useful is > mostly focussed around ParallelArrays and fork/join, in that PA > transports the closure block across threads but it "emulates" the stack > (in that the method call that runs an operation on the PA doesn't return > until that operation is complete, though in the process of completing > the operation, many threads will be used). This case can be supported by > offering a native method that unshackles the escape detection from a > parameter. The javadoc on this method can explain in detail how its the > job of the caller to transport any and all exceptions, checked or not, > back to the caller, and how in the future Break/Continue/ReturnTransfer > throwables too may occur and should be transported back to the original > thread. > > There are a few use cases where exception transparency is desired but > there's no way, even with the above "transport the exception back to the > caller" concept, to keep exception transparency out of the type system. > However, I posit that with the above system in place these cases don't > even get close to being common enough to warrant the considerable burden > of adding the "throws E" concept to the type system. As has been pointed > out by Brian, other than "throws" and "catch", a variadic type parameter > can't really be used anywhere in java. > > Therefore, by adding restricted/portable status to closures, this > particular dilemma is solved in a very simple fashion, and it'll also be > quite useful for solving the problem with whether or not to allow > capturing mutable variables, as well as be a good starting point for a > future addition to closures to let them support "long" > break/continue/return. > > --Reinier Zwitserloot > > > > On Tue, Jun 8, 2010 at 2:08 AM, Brian Goetz > wrote: > > Summary: Patience, Grasshopper. All of this will come in due time. > > > You describe a syntax for declaring these new kinds of type > parameters, > > but no syntax for the use site. The one-type case is familiar, > and you > > make two suggestions for the no-type case, but what about the > > two-or-more case (e.g. "IOException or SQLException")? What about > > disjunctive bounds (they arise in APIs once you start using these > type > > parameters). > > The disjunctive syntax (A|B) is the likely front-runner here. > > > I conjecture that a new syntax may not be needed at the > declaration site > > at all; it can be inferred from the explicit bound on the type > parameter > > instead of vice-versa, simplifying the syntax and making it more > > familiar. Specifically, you can treat any type parameter as a throws > > type parameter if its bound is Throwable or a subtype. There is > no need > > to restrict where the type parameter may be used. > > I suspect we might regret that. When you try to write a class like > class ExceptionList implements List { ... } > you'll find that the compiler has guessed your intentions incorrectly. > > Similarly we could go down the route of explicitly variadic type > parameters > (identified say by T... or T*). And the only place you could use > them would > be ... throws and maybe catch clauses, since those are the only > places in the > language where you can put a list of types. > > > I conjecture that a new syntax may not be needed at the use site > either, > > or at least not frequently. > > Likely true. There is a balance to be struck. On the one hand, new > syntax > means something new to learn. On the other hand, shoehorning new > semantics > into existing syntax means likely surprises. While it can probably > be done > with minimal new syntax, this may not be the best thing for the > language or > the community. > > The choice of "throws" or similar at the declaration site and > nothing at the > use site is probably a reasonable balance, but as always: syntax > choices to be > made last. > > > How do these new type parameters interact with wildcards? Can > they be > > used in function types? What are the subtyping rules? > > To be provided. > > > You suggest that inference will frequently provide these type > > parameters, but there is no provision for that in any of the draft > > specifications for project lambda. > > To be provided. > > > Your suggestion that a type parameter may be used in a catch > blocks and > > is treated as the erasure will be very confusing, and depending on > > precisely what you mean it might undermine exception checking. > Can you > > please explain what motivated you to add that? Are you hoping > that the > > interaction with final type parameters may allow intercepting > exceptions > > even when the exception type is a formal generic parameter? > > The use in catch blocks is an optional element of this proposal, one > that may > well turn out in the end to be confusing or unworkable. But the > desirability > of such a feature should be obvious. We plan to explore it. > > From nathan.bryant at linkshare.com Tue Jun 8 08:21:41 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 00:21:41 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> Brian Goetz wrote: > Consider a method like List.forEach(). If forEach() has to assume the worst > (impurity), then forEach() must be sequential. But that is terrible! Adding > closures and not allowing the possibility of parallel iteration? Not OK. A nice idea but not workable. Sometimes we really do want to parallelize things that either affect shared state, perform I/O, or both. Such operations can frequently encapsulate the state in such a way that they are -relatively- pure, but adding static type checking of such "relative" pureness is not going to be workable at least not in a way that the average programmer can understand. Views are the way: Iterable.par().forEach() Iterable.seq().forEach() From forax at univ-mlv.fr Tue Jun 8 08:24:34 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Tue, 08 Jun 2010 17:24:34 +0200 Subject: Virtual extension methods -- second draft In-Reply-To: <4C0E4244.60205@oracle.com> References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> Message-ID: <4C0E60B2.6000003@univ-mlv.fr> Le 08/06/2010 15:14, Brian Goetz a ?crit : > I've updated the draft on Defender Methods: > http://cr.openjdk.java.net/~darcy/DefenderMethods.pdf > Hi Brian, 7: implementation 1: Superclass is not loaded before subclass. when subclass is loaded, it trigger the loading of the super class. But the vtable of the superclass is created before the vtable of the subclass. 8: I see two problems with the invokedynamic approach. invokedynamic is a callsite resolution but here all call sites will be resolved in the same way, so using invokedynamic is a waste of CPU cycles. You need a way to transfer the information stored from the bytecode attribute of the defender method to the bootstrap method. The JSR 292 doesn't provide any mechanism for doing that. There is a solution based on mangling the defender information with the name used by the invokedynamic bytecode but this means that if the defender information changed, all callsites must be recompiled wich is not a desirable property. Brian, I don't understand why you don't want to let the VM adds the defender methods when the vtable is created during the linking time. R?mi > On 5/14/2010 7:16 PM, Brian Goetz wrote: > >> The attached document reflects our current thinking in the area of >> extension methods, which was introduced in section 8 of the Strawman >> proposal. This document (arguably) improves on the static extension >> method scheme presented there. >> >> Comments on the technical merits and flaws of the scheme are welcome >> (there are lots of details to be fleshed out, of course.) Comparisons to >> the previous (static) extension method scheme outlined in the strawman >> are also fair game. >> >> Comments to the effect of "I like XYZ other scheme better" are not. >> (Where XYZ could be use-site extension methods, traits, mixins, etc. >> Those have already been considered and rejected as viable approaches for >> Project Lambda.) >> >> >> >> >> > From i30817 at gmail.com Tue Jun 8 08:44:17 2010 From: i30817 at gmail.com (Paulo Levi) Date: Tue, 8 Jun 2010 16:44:17 +0100 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: Why is it not workable? Do programmers have trouble understanding that they can't use private methods outside of their class to give a foolish example? Why would they have problems understanding that they can only use "pure" methods in the body of a pure function -recursive obvs? (aside, here you can see why constructors, and SAM types are still useful, mark a method as pure, but leave the constructor to deal with the impurity). Seems like the most elegant solution, and frankly almost a requirement for that the new parallel api's if they are to maintain a little sanity. The alternative is to retrofit it later if the concept becomes available, that will break code, and thus be used as a excuse to do nothing, as usual. From nathan.bryant at linkshare.com Tue Jun 8 08:47:34 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 00:47:34 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> A simple example: public @pure int sum(int a, int b) { log.debug("sum!"); return a + b; } log.debug can never be strictly pure, but surely we don't want to disallow it! From: Paulo Levi [mailto:i30817 at gmail.com] Sent: Tuesday, June 08, 2010 11:44 AM To: Nathan Bryant Cc: Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Why is it not workable? Do programmers have trouble understanding that they can't use private methods outside of their class to give a foolish example? Why would they have problems understanding that they can only use "pure" methods in the body of a pure function -recursive obvs? (aside, here you can see why constructors, and SAM types are still useful, mark a method as pure, but leave the constructor to deal with the impurity). Seems like the most elegant solution, and frankly almost a requirement for that the new parallel api's if they are to maintain a little sanity. The alternative is to retrofit it later if the concept becomes available, that will break code, and thus be used as a excuse to do nothing, as usual. From i30817 at gmail.com Tue Jun 8 08:55:50 2010 From: i30817 at gmail.com (Paulo Levi) Date: Tue, 8 Jun 2010 16:55:50 +0100 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: Don't we? I certainly want to. On Tue, Jun 8, 2010 at 4:47 PM, Nathan Bryant wrote: > A simple example: > > > > public @pure int sum(int a, int b) { > > log.debug(?sum!?); > > return a + b; > > } > > > > log.debug can never be strictly pure, but surely we don?t want to disallow > it! > > > > *From:* Paulo Levi [mailto:i30817 at gmail.com] > *Sent:* Tuesday, June 08, 2010 11:44 AM > *To:* Nathan Bryant > *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net > *Subject:* Re: Exception transparency > > > > Why is it not workable? Do programmers have trouble understanding that they > can't use private methods outside of their class to give a foolish example? > Why would they have problems understanding that they can only use "pure" > methods in the body of a pure function -recursive obvs? (aside, here you can > see why constructors, and SAM types are still useful, mark a method as pure, > but leave the constructor to deal with the impurity). > > Seems like the most elegant solution, and frankly almost a requirement for > that the new parallel api's if they are to maintain a little sanity. The > alternative is to retrofit it later if the concept becomes available, that > will break code, and thus be used as a excuse to do nothing, as usual. > From brian.goetz at oracle.com Tue Jun 8 08:56:14 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 11:56:14 -0400 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <4C0E681E.8090609@oracle.com> > Views are the way: > > Iterable.par().forEach() > Iterable.seq().forEach() Rather than just pointing at Scala (and by implication, suggesting that our effort here is futile (which you basically stated explicitly in your first post here ("One starts to wonder, why not just move to Scala"))), how about offering some concrete advice about how these ideas might be adapted to Java? From i30817 at gmail.com Tue Jun 8 08:57:59 2010 From: i30817 at gmail.com (Paulo Levi) Date: Tue, 8 Jun 2010 16:57:59 +0100 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: Specifically, that concern is simply irrelevant compared to the possible gains on type safe concurrency. The terrible concurrency bugs i have seen... and i am not a concurrency guy. On Tue, Jun 8, 2010 at 4:55 PM, Paulo Levi wrote: > Don't we? I certainly want to. > > On Tue, Jun 8, 2010 at 4:47 PM, Nathan Bryant > wrote: > >> A simple example: >> >> >> >> public @pure int sum(int a, int b) { >> >> log.debug(?sum!?); >> >> return a + b; >> >> } >> >> >> >> log.debug can never be strictly pure, but surely we don?t want to disallow >> it! >> >> >> >> *From:* Paulo Levi [mailto:i30817 at gmail.com] >> *Sent:* Tuesday, June 08, 2010 11:44 AM >> *To:* Nathan Bryant >> *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net >> *Subject:* Re: Exception transparency >> >> >> >> Why is it not workable? Do programmers have trouble understanding that >> they can't use private methods outside of their class to give a foolish >> example? >> Why would they have problems understanding that they can only use "pure" >> methods in the body of a pure function -recursive obvs? (aside, here you can >> see why constructors, and SAM types are still useful, mark a method as pure, >> but leave the constructor to deal with the impurity). >> >> Seems like the most elegant solution, and frankly almost a requirement for >> that the new parallel api's if they are to maintain a little sanity. The >> alternative is to retrofit it later if the concept becomes available, that >> will break code, and thus be used as a excuse to do nothing, as usual. >> > > From nathan.bryant at linkshare.com Tue Jun 8 08:59:11 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 00:59:11 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <7FDA6630E1822F448C97A48D5D733094A68FD0@EXVMSTOR302.intra.rakuten.co.jp> Sure, in the context of a @pure annotation, log.debug must be disallowed. However, you are then left with a tough choice: if the only mechanism provided by a collections framework, to parallelize forEach(), is to limit it to pure functions, then that would be seen as overly restrictive by developers. From: Paulo Levi [mailto:i30817 at gmail.com] Sent: Tuesday, June 08, 2010 11:56 AM To: Nathan Bryant Cc: Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Don't we? I certainly want to. On Tue, Jun 8, 2010 at 4:47 PM, Nathan Bryant wrote: A simple example: public @pure int sum(int a, int b) { log.debug("sum!"); return a + b; } log.debug can never be strictly pure, but surely we don't want to disallow it! From: Paulo Levi [mailto:i30817 at gmail.com] Sent: Tuesday, June 08, 2010 11:44 AM To: Nathan Bryant Cc: Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Why is it not workable? Do programmers have trouble understanding that they can't use private methods outside of their class to give a foolish example? Why would they have problems understanding that they can only use "pure" methods in the body of a pure function -recursive obvs? (aside, here you can see why constructors, and SAM types are still useful, mark a method as pure, but leave the constructor to deal with the impurity). Seems like the most elegant solution, and frankly almost a requirement for that the new parallel api's if they are to maintain a little sanity. The alternative is to retrofit it later if the concept becomes available, that will break code, and thus be used as a excuse to do nothing, as usual. From nathan.bryant at linkshare.com Tue Jun 8 09:02:51 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 01:02:51 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <4C0E681E.8090609@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> That first post was a little rantish, I apologize if it came across as if that was my meaning. It wasn't the intent. As to the statement that I'm "pointing at Scala" with this post: Well, Scala hasn't finished parallelizing their collections framework yet. It would be just as easy to say that I'm pointing at .NET etc. If these ideas worked well there, why not? -----Original Message----- From: Brian Goetz [mailto:brian.goetz at oracle.com] Sent: Tuesday, June 08, 2010 11:56 AM To: Nathan Bryant Cc: Reinier Zwitserloot; lambda-dev at openjdk.java.net Subject: Re: Exception transparency > Views are the way: > > Iterable.par().forEach() > Iterable.seq().forEach() Rather than just pointing at Scala (and by implication, suggesting that our effort here is futile (which you basically stated explicitly in your first post here ("One starts to wonder, why not just move to Scala"))), how about offering some concrete advice about how these ideas might be adapted to Java? From brian.goetz at oracle.com Tue Jun 8 09:04:57 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 12:04:57 -0400 Subject: Virtual extension methods -- second draft In-Reply-To: <4C0E60B2.6000003@univ-mlv.fr> References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> <4C0E60B2.6000003@univ-mlv.fr> Message-ID: <4C0E6A29.7080700@oracle.com> > 8: I see two problems with the invokedynamic approach. > invokedynamic is a callsite resolution but here all call sites will be > resolved in the same way, > so using invokedynamic is a waste of CPU cycles. Correct. There are several approaches here that use indy. One of them involves weaving an indy site into the class implementing the extended interface, which means the resolution is only done once. And in the case where we do indy weaving at the client call site it is of course possible for the bootstrap to cache the resolution for classes it already knows about. > You need a way to transfer the information stored from the bytecode > attribute of > the defender method to the bootstrap method. Correct. The most likely mechanism here is to extend reflection to do that. From brian.goetz at oracle.com Tue Jun 8 09:16:19 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 12:16:19 -0400 Subject: Parallel collections (was Re: Exception transparency) In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <4C0E681E.8090609@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <4C0E6CD3.8020502@oracle.com> I am all in favor of ideas that work, whatever their provenance. Of course, an idea that "fits" in Scala or .NET may or may not fit in Java, or may require adaptation to fit in Java. Most ideas discussed here (e.g., closures) are not new to Java, but there is still plenty of work to be done figuring out how to properly adapt these age-old ideas to Java. What I'm asking for is that you fill in the details for us for how it might be adapted to our needs. You've found a good idea elsewhere, that's great, and I want to hear about it. It might even be applicable to Java -- even better! But language design does not admit to "drive-by" techniques. Its not enough to say "hey, I found a good idea, you should consider it." (If for no other reason than "Views are the way" is vague enough that I might think I understand what you are suggesting, but be completely wrong, since "views" could describe lots of inconsistently different language features!) Parallel collections is indeed one of the critical waypoints that we will use to identify whether we've done closures "right". So I'm happy to hear your ideas on how we might do that! Could you be more concrete on how views could solve the problem of accommodating both serial and parallel iteration in a type-safe way? On 6/8/2010 12:02 PM, Nathan Bryant wrote: > That first post was a little rantish, I apologize if it came across as > if that was my meaning. It wasn't the intent. > > As to the statement that I'm "pointing at Scala" with this post: Well, > Scala hasn't finished parallelizing their collections framework yet. It > would be just as easy to say that I'm pointing at .NET etc. If these > ideas worked well there, why not? > > -----Original Message----- > From: Brian Goetz [mailto:brian.goetz at oracle.com] > Sent: Tuesday, June 08, 2010 11:56 AM > To: Nathan Bryant > Cc: Reinier Zwitserloot; lambda-dev at openjdk.java.net > Subject: Re: Exception transparency > >> Views are the way: >> >> Iterable.par().forEach() >> Iterable.seq().forEach() > > Rather than just pointing at Scala (and by implication, suggesting that > our > effort here is futile (which you basically stated explicitly in your > first > post here ("One starts to wonder, why not just move to Scala"))), how > about > offering some concrete advice about how these ideas might be adapted to > Java? > From nathan.bryant at linkshare.com Tue Jun 8 09:43:35 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 01:43:35 +0900 Subject: Parallel collections (was Re: Exception transparency) References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <4C0E681E.8090609@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> <4C0E6CD3.8020502@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094A69051@EXVMSTOR302.intra.rakuten.co.jp> Brian Goetz wrote: > Could you be more concrete on how views could solve the problem of accommodating both serial and parallel iteration in a type-safe way? If by type-safe, you mean "in such a way that pureness can be encoded in the type system", I suspect the answer is "no, views aren't helpful for that" -- part of this is after all intended as a way to -avoid- exactly that kind of type checking. "Views", the way I talk about them, are explicitly non-strict: Iterator.par().forEach() would let you pass an impure function. More generally, there is the problem that forEach() itself may manipulate shared state: it may interact with a fork-join pool. Can one annotate it as @pure, without @SuppressWarnings("pureness"), without introducing some weaker, more complex definition of relative purity? In the absence of annotations, can the runtime discover pureness without introducing that same weaker definition? So the options? 0) redo everything with monads-eek! ;) 1) assuming checking at compile time rather than runtime: pureness violations may only cause a compiler warning, and if overload resolution is driven by pureness, then one may want a way to cast the pureness annotation in or out, at a call site, or alternately, some form of support for call site annotations. (E.g. say I have a pure function, but I -don't- want to parallelize it, perhaps I'm already parallelizing at a coarser level and it's just not a win at the lowest level... or more obviously, I have an impure function which I -do- want to parallelize.) 2) Be strict everywhere... no monads... how? I suppose it's all "workable" if one is willing to admit @SuppressWarnings("pureness") From reinier at zwitserloot.com Tue Jun 8 09:54:39 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 8 Jun 2010 18:54:39 +0200 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> Message-ID: You can compose at will; however, when you do, that closure loses its restricted property. Composition *WITH* exception transparency vs. losing exception transparency when composing, but none of the problems raised in this thread so far, regarding inference, boilerplatey and confusing method signatured, etcetera. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 2:48 PM, Osvaldo Doederlein wrote: > Just adding $2c, the advantage of being composable should clearly be the > highest priority at least in some extent: lambdas must support this quality > at least well enough to match the existing mechanism that they replace > (interfaces / SAM types / inner classes); for example you can put those > inside collections without losing any type-safety, so any flavor of lambda > that doesn't allow that is D.O.A. > > A+ > Osvaldo > > 2010/6/8 Neal Gafter > > On Mon, Jun 7, 2010 at 9:53 PM, Reinier Zwitserloot < >> reinier at zwitserloot.com >> > wrote: >> >> > Making the exceptions transparent by encoding them in the type system is >> > going to be very unwieldy, even if a "throws T" variadic type parameter >> > concept is introduced. I've got a much better idea: Escape detection on >> > closures. Any closures that are guaranteed to run such that the runtime >> > stack matches the lexical stack can get exception transparency >> completely >> > free, no new syntax and no new concepts required; it would "just work". >> > >> >> Reinier: your scheme, even assuming it could be checked at compile-time, >> does not work for functions that are to be stored in variables or in a >> data >> structure (for example, a collection of callback functions). It is not >> composable. >> >> > From brian.goetz at oracle.com Tue Jun 8 10:12:17 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 13:12:17 -0400 Subject: Parallel collections (was Re: Exception transparency) In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A69051@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <4C0E681E.8090609@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> <4C0E6CD3.8020502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A69051@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <4C0E79F1.7030906@oracle.com> OK, I get the part about using the API to allow the programmer to explicitly choose between serial and parallel iteration. And the views thing lets us decouple the choosing of serial/parallel from the actual point of iteration (I can pass an Iterator.par() and a closure to a method together, freeing the called code of guessing which to use.) What can we do to help programmers keep track of which closures are "parallel-safe" and which not? On 6/8/2010 12:43 PM, Nathan Bryant wrote: > > > Brian Goetz wrote: >> Could you be more concrete on how views could solve the problem of > accommodating both serial and parallel iteration in a type-safe way? > > If by type-safe, you mean "in such a way that pureness can be encoded in > the type system", I suspect the answer is "no, views aren't helpful for > that" -- part of this is after all intended as a way to -avoid- exactly > that kind of type checking. "Views", the way I talk about them, are > explicitly non-strict: Iterator.par().forEach() would let you pass an > impure function. > > More generally, there is the problem that forEach() itself may > manipulate shared state: it may interact with a fork-join pool. Can one > annotate it as @pure, without @SuppressWarnings("pureness"), without > introducing some weaker, more complex definition of relative purity? In > the absence of annotations, can the runtime discover pureness without > introducing that same weaker definition? > > So the options? > > 0) redo everything with monads-eek! ;) > 1) assuming checking at compile time rather than runtime: pureness > violations may only cause a compiler warning, and if overload resolution > is driven by pureness, then one may want a way to cast the pureness > annotation in or out, at a call site, or alternately, some form of > support for call site annotations. (E.g. say I have a pure function, but > I -don't- want to parallelize it, perhaps I'm already parallelizing at a > coarser level and it's just not a win at the lowest level... or more > obviously, I have an impure function which I -do- want to parallelize.) > 2) Be strict everywhere... no monads... how? > > I suppose it's all "workable" if one is willing to admit > @SuppressWarnings("pureness") From alessiostalla at gmail.com Tue Jun 8 10:34:59 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 8 Jun 2010 19:34:59 +0200 Subject: Parallel collections (was Re: Exception transparency) In-Reply-To: <4C0E79F1.7030906@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <4C0E681E.8090609@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> <4C0E6CD3.8020502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A69051@EXVMSTOR302.intra.rakuten.co.jp> <4C0E79F1.7030906@oracle.com> Message-ID: On Tue, Jun 8, 2010 at 7:12 PM, Brian Goetz wrote: > What can we do to help programmers keep track of which closures are > "parallel-safe" and which not? How can you do that in the general case? Does today's Java (or any other language) help programmers keep track of which methods/functions/classes/whatever are "parallel-safe"? For example, is a closure accessing and mutating a shared ConcurrentMap parallel-safe or not? In short: don't do that. Make it simple for programmers to write closures and to map them over collections, sequentially or in parallel. Let the programmers figure by themselves if they got the parallelism wrong, and how to fix it. Too much magic will only boomerang on you. Imho, of course :) Cheers, Alessio From reinier at zwitserloot.com Tue Jun 8 10:39:13 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 8 Jun 2010 19:39:13 +0200 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: Nathan, I don't think pure means what you think it means. Or I'm horribly confused, also an option. "pure" at least in sofar I understand it within the confines of this discussion, simply means: "Does not assume that the runtime stack matches the lexical stack". No more, no less. So, everything is pure, unless it is a closure that does one or more of the following things: A) Access a variable from lexical scope that is outside the closure itself. The variable isn't final, and isn't effectively final. B) returns, breaks, or continues from inside the closure to outside the closure; i.e. the closure breaks a for loop in the containing method. (Not on the agenda for java7 closures so far, but nice to make possible, if not for java7, then for java 8) C) throws a checked exception which is not handled by the closure (as in, the closure type doesn't have a "throws TheCheckedException" in its signature), but it IS handled by the containing method (either because the closure is defined in a try/catch block that catches that exception, or the containing method has a "throws TheCheckedException" clause). Any closure that engages in none of those 3 things is pure. Pure does not mean "I have no side effects". --Reinier Zwitserloot On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant wrote: > A simple example: > > > > public @pure int sum(int a, int b) { > > log.debug(?sum!?); > > return a + b; > > } > > > > log.debug can never be strictly pure, but surely we don?t want to disallow > it! > > > > *From:* Paulo Levi [mailto:i30817 at gmail.com] > *Sent:* Tuesday, June 08, 2010 11:44 AM > *To:* Nathan Bryant > *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net > *Subject:* Re: Exception transparency > > > > Why is it not workable? Do programmers have trouble understanding that they > can't use private methods outside of their class to give a foolish example? > > Why would they have problems understanding that they can only use "pure" > methods in the body of a pure function -recursive obvs? (aside, here you can > see why constructors, and SAM types are still useful, mark a method as pure, > but leave the constructor to deal with the impurity). > > Seems like the most elegant solution, and frankly almost a requirement for > that the new parallel api's if they are to maintain a little sanity. The > alternative is to retrofit it later if the concept becomes available, that > will break code, and thus be used as a excuse to do nothing, as usual. > > From reinier at zwitserloot.com Tue Jun 8 10:40:06 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 8 Jun 2010 19:40:06 +0200 Subject: Exception transparency In-Reply-To: <4C0E52B4.4030502@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> Message-ID: Yes, I see your point. There has to be a way to pick alternate code paths to deal with impure and pure closures differently, and my initial proposal doesn't offer it. I don't think a static typing solution is the right answer here, and a dynamic one is simple. First, how a dynamic solution would work: impure closure objects carry some sort of runtime marker that says: "I am impure". All other objects either do not have this marker at all or have it set to "false". There are 2 utility methods that work with these markers. The first checks if any given object represents an impure closure or not. The second is a no-op that simply returns its argument, but (A) it works even when providing a restricted variable, and the returned variable would be unrestricted, and (B) it throws an exception if passed an impure closure. Thus, we have: 1: Restricted variable: A variable where you have declared (Via a "do" or "restricted" or whatnot keyword on a parameter) that you accept impure closures. But that doesn't of course mean it actually has to be an impure one; a pure closure is a subtype of its impure form. 2: an impure closure: This actually means the closure is impure. So, with these methods you can detect the situation where you accept impure closures (have a restricted parameter) but in this particular invocation of your method, the passed-in object, be it a closure type or a SAM, isn't actually impure. You can then use the second utility method to remove the restricted state. Something like: public void forEach(do #void(T) restrictedClosure) { if (ClosureUtils.isImpure(restrictedClosure) { for (T member : this) restrictedClosure.(member); } else { #void(T) unrestricted = ClosureUtils.unrestrict(restrictedClosure); //... parallelize ... } } I'm still not 100% convinced this would be a good idea; the javadoc of forEach would have to say that the forEach method may or may not run your code parallelized, though if you pass in an impure closure it'll definitely not be parallelized. Even for a pure closure one might want sequential operation, it would be strange if folks craft an impure closure on purpose just to be guaranteed the sequential algorithm. If there are two methods (forEach and forEachParallel) there's no problem at all; the parallel version won't flag its closure parameter with the "I take impure closures" flag. Still, it would be good if a language feature doesn't close such doors, and in this way it won't. I don't see how unrestrict and isImpure can be written as anything other than a static utility method; they can't be written as methods on closure types because then all SAM types wouldn't have them, and they can't be added to Object itself because adding more methods to Object is a bad idea for all sorts of reasons. A static typing distinction doesn't seem to be particularly useful. There are lots of problems; a marker interface isn't useful because (A) they can be washed off, and (B) there's no way in java to say: I want a variable here which is both a Foo and a Bar, except in generics bounds (), and (C) even if generics bounds were used, erasure means you can't overload which defeats the point. If somehow all these problems can be solved, then the best case scenario is that one could write something like this: public void forEach(do #void(T) impure) { .... sequential impl .... } public void forEach(#void(T) pure) { .... parallel impl .... } But how desirable is this? auto-complete dialogs and API documentation now needs to list two methods, the usual puzzlers when overloading with the same number of parameters and all types being related to each other apply. It's nice that method resolution itself tells you whether you're getting the parallel or the sequential implementation, and this does give the author of the forEach methods to write javadoc specifically geared towards the particular implementation that you'll end up with, but this is where the best-case advantages end; there's no point in having an impure static type anywhere other than in a method parameter's type; they cannot be transported, stored, or even assigned to anything, they can only be passed to methods that support impure closures, and run. Nothing else is allowed. Even something as simple as this: #void() closure = #() { ... do something impure ... }; wouldn't even compile, because this is already assigning an impure closure to something which isn't allowed. If it was, one could do this: Runnable closure; try { closure = #() { throw new IOException(); } } catch (IOException e ) {} closure.(); //whoops, sneaky throws an IOException! In regards to PA and Futures, these are indeed APIs where making the throws list part of the signature is useful, but I posit that these are the only cases. Also, adapting them now would lead to backwards compatibility problems, no? Existing users of Callable and Future expect their exceptions wrapped up in ExecutionException wrappers - the 'throws E' cannot be added to Future.get(). At least with PA, there's a way out - offer a third utility method that unrestricts an impure closure, with javadoc explaining that this means the one doing the unrestricting takes on the responsibility to catch any and all exceptions and transport them back to the original execution stack. This trick won't work with Future of course, so that's a con to this simpler proposal. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 4:24 PM, Brian Goetz wrote: > What I like about this idea is that it clearly distinguishes between the > features that are useful in a "portable" way vs those which are tied to the > execution environment in which the lambda is captured. > > In order for such a system to work, it has to be reflected in the type > system. One way to do so would be to introduce a characteristic of > functions (call it "purity") and state: > > pure T->U <: T->U > > Then \lambda.{ 42 } is a pure function (of type Void->Int); \lambda.{ x } > (where x is a nonfinal local) is not. > > Restricting non-pure closures to executing in their creating stack scope is > easy. > > The hard part is reifying purity in the (nominal Java) type system. > Otherwise, you run into problems. The purity of a closure would need to be > identifiable statically (preferably) or dynamically (worst case) so that we > didn't try to "transport" a non-pure closure. > > Consider a method like List.forEach(). If forEach() has to assume the > worst (impurity), then forEach() must be sequential. But that is terrible! > Adding closures and not allowing the possibility of parallel iteration? > Not OK. > > If purity were reflected in the static type system, there could be > overloaded versions of forEach() for pure and impure version, and the pure > version could be parallel. > > If purity were reflected only dynamically, then forEach() could test for > "if lambda instanceof pure" (or whatever) and choose between serial and > parallel iteration. > > Add to that the need for migration compatibility -- whether we support > denotable function types or not, this has to work with SAM types. The > obvious way to tag purity with SAM types would be with a marker interface, > but then decorator-like methods (like immutableList()) would "wash away" the > marker. > > I like your idea, I really do. I hope you can figure out a way to address > these problems! > > > > On 6/8/2010 12:53 AM, Reinier Zwitserloot wrote: > >> Making the exceptions transparent by encoding them in the type system is >> going to be very unwieldy, even if a "throws T" variadic type parameter >> concept is introduced. I've got a much better idea: Escape detection on >> closures. Any closures that are guaranteed to run such that the runtime >> stack matches the lexical stack can get exception transparency >> completely free, no new syntax and no new concepts required; it would >> "just work". >> >> Let's take Comparator for example. Currently it is used in two contexts; >> Collections/Arrays.sort, as well as for the TreeSet constructor. It >> would make perfect sense for the sort variant to use the proposed >> variadic type parameter concept to make any exceptions thrown as part of >> the comparison transparent. Side-stepping for a moment the general >> shambles that occurs when trying to integrate functional types into >> existing library code, this would perhaps look something like so: >> >> public static void sort(List a, Comparator> E> c) throws E { >> ... >> } >> >> Just look at that. Generics in libraries already has a tendency to look >> like gobbledygook and the above is not helping things at all. Even if we >> abandon Comparator here and use a straight closure type like so: >> >> public static void sort(List a, #int(T, T)(throws E) c) >> throws E { >> ... >> } >> >> isn't an improvement. >> >> >> But, let's stick with it, and inspect what happens to TreeSet. >> >> Now we run into even bigger trouble; applying a (variadic or monadic, >> doesn't matter) exceptions type parameter here is simply not possible. >> We'd have to add "throws E" to at the very least TreeSet's add and >> addAll methods, but we clearly can't; both of those methods come from >> the Set interface and those don't have any thrown exceptions declared >> today, so, that won't work. Even in a hypothetical world where we can >> break backwards compatibility we still can't pragmatically replace Set's >> current add method with: "public boolean add(T item) throws E" - because >> what's that E even stand for? In e.g. a HashSet, and most other sets, >> that "E" makes no sense at all. Its a unique aspect of TreeSet. We could >> simply not let TreeSet implement Set but that feels completely wrong. >> >> >> The most obvious solution then appears to be one of three options: >> >> (A) don't try; leave sort and TreeSet untouched and do not add exception >> transparency to sort. But that would be a shame. >> (B) overload Collections.sort with the variadic type parameter based >> exception transparency. Leave TreeSet untouched. But now we have two >> incompatible "comparator" concepts, so this too would be a weak solution. >> (C) hack it together by letting TreeSet rewrap any checked exceptions >> thrown during add/addAll into a custom unchecked class, akin to >> InvocationTargetException or ExecutionException). But that's the very >> ugliness we're trying to avoid! >> >> None of these feel like good solutions. Even going with the most likely >> one, option B, that still leaves us with this brain twiddler: >> >> public static void sort(List a, #int(T, T)(throws E) c) >> throws E { >> ... >> } >> >> One of the nice things of static typing is that the signature all by >> itself is usually enough documentation for a library user to know >> exactly what to do. But with signatures like those, I'm not sure that'll >> remain true. It's also highly redundant; creating new boilerplate is >> something we ought to try and avoid. >> >> So, here's my alternative: >> >> The first part: Create two separate kinds of closures, similar to a >> later addendum to the BGGA proposal concerning "safe" and "unsafe" >> closures. >> >> There are portable closures which have no restrictions of any kind but >> which are truly like portable code blocks; a simpler syntax for today's >> anonymous inner classes. They cannot capture (mutable) variables, do not >> and will never support long return/break/continue, have no exception >> transparency of any kind, but you can store them for later, move them to >> another thread, and otherwise treat them as one would any random object. >> >> The other kind of closure is a restricted closure: The compiler will >> ensure that if the closure is run at all, it is run in such a way that >> the runtime stack matches lexical scope. Such a closure can capture any >> variable, mutable or not (because threading cannot possibly be an issue, >> by definition - the stack is still there, so it must be the same >> thread), when java 8 rolls around, will support transfers (long >> break/continue/return), and has automagical exception transparency; it >> just works, no need for a variadic type parameter. >> >> Here's how this might work: >> >> TreeSet's constructor remains as it is now, and by default all closures >> are NOT restricted. Exception transparency for TreeSet's Comparator will >> not be supported, but we've already seen that supporting it is not >> feasible anyway, so that's a good result. For Collections.sort, on the >> other hand, we mark it as restricted, like so: >> >> public static void sort(List a, do Comparator c) { >> ... >> } >> >> note the "do" keyword there. It can be any keyword, such as >> "restricted", that's a detail that can be decided on later. What this >> does is two things: First of all, the compiler will ensure that the "c" >> variable is not assigned to anything (be it a field or a local >> variable), is not captured by a non-restricted closure, is not captured >> by a method local class, is not returned, and is not passed as variable >> to another method (with one exception: It's okay to pass c as a closure >> to another method that also has a 'do' keyword for that parameter). >> Secondly, that parameter is marked (via an extended field) as supporting >> a restricted closure. >> >> >> Then, IF a closure is passed directly as parameter, one gets hassle-free >> exception transparency, and one can legally write this: >> >> public void test() throws IOException { >> Collections.sort(someList, #(String a, String b) { >> if (a == null) throw new IOException(); >> return a.length() - b.length(); >> }); >> } >> >> It'll work because the compiler first realizes that the closure throws >> an IOException which isn't caught/declared anywhere in its own lexical >> scope, but it IS caught/declared in its containing scope, thus the >> exception itself is marked as "legal, but only if restricted". During >> the resolution phase, the compiler figures out that this closure is >> being passed in the position of a restricted parameter and just compiles >> it without complaining about not handling a checked exception. The JVM >> already supports this (checked exceptions are checked by javac, the jvm >> or the class verifier don't care - see any alternative JVM language, >> which all let you throw checked exceptions without declaring that you do). >> >> There's only one caveat: The author of the Collections.sort method may >> presume that any call to Comparator.compare() couldn't possibly throw, >> say, an IOException, because "compare()" does not declare this. And that >> would be a mistake - this entire concept is predicated on the notion >> that any checked exception not explicitly declared by that closure falls >> "through" all intermediate methods right back to the original lexical >> scope, at which point it'll be handled. That'll work, but only if all >> those intermediate methods don't touch that checked exception. So, >> something like this: >> >> public static void sort(List a, do Comparator c) { >> try { >> c.compare(null, null); >> new FileInputStream("foo.bar"); >> } catch (IOException e) { >> //I'll just presume this must have been the FileInputStream! >> } >> } >> >> would be a coding mistake - it'll fail because it'll catch any >> transparent IOExceptions from the closure as well. However, this is in >> practice not a problem at all, for two reasons: >> >> (1) Any java program that works like the above and assumes that >> IOException must have come from the FileInputStream is already buggy. >> It's the JVM you're coding for and not java (the language) programs; >> class files produced by jython, scalac, jruby, and just about any other >> alternative language routinely throw checked exceptions "sneakily". Even >> within the constraints of java itself, sneaky exceptions can happen. If >> not explicitly (via e.g. someClass.newInstance() which can sneaky >> throw), then implicitly, by mixing class files from different compile >> runs. Thus, this isn't really a new caveat. >> >> (2) Existing code will NEVER be bit with this. The author has to step in >> and add a do keyword to one of the parameters. When doing so the author >> assumes the responsibility of checking that his code doesn't make this >> assumption. >> >> >> Such a system is also backwards compatible. You can never remove a "do" >> keyword from a signature, but you can add it. >> >> >> Just to highlight how exception transparency is completely free in this >> system, at least for restricted closures: By definition the original >> stack is still intact, therefore, whatever construct (a catch or a >> throws clause) made it legal to throw a certain checked exception at the >> lexical location where the closure is defined is still "live" on the >> stack. Exceptions, by definition, walk up the stack until they find the >> nearest handler. Assuming all code in between the closure definition and >> its execution leave it alone, the exception will always end up at a >> point where it'll be handled (or thrown onwards but explicitly declared >> with a "throws" clause, which is ok). >> >> This leaves a hole for unrestricted closures, which would then not >> supported exception transparency at all, but just about every instance >> of unrestricted closure usage in libraries I can think of doesn't really >> need exception transparency. The rare case where that would be useful is >> mostly focussed around ParallelArrays and fork/join, in that PA >> transports the closure block across threads but it "emulates" the stack >> (in that the method call that runs an operation on the PA doesn't return >> until that operation is complete, though in the process of completing >> the operation, many threads will be used). This case can be supported by >> offering a native method that unshackles the escape detection from a >> parameter. The javadoc on this method can explain in detail how its the >> job of the caller to transport any and all exceptions, checked or not, >> back to the caller, and how in the future Break/Continue/ReturnTransfer >> throwables too may occur and should be transported back to the original >> thread. >> >> There are a few use cases where exception transparency is desired but >> there's no way, even with the above "transport the exception back to the >> caller" concept, to keep exception transparency out of the type system. >> However, I posit that with the above system in place these cases don't >> even get close to being common enough to warrant the considerable burden >> of adding the "throws E" concept to the type system. As has been pointed >> out by Brian, other than "throws" and "catch", a variadic type parameter >> can't really be used anywhere in java. >> >> Therefore, by adding restricted/portable status to closures, this >> particular dilemma is solved in a very simple fashion, and it'll also be >> quite useful for solving the problem with whether or not to allow >> capturing mutable variables, as well as be a good starting point for a >> future addition to closures to let them support "long" >> break/continue/return. >> >> --Reinier Zwitserloot >> >> >> >> On Tue, Jun 8, 2010 at 2:08 AM, Brian Goetz > > wrote: >> >> Summary: Patience, Grasshopper. All of this will come in due time. >> >> > You describe a syntax for declaring these new kinds of type >> parameters, >> > but no syntax for the use site. The one-type case is familiar, >> and you >> > make two suggestions for the no-type case, but what about the >> > two-or-more case (e.g. "IOException or SQLException")? What about >> > disjunctive bounds (they arise in APIs once you start using these >> type >> > parameters). >> >> The disjunctive syntax (A|B) is the likely front-runner here. >> >> > I conjecture that a new syntax may not be needed at the >> declaration site >> > at all; it can be inferred from the explicit bound on the type >> parameter >> > instead of vice-versa, simplifying the syntax and making it more >> > familiar. Specifically, you can treat any type parameter as a >> throws >> > type parameter if its bound is Throwable or a subtype. There is >> no need >> > to restrict where the type parameter may be used. >> >> I suspect we might regret that. When you try to write a class like >> class ExceptionList implements List { ... } >> you'll find that the compiler has guessed your intentions incorrectly. >> >> Similarly we could go down the route of explicitly variadic type >> parameters >> (identified say by T... or T*). And the only place you could use >> them would >> be ... throws and maybe catch clauses, since those are the only >> places in the >> language where you can put a list of types. >> >> > I conjecture that a new syntax may not be needed at the use site >> either, >> > or at least not frequently. >> >> Likely true. There is a balance to be struck. On the one hand, new >> syntax >> means something new to learn. On the other hand, shoehorning new >> semantics >> into existing syntax means likely surprises. While it can probably >> be done >> with minimal new syntax, this may not be the best thing for the >> language or >> the community. >> >> The choice of "throws" or similar at the declaration site and >> nothing at the >> use site is probably a reasonable balance, but as always: syntax >> choices to be >> made last. >> >> > How do these new type parameters interact with wildcards? Can >> they be >> > used in function types? What are the subtyping rules? >> >> To be provided. >> >> > You suggest that inference will frequently provide these type >> > parameters, but there is no provision for that in any of the draft >> > specifications for project lambda. >> >> To be provided. >> >> > Your suggestion that a type parameter may be used in a catch >> blocks and >> > is treated as the erasure will be very confusing, and depending on >> > precisely what you mean it might undermine exception checking. >> Can you >> > please explain what motivated you to add that? Are you hoping >> that the >> > interaction with final type parameters may allow intercepting >> exceptions >> > even when the exception type is a formal generic parameter? >> >> The use in catch blocks is an optional element of this proposal, one >> that may >> well turn out in the end to be confusing or unworkable. But the >> desirability >> of such a feature should be obvious. We plan to explore it. >> >> >> From nathan.bryant at linkshare.com Tue Jun 8 10:51:37 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 02:51:37 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com><4C0D8A19.2000104@oracle.com><4C0E52B4.4030502@oracle.com><7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> Reinier: You mean A) directly or indirectly, right? A pure function may not access a mutable variable from another context? including statics, threadlocals, any big resource pool that?s hanging off of some static somewhere, or an object to which you have a reference? etc. In other words, a pure function may only call pure functions. No? If this is not what you mean, then it seems to me that you are talking about the ?weaker, more complex definition of pureness? that I was alluding to. From: reinierz at gmail.com [mailto:reinierz at gmail.com] On Behalf Of Reinier Zwitserloot Sent: Tuesday, June 08, 2010 1:39 PM To: Nathan Bryant Cc: Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Nathan, I don't think pure means what you think it means. Or I'm horribly confused, also an option. "pure" at least in sofar I understand it within the confines of this discussion, simply means: "Does not assume that the runtime stack matches the lexical stack". No more, no less. So, everything is pure, unless it is a closure that does one or more of the following things: A) Access a variable from lexical scope that is outside the closure itself. The variable isn't final, and isn't effectively final. B) returns, breaks, or continues from inside the closure to outside the closure; i.e. the closure breaks a for loop in the containing method. (Not on the agenda for java7 closures so far, but nice to make possible, if not for java7, then for java 8) C) throws a checked exception which is not handled by the closure (as in, the closure type doesn't have a "throws TheCheckedException" in its signature), but it IS handled by the containing method (either because the closure is defined in a try/catch block that catches that exception, or the containing method has a "throws TheCheckedException" clause). Any closure that engages in none of those 3 things is pure. Pure does not mean "I have no side effects". --Reinier Zwitserloot On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant wrote: A simple example: public @pure int sum(int a, int b) { log.debug(?sum!?); return a + b; } log.debug can never be strictly pure, but surely we don?t want to disallow it! From: Paulo Levi [mailto:i30817 at gmail.com] Sent: Tuesday, June 08, 2010 11:44 AM To: Nathan Bryant Cc: Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Why is it not workable? Do programmers have trouble understanding that they can't use private methods outside of their class to give a foolish example? Why would they have problems understanding that they can only use "pure" methods in the body of a pure function -recursive obvs? (aside, here you can see why constructors, and SAM types are still useful, mark a method as pure, but leave the constructor to deal with the impurity). Seems like the most elegant solution, and frankly almost a requirement for that the new parallel api's if they are to maintain a little sanity. The alternative is to retrofit it later if the concept becomes available, that will break code, and thus be used as a excuse to do nothing, as usual. From nathan.bryant at linkshare.com Tue Jun 8 11:10:46 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 03:10:46 +0900 Subject: Parallel collections (was Re: Exception transparency) References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <4C0E681E.8090609@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68FDB@EXVMSTOR302.intra.rakuten.co.jp> <4C0E6CD3.8020502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A69051@EXVMSTOR302.intra.rakuten.co.jp> <4C0E79F1.7030906@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094A6913F@EXVMSTOR302.intra.rakuten.co.jp> Brian Goetz wrote: > OK, I get the part about using the API to allow the programmer to explicitly > choose between serial and parallel iteration. And the views thing lets us > decouple the choosing of serial/parallel from the actual point of iteration (I > can pass an Iterator.par() and a closure to a method together, freeing the > called code of guessing which to use.) > What can we do to help programmers keep track of which closures are > "parallel-safe" and which not? Obvious answer, pureness annotations. At the syntax level, not the runtime level. Sidestepping for the moment that the void closures likely to be passed to forEach() seem likely to be inherently "side-effecty", views have this problem: /** base interface for Iterables with unspecified semantics: might be sequential or parallel */ public interface Iterable { void forEach(#void(T) block); } /** base interface for an Iterable that has parallel semantics. */ public interface ParallelIterable extends Iterable { void forEach(@pure #void(T) block); } Will ParallelIterable even compile? It doesn't seem to override Iterable.forEach() according to the usual covariance semantics: it's more specific. If it doesn't override, then it's a different method. If it's a different method with seemingly the same parameter types, reflective tools could get confused--an issue that it seems we must accept if we go down this path-- because if the above problems seem to leave us doing things this way: /** base interface for Iterables with unspecified semantics: might be sequential or parallel */ public interface Iterable { void forEach(#void(T) block); void forEach(@pure #void(T) block); } /** tagging interface for Iterables with parallel semantics */ public interface ParallelIterable extends Iterable { /** @throws OperationNotSupportedException?? */ void forEach(#void(T) block); } And when I want to coerce pureness, I've probably got to do something like this, if call site annotations are not added: @SuppressWarnings("pureness") @pure private void foo(T arg) { ... } ... iter.par().forEach(#foo) // exact syntax TBD ... instead of being able to write the closure inline. From reinier at zwitserloot.com Tue Jun 8 12:13:30 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Tue, 8 Jun 2010 21:13:30 +0200 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: Nope; anonymous inner classes are pure, and they can access locals from outer scope. As long as they are final, though. The implementation shows why this holds: When a variable is final, a copy is indistinguishable from the original (and this is in fact how anonymous inner classes accessing outer final locals is done by javac). Therefore, access to an immutable variable from outer scope is no different from passing that variable along as a parameter to the closure, which is conceptually similar to currying that parameter into the closure. Which is clearly pure. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 7:51 PM, Nathan Bryant wrote: > Reinier: > > > > You mean A) directly or indirectly, right? A pure function may not access a > mutable variable from another context? including statics, threadlocals, any > big resource pool that?s hanging off of some static somewhere, or an object > to which you have a reference? etc. In other words, a pure function may only > call pure functions. No? > > > > If this is not what you mean, then it seems to me that you are talking > about the ?weaker, more complex definition of pureness? that I was alluding > to. > > > > *From:* reinierz at gmail.com [mailto:reinierz at gmail.com] *On Behalf Of *Reinier > Zwitserloot > *Sent:* Tuesday, June 08, 2010 1:39 PM > *To:* Nathan Bryant > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > *Subject:* Re: Exception transparency > > > > Nathan, I don't think pure means what you think it means. Or I'm horribly > confused, also an option. > > > > "pure" at least in sofar I understand it within the confines of this > discussion, simply means: "Does not assume that the runtime stack matches > the lexical stack". No more, no less. So, everything is pure, unless it is a > closure that does one or more of the following things: > > > > A) Access a variable from lexical scope that is outside the closure itself. > The variable isn't final, and isn't effectively final. > > > > B) returns, breaks, or continues from inside the closure to outside the > closure; i.e. the closure breaks a for loop in the containing method. (Not > on the agenda for java7 closures so far, but nice to make possible, if not > for java7, then for java 8) > > > > C) throws a checked exception which is not handled by the closure (as in, > the closure type doesn't have a "throws TheCheckedException" in its > signature), but it IS handled by the containing method (either because the > closure is defined in a try/catch block that catches that exception, or the > containing method has a "throws TheCheckedException" clause). > > > > > > Any closure that engages in none of those 3 things is pure. Pure does not > mean "I have no side effects". > > > --Reinier Zwitserloot > > > On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant < > nathan.bryant at linkshare.com> wrote: > > A simple example: > > > > public @pure int sum(int a, int b) { > > log.debug(?sum!?); > > return a + b; > > } > > > > log.debug can never be strictly pure, but surely we don?t want to disallow > it! > > > > *From:* Paulo Levi [mailto:i30817 at gmail.com] > *Sent:* Tuesday, June 08, 2010 11:44 AM > *To:* Nathan Bryant > *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net > *Subject:* Re: Exception transparency > > > > Why is it not workable? Do programmers have trouble understanding that they > can't use private methods outside of their class to give a foolish example? > > > Why would they have problems understanding that they can only use "pure" > methods in the body of a pure function -recursive obvs? (aside, here you can > see why constructors, and SAM types are still useful, mark a method as pure, > but leave the constructor to deal with the impurity). > > Seems like the most elegant solution, and frankly almost a requirement for > that the new parallel api's if they are to maintain a little sanity. The > alternative is to retrofit it later if the concept becomes available, that > will break code, and thus be used as a excuse to do nothing, as usual. > > > From nathan.bryant at linkshare.com Tue Jun 8 12:21:18 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 04:21:18 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com><4C0D8A19.2000104@oracle.com><4C0E52B4.4030502@oracle.com><7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp> Reiner: Ok gotcha. I think. It seems to me that your particular definition of purity does not fit Brian?s desire to use the notion of purity to allow us to determine what?s thread safe. If a pure function were to call an impure function, it can no longer be guaranteed that it?s thread safe: the impure function might be mutating something, somewhere, either inside or outside the VM, on the pure function?s behalf. That mutation might not be thread safe. So in the most general sense, I/O is not pure. From: reinierz at gmail.com [mailto:reinierz at gmail.com] On Behalf Of Reinier Zwitserloot Sent: Tuesday, June 08, 2010 3:14 PM To: Nathan Bryant Cc: Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Nope; anonymous inner classes are pure, and they can access locals from outer scope. As long as they are final, though. The implementation shows why this holds: When a variable is final, a copy is indistinguishable from the original (and this is in fact how anonymous inner classes accessing outer final locals is done by javac). Therefore, access to an immutable variable from outer scope is no different from passing that variable along as a parameter to the closure, which is conceptually similar to currying that parameter into the closure. Which is clearly pure. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 7:51 PM, Nathan Bryant wrote: Reinier: You mean A) directly or indirectly, right? A pure function may not access a mutable variable from another context? including statics, threadlocals, any big resource pool that?s hanging off of some static somewhere, or an object to which you have a reference? etc. In other words, a pure function may only call pure functions. No? If this is not what you mean, then it seems to me that you are talking about the ?weaker, more complex definition of pureness? that I was alluding to. From: reinierz at gmail.com [mailto:reinierz at gmail.com] On Behalf Of Reinier Zwitserloot Sent: Tuesday, June 08, 2010 1:39 PM To: Nathan Bryant Cc: Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Nathan, I don't think pure means what you think it means. Or I'm horribly confused, also an option. "pure" at least in sofar I understand it within the confines of this discussion, simply means: "Does not assume that the runtime stack matches the lexical stack". No more, no less. So, everything is pure, unless it is a closure that does one or more of the following things: A) Access a variable from lexical scope that is outside the closure itself. The variable isn't final, and isn't effectively final. B) returns, breaks, or continues from inside the closure to outside the closure; i.e. the closure breaks a for loop in the containing method. (Not on the agenda for java7 closures so far, but nice to make possible, if not for java7, then for java 8) C) throws a checked exception which is not handled by the closure (as in, the closure type doesn't have a "throws TheCheckedException" in its signature), but it IS handled by the containing method (either because the closure is defined in a try/catch block that catches that exception, or the containing method has a "throws TheCheckedException" clause). Any closure that engages in none of those 3 things is pure. Pure does not mean "I have no side effects". --Reinier Zwitserloot On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant wrote: A simple example: public @pure int sum(int a, int b) { log.debug(?sum!?); return a + b; } log.debug can never be strictly pure, but surely we don?t want to disallow it! From: Paulo Levi [mailto:i30817 at gmail.com] Sent: Tuesday, June 08, 2010 11:44 AM To: Nathan Bryant Cc: Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net Subject: Re: Exception transparency Why is it not workable? Do programmers have trouble understanding that they can't use private methods outside of their class to give a foolish example? Why would they have problems understanding that they can only use "pure" methods in the body of a pure function -recursive obvs? (aside, here you can see why constructors, and SAM types are still useful, mark a method as pure, but leave the constructor to deal with the impurity). Seems like the most elegant solution, and frankly almost a requirement for that the new parallel api's if they are to maintain a little sanity. The alternative is to retrofit it later if the concept becomes available, that will break code, and thus be used as a excuse to do nothing, as usual. From brian.goetz at oracle.com Tue Jun 8 12:31:51 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Jun 2010 15:31:51 -0400 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com><4C0D8A19.2000104@oracle.com><4C0E52B4.4030502@oracle.com><7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <4C0E9AA7.5010000@oracle.com> You're both right... Typically "pure functions" are side-effect-free, thread-safe, and all sorts of other goodness which enables them to be cached, lazified, eagerized, redundantly executed on different nodes for locality reasons, all sorts of other good stuff. But the constraints on "purity" in Java are too strong to be realistic. Java is too happy to allow mutation and does not offer tools to prevent it (e.g., 'const'.) Anonymous functions can do all sorts of evil and racy things. But the rules (primarily that you can only capture final references) make the most common racy things harder. The goal should be for closures to not dramatically *increase* the space of reasonable-looking but racy code. In that way Reinier's notion of purity is a good concept (but could use a better name), because it may enable us to add closures without greatly adding to the set of racy code constructs. We can't take away the existing racy code constructs (and if we could, it wouldn't be under the scope of Lambda) but we can at least not make things worse. Your sum() example violates all the conventional notions of purity (has side effects, side effects are non-idempotent and non-commutative, etc) but fits into Reinier's notion of purity well enough: assuming that log.debug() is thread-safe, it does not express any constraint between the lambda and its capturing scope. (We do not have a means for identifying either statically or dynamically whether log.debug() is thread-safe or not, which sucks, but this is not a problem that is new to closures.) On 6/8/2010 3:21 PM, Nathan Bryant wrote: > Reiner: > > Ok gotcha. I think. > > It seems to me that your particular definition of purity does not fit > Brian?s desire to use the notion of purity to allow us to determine > what?s thread safe. If a pure function were to call an impure function, > it can no longer be guaranteed that it?s thread safe: the impure > function might be mutating something, somewhere, either inside or > outside the VM, on the pure function?s behalf. That mutation might not > be thread safe. So in the most general sense, I/O is not pure. > > *From:* reinierz at gmail.com [mailto:reinierz at gmail.com] *On Behalf Of > *Reinier Zwitserloot > *Sent:* Tuesday, June 08, 2010 3:14 PM > *To:* Nathan Bryant > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > *Subject:* Re: Exception transparency > > Nope; anonymous inner classes are pure, and they can access locals from > outer scope. As long as they are final, though. The implementation shows > why this holds: When a variable is final, a copy is indistinguishable > from the original (and this is in fact how anonymous inner classes > accessing outer final locals is done by javac). Therefore, access to an > immutable variable from outer scope is no different from passing that > variable along as a parameter to the closure, which is conceptually > similar to currying that parameter into the closure. Which is clearly pure. > > > --Reinier Zwitserloot > > > On Tue, Jun 8, 2010 at 7:51 PM, Nathan Bryant > > wrote: > > Reinier: > > You mean A) directly or indirectly, right? A pure function may not > access a mutable variable from another context? including statics, > threadlocals, any big resource pool that?s hanging off of some static > somewhere, or an object to which you have a reference? etc. In other > words, a pure function may only call pure functions. No? > > If this is not what you mean, then it seems to me that you are talking > about the ?weaker, more complex definition of pureness? that I was > alluding to. > > *From:* reinierz at gmail.com > [mailto:reinierz at gmail.com ] *On Behalf Of > *Reinier Zwitserloot > *Sent:* Tuesday, June 08, 2010 1:39 PM > *To:* Nathan Bryant > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > > *Subject:* Re: Exception transparency > > Nathan, I don't think pure means what you think it means. Or I'm > horribly confused, also an option. > > "pure" at least in sofar I understand it within the confines of this > discussion, simply means: "Does not assume that the runtime stack > matches the lexical stack". No more, no less. So, everything is pure, > unless it is a closure that does one or more of the following things: > > A) Access a variable from lexical scope that is outside the closure > itself. The variable isn't final, and isn't effectively final. > > B) returns, breaks, or continues from inside the closure to outside the > closure; i.e. the closure breaks a for loop in the containing method. > (Not on the agenda for java7 closures so far, but nice to make possible, > if not for java7, then for java 8) > > C) throws a checked exception which is not handled by the closure (as > in, the closure type doesn't have a "throws TheCheckedException" in its > signature), but it IS handled by the containing method (either because > the closure is defined in a try/catch block that catches that exception, > or the containing method has a "throws TheCheckedException" clause). > > Any closure that engages in none of those 3 things is pure. Pure does > not mean "I have no side effects". > > > --Reinier Zwitserloot > > On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant > > wrote: > > A simple example: > > public @pure int sum(int a, int b) { > > log.debug(?sum!?); > > return a + b; > > } > > log.debug can never be strictly pure, but surely we don?t want to > disallow it! > > *From:* Paulo Levi [mailto:i30817 at gmail.com ] > *Sent:* Tuesday, June 08, 2010 11:44 AM > *To:* Nathan Bryant > *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net > > *Subject:* Re: Exception transparency > > Why is it not workable? Do programmers have trouble understanding that > they can't use private methods outside of their class to give a foolish > example? > > > Why would they have problems understanding that they can only use "pure" > methods in the body of a pure function -recursive obvs? (aside, here you > can see why constructors, and SAM types are still useful, mark a method > as pure, but leave the constructor to deal with the impurity). > > Seems like the most elegant solution, and frankly almost a requirement > for that the new parallel api's if they are to maintain a little sanity. > The alternative is to retrofit it later if the concept becomes > available, that will break code, and thus be used as a excuse to do > nothing, as usual. > From nathan.bryant at linkshare.com Tue Jun 8 12:50:50 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 04:50:50 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com><4C0D8A19.2000104@oracle.com><4C0E52B4.4030502@oracle.com><7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp> <4C0E9AA7.5010000@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094A69254@EXVMSTOR302.intra.rakuten.co.jp> Brian, Ok, that makes some sense. If some of these ideas were put into practice, it seems to imply: -2 new annotations, @impure @pure -lambdas default to @pure if they capture only final locals (just like anonymous inner classes today) -Assuming the above, Iterable.forEach() defaulting to parallel semantics whenever it see @pure, seems too risky -But no problem if the programmer says Iterable.par().forEach() - they get what they ask for -or- -1 new annotation, @pure -all lambdas are impure unless @pure is explicitly stated -compiler error (warning?) if @pure is applied to a lambda that captures non-final locals -compiler warning (?) if @pure is applied to a function that calls an impure function -perceived messy syntax of adding @pure everywhere? -----Original Message----- From: Brian Goetz [mailto:brian.goetz at oracle.com] Sent: Tuesday, June 08, 2010 3:32 PM To: Nathan Bryant Cc: Reinier Zwitserloot; Paulo Levi; lambda-dev at openjdk.java.net Subject: Re: Exception transparency You're both right... Typically "pure functions" are side-effect-free, thread-safe, and all sorts of other goodness which enables them to be cached, lazified, eagerized, redundantly executed on different nodes for locality reasons, all sorts of other good stuff. But the constraints on "purity" in Java are too strong to be realistic. Java is too happy to allow mutation and does not offer tools to prevent it (e.g., 'const'.) Anonymous functions can do all sorts of evil and racy things. But the rules (primarily that you can only capture final references) make the most common racy things harder. The goal should be for closures to not dramatically *increase* the space of reasonable-looking but racy code. In that way Reinier's notion of purity is a good concept (but could use a better name), because it may enable us to add closures without greatly adding to the set of racy code constructs. We can't take away the existing racy code constructs (and if we could, it wouldn't be under the scope of Lambda) but we can at least not make things worse. Your sum() example violates all the conventional notions of purity (has side effects, side effects are non-idempotent and non-commutative, etc) but fits into Reinier's notion of purity well enough: assuming that log.debug() is thread-safe, it does not express any constraint between the lambda and its capturing scope. (We do not have a means for identifying either statically or dynamically whether log.debug() is thread-safe or not, which sucks, but this is not a problem that is new to closures.) On 6/8/2010 3:21 PM, Nathan Bryant wrote: > Reiner: > > Ok gotcha. I think. > > It seems to me that your particular definition of purity does not fit > Brian?s desire to use the notion of purity to allow us to determine > what?s thread safe. If a pure function were to call an impure function, > it can no longer be guaranteed that it?s thread safe: the impure > function might be mutating something, somewhere, either inside or > outside the VM, on the pure function?s behalf. That mutation might not > be thread safe. So in the most general sense, I/O is not pure. > > *From:* reinierz at gmail.com [mailto:reinierz at gmail.com] *On Behalf Of > *Reinier Zwitserloot > *Sent:* Tuesday, June 08, 2010 3:14 PM > *To:* Nathan Bryant > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > *Subject:* Re: Exception transparency > > Nope; anonymous inner classes are pure, and they can access locals from > outer scope. As long as they are final, though. The implementation shows > why this holds: When a variable is final, a copy is indistinguishable > from the original (and this is in fact how anonymous inner classes > accessing outer final locals is done by javac). Therefore, access to an > immutable variable from outer scope is no different from passing that > variable along as a parameter to the closure, which is conceptually > similar to currying that parameter into the closure. Which is clearly pure. > > > --Reinier Zwitserloot > > > On Tue, Jun 8, 2010 at 7:51 PM, Nathan Bryant > > wrote: > > Reinier: > > You mean A) directly or indirectly, right? A pure function may not > access a mutable variable from another context? including statics, > threadlocals, any big resource pool that?s hanging off of some static > somewhere, or an object to which you have a reference? etc. In other > words, a pure function may only call pure functions. No? > > If this is not what you mean, then it seems to me that you are talking > about the ?weaker, more complex definition of pureness? that I was > alluding to. > > *From:* reinierz at gmail.com > [mailto:reinierz at gmail.com ] *On Behalf Of > *Reinier Zwitserloot > *Sent:* Tuesday, June 08, 2010 1:39 PM > *To:* Nathan Bryant > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > > *Subject:* Re: Exception transparency > > Nathan, I don't think pure means what you think it means. Or I'm > horribly confused, also an option. > > "pure" at least in sofar I understand it within the confines of this > discussion, simply means: "Does not assume that the runtime stack > matches the lexical stack". No more, no less. So, everything is pure, > unless it is a closure that does one or more of the following things: > > A) Access a variable from lexical scope that is outside the closure > itself. The variable isn't final, and isn't effectively final. > > B) returns, breaks, or continues from inside the closure to outside the > closure; i.e. the closure breaks a for loop in the containing method. > (Not on the agenda for java7 closures so far, but nice to make possible, > if not for java7, then for java 8) > > C) throws a checked exception which is not handled by the closure (as > in, the closure type doesn't have a "throws TheCheckedException" in its > signature), but it IS handled by the containing method (either because > the closure is defined in a try/catch block that catches that exception, > or the containing method has a "throws TheCheckedException" clause). > > Any closure that engages in none of those 3 things is pure. Pure does > not mean "I have no side effects". > > > --Reinier Zwitserloot > > On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant > > wrote: > > A simple example: > > public @pure int sum(int a, int b) { > > log.debug(?sum!?); > > return a + b; > > } > > log.debug can never be strictly pure, but surely we don?t want to > disallow it! > > *From:* Paulo Levi [mailto:i30817 at gmail.com ] > *Sent:* Tuesday, June 08, 2010 11:44 AM > *To:* Nathan Bryant > *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net > > *Subject:* Re: Exception transparency > > Why is it not workable? Do programmers have trouble understanding that > they can't use private methods outside of their class to give a foolish > example? > > > Why would they have problems understanding that they can only use "pure" > methods in the body of a pure function -recursive obvs? (aside, here you > can see why constructors, and SAM types are still useful, mark a method > as pure, but leave the constructor to deal with the impurity). > > Seems like the most elegant solution, and frankly almost a requirement > for that the new parallel api's if they are to maintain a little sanity. > The alternative is to retrofit it later if the concept becomes > available, that will break code, and thus be used as a excuse to do > nothing, as usual. > From alex.buckley at oracle.com Tue Jun 8 15:54:31 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Tue, 08 Jun 2010 15:54:31 -0700 Subject: Exception transparency In-Reply-To: <4C0E42A9.8060100@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> Message-ID: <4C0ECA27.6050601@oracle.com> On 6/8/2010 6:16 AM, Brian Goetz wrote: >> It should be possible to write a safe compose: >> >> Function >> compose(Function fg, Function gh); >> >> And store the composed function in a variable. For this to work we >> need to have disjunctive type as a first class citizen (as Peter >> pointed in a previous message). > > Can you elaborate on why this requires *first-class* disjunctive types? The > signature you write seems perfectly allowable within a framework that allows a > disjunction-like entity at the use site of a throws type variable. I think there are two things going on here: 1) Expression of disjunctive types during inference. I agree with Neal that the lub of exception type arguments should produce a disjunctive type. 2) Denotation of disjunctive types. We allow them only in an exception type argument "a.m(..)", "new Foo()", etc. In particular, not as the bound of an exception type parameter. Moreover, exception type parameters " void m();" may only be used in exception type arguments (and throws clauses), not as "bare" types. With these restrictions, exception type arguments are covariant, which is nice. Without these restrictions, you could do this: interface Function { void m(E e); } Function e = #(IOException e){...}; Function f = e; try { f.(new Exception()); /* Oops */ } catch (Exception ex) {} (Actually, I guess we could preserve covariant exception type arguments by banning exception type parameters from appearing in contravariant locations like method parameters.) Anyway, as Brian said, you can write the safe compose method above, since 'throws X | Y' is an exception type argument, and assign its result to a Function<..., ..., throws FooExc | BarExc> variable. Alex From neal at gafter.com Tue Jun 8 16:44:37 2010 From: neal at gafter.com (Neal Gafter) Date: Tue, 8 Jun 2010 16:44:37 -0700 Subject: Exception transparency In-Reply-To: <4C0ECA27.6050601@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> Message-ID: On Tue, Jun 8, 2010 at 3:54 PM, Alex Buckley wrote: > 2) Denotation of disjunctive types. We allow them only in an exception > type argument "a.m(..)", "new Foo()", > etc. In particular, not as the bound of an exception type parameter. > Moreover, exception type parameters " void m();" may only be > used in exception type arguments (and throws clauses), not as "bare" > types. With these restrictions, exception type arguments are covariant, > which is nice. Without these restrictions, you could do this: > > interface Function { void m(E e); } > Function e = #(IOException e){...}; > Function f = e; > try { f.(new Exception()); /* Oops */ } catch (Exception ex) {} > > (Actually, I guess we could preserve covariant exception type arguments > by banning exception type parameters from appearing in contravariant > locations like method parameters.) > Sounds like you're trying to add declaration-site variance to Java (at least for these type parameters). It isn't clear how you intend that to work. Can Function appear in an argument position of a method, where E is a throws-type-parameter of the class containing the method? If so, you've undermined exception safety. If not, you're disallowing a likely-common programming technique (for example a method like collection.each). The problem is that the type parameter has to be contravariant in this case, but you appear to be proposing to make them uniformly covariant. I think your best bet is to NOT have any special variant behavior for these type parameters. Wildcards already serve that purpose for SAMs, and function types can be made naturally variant without either wildcards or undermining exception safety. -Neal From reinier at zwitserloot.com Tue Jun 8 17:28:10 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 9 Jun 2010 02:28:10 +0200 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A69254@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp> <4C0E9AA7.5010000@oracle.com> <7FDA6630E1822F448C97A48D5D733094A69254@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: Brian nailed exactly why my definition of purity is so "lame" - it doesn't make matters worse and it can be retrofitted easily into existing java. Anything more drastic is definitely outside the scope of project lambda. I'm stil very confused about what you're suggesting. Why do we need @pure and @impure? All non-closures are always pure and cannot be impure - anonymous classes get closed and they can't even do any of the things on the forbidden list (access mutables, transfer control, or transparently throw checked exceptions). Closures are pure by default, unless they do one of those 3 forbidden things. All of these 3 forbidden things can be easily inferred; there is thus no need for annotations. Where would such an annotation even go? project lambda does not allow you to annotate a closure definition (an oversight that might have to be looked at more closure before a final release!) Also, you're mixing things around. All lambdas are *PURE* unless you do something explicitly forbidden for pure closures, then they are automatically impure. There's no messy syntax at all because there is no @pure or @impure - closures are what they are. There's a different way to look at it: Syntactically, all closures are _impure_, unless the compiler detects that you aren't doing anything impure, in which case it might as well be pure. So, the compiler understands what you're _trying_ to do regardless of purity or lack thereof. This is similar to how java works today. If you access a non-final variable from an anonymous inner class, the compiler does NOT react with "variable not found". Instead it knows exactly what you're trying to pull and says that you can't do that. So, it understands you, it just refuses to compile it. The notion of purity / impurity I'm suggesting works similar. If you throw checked exception C from a closure, and the closure's signature doesn't allow throwing C, but your lexical scope *DOES*, then the compiler will always know exactly what you're trying to do. It may not compile it, though - that depends on whether or not an impure closure is allowed there. --Reinier Zwitserloot On Tue, Jun 8, 2010 at 9:50 PM, Nathan Bryant wrote: > Brian, > > Ok, that makes some sense. If some of these ideas were put into practice, > it seems to imply: > > -2 new annotations, @impure @pure > -lambdas default to @pure if they capture only final locals (just like > anonymous inner classes today) > > -Assuming the above, Iterable.forEach() defaulting to parallel semantics > whenever it see @pure, seems too risky > -But no problem if the programmer says Iterable.par().forEach() - they get > what they ask for > > -or- > > -1 new annotation, @pure > -all lambdas are impure unless @pure is explicitly stated > -compiler error (warning?) if @pure is applied to a lambda that captures > non-final locals > -compiler warning (?) if @pure is applied to a function that calls an > impure function > -perceived messy syntax of adding @pure everywhere? > > -----Original Message----- > From: Brian Goetz [mailto:brian.goetz at oracle.com] > Sent: Tuesday, June 08, 2010 3:32 PM > To: Nathan Bryant > Cc: Reinier Zwitserloot; Paulo Levi; lambda-dev at openjdk.java.net > Subject: Re: Exception transparency > > You're both right... > > Typically "pure functions" are side-effect-free, thread-safe, and all sorts > of > other goodness which enables them to be cached, lazified, eagerized, > redundantly executed on different nodes for locality reasons, all sorts of > other good stuff. > > But the constraints on "purity" in Java are too strong to be realistic. > Java > is too happy to allow mutation and does not offer tools to prevent it > (e.g., > 'const'.) > > Anonymous functions can do all sorts of evil and racy things. But the > rules > (primarily that you can only capture final references) make the most common > racy things harder. The goal should be for closures to not dramatically > *increase* the space of reasonable-looking but racy code. > > In that way Reinier's notion of purity is a good concept (but could use a > better name), because it may enable us to add closures without greatly > adding > to the set of racy code constructs. We can't take away the existing racy > code > constructs (and if we could, it wouldn't be under the scope of Lambda) but > we > can at least not make things worse. > > Your sum() example violates all the conventional notions of purity (has > side > effects, side effects are non-idempotent and non-commutative, etc) but fits > into Reinier's notion of purity well enough: assuming that log.debug() is > thread-safe, it does not express any constraint between the lambda and its > capturing scope. (We do not have a means for identifying either statically > or > dynamically whether log.debug() is thread-safe or not, which sucks, but > this > is not a problem that is new to closures.) > > On 6/8/2010 3:21 PM, Nathan Bryant wrote: > > Reiner: > > > > Ok gotcha. I think. > > > > It seems to me that your particular definition of purity does not fit > > Brian?s desire to use the notion of purity to allow us to determine > > what?s thread safe. If a pure function were to call an impure function, > > it can no longer be guaranteed that it?s thread safe: the impure > > function might be mutating something, somewhere, either inside or > > outside the VM, on the pure function?s behalf. That mutation might not > > be thread safe. So in the most general sense, I/O is not pure. > > > > *From:* reinierz at gmail.com [mailto:reinierz at gmail.com] *On Behalf Of > > *Reinier Zwitserloot > > *Sent:* Tuesday, June 08, 2010 3:14 PM > > *To:* Nathan Bryant > > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > > *Subject:* Re: Exception transparency > > > > Nope; anonymous inner classes are pure, and they can access locals from > > outer scope. As long as they are final, though. The implementation shows > > why this holds: When a variable is final, a copy is indistinguishable > > from the original (and this is in fact how anonymous inner classes > > accessing outer final locals is done by javac). Therefore, access to an > > immutable variable from outer scope is no different from passing that > > variable along as a parameter to the closure, which is conceptually > > similar to currying that parameter into the closure. Which is clearly > pure. > > > > > > --Reinier Zwitserloot > > > > > > On Tue, Jun 8, 2010 at 7:51 PM, Nathan Bryant > > > > wrote: > > > > Reinier: > > > > You mean A) directly or indirectly, right? A pure function may not > > access a mutable variable from another context? including statics, > > threadlocals, any big resource pool that?s hanging off of some static > > somewhere, or an object to which you have a reference? etc. In other > > words, a pure function may only call pure functions. No? > > > > If this is not what you mean, then it seems to me that you are talking > > about the ?weaker, more complex definition of pureness? that I was > > alluding to. > > > > *From:* reinierz at gmail.com > > [mailto:reinierz at gmail.com ] *On Behalf Of > > *Reinier Zwitserloot > > *Sent:* Tuesday, June 08, 2010 1:39 PM > > *To:* Nathan Bryant > > *Cc:* Paulo Levi; Brian Goetz; lambda-dev at openjdk.java.net > > > > *Subject:* Re: Exception transparency > > > > Nathan, I don't think pure means what you think it means. Or I'm > > horribly confused, also an option. > > > > "pure" at least in sofar I understand it within the confines of this > > discussion, simply means: "Does not assume that the runtime stack > > matches the lexical stack". No more, no less. So, everything is pure, > > unless it is a closure that does one or more of the following things: > > > > A) Access a variable from lexical scope that is outside the closure > > itself. The variable isn't final, and isn't effectively final. > > > > B) returns, breaks, or continues from inside the closure to outside the > > closure; i.e. the closure breaks a for loop in the containing method. > > (Not on the agenda for java7 closures so far, but nice to make possible, > > if not for java7, then for java 8) > > > > C) throws a checked exception which is not handled by the closure (as > > in, the closure type doesn't have a "throws TheCheckedException" in its > > signature), but it IS handled by the containing method (either because > > the closure is defined in a try/catch block that catches that exception, > > or the containing method has a "throws TheCheckedException" clause). > > > > Any closure that engages in none of those 3 things is pure. Pure does > > not mean "I have no side effects". > > > > > > --Reinier Zwitserloot > > > > On Tue, Jun 8, 2010 at 5:47 PM, Nathan Bryant > > > > wrote: > > > > A simple example: > > > > public @pure int sum(int a, int b) { > > > > log.debug(?sum!?); > > > > return a + b; > > > > } > > > > log.debug can never be strictly pure, but surely we don?t want to > > disallow it! > > > > *From:* Paulo Levi [mailto:i30817 at gmail.com ] > > *Sent:* Tuesday, June 08, 2010 11:44 AM > > *To:* Nathan Bryant > > *Cc:* Brian Goetz; Reinier Zwitserloot; lambda-dev at openjdk.java.net > > > > *Subject:* Re: Exception transparency > > > > Why is it not workable? Do programmers have trouble understanding that > > they can't use private methods outside of their class to give a foolish > > example? > > > > > > Why would they have problems understanding that they can only use "pure" > > methods in the body of a pure function -recursive obvs? (aside, here you > > can see why constructors, and SAM types are still useful, mark a method > > as pure, but leave the constructor to deal with the impurity). > > > > Seems like the most elegant solution, and frankly almost a requirement > > for that the new parallel api's if they are to maintain a little sanity. > > The alternative is to retrofit it later if the concept becomes > > available, that will break code, and thus be used as a excuse to do > > nothing, as usual. > > > From nathan.bryant at linkshare.com Tue Jun 8 17:35:39 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 09:35:39 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094A69497@EXVMSTOR302.intra.rakuten.co.jp> Hmm, public class Foo { void bar(Func f) throws E; } Foo foo; Func baz; Foo.bar(baz); <-- covariant conversion - baz is widened. No problem right? Foo y Foo x = y // this assignment is also a widening conversion, so seems ok at first blush But then: x.bar(some Func) // really invoked on y, undermines type system. But then, we can't do this either - clearly unsafe: Foo = y; But should really appear as a method type parameter not a class type parameter - it's where it belongs: public class Foo { void bar(Func f) throws E; } -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Neal Gafter Sent: Tuesday, June 08, 2010 7:45 PM To: Alex Buckley Cc: lambda-dev at openjdk.java.net Subject: Re: Exception transparency On Tue, Jun 8, 2010 at 3:54 PM, Alex Buckley wrote: > 2) Denotation of disjunctive types. We allow them only in an exception > type argument "a.m(..)", "new Foo()", > etc. In particular, not as the bound of an exception type parameter. > Moreover, exception type parameters " void m();" may only be > used in exception type arguments (and throws clauses), not as "bare" > types. With these restrictions, exception type arguments are covariant, > which is nice. Without these restrictions, you could do this: > > interface Function { void m(E e); } > Function e = #(IOException e){...}; > Function f = e; > try { f.(new Exception()); /* Oops */ } catch (Exception ex) {} > > (Actually, I guess we could preserve covariant exception type arguments > by banning exception type parameters from appearing in contravariant > locations like method parameters.) > Sounds like you're trying to add declaration-site variance to Java (at least for these type parameters). It isn't clear how you intend that to work. Can Function appear in an argument position of a method, where E is a throws-type-parameter of the class containing the method? If so, you've undermined exception safety. If not, you're disallowing a likely-common programming technique (for example a method like collection.each). The problem is that the type parameter has to be contravariant in this case, but you appear to be proposing to make them uniformly covariant. I think your best bet is to NOT have any special variant behavior for these type parameters. Wildcards already serve that purpose for SAMs, and function types can be made naturally variant without either wildcards or undermining exception safety. -Neal From daniel.yokomizo at gmail.com Tue Jun 8 17:54:04 2010 From: daniel.yokomizo at gmail.com (Daniel Yokomizo) Date: Tue, 8 Jun 2010 21:54:04 -0300 Subject: Exception transparency In-Reply-To: <4C0E42A9.8060100@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> Message-ID: On Tue, Jun 8, 2010 at 10:16 AM, Brian Goetz wrote: >> It should be possible to write a safe compose: >> >> ?Function >> compose(Function ?fg, Function ?gh); >> >> And store the composed function in a variable. For this to work we >> need to have disjunctive type as a first class citizen (as Peter >> pointed in a previous message). > > Can you elaborate on why this requires *first-class* disjunctive types? ?The > signature you write seems perfectly allowable within a framework that allows > a disjunction-like entity at the use site of a throws type variable. Actually I'm wrong, my use-case requires only disjunctive type as type or method type parameters, so second-class is ok. Best regards, Daniel Yokomizo From nathan.bryant at linkshare.com Tue Jun 8 18:02:07 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 10:02:07 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com><4C0D8A19.2000104@oracle.com><4C0E52B4.4030502@oracle.com><7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp><4C0E9AA7.5010000@oracle.com><7FDA6630E1822F448C97A48D5D733094A69254@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <7FDA6630E1822F448C97A48D5D733094A6949B@EXVMSTOR302.intra.rakuten.co.jp> Reinier wrote: > Anything more drastic is definitely outside the scope of project lambda. Probably true. > I'm still very confused about what you're suggesting. Why do we need @pure and @impure? Well I?m not exactly saying it?s needed; I?m actually far from convinced that we need or even want them (my initial knee jerk was that this would just duplicate something that?s probably better done with ?views?). What I?m am saying is that IF libraries make parallelization decisions based on pureness, THEN we need a way to override that behavior. @pure is one of the obvious ways to do that. Which is not to say it?s correct or useful, just obvious. But, these annotations would likely be needed if the definition of ?pure? was any stronger than what you?re proposing. > Also, you're mixing things around. All lambdas are *PURE* unless you do something explicitly forbidden for pure closures, then they are automatically impure. There's no messy syntax at all because there is no @pure or @impure - closures are what they are. Following this to its logical conclusion, and continuing the tradition of using forEach() as an example, then what does one do about forEach()? It seemed like the idea was proposed that forEach() might automagically become parallel if the closure is pure. But this particular definition of pureness is too weak for that to be the entire basis of forEach()?s decision, or probably even a default. Your definition does seem to be useful as something that would produce a compiler warning: Iterator.parallel().forEach(foo) would produce a compile-time warning (or error?) if foo is impure by your definition. But that brings us to the question: how to squelch that error, which would involve annotations. Maybe it?s not necessary to be able squelch it at all ? rewrite the code not to capture locals, instead, if intent on parallelizing. > The notion of purity / impurity I'm suggesting works similar. If you throw checked exception C from a closure, and the closure's signature doesn't allow throwing C, but your lexical scope *DOES*, then the compiler will always know exactly what you're trying to do. It may not compile it, though - that depends on whether or not an impure closure is allowed there. So exception propagation via this mechanism can only work in the sequential case. Which might be good, might be bad. From nathan.bryant at linkshare.com Tue Jun 8 18:07:20 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Wed, 9 Jun 2010 10:07:20 +0900 Subject: Exception transparency References: <4C0D7344.2000903@oracle.com><4C0D8A19.2000104@oracle.com><4C0E52B4.4030502@oracle.com><7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp><7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp><4C0E9AA7.5010000@oracle.com><7FDA6630E1822F448C97A48D5D733094A69254@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <7FDA6630E1822F448C97A48D5D733094A6949C@EXVMSTOR302.intra.rakuten.co.jp> I wrote: > Iterator.parallel().forEach(foo) would produce a compile-time warning (or error?) if foo is impure by your definition. Except ? oh, here I go again: it probably can?t. It probably at best results in a runtime exception (see my earlier interface definition examples as to my thinking behind that one) ? the problem is that one wants to make ParallelIterable extend Iterable. Hmm. From reinier at zwitserloot.com Tue Jun 8 22:28:26 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 9 Jun 2010 07:28:26 +0200 Subject: Exception transparency In-Reply-To: <7FDA6630E1822F448C97A48D5D733094A6949B@EXVMSTOR302.intra.rakuten.co.jp> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E52B4.4030502@oracle.com> <7FDA6630E1822F448C97A48D5D733094A68F4A@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A68FA5@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A690F9@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A69205@EXVMSTOR302.intra.rakuten.co.jp> <4C0E9AA7.5010000@oracle.com> <7FDA6630E1822F448C97A48D5D733094A69254@EXVMSTOR302.intra.rakuten.co.jp> <7FDA6630E1822F448C97A48D5D733094A6949B@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: I already highlighted the notion that forEach automatically picking a parallel algorithm in a 100% safe way is just not feasible within the confines of project lambda; either the javadoc of forEach explicitly explains that pure closures will be parallelized, or there's a separate forEachParallel method. Exception propagation can work in the parallel case. As I've explained, there will be an "unrestrict this resticted variable" method. Its use cases are extremely rare; PA is pretty much the only one (but an important enough one to at least have that method). --Reinier Zwitserloot On Wed, Jun 9, 2010 at 3:02 AM, Nathan Bryant wrote: > Reinier wrote: > > > > > Anything more drastic is definitely outside the scope of project lambda. > > > > Probably true. > > > > > I'm still very confused about what you're suggesting. Why do we need > @pure and @impure? > > > > Well I?m not exactly saying it?s needed; I?m actually far from convinced > that we need or even want them (my initial knee jerk was that this would > just duplicate something that?s probably better done with ?views?). What I?m > am saying is that IF libraries make parallelization decisions based on > pureness, THEN we need a way to override that behavior. @pure is one of the > obvious ways to do that. Which is not to say it?s correct or useful, just > obvious. But, these annotations would likely be needed if the definition of > ?pure? was any stronger than what you?re proposing. > > > > > Also, you're mixing things around. All lambdas are *PURE* unless you do > something explicitly forbidden for pure closures, then they are > automatically impure. There's no messy syntax at all because there is no > @pure or @impure - closures are what they are. > > > > Following this to its logical conclusion, and continuing the tradition of > using forEach() as an example, then what does one do about forEach()? It > seemed like the idea was proposed that forEach() might automagically become > parallel if the closure is pure. But this particular definition of pureness > is too weak for that to be the entire basis of forEach()?s decision, or > probably even a default. Your definition does seem to be useful as something > that would produce a compiler warning: Iterator.parallel().forEach(foo) > would produce a compile-time warning (or error?) if foo is impure by your > definition. But that brings us to the question: how to squelch that error, > which would involve annotations. Maybe it?s not necessary to be able squelch > it at all ? rewrite the code not to capture locals, instead, if intent on > parallelizing. > > > > > The notion of purity / impurity I'm suggesting works similar. If you > throw checked exception C from a closure, and the closure's signature > doesn't allow throwing C, but your lexical scope *DOES*, then the compiler > will always know exactly what you're trying to do. It may not compile it, > though - that depends on whether or not an impure closure is allowed there. > > > > So exception propagation via this mechanism can only work in the sequential > case. Which might be good, might be bad. > From maurizio.cimadamore at oracle.com Wed Jun 9 01:23:48 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 09 Jun 2010 09:23:48 +0100 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> Message-ID: <4C0F4F94.6050100@oracle.com> On 09/06/10 00:44, Neal Gafter wrote: > > Function e = #(IOException e){...}; Hi just to be clear, on which basis would you reject the above statement? I guess your argument is that a lambda accepting an argument of type E cannot be SAM-converted to an interface whose method accepts an argument of type 'throws E' (and, more generally, that E and 'throws E' are not interchangeable). Am I reading correctly? Thanks Maurizio From maurizio.cimadamore at oracle.com Wed Jun 9 03:06:55 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 09 Jun 2010 11:06:55 +0100 Subject: Exception transparency In-Reply-To: <4C0F4F94.6050100@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> <4C0F4F94.6050100@oracle.com> Message-ID: <4C0F67BF.5050407@oracle.com> On 09/06/10 09:23, Maurizio Cimadamore wrote: > On 09/06/10 00:44, Neal Gafter wrote: > >>> Function e = #(IOException e){...}; >>> > Hi > just to be clear, on which basis would you reject the above statement? I > guess your argument is that a lambda accepting an argument of type E > cannot be SAM-converted to an interface whose method accepts an argument > of type 'throws E' (and, more generally, that E and 'throws E' are not > interchangeable). Am I reading correctly? > To be clearer, what I mean is, given the following declarations: class Foo { ... } Foo foo1 = ... //1 Foo foo2 = ... //2 foo1 = foo2; //3 *) What is the type parameter of Foo in (1) ? A disjunctive type having one component (of type MyException)? Or a straight type-parameter (non disjunctive) of type MyException? *) is (2) allowed? If so what is the semantics? Does the singleton type MyException get converted into a disjunctive type having just one component (of type MyException)? *) is (3) allowed? If so, depending on the semantics you choose for (1) and (2), aren't we (indirectly perhaps) already supporting a form of 'covariance', as we assume that C <: C because E <: throws E ? If so, what are the consequences of these subtyping rule? Maurizio > Thanks > Maurizio > > From forax at univ-mlv.fr Wed Jun 9 04:37:27 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Wed, 09 Jun 2010 13:37:27 +0200 Subject: Exception transparency In-Reply-To: <4C0F67BF.5050407@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> <4C0F4F94.6050100@oracle.com> <4C0F67BF.5050407@oracle.com> Message-ID: <4C0F7CF7.5030909@univ-mlv.fr> Le 09/06/2010 12:06, Maurizio Cimadamore a ?crit : > On 09/06/10 09:23, Maurizio Cimadamore wrote: > >> On 09/06/10 00:44, Neal Gafter wrote: >> >> >>>> Function e = #(IOException e){...}; >>>> >>>> >> Hi >> just to be clear, on which basis would you reject the above statement? I >> guess your argument is that a lambda accepting an argument of type E >> cannot be SAM-converted to an interface whose method accepts an argument >> of type 'throws E' (and, more generally, that E and 'throws E' are not >> interchangeable). Am I reading correctly? >> >> > To be clearer, what I mean is, given the following declarations: > > class Foo { ... } > > Foo foo1 = ... //1 > Foo foo2 = ... //2 > foo1 = foo2; //3 > > *) What is the type parameter of Foo in (1) ? A disjunctive type having > one component (of type MyException)? Or a straight type-parameter (non > disjunctive) of type MyException? > > *) is (2) allowed? If so what is the semantics? Does the singleton type > MyException get converted into a disjunctive type having just one > component (of type MyException)? > > *) is (3) allowed? If so, depending on the semantics you choose for (1) > and (2), aren't we (indirectly perhaps) already supporting a form of > 'covariance', as we assume that C <: C because E<: throws > E ? If so, what are the consequences of these subtyping rule? > > Maurizio > you can also add: Foo foo3 = ... and Foo foo4 = ... And please remember that use-site variance (i.e ? extends/super) is something that is not easy to grasp, only few of my students understand it correctly. Declaration site variance seems easier. R?mi From maurizio.cimadamore at oracle.com Wed Jun 9 07:04:01 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 09 Jun 2010 15:04:01 +0100 Subject: Exception transparency In-Reply-To: <4C0F7CF7.5030909@univ-mlv.fr> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> <4C0F4F94.6050100@oracle.com> <4C0F67BF.5050407@oracle.com> <4C0F7CF7.5030909@univ-mlv.fr> Message-ID: <4C0F9F51.90803@oracle.com> On 09/06/10 12:37, R?mi Forax wrote: > Le 09/06/2010 12:06, Maurizio Cimadamore a ?crit : > >> On 09/06/10 09:23, Maurizio Cimadamore wrote: >> >> >>> On 09/06/10 00:44, Neal Gafter wrote: >>> >>> >>> >>>>> Function e = #(IOException e){...}; >>>>> >>>>> >>>>> >>> Hi >>> just to be clear, on which basis would you reject the above statement? I >>> guess your argument is that a lambda accepting an argument of type E >>> cannot be SAM-converted to an interface whose method accepts an argument >>> of type 'throws E' (and, more generally, that E and 'throws E' are not >>> interchangeable). Am I reading correctly? >>> >>> >>> >> To be clearer, what I mean is, given the following declarations: >> >> class Foo { ... } >> >> Foo foo1 = ... //1 >> Foo foo2 = ... //2 >> foo1 = foo2; //3 >> >> *) What is the type parameter of Foo in (1) ? A disjunctive type having >> one component (of type MyException)? Or a straight type-parameter (non >> disjunctive) of type MyException? >> >> *) is (2) allowed? If so what is the semantics? Does the singleton type >> MyException get converted into a disjunctive type having just one >> component (of type MyException)? >> >> *) is (3) allowed? If so, depending on the semantics you choose for (1) >> and (2), aren't we (indirectly perhaps) already supporting a form of >> 'covariance', as we assume that C <: C because E<: throws >> E ? If so, what are the consequences of these subtyping rule? >> >> Maurizio >> >> > you can also add: > > Foo foo3 = ... > and > Foo foo4 = ... > Uhmm - I don't think the first is legal; it's like '? extends ? extends String'; I think that the argument of a wildcard should be a *type* and not another type-argument. Of course, the same objection could (in principle) be applied to 'throws'. Maurizio > And please remember that use-site variance (i.e ? extends/super) is > something that is not easy to grasp, > only few of my students understand it correctly. Declaration site > variance seems easier. > > R?mi > > From neal at gafter.com Wed Jun 9 07:10:06 2010 From: neal at gafter.com (Neal Gafter) Date: Wed, 9 Jun 2010 07:10:06 -0700 Subject: Exception transparency In-Reply-To: <4C0F67BF.5050407@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> <4C0F4F94.6050100@oracle.com> <4C0F67BF.5050407@oracle.com> Message-ID: On Wed, Jun 9, 2010 at 3:06 AM, Maurizio Cimadamore < maurizio.cimadamore at oracle.com> wrote: > To be clearer, what I mean is, given the following declarations: > > class Foo { ... } > > Foo foo1 = ... //1 > Foo foo2 = ... //2 > foo1 = foo2; //3 > > *) What is the type parameter of Foo in (1) ? A disjunctive type having one > component (of type MyException)? Or a straight type-parameter (non > disjunctive) of type MyException? > If you're asking me, then I'd say those should be defined as being the same thing. > *) is (2) allowed? If so what is the semantics? Does the singleton type > MyException get converted into a disjunctive type having just one component > (of type MyException)? > Or vice versa (they mean the same thing). Or to put it another way, my suggestion is that "throws" doesn't mean anything to the type system, it is just a syntactic mechanism to disambiguate certain syntactic constructs in which disjuctive type arguments (more or fewer than one) are used. From scolebourne at joda.org Thu Jun 10 05:57:47 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 10 Jun 2010 13:57:47 +0100 Subject: Exception transparency - lone throws (no checked exceptions) Message-ID: I wanted to write up this possible alternative to exception transparency - "lone throws". This is a relatively informal description for now to express the concept. Proposal -------------------- This is a simple proposal to permit a new form of throws clause on a method definition. The syntax is "throws" with no exception type ("lone throws"). For example: interface Block { public void invoke(T element) throws; } A method using this syntax is permitted to throw any Throwable without declaring which explicitly: class MyBlock implements Block { public void invoke(String element) throws { new File(element).getCanonicalFile().delete(); } } In the example, the code can throw IOException, but we don't declare it in the method signature - just the fact that the method can throw anything (checked or unchecked). On the receiving side, the compiler rules for exception catching are changed such that if the total set of exception types that a block of code can throw includes "lone throws", then the compiler will permit any checked exception to be caught in the catch block: try { MyBlock b = new MyBlock(); b.invoke("C:\README.txt"); } catch (IOException ex) { ... } In the example, the IOException can be caught, because the invoke method declares "lone throws" (normally it can't be caught unless the block declares it actually throws IOException) Extending this to lambdas, I propose that all function types implicitly specify "lone throws": #void(String) This example is equivalent to the Block interface above - the "lone throws" is implied. Here is the forEach example using such a function type: public forEach(#void(T) block) throws; Any exception thrown by the passed-in block can flow-out of the forEach method. Comparisons: -------------------- Strawman: #void(String) throws IOException public forEach(#void(T) throws E block) throws E; interface Block { public void invoke(T element) throws E; } public forEach(Block block) throws E; Lone throws: #void(String) public forEach(#void(T) block) throws; interface Block { public void invoke(T element) throws; } public forEach(Block block) throws; Bytecode: -------------------- Since checked exceptions are a compile-level construct, there are no byte-code changes for standard method code. However, there is an open question as to what the method signature should be in bytecode. Options include: a) declare it as Throwable b) declare it as a new supertype of Throwable c) add a marker flag that indicates it can throw the special any exception concept d) don't add anything to the signature (however, it would then not be possible to catch checked exceptions thrown by "lone throws") Comment: -------------------- I believe that this approach provides exception transparency. I believe that this approach is easy to specify and implement. (No disjunction types or interactions with generics that I can see) I believe that this approach is easy to learn. This approach results in a lot simpler syntax for function types, as there is no longer a need to declare exceptions. This may open up new syntax choices. This approach results in a lot simpler syntax for exception transparent methods. There is no "follow this pattern of boilerplate code with throws E twice in generics and also in the throws clause" - instead, you just add one keyword. Current checked exceptions are maintained, however users have the choice to effectively turn them off. Given many APIs already do this today (by wrapping checked exceptions in unchecked) this would probably be used beyond just lambdas. (Checked exceptions remain a religious issue for some - this change offers teams a choice as to how they are handled.) Reinier's sort/TreeSet example is fine and simpler (ignoring the fact that Set can't be changed in a backwards incompatible way): Set: public boolean add(T t) throws; Collections: public static void sort(List a, #int(T, T) c) throws { ... } The approach is less powerful. Some type-information is lost, and it is not possible to write exception filtering lambdas that remain exception-type-safe. My opinion is that these are edge cases. My opinion is that it is easy to get caught up in additional type-information and type-safety, but Java is so verbose already that the impact is necessarily negative. By choosing to reduce the level of type-information in the system on this occasion, the end-result is a whole lot simpler to understand, and more in tune with how many larger open source projects use exceptions today (ie. wrapping any checked exceptions). Options: -------------------- One option is to make every method that receives a function type as a parameter be a "lone throws" method automatically. There is no backwards compatibilty issue, as such methods don't exist today. This option has the advantage that developers don't need to know anything about exception transparency wrt lambdas. This feels like an unecessary extra rule to learn however. Another option is to allow "lone throws" at the class level. This would set all methods in the class to be "lone throws", essentially providing a quick way to alter checked exception behaviour for those teams that choose. I suspect this would be popular. There may be a role for a catch clause that doesn't specify the exception type. This would effectively 'remove' the "lone throws" from the set of exceptions thrown by the block, leaving just the exceptions declared in standard method signatures. This would provide the ability to wrap these in a RuntimeException or similar if desired. This needs more study to determine its usefulness. Stephen From peter.levart at marand.si Thu Jun 10 06:30:48 2010 From: peter.levart at marand.si (Peter Levart) Date: Thu, 10 Jun 2010 15:30:48 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: <201006101530.48913.peter.levart@marand.si> Hello Stephen, Interesting proposal. You don't specify what happens if code in a method calls a method with "lone throws" but doesn't catch anything or catches only some exceptions (but not all Throwables). Does the calling method have to declare "lone throws" too? interface Block { public void invoke(T element) throws; } class MyBlock implements Block { public void invoke(String element) throws { new File(element).getCanonicalFile().delete(); } } void myMethod() { // ?? do we have to declare "lone throws" here? try { MyBlock b = new MyBlock(); b.invoke("C:\README.txt"); } catch (SQLException ex) { // will not be thrown from MyBlock.invoke anyway... ... } } If not, does that mean that "sneaky" thown exceptions can be thrown by such methods? Regards, Peter From peter.levart at marand.si Thu Jun 10 06:37:45 2010 From: peter.levart at marand.si (Peter Levart) Date: Thu, 10 Jun 2010 15:37:45 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <201006101530.48913.peter.levart@marand.si> References: <201006101530.48913.peter.levart@marand.si> Message-ID: <201006101537.45585.peter.levart@marand.si> On 06/10/10, Peter Levart wrote: > Hello Stephen, > > Interesting proposal. You don't specify what happens if code in a method calls a method with "lone throws" but doesn't catch anything or catches only some exceptions (but not all Throwables). Does the calling method have to declare "lone throws" too? > > interface Block { > public void invoke(T element) throws; > } > > class MyBlock implements Block { > public void invoke(String element) throws { > new File(element).getCanonicalFile().delete(); > } > } > > > void myMethod() { // ?? do we have to declare "lone throws" here? > try { > MyBlock b = new MyBlock(); > b.invoke("C:\README.txt"); > } catch (SQLException ex) { // will not be thrown from MyBlock.invoke anyway... > ... > } > } > > > If not, does that mean that "sneaky" thown exceptions can be thrown by such methods? If yes, then I don't see any difference between "lone throws" declaration and "throws Exception" (or better "throws Throwable") declaration. > > > Regards, Peter > From scolebourne at joda.org Thu Jun 10 07:08:08 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 10 Jun 2010 15:08:08 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <201006101530.48913.peter.levart@marand.si> References: <201006101530.48913.peter.levart@marand.si> Message-ID: On 10 June 2010 14:30, Peter Levart wrote: > Interesting proposal. You don't specify what happens if code in a method calls a method with "lone throws" but doesn't catch anything or catches only some exceptions (but not all Throwables). Does the calling method have to declare "lone throws" too? I don't think that is practical - as you say, there would be no real difference to throws Throwable that way. So, here is how it would work: public void process() throws { throws new IOException(); } public void worker() { process(); // can catch IOException here if we want } public void master() { worker(); // cannot catch IOException here } The method worker() thus throws an IOException. Is this sneaky? Well, the initial throw isn't - effectively, the initial throw is indicating that anything may be thrown, and that the caller may catch anything. However, once thrown, it just keeps on going (as per RuntimeException). As such, the catch clause in master() won't compile - worker() doesn't specify lone throws, so the old checked exception rules apply. With this scheme, there may be a case for an alteration to the catch clause to allow it to be caught (which handles the increasingly common sneaky throws in general): public void master() { try { worker(); } catch (throws IOException ex) {} } Overall, the scheme is not quite the same as throws Throwable, nor is it the same as converting all checked exceptions to unchecked. Its between the extremes. Stephen From alex.blewitt at gmail.com Thu Jun 10 09:04:47 2010 From: alex.blewitt at gmail.com (Alex Blewitt) Date: Thu, 10 Jun 2010 17:04:47 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <201006101530.48913.peter.levart@marand.si> Message-ID: On 10 Jun 2010, at 15:08, Stephen Colebourne wrote: > So, here is how it would work: > > public void process() throws { > throws new IOException(); > } > > public void worker() { > process(); // can catch IOException here if we want > } > > public void master() { > worker(); // cannot catch IOException here > } How could this work in the face of subclasing? What if there's an interface or abstract method with a lone throws? What if there are two implementers which throw different (distinct) exceptions? What if I invoke that abstract method - what types am I expecting to catch? I also don't see how this works in the transitive closure case, with a calling b and b calling c (different files) and c throws IOException. At (first) compile time, the lone throws of a and b will have IOException added to the list. If you then change c to throw a new set of exceptions (say, adding java.sql.SQLException) then the throws of b and a need to be updated. With the line throws, the complier will have to compile potentially every call path to that point again. Alex From fweimer at bfk.de Thu Jun 10 09:26:47 2010 From: fweimer at bfk.de (Florian Weimer) Date: Thu, 10 Jun 2010 16:26:47 +0000 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: (Stephen Colebourne's message of "Thu\, 10 Jun 2010 13\:57\:47 +0100") References: Message-ID: <827hm6yhtk.fsf@mid.bfk.de> * Stephen Colebourne: > Current checked exceptions are maintained, however users have the > choice to effectively turn them off. Given many APIs already do this > today (by wrapping checked exceptions in unchecked) this would > probably be used beyond just lambdas. (Checked exceptions remain a > religious issue for some - this change offers teams a choice as to how > they are handled.) It makes checked exception leaks official. IIRC, there is already one such leak (some reflection method not properly wrapping checked exceptions), but a general, by-design loophole seems a different matter. However, I have to admit that the simplicity of this proposal is rather tempting. It would lead to many simplifications in existing code, usually without sacrificing clarity. It should even be possible to retrofit existing APIs such as Runnable. In that regard, it's different from "throws Throwable". -- Florian Weimer BFK edv-consulting GmbH http://www.bfk.de/ Kriegsstra?e 100 tel: +49-721-96201-1 D-76133 Karlsruhe fax: +49-721-96201-99 From scolebourne at joda.org Thu Jun 10 09:45:34 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 10 Jun 2010 17:45:34 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <201006101530.48913.peter.levart@marand.si> Message-ID: On 10 June 2010 17:04, Alex Blewitt wrote: > How could this work in the face of subclasing? What if there's an interface > or abstract method with a lone throws? What if there are two implementers > which throw different (distinct) exceptions? What if I invoke that abstract > method - what types am I expecting to catch? If the abstract method has "lone throws", then any caller is permitted to catch any exception, checked or not. Whether one is thrown is entirely up to the implementation of the abstract method. This is no different to today, where two implementations of the same abstract method can throw two different runtime exceptions. I should note that an overriding method cannot specify lone throws unless the superclass definition also specifies lone throws. > I also don't see how this works in the transitive closure case, with a > calling b and b calling c (different files) and c throws IOException. At > (first) compile time, the lone throws of a and b will have IOException added > to the list. > If you then change c to throw a new set of exceptions (say, adding > java.sql.SQLException) then the throws of b and a need to be updated. With > the line throws, the complier will have to compile potentially every call > path to that point again. I'm proposing that the lone throws of c simply permits it to throw any exception and effectively have them become unchecked (with the side-effect that any immediate caller of a method declared with lone throws can catch checked exceptions that previously it couldn't). The IOException in your example is not added to the method signature of c. Therefore, adding SQLException also makes no difference to callers, hence no re-compilation. Stephen From fweimer at bfk.de Thu Jun 10 10:03:02 2010 From: fweimer at bfk.de (Florian Weimer) Date: Thu, 10 Jun 2010 17:03:02 +0000 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: (Alex Blewitt's message of "Thu\, 10 Jun 2010 17\:04\:47 +0100") References: <201006101530.48913.peter.levart@marand.si> Message-ID: <82y6emx1kp.fsf@mid.bfk.de> * Alex Blewitt: > How could this work in the face of subclasing? I guess the goal is to put void close() throws; into java.io.Closeable, and still retain source-level compatibility. > What if I invoke that abstract method - what types am I expecting to > catch? When a block calls a throws method, checks for checked exceptions are disabled for this block. This is required because otherwise, existing client code would not compile anymore. A block which does not call such a method needs to use a catch-throws clause. Previously, it could not catch those exceptions, so there isn't a compatibility issue. -- Florian Weimer BFK edv-consulting GmbH http://www.bfk.de/ Kriegsstra?e 100 tel: +49-721-96201-1 D-76133 Karlsruhe fax: +49-721-96201-99 From reinier at zwitserloot.com Thu Jun 10 11:31:35 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Thu, 10 Jun 2010 20:31:35 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <827hm6yhtk.fsf@mid.bfk.de> References: <827hm6yhtk.fsf@mid.bfk.de> Message-ID: SneakyThrows is possible in the following ways: 1. Use any non-java JVM language, such as scala, jython, or JRuby. None of these languages have the concept 'checked exception', and neither does the JVM ('throws' lists are of course in class files, but as far as the JVM is concerned these are like annotations; the JVM does nothing with them other than let you introspect the list). You can sneakythrow anything using this tactic. In the end all you need to do is create a class file with a method that does not have a 'throws' list but which does use the "ATHROW" opcode to throw a checked exception. The class verifier nor the JVM runtime complains about doing this; this is why jython, scala, etc all can compile just fine without having the notion of checked exceptions. 2. Use MyClass.class.newInstance() - if MyClass's no-args constructor throws a checked exception it will be sneakythrown onwards. The only two you can't sneak with this are those checked exceptions that newInstance() itself declares; InstantiationException and IllegalAccessException. This is the reflection library oversight that Florian was talking about, I believe. It's also the only one; both Method and Constructor's invoke/newInstance methods solved this problem by wrapping exceptions into InvocationTargetException. It's only Class.newInstance() that doesn't do this. 3. Use mixed class files. Compile "public class Sneaky { public static void sneaky(Throwable t) { /* do nothing */ }}", then compile your code against this class file, but at runtime, recompile *ONLY* Sneaky.class with this: "public class Sneaky { public static void sneaky(Throwable t) throws Throwable { throw t; }}". The JVM doesn't check if a method's signature's addendums, such as the throws clauses, are still the same as they were when you compiled against the API, so this works just fine. In practice you'd have 2 sneakies, compile against the one, but use the other for runtime. 4. Generics: public class Sneaky { public static void sneaky(Throwable t) { Sneaky.sneaky0(t); } @SuppressWarnings("unchecked") private static void sneaky0(Throwable t) throws T { throw (T)t; } } As far as I know these are the only ways, but its clear that one simply cannot assume sneaky throws just don't happen; in particular assuming that mixed class files or class files compiled by alternative languages never happen is a bad idea. Stephen: I wouldn't particularly mind your proposal, personally, but it's effectively aborting the checked exception experiment. I'm okay with it (heck, I tossed @SneakyThrows in lombok for a reason!) but from my experiences with @SneakyThrows, there are lots and lots of java programmers that have been ingrained with the notion that checked exceptions are what keeps the world from imploding and will vehemently fight for them. Just a friendly heads up :) There's an alternative implementation which is based on explicitly stating the types you'd like to sneaky throw. I'm not quite sure how one would mesh this with the closure syntax, but it has the advantage of at least explicitly stating that, yes, I 'sneaky' throw IOException here. Lombok's SneakyThrow works like this: @SneakyThrows(IOException.class) public void foo() { throw new IOException(); } with just "@SneakyThrows" being a shorthand for @SneakyThrows(Throwable.class). In regards to closures I believe your proposal to be superior, if we go down this "let's give up on checked exceptions" path. However, your proposal has a flaw; I think it'll eventually boil down to simply getting rid of the concept of checked exceptions in general. It doesn't extend to SAMs, because in your system adding a "lone throws" changes the signature. You can add a lone throws to an interface method without breaking backwards compatibility as far as I can tell, but that's not the problem. The problem is this: *Existing* SAM classes that aren't updated to add a lone throws to their one abstract method CANNOT be created by way of the closure syntax, because closures have implicit lone throws. The compiler could perhaps be smart enough to realize the closure itself doesn't actually throw any checked exception and convert the closure to a SAM, taking care of a sizable chunk of use cases, but so far it looks like SAM conversion is a job for the JVM and not the compiler so I'm not sure how that would work. --Reinier Zwitserloot On Thu, Jun 10, 2010 at 6:26 PM, Florian Weimer wrote: > * Stephen Colebourne: > > > Current checked exceptions are maintained, however users have the > > choice to effectively turn them off. Given many APIs already do this > > today (by wrapping checked exceptions in unchecked) this would > > probably be used beyond just lambdas. (Checked exceptions remain a > > religious issue for some - this change offers teams a choice as to how > > they are handled.) > > It makes checked exception leaks official. IIRC, there is already one > such leak (some reflection method not properly wrapping checked > exceptions), but a general, by-design loophole seems a different > matter. > > However, I have to admit that the simplicity of this proposal is > rather tempting. It would lead to many simplifications in existing > code, usually without sacrificing clarity. It should even be possible > to retrofit existing APIs such as Runnable. In that regard, it's > different from "throws Throwable". > > -- > Florian Weimer > BFK edv-consulting GmbH http://www.bfk.de/ > Kriegsstra?e 100 tel: +49-721-96201-1 > D-76133 Karlsruhe fax: +49-721-96201-99 > > From alex.buckley at oracle.com Thu Jun 10 13:00:34 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 10 Jun 2010 13:00:34 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: <4C114462.9010209@oracle.com> Exception transparency is about abstracting over the types of checked exceptions that can be thrown by a method. This proposal is not about exception transparency. This proposal is about _ignoring_ the checked exceptions that can be thrown by a method. You say yourself: On 6/10/2010 5:57 AM, Stephen Colebourne wrote: > Current checked exceptions are maintained, however users have the > choice to effectively turn them off. So, this proposal is about allowing checked exceptions to be turned off. And turned off in a very specific way: as per your response to Peter, if the caller doesn't care to catch anything from a 'lone throws' method, then the "checked" exception propagates up the call chain, and may be caught somewhere via a new 'lone catch' mechanism. Basically the same as wrapping checked exceptions in RuntimeExceptions, as proposed by http://bugs.sun.com/view_bug.do?bug_id=6534270. While I'm not especially fond of all the machinery around exception transparency, exception transparency _is_ what we want to provide. Alex From alex.buckley at oracle.com Thu Jun 10 14:14:32 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 10 Jun 2010 14:14:32 -0700 Subject: Exception transparency In-Reply-To: <4C0F4F94.6050100@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> <4C0F4F94.6050100@oracle.com> Message-ID: <4C1155B8.4070306@oracle.com> On 6/9/2010 1:23 AM, Maurizio Cimadamore wrote: > On 09/06/10 00:44, Neal Gafter wrote: >> > Function e = #(IOException e){...}; > Hi > just to be clear, on which basis would you reject the above statement? I > guess your argument is that a lambda accepting an argument of type E > cannot be SAM-converted to an interface whose method accepts an argument > of type 'throws E' (and, more generally, that E and 'throws E' are not > interchangeable). Am I reading correctly? Neal points out that exception type arguments are not covariant: interface Function { void m(Function fe) throws E; } Function e = #(Function x){}; Function f = e; // Assume this is OK Function g = #(Function x){}; try { f.m(g); // f.m statically expects a Function, // so an actual param of Function is OK. // Or is it? f.m really expects a Function. catch (Exception ex) {} Nathan Bryant pointed this out too, albeit rather tersely. We had hoped to ban exception type parameters in many locations, such as a bare E for a method's formal parameter type, while allowing them in other locations, notably as exception type arguments _in_ formal parameter types. But _any_ appearance in a contravariant context is no good. Also, as Nathan said, exception type arguments are not contravariant either: Function e = #(Function x){ throw new SAXException(); }; Function f = e; // Clearly unsafe (And even if it was OK, contravariant exception type arguments couldn't appear in any covariant context, such as a return type, and thus their utility would be restricted, dual to Neal's comment.) Alex From neal at gafter.com Thu Jun 10 14:27:13 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 10 Jun 2010 14:27:13 -0700 Subject: Exception transparency In-Reply-To: <4C1155B8.4070306@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0D8A19.2000104@oracle.com> <4C0E42A9.8060100@oracle.com> <4C0ECA27.6050601@oracle.com> <4C0F4F94.6050100@oracle.com> <4C1155B8.4070306@oracle.com> Message-ID: On Thu, Jun 10, 2010 at 2:14 PM, Alex Buckley wrote: > ...exception type arguments are not covariant... > An API designer using SAMs can get the effect of covarance (i.e. a method will accept a lambda that throws fewer exceptions than the API declares) by using wildcards heavily. An API designer using function types gets the variance "for free" as function types are naturally covariant in the types of the thrown exceptions. From alessiostalla at gmail.com Thu Jun 10 14:34:15 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Thu, 10 Jun 2010 23:34:15 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <827hm6yhtk.fsf@mid.bfk.de> Message-ID: On Thu, Jun 10, 2010 at 8:31 PM, Reinier Zwitserloot wrote: > SneakyThrows is possible in the following ways: > > 1. Use any non-java JVM language, such as scala, jython, or JRuby. None of > these languages have the concept 'checked exception', and neither does the > JVM ('throws' lists are of course in class files, but as far as the JVM is > concerned these are like annotations; the JVM does nothing with them other > than let you introspect the list). You can sneakythrow anything using this > tactic. In the end all you need to do is create a class file with a method > that does not have a 'throws' list but which does use the "ATHROW" opcode to > throw a checked exception. The class verifier nor the JVM runtime complains > about doing this; this is why jython, scala, etc all can compile just fine > without having the notion of checked exceptions. > > 2. Use MyClass.class.newInstance() - if MyClass's no-args constructor throws > a checked exception it will be sneakythrown onwards. The only two you can't > sneak with this are those checked exceptions that newInstance() itself > declares; InstantiationException and IllegalAccessException. This is the > reflection library oversight that Florian was talking about, I believe. It's > also the only one; both Method and Constructor's invoke/newInstance methods > solved this problem by wrapping exceptions into InvocationTargetException. > It's only Class.newInstance() that doesn't do this. > > 3. Use mixed class files. Compile "public class Sneaky { public static void > sneaky(Throwable t) { /* do nothing */ }}", then compile your code against > this class file, but at runtime, recompile *ONLY* Sneaky.class with this: > "public class Sneaky { public static void sneaky(Throwable t) throws > Throwable { throw t; }}". The JVM doesn't check if a method's signature's > addendums, such as the throws clauses, are still the same as they were when > you compiled against the API, so this works just fine. In practice you'd > have 2 sneakies, compile against the one, but use the other for runtime. > > 4. Generics: > > public class Sneaky { > public static void sneaky(Throwable t) { > ?Sneaky.sneaky0(t); > } > > @SuppressWarnings("unchecked") > private static void sneaky0(Throwable t) throws T { > throw (T)t; > } > } > > > > As far as I know these are the only ways, but its clear that one simply > cannot assume sneaky throws just don't happen; in particular assuming that > mixed class files or class files compiled by alternative languages never > happen is a bad idea. > > Stephen: I wouldn't particularly mind your proposal, personally, but it's > effectively aborting the checked exception experiment. No, it's not. It doesn't forbid checked exceptions or change their semantics. It gives the power to an API writer to allow you to ignore checked exceptions coming from the API methods. API writers already have this power today: they just need to explicitly wrap checked exceptions in unchecked ones. Spring, for example, does this extensively. "lone throws" simply make this option easier. > I'm okay with it > (heck, I tossed @SneakyThrows in lombok for a reason!) but from my > experiences with @SneakyThrows, there are lots and lots of java programmers > that have been ingrained with the notion that checked exceptions are what > keeps the world from imploding and will vehemently fight for them. Just a > friendly heads up :) There's an alternative implementation which is based on > explicitly stating the types you'd like to sneaky throw. I'm not quite sure > how one would mesh this with the closure syntax, but it has the advantage of > at least explicitly stating that, yes, I 'sneaky' throw IOException here. > Lombok's SneakyThrow works like this: > > @SneakyThrows(IOException.class) > public void foo() { throw new IOException(); } > > with just "@SneakyThrows" being a shorthand for > @SneakyThrows(Throwable.class). In regards to closures I believe your > proposal to be superior, if we go down this "let's give up on checked > exceptions" path. > > However, your proposal has a flaw; I think it'll eventually boil down to > simply getting rid of the concept of checked exceptions in general. It > doesn't extend to SAMs, because in your system adding a "lone throws" > changes the signature. Right, but it changes it in such a way that old code will continue to work unchanged. If Runnable.run was changed to include throws; you could still call it without catching anything, as you do today. > You can add a lone throws to an interface method > without breaking backwards compatibility as far as I can tell, but that's > not the problem. The problem is this: *Existing* SAM classes that aren't > updated to add a lone throws to their one abstract method CANNOT be created > by way of the closure syntax, because closures have implicit lone throws. Then update the SAM classes, what's the problem if the update is backwards-compatible? Are you thinking about user classes here? In that case, the user is responsible to update the classes if she wants them to be compatible with closures that can throw exceptions. They would need to be updated anyway if the closure declared to throw checked exceptions while the SAM class didn't. Or am I missing something? Regards, Alessio Stalla From peter.levart at gmail.com Thu Jun 10 14:41:36 2010 From: peter.levart at gmail.com (Peter Levart) Date: Thu, 10 Jun 2010 23:41:36 +0200 Subject: Exception transparency In-Reply-To: <4C0E36C4.3030509@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> Message-ID: <201006102341.36713.peter.levart@marand.si> Hello Maurizio, What if compiler would track internally any type variable with Throwable bound in such a way that when used in any context except "throw" statement it would mean lub(X,Y,Z,...) as defined today but when used in throw statement it would mean X|Y|Z|... class Foo { void set(X x) {} } class A extends Exception {} class B extends Exception {} class Test { static Foo test(E e1, E e2) throws E { switch (new Random().nextInt(3)) { case 0: throw e1; case 1: throw e2; default: return new Foo(); } } public static void main(String args) { try { test(new A(), new B()).set(new Exception()); } catch (A a) {} catch (B b) {} } } Would that work? Would that be back compatible? Regards, Peter On Tuesday, June 08, 2010 02:25:40 pm Maurizio Cimadamore wrote: > On 08/06/10 13:13, Maurizio Cimadamore wrote: > > On 08/06/10 12:54, Peter Levart wrote: > >> On 06/08/10, Maurizio Cimadamore wrote: > >>>>> needs to guess any intentions where it will affect realistic code. > >>>> > >>>> Neal, > >>>> I have trouble to figure out an example of such rare places. > >>>> > >>>> Do you have an example of such code ? > >>> > >>> Could be this? > >>> > >>> class A extends Exception {} > >>> class B extends A {} > >>> class C extends A {} > >>> > >>> E choose(E e1, E e2) { ... } > >>> > >>> choose(new B(), new C()); //what is the inferred type for E??? > >>> > >>> In JDK 5/6 E is inferred to be A >>> extends Object& Comparable>>. In JDK 7 with the proposed new > >>> semantics for 'exception-bound' type-vars the inferred type would be > >>> something like A | A, which, I guess, would need to > >>> be rejected as an ill-formed type on the grounds of type-disjointness > >>> (A and A are not provably distinct). > >> > >> Are you suggesting to relax the rule that generic classes can not extend > >> Throwable? > > > > Good catch - my example is illegal; no incompatibility here. > > I tried harder ;-) : > > class Foo { void set(X x) {} } > > class A extends Exception {} > class B extends Exception {} > > class Test { > static Foo test(E e1, E e2){ return new > Foo(); } > > public static void main(String args) { > test(new A(), new B()).set(new Exception()); > } > } > > This compiles in JDK 5/6 (E inferred to be Exception); it fails to > compile under JDK 7 if we assume that type-variables with Exception > bound have a 'varadic' semantics; in fact in this case the type A|B > would be inferred. But this means that you cannot pass an Exception > where an A|B is expected. > > Maurizio > > > Maurizio > > > >> Peter > >> > >>> Maurizio From peter.levart at gmail.com Thu Jun 10 14:46:31 2010 From: peter.levart at gmail.com (Peter Levart) Date: Thu, 10 Jun 2010 23:46:31 +0200 Subject: Exception transparency (correction) In-Reply-To: <201006102341.36713.peter.levart@marand.si> References: <4C0D7344.2000903@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> Message-ID: <201006102346.31392.peter.levart@marand.si> On Thursday, June 10, 2010 11:41:36 pm Peter Levart wrote: > Hello Maurizio, > > What if compiler would track internally any type variable with Throwable > bound in such a way that when used in any context except "throw" > statement it would mean lub(X,Y,Z,...) as defined today but when used in > throw statement it would mean X|Y|Z|... Search/replace "throw statement" with "throws declaration" ... Regards From alex.buckley at oracle.com Thu Jun 10 14:48:02 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 10 Jun 2010 14:48:02 -0700 Subject: Exception transparency In-Reply-To: <201006102341.36713.peter.levart@marand.si> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> Message-ID: <4C115D92.8000602@oracle.com> I believe the short answer to this is "yes". Alex On 6/10/2010 2:41 PM, Peter Levart wrote: > Hello Maurizio, > > What if compiler would track internally any type variable with Throwable bound in such a way > that when used in any context except "throw" statement it would mean lub(X,Y,Z,...) as defined > today but when used in throw statement it would mean X|Y|Z|... > > class Foo { void set(X x) {} } > > class A extends Exception {} > > class B extends Exception {} > > class Test { > > static Foo test(E e1, E e2) throws E { > switch (new Random().nextInt(3)) { > case 0: throw e1; > case 1: throw e2; > default: return new Foo(); > } > } > > public static void main(String args) { > try { > test(new A(), new B()).set(new Exception()); > } > catch (A a) {} > catch (B b) {} > } > > } > > > Would that work? Would that be back compatible? > > Regards, Peter > > > On Tuesday, June 08, 2010 02:25:40 pm Maurizio Cimadamore wrote: >> On 08/06/10 13:13, Maurizio Cimadamore wrote: >>> On 08/06/10 12:54, Peter Levart wrote: >>>> On 06/08/10, Maurizio Cimadamore wrote: >>>>>>> needs to guess any intentions where it will affect realistic code. >>>>>> Neal, >>>>>> I have trouble to figure out an example of such rare places. >>>>>> >>>>>> Do you have an example of such code ? >>>>> Could be this? >>>>> >>>>> class A extends Exception {} >>>>> class B extends A {} >>>>> class C extends A {} >>>>> >>>>> E choose(E e1, E e2) { ... } >>>>> >>>>> choose(new B(), new C()); //what is the inferred type for E??? >>>>> >>>>> In JDK 5/6 E is inferred to be A>>>> extends Object& Comparable>>. In JDK 7 with the proposed new >>>>> semantics for 'exception-bound' type-vars the inferred type would be >>>>> something like A | A, which, I guess, would need to >>>>> be rejected as an ill-formed type on the grounds of type-disjointness >>>>> (A and A are not provably distinct). >>>> Are you suggesting to relax the rule that generic classes can not extend >>>> Throwable? >>> Good catch - my example is illegal; no incompatibility here. >> I tried harder ;-) : >> >> class Foo { void set(X x) {} } >> >> class A extends Exception {} >> class B extends Exception {} >> >> class Test { >> static Foo test(E e1, E e2){ return new >> Foo(); } >> >> public static void main(String args) { >> test(new A(), new B()).set(new Exception()); >> } >> } >> >> This compiles in JDK 5/6 (E inferred to be Exception); it fails to >> compile under JDK 7 if we assume that type-variables with Exception >> bound have a 'varadic' semantics; in fact in this case the type A|B >> would be inferred. But this means that you cannot pass an Exception >> where an A|B is expected. >> >> Maurizio >> >>> Maurizio >>> >>>> Peter >>>> >>>>> Maurizio > From scolebourne at joda.org Thu Jun 10 15:26:56 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 10 Jun 2010 23:26:56 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <4C114462.9010209@oracle.com> References: <4C114462.9010209@oracle.com> Message-ID: On 10 June 2010 21:00, Alex Buckley wrote: > Exception transparency is about abstracting over the types of checked > exceptions that can be thrown by a method. That statement appears to conflate two requirements. My understanding of the exception transparency requirement is to permit an exception thrown in a block of code (SAM/lambda) to transparently pass through the controlling method (that invokes the closure) and arrive back at the call-site as the same exception. AFAICT, this proposal achieves that. However, you appear to be raising the bar beyond the core requirement, by adding a separate requirement to be able to pick and choose which exceptions are thrown and which aren't. I fail to see as to why that is anything to do with /transparency/. I'd call that feature "generic exception control" or some other name - ie. a separate requirement. Its certainly a requirement/feature with power, and some would find it useful, but I claim that the cost far outweighs the uses. Another way to view it is the 80/20 rule - my proposal solves 80% of cases with 20% of the complexity. (actually its probably 98/2 rather than 80/20). > This proposal is not about exception transparency. This proposal is about > _ignoring_ the checked exceptions that can be thrown by a method. Yes, I have chosen to couch the proposal in a manner broader than just restricting it to the narrow problem of Project Lambda. I think thats a Good Thing. Reinier outlined 4 ways that this occurs today anyway, so this simply acknowledges reality. The proposal could be restricted to only applying to lambda function types and methods receiving them, but that would be more confusing and less helpful. > So, this proposal is about allowing checked exceptions to be turned off. And > turned off in a very specific way: as per your response to Peter, if the > caller doesn't care to catch anything from a 'lone throws' method, then the > "checked" exception propagates up the call chain, and may be caught > somewhere via a new 'lone catch' mechanism. Basically the same as wrapping > checked exceptions in RuntimeExceptions, as proposed by > http://bugs.sun.com/view_bug.do?bug_id=6534270. That proposal involves wrapping in RuntimeException - I don't support that at the language level. Plus, it is unnecessary - the JVM permits throwing any exception. Checked exceptions are mostly just a figment of the compiler's imagination. This proposal simply takes away a restriction in a controlled manner, bringing Java closer to every other language on the planet. > While I'm not especially fond of all the machinery around exception > transparency, exception transparency _is_ what we want to provide. And the proposal provides it. In my view, you are following an avenue to achieve a second requirement.One that is more powerful, but one that has too high a price. Seriously - please just look at what the strawman proposal looks like in this area!! Java overstepped the bounds of acceptable type-information with wildcards. The strawman exception transparency is type-signature noise to the extent of wildcards mark 2 ! Stephen From scolebourne at joda.org Thu Jun 10 15:41:08 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 10 Jun 2010 23:41:08 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <827hm6yhtk.fsf@mid.bfk.de> Message-ID: On 10 June 2010 19:31, Reinier Zwitserloot wrote: > Stephen: I wouldn't particularly mind your proposal, personally, but it's > effectively aborting the checked exception experiment. As Alessio said, it doesn't go that far. It doesn't break checked exceptions, but formalizes how they can be worked around. And yes, many Java developers do believe in checked exceptions. This softly, softly approach would provide a good way to wean them off the drug. > There's an alternative implementation which is based on > explicitly stating the types you'd like to sneaky throw. I'm not quite sure > how one would mesh this with the closure syntax, but it has the advantage of > at least explicitly stating that, yes, I 'sneaky' throw IOException here. While possible, a major goal was that function type signatures should not include exceptions. So I rejected this option. > However, your proposal has a flaw; I think it'll eventually boil down to > simply getting rid of the concept of checked exceptions in general. It > doesn't extend to SAMs, because in your system adding a "lone throws" > changes the signature. You can add a lone throws to an interface method > without breaking backwards compatibility as far as I can tell, but that's > not the problem. The problem is this: *Existing* SAM classes that aren't > updated to add a lone throws to their one abstract method CANNOT be created > by way of the closure syntax, because closures have implicit lone throws. During compilation, the compiler knows whether the block is being converted to a SAM or directly to a function type. In both cases, the block must meet the throwable requirements of the method signature being implemented. For function types, this always has a lone throws, so anything can be thrown. For SAMs, the compiler simply evaluates the single SAM method and either applies the standard checked throwable rules or the lone throws rules depending on whether the SAM has lone throws declared. The only problem here is that a SAM interface that isn't updated with a lone throws doesn't support exception transparency. But that is a relatively Good Thing as that is probably exactly what you want. (A SAM looks like existing Java, so you wouldn't want it to magically become exception transparent - it takes a developer decision to make it transparent for a SAM). Note that this also helps distinguish a SAM from a function type. I also don't think this point is any different from the strawman, as each SAM interface there must be updated with pig-ugly boilerplate to support the proposed scheme. Stephen From forax at univ-mlv.fr Thu Jun 10 15:50:02 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Fri, 11 Jun 2010 00:50:02 +0200 Subject: Exception transparency In-Reply-To: <4C115D92.8000602@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> <4C115D92.8000602@oracle.com> Message-ID: <4C116C1A.8050909@univ-mlv.fr> Le 10/06/2010 23:48, Alex Buckley a ?crit : > I believe the short answer to this is "yes". > > Alex > Please, I don't want to explain why //1 and //2 aren't equivalent. class Test { static E test(E e1, E e2) { return (Math.random()< 0.5)? e1: e2; } static void test(E e1, E e2) throws E { throw (Math.random()< 0.5)? e1: e2; } public void main(String[] args) { throw test1(new A(), new B()); //1 test2(new A(), new B()); //2 } } R?mi > On 6/10/2010 2:41 PM, Peter Levart wrote: > >> Hello Maurizio, >> >> What if compiler would track internally any type variable with Throwable bound in such a way >> that when used in any context except "throw" statement it would mean lub(X,Y,Z,...) as defined >> today but when used in throw statement it would mean X|Y|Z|... >> >> class Foo { void set(X x) {} } >> >> class A extends Exception {} >> >> class B extends Exception {} >> >> class Test { >> >> static Foo test(E e1, E e2) throws E { >> switch (new Random().nextInt(3)) { >> case 0: throw e1; >> case 1: throw e2; >> default: return new Foo(); >> } >> } >> >> public static void main(String args) { >> try { >> test(new A(), new B()).set(new Exception()); >> } >> catch (A a) {} >> catch (B b) {} >> } >> >> } >> >> >> Would that work? Would that be back compatible? >> >> Regards, Peter >> >> >> On Tuesday, June 08, 2010 02:25:40 pm Maurizio Cimadamore wrote: >> >>> On 08/06/10 13:13, Maurizio Cimadamore wrote: >>> >>>> On 08/06/10 12:54, Peter Levart wrote: >>>> >>>>> On 06/08/10, Maurizio Cimadamore wrote: >>>>> >>>>>>>> needs to guess any intentions where it will affect realistic code. >>>>>>>> >>>>>>> Neal, >>>>>>> I have trouble to figure out an example of such rare places. >>>>>>> >>>>>>> Do you have an example of such code ? >>>>>>> >>>>>> Could be this? >>>>>> >>>>>> class A extends Exception {} >>>>>> class B extends A {} >>>>>> class C extends A {} >>>>>> >>>>>> E choose(E e1, E e2) { ... } >>>>>> >>>>>> choose(new B(), new C()); //what is the inferred type for E??? >>>>>> >>>>>> In JDK 5/6 E is inferred to be A>>>>> extends Object& Comparable>>. In JDK 7 with the proposed new >>>>>> semantics for 'exception-bound' type-vars the inferred type would be >>>>>> something like A | A, which, I guess, would need to >>>>>> be rejected as an ill-formed type on the grounds of type-disjointness >>>>>> (A and A are not provably distinct). >>>>>> >>>>> Are you suggesting to relax the rule that generic classes can not extend >>>>> Throwable? >>>>> >>>> Good catch - my example is illegal; no incompatibility here. >>>> >>> I tried harder ;-) : >>> >>> class Foo { void set(X x) {} } >>> >>> class A extends Exception {} >>> class B extends Exception {} >>> >>> class Test { >>> static Foo test(E e1, E e2){ return new >>> Foo(); } >>> >>> public static void main(String args) { >>> test(new A(), new B()).set(new Exception()); >>> } >>> } >>> >>> This compiles in JDK 5/6 (E inferred to be Exception); it fails to >>> compile under JDK 7 if we assume that type-variables with Exception >>> bound have a 'varadic' semantics; in fact in this case the type A|B >>> would be inferred. But this means that you cannot pass an Exception >>> where an A|B is expected. >>> >>> Maurizio >>> >>> >>>> Maurizio >>>> >>>> >>>>> Peter >>>>> >>>>> >>>>>> Maurizio >>>>>> >> > From alex.buckley at oracle.com Thu Jun 10 16:13:55 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 10 Jun 2010 16:13:55 -0700 Subject: Exception transparency In-Reply-To: <4C116C1A.8050909@univ-mlv.fr> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> <4C115D92.8000602@oracle.com> <4C116C1A.8050909@univ-mlv.fr> Message-ID: <4C1171B3.40604@oracle.com> On 6/10/2010 3:50 PM, R?mi Forax wrote: > Please, I don't want to explain why //1 and //2 aren't equivalent. > > class Test { > static E test(E e1, E e2) { > return (Math.random()< 0.5)? e1: e2; > } > > > static void test(E e1, E e2) throws E { > throw (Math.random()< 0.5)? e1: e2; > } > > public void main(String[] args) { > throw test1(new A(), new B()); //1 > > test2(new A(), new B()); //2 > } > } A throws clause is already implicitly understood as disjunctive. No-one is surprised if you say a method "throws A or B". That's what 'void test' as invoked by //2 _should do_. People _will_ be surprised if you say the 'E test' method "returns A or B". For this reason, an exception type parameter that may be inferred as disjunctive may only be used as a type argument or in a throws or catch clause; your E is a bare return type. Currently we're thinking that E is _not_ an exception type parameter; it's a normal type parameter that would continue to be inferred as Exception for //1. Declare '' to get proper disjunctive inference, but then you can only throw, not return, E. Obviously we would be better off if type parameters that extend checked exception types had not been allowed when generics came in. Alex From maurizio.cimadamore at oracle.com Thu Jun 10 16:22:55 2010 From: maurizio.cimadamore at oracle.com (maurizio cimadamore) Date: Fri, 11 Jun 2010 00:22:55 +0100 Subject: Exception transparency In-Reply-To: <4C115D92.8000602@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> <4C115D92.8000602@oracle.com> Message-ID: <4C1173CF.2050506@oracle.com> On 10/06/2010 22:48, Alex Buckley wrote: > I believe the short answer to this is "yes". > I agree that would work - on the other hand I think that the extra 'throws' keyword at declaration site is helpful in remembering the special nature of this kind of type-variable; as such, using that syntax (rather than letting the compiler to figure out everything on its own) has its own advantage. Maurizio > Alex > > On 6/10/2010 2:41 PM, Peter Levart wrote: > >> Hello Maurizio, >> >> What if compiler would track internally any type variable with Throwable bound in such a way >> that when used in any context except "throw" statement it would mean lub(X,Y,Z,...) as defined >> today but when used in throw statement it would mean X|Y|Z|... >> >> class Foo { void set(X x) {} } >> >> class A extends Exception {} >> >> class B extends Exception {} >> >> class Test { >> >> static Foo test(E e1, E e2) throws E { >> switch (new Random().nextInt(3)) { >> case 0: throw e1; >> case 1: throw e2; >> default: return new Foo(); >> } >> } >> >> public static void main(String args) { >> try { >> test(new A(), new B()).set(new Exception()); >> } >> catch (A a) {} >> catch (B b) {} >> } >> >> } >> >> >> Would that work? Would that be back compatible? >> >> Regards, Peter >> >> >> On Tuesday, June 08, 2010 02:25:40 pm Maurizio Cimadamore wrote: >> >>> On 08/06/10 13:13, Maurizio Cimadamore wrote: >>> >>>> On 08/06/10 12:54, Peter Levart wrote: >>>> >>>>> On 06/08/10, Maurizio Cimadamore wrote: >>>>> >>>>>>>> needs to guess any intentions where it will affect realistic code. >>>>>>>> >>>>>>> Neal, >>>>>>> I have trouble to figure out an example of such rare places. >>>>>>> >>>>>>> Do you have an example of such code ? >>>>>>> >>>>>> Could be this? >>>>>> >>>>>> class A extends Exception {} >>>>>> class B extends A {} >>>>>> class C extends A {} >>>>>> >>>>>> E choose(E e1, E e2) { ... } >>>>>> >>>>>> choose(new B(), new C()); //what is the inferred type for E??? >>>>>> >>>>>> In JDK 5/6 E is inferred to be A>>>>> extends Object& Comparable>>. In JDK 7 with the proposed new >>>>>> semantics for 'exception-bound' type-vars the inferred type would be >>>>>> something like A | A, which, I guess, would need to >>>>>> be rejected as an ill-formed type on the grounds of type-disjointness >>>>>> (A and A are not provably distinct). >>>>>> >>>>> Are you suggesting to relax the rule that generic classes can not extend >>>>> Throwable? >>>>> >>>> Good catch - my example is illegal; no incompatibility here. >>>> >>> I tried harder ;-) : >>> >>> class Foo { void set(X x) {} } >>> >>> class A extends Exception {} >>> class B extends Exception {} >>> >>> class Test { >>> static Foo test(E e1, E e2){ return new >>> Foo(); } >>> >>> public static void main(String args) { >>> test(new A(), new B()).set(new Exception()); >>> } >>> } >>> >>> This compiles in JDK 5/6 (E inferred to be Exception); it fails to >>> compile under JDK 7 if we assume that type-variables with Exception >>> bound have a 'varadic' semantics; in fact in this case the type A|B >>> would be inferred. But this means that you cannot pass an Exception >>> where an A|B is expected. >>> >>> Maurizio >>> >>> >>>> Maurizio >>>> >>>> >>>>> Peter >>>>> >>>>> >>>>>> Maurizio >>>>>> >> > From neal at gafter.com Thu Jun 10 16:25:37 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 10 Jun 2010 16:25:37 -0700 Subject: Exception transparency In-Reply-To: <4C116C1A.8050909@univ-mlv.fr> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> <4C115D92.8000602@oracle.com> <4C116C1A.8050909@univ-mlv.fr> Message-ID: R?mi- I agree. I mean, I don't care whether or not you have to explain it (;-), but I think both //1 and //2 should be treated as throwing checked exception types A|B (not their lub()), even though that would be a change from the current behavior. In theory, this is not backward compatible, because the following program, which is specified as legal today, would become illegal under the change. But due to a previously unreported compiler bug (I'm using javac version 1.6.0_07), it won't compile anyway. I'll be surprised if anyone can find production code that compiles today and would break under a hypothetical change to lub() for all type parameters that extend Throwable or a subtype. *interface I {} class Common extends Exception {} class A extends Common implements I {} class B extends Common implements I {} public class Main { static E choose(E e1, E e2) { return (Math.random() < 0.5) ? e1 : e2; } public static void main(String[] args) { try { throw choose(new A(), new B()); } catch (A a) { // SE 6 error (due to compiler bug) } catch (B a) { } catch (Common a) { // proposed SE 7 error: no uncaught Common thrown } } } * Cheers, Neal On Thu, Jun 10, 2010 at 3:50 PM, R?mi Forax wrote: > Le 10/06/2010 23:48, Alex Buckley a ?crit : > > I believe the short answer to this is "yes". > > > > Alex > > > > Please, I don't want to explain why //1 and //2 aren't equivalent. > > class Test { > static E test(E e1, E e2) { > return (Math.random()< 0.5)? e1: e2; > } > > > static void test(E e1, E e2) throws E { > throw (Math.random()< 0.5)? e1: e2; > } > > public void main(String[] args) { > throw test1(new A(), new B()); //1 > > test2(new A(), new B()); //2 > } > } > > R?mi > > > > On 6/10/2010 2:41 PM, Peter Levart wrote: > > > >> Hello Maurizio, > >> > >> What if compiler would track internally any type variable with Throwable > bound in such a way > >> that when used in any context except "throw" statement it would mean > lub(X,Y,Z,...) as defined > >> today but when used in throw statement it would mean X|Y|Z|... > >> > >> class Foo { void set(X x) {} } > >> > >> class A extends Exception {} > >> > >> class B extends Exception {} > >> > >> class Test { > >> > >> static Foo test(E e1, E e2) throws E { > >> switch (new Random().nextInt(3)) { > >> case 0: throw e1; > >> case 1: throw e2; > >> default: return new Foo(); > >> } > >> } > >> > >> public static void main(String args) { > >> try { > >> test(new A(), new B()).set(new Exception()); > >> } > >> catch (A a) {} > >> catch (B b) {} > >> } > >> > >> } > >> > >> > >> Would that work? Would that be back compatible? > >> > >> Regards, Peter > >> > >> > >> On Tuesday, June 08, 2010 02:25:40 pm Maurizio Cimadamore wrote: > >> > >>> On 08/06/10 13:13, Maurizio Cimadamore wrote: > >>> > >>>> On 08/06/10 12:54, Peter Levart wrote: > >>>> > >>>>> On 06/08/10, Maurizio Cimadamore wrote: > >>>>> > >>>>>>>> needs to guess any intentions where it will affect realistic code. > >>>>>>>> > >>>>>>> Neal, > >>>>>>> I have trouble to figure out an example of such rare places. > >>>>>>> > >>>>>>> Do you have an example of such code ? > >>>>>>> > >>>>>> Could be this? > >>>>>> > >>>>>> class A extends Exception {} > >>>>>> class B extends A {} > >>>>>> class C extends A {} > >>>>>> > >>>>>> E choose(E e1, E e2) { ... } > >>>>>> > >>>>>> choose(new B(), new C()); //what is the inferred type for E??? > >>>>>> > >>>>>> In JDK 5/6 E is inferred to be A >>>>>> extends Object& Comparable>>. In JDK 7 with the proposed new > >>>>>> semantics for 'exception-bound' type-vars the inferred type would be > >>>>>> something like A | A, which, I guess, would need > to > >>>>>> be rejected as an ill-formed type on the grounds of > type-disjointness > >>>>>> (A and A are not provably distinct). > >>>>>> > >>>>> Are you suggesting to relax the rule that generic classes can not > extend > >>>>> Throwable? > >>>>> > >>>> Good catch - my example is illegal; no incompatibility here. > >>>> > >>> I tried harder ;-) : > >>> > >>> class Foo { void set(X x) {} } > >>> > >>> class A extends Exception {} > >>> class B extends Exception {} > >>> > >>> class Test { > >>> static Foo test(E e1, E e2){ return new > >>> Foo(); } > >>> > >>> public static void main(String args) { > >>> test(new A(), new B()).set(new Exception()); > >>> } > >>> } > >>> > >>> This compiles in JDK 5/6 (E inferred to be Exception); it fails to > >>> compile under JDK 7 if we assume that type-variables with Exception > >>> bound have a 'varadic' semantics; in fact in this case the type A|B > >>> would be inferred. But this means that you cannot pass an Exception > >>> where an A|B is expected. > >>> > >>> Maurizio > >>> > >>> > >>>> Maurizio > >>>> > >>>> > >>>>> Peter > >>>>> > >>>>> > >>>>>> Maurizio > >>>>>> > >> > > > > > From maurizio.cimadamore at oracle.com Thu Jun 10 16:36:02 2010 From: maurizio.cimadamore at oracle.com (maurizio cimadamore) Date: Fri, 11 Jun 2010 00:36:02 +0100 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> <4C115D92.8000602@oracle.com> <4C116C1A.8050909@univ-mlv.fr> Message-ID: <4C1176E2.9000705@oracle.com> > But due to a previously unreported compiler bug (I'm using javac version > 1.6.0_07), it won't compile anyway. I'll be surprised if anyone can find > production code that compiles today and would break under a hypothetical > change to lub() for all type parameters that extend Throwable or a subtype. > The program I posted earlier in this thread compiles correctly under jdk 6 and would fail with the proposed extension of dropping lub() in favor of disjunctive types for type-variables extending Throwable. It's clearly not production code, but it's something. Maurizio From neal at gafter.com Thu Jun 10 16:52:27 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 10 Jun 2010 16:52:27 -0700 Subject: Exception transparency In-Reply-To: <4C1176E2.9000705@oracle.com> References: <4C0D7344.2000903@oracle.com> <4C0E33FC.7060800@oracle.com> <4C0E36C4.3030509@oracle.com> <201006102341.36713.peter.levart@marand.si> <4C115D92.8000602@oracle.com> <4C116C1A.8050909@univ-mlv.fr> <4C1176E2.9000705@oracle.com> Message-ID: On Thu, Jun 10, 2010 at 4:36 PM, maurizio cimadamore < maurizio.cimadamore at oracle.com> wrote: > But due to a previously unreported compiler bug (I'm using javac version >> 1.6.0_07), it won't compile anyway. I'll be surprised if anyone can find >> production code that compiles today and would break under a hypothetical >> change to lub() for all type parameters that extend Throwable or a >> subtype. >> >> > The program I posted earlier in this thread compiles correctly under jdk 6 > and would fail with the proposed extension of dropping lub() in favor of > disjunctive types for type-variables extending Throwable. It's clearly not > production code, but it's something. Agreed: you can't make much of a change without breaking some hypothetical program. But breakage that is only hypothetical isn't much to worry about. I believe "extends Exception" and its ilk is more than enough of a hint to the programmer what is intended without the addition of a further "throws" keyword in the type parameter. From reinier at zwitserloot.com Thu Jun 10 18:39:47 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Fri, 11 Jun 2010 03:39:47 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <827hm6yhtk.fsf@mid.bfk.de> Message-ID: Where did I claim it removes the ability to _use_ checked exceptions? Offering a way to opt out of them is more than enough to irk some wraths. Updating SAM classes is obviously a big problem. There's are a few bajillion SAM classes out there in the greater java community, and oracle can only update those in rt.jar. With the update to the SAM class, there's also a semantic difference, which may be important. I mentioned it in my more detailed proposal (folks presuming that if a block containing X statements throws checked exception of type E, that only the method calls to methods declaring throws E could possibly be the source of that exception, which ceases to be true in the face of lone throws) - but it's much bigger issue when lone throws is legal anywhere. --Reinier Zwitserloot On Thu, Jun 10, 2010 at 11:34 PM, Alessio Stalla wrote: > On Thu, Jun 10, 2010 at 8:31 PM, Reinier Zwitserloot > wrote: > > SneakyThrows is possible in the following ways: > > > > 1. Use any non-java JVM language, such as scala, jython, or JRuby. None > of > > these languages have the concept 'checked exception', and neither does > the > > JVM ('throws' lists are of course in class files, but as far as the JVM > is > > concerned these are like annotations; the JVM does nothing with them > other > > than let you introspect the list). You can sneakythrow anything using > this > > tactic. In the end all you need to do is create a class file with a > method > > that does not have a 'throws' list but which does use the "ATHROW" opcode > to > > throw a checked exception. The class verifier nor the JVM runtime > complains > > about doing this; this is why jython, scala, etc all can compile just > fine > > without having the notion of checked exceptions. > > > > 2. Use MyClass.class.newInstance() - if MyClass's no-args constructor > throws > > a checked exception it will be sneakythrown onwards. The only two you > can't > > sneak with this are those checked exceptions that newInstance() itself > > declares; InstantiationException and IllegalAccessException. This is the > > reflection library oversight that Florian was talking about, I believe. > It's > > also the only one; both Method and Constructor's invoke/newInstance > methods > > solved this problem by wrapping exceptions into > InvocationTargetException. > > It's only Class.newInstance() that doesn't do this. > > > > 3. Use mixed class files. Compile "public class Sneaky { public static > void > > sneaky(Throwable t) { /* do nothing */ }}", then compile your code > against > > this class file, but at runtime, recompile *ONLY* Sneaky.class with this: > > "public class Sneaky { public static void sneaky(Throwable t) throws > > Throwable { throw t; }}". The JVM doesn't check if a method's signature's > > addendums, such as the throws clauses, are still the same as they were > when > > you compiled against the API, so this works just fine. In practice you'd > > have 2 sneakies, compile against the one, but use the other for runtime. > > > > 4. Generics: > > > > public class Sneaky { > > public static void sneaky(Throwable t) { > > Sneaky.sneaky0(t); > > } > > > > @SuppressWarnings("unchecked") > > private static void sneaky0(Throwable t) throws T { > > throw (T)t; > > } > > } > > > > > > > > As far as I know these are the only ways, but its clear that one simply > > cannot assume sneaky throws just don't happen; in particular assuming > that > > mixed class files or class files compiled by alternative languages never > > happen is a bad idea. > > > > Stephen: I wouldn't particularly mind your proposal, personally, but it's > > effectively aborting the checked exception experiment. > > No, it's not. It doesn't forbid checked exceptions or change their > semantics. It gives the power to an API writer to allow you to ignore > checked exceptions coming from the API methods. API writers already > have this power today: they just need to explicitly wrap checked > exceptions in unchecked ones. Spring, for example, does this > extensively. "lone throws" simply make this option easier. > > > I'm okay with it > > (heck, I tossed @SneakyThrows in lombok for a reason!) but from my > > experiences with @SneakyThrows, there are lots and lots of java > programmers > > that have been ingrained with the notion that checked exceptions are what > > keeps the world from imploding and will vehemently fight for them. Just a > > friendly heads up :) There's an alternative implementation which is based > on > > explicitly stating the types you'd like to sneaky throw. I'm not quite > sure > > how one would mesh this with the closure syntax, but it has the advantage > of > > at least explicitly stating that, yes, I 'sneaky' throw IOException here. > > Lombok's SneakyThrow works like this: > > > > @SneakyThrows(IOException.class) > > public void foo() { throw new IOException(); } > > > > with just "@SneakyThrows" being a shorthand for > > @SneakyThrows(Throwable.class). In regards to closures I believe your > > proposal to be superior, if we go down this "let's give up on checked > > exceptions" path. > > > > However, your proposal has a flaw; I think it'll eventually boil down to > > simply getting rid of the concept of checked exceptions in general. It > > doesn't extend to SAMs, because in your system adding a "lone throws" > > changes the signature. > > Right, but it changes it in such a way that old code will continue to > work unchanged. If Runnable.run was changed to include throws; you > could still call it without catching anything, as you do today. > > > You can add a lone throws to an interface method > > without breaking backwards compatibility as far as I can tell, but that's > > not the problem. The problem is this: *Existing* SAM classes that aren't > > updated to add a lone throws to their one abstract method CANNOT be > created > > by way of the closure syntax, because closures have implicit lone throws. > > Then update the SAM classes, what's the problem if the update is > backwards-compatible? Are you thinking about user classes here? In > that case, the user is responsible to update the classes if she wants > them to be compatible with closures that can throw exceptions. They > would need to be updated anyway if the closure declared to throw > checked exceptions while the SAM class didn't. Or am I missing > something? > > Regards, > Alessio Stalla > From reinier at zwitserloot.com Thu Jun 10 18:42:34 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Fri, 11 Jun 2010 03:42:34 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <4C114462.9010209@oracle.com> References: <4C114462.9010209@oracle.com> Message-ID: Alex, exception transparency is obviously not about abstracting over the types of checked exceptions that can be thrown by a method. Exception transparency is about the ability to let the handling of a checked exception thrown in a closure to be done by the containing method. As in, the exception handling is transparent. Exception Transparency. Unless you'd like to enshrine your particular definition as canon, but if that's the case, I strongly suggest you pick a different name, and add it to the official spec. The word "transparency" doesn't in any way suggest it's explicitly about abstracting away an exception list. Perhaps "Exception Type Abstraction" or some such would be a better name. That would be one of many ways to get to exception transparency, and I believe the idea is that both I and Stephen Colebourne agree that, while it is the most powerful way to do it between these 3 proposals, it is also vastly more complicated. The extra power does not warrant the extra complexity. --Reinier Zwitserloot On Thu, Jun 10, 2010 at 10:00 PM, Alex Buckley wrote: > Exception transparency is about abstracting over the types of checked > exceptions that can be thrown by a method. > > This proposal is not about exception transparency. This proposal is > about _ignoring_ the checked exceptions that can be thrown by a method. > You say yourself: > > On 6/10/2010 5:57 AM, Stephen Colebourne wrote: > > Current checked exceptions are maintained, however users have the > > choice to effectively turn them off. > > So, this proposal is about allowing checked exceptions to be turned off. > And turned off in a very specific way: as per your response to Peter, if > the caller doesn't care to catch anything from a 'lone throws' method, > then the "checked" exception propagates up the call chain, and may be > caught somewhere via a new 'lone catch' mechanism. Basically the same as > wrapping checked exceptions in RuntimeExceptions, as proposed by > http://bugs.sun.com/view_bug.do?bug_id=6534270. > > While I'm not especially fond of all the machinery around exception > transparency, exception transparency _is_ what we want to provide. > > Alex > > From peter.levart at marand.si Fri Jun 11 00:35:18 2010 From: peter.levart at marand.si (Peter Levart) Date: Fri, 11 Jun 2010 09:35:18 +0200 Subject: Exception transparency In-Reply-To: References: <4C0D7344.2000903@oracle.com> <4C1176E2.9000705@oracle.com> Message-ID: <201006110935.18872.peter.levart@marand.si> On 06/11/10, Neal Gafter wrote: > On Thu, Jun 10, 2010 at 4:36 PM, maurizio cimadamore < > maurizio.cimadamore at oracle.com> wrote: > > > But due to a previously unreported compiler bug (I'm using javac version > >> 1.6.0_07), it won't compile anyway. I'll be surprised if anyone can find > >> production code that compiles today and would break under a hypothetical > >> change to lub() for all type parameters that extend Throwable or a > >> subtype. > >> > >> > > The program I posted earlier in this thread compiles correctly under jdk 6 > > and would fail with the proposed extension of dropping lub() in favor of > > disjunctive types for type-variables extending Throwable. It's clearly not > > production code, but it's something. > > > Agreed: you can't make much of a change without breaking some hypothetical > program. But breakage that is only hypothetical isn't much to worry about. > > I believe "extends Exception" and its ilk is more than enough of a hint to > the programmer what is intended without the addition of a further "throws" > keyword in the type parameter. > I aggree with Neal that these marginal use cases are purely hypothetical. The fact that even Throwable bound type parameters are currently infered as lub() is rendering such hypothetical usages useless so we can reasonably expect they are nonexistent in real code. By introducing different rules of inference for Throwable bound type parameters and not restricting their usages a whole new world of possibilities for checked exception handling opens. Regards, Peter From alessiostalla at gmail.com Fri Jun 11 00:54:32 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Fri, 11 Jun 2010 09:54:32 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <827hm6yhtk.fsf@mid.bfk.de> Message-ID: On Fri, Jun 11, 2010 at 3:39 AM, Reinier Zwitserloot wrote: > Where did I claim it removes the ability to _use_ checked exceptions? > Offering a way to opt out of them is more than enough to irk some wraths. Java already offers such a way, wrapping with RuntimeException. Should we ban unchecked exceptions altogether, then? I must be honest: I think checked exceptions are one of Java's weakest points. However, Java is like it is and no one here is proposing to revolutionize it and drop checked exceptions. Actually in fact lone throws are safer than wrapping in runtime exceptions, because with lone throws tools have a way of statically checking if exceptions could sneakily be thrown out of a method. IDEs could show meaningful warnings - "foo() can throw anything but you only catch IOException, are you sure?" or "bar() throws but you don't catch anything nor declare your method throws" - which they can't show now when runtime exception wrappers are used. > Updating SAM classes is obviously a big problem. There's are a few bajillion > SAM classes out there in the greater java community, and oracle can only > update those in rt.jar. With the update to the SAM class, there's also a > semantic difference, which may be important. I mentioned it in my more > detailed proposal (folks presuming that if a block containing X statements > throws checked exception of type E, that only the method calls to methods > declaring throws E could possibly be the source of that exception, which > ceases to be true in the face of lone throws) - but it's much bigger issue > when lone throws is legal anywhere. How does this differ from the strawman proposal? If you encode generic exception information in the lambda's signature then the SAM class will need to add the same (or compatible) information to its single method signature. Note also that users are not forced to update all SAM classes, just the ones that they want to be targets of closure-to-SAM conversion for closures that can throw exceptions that the existing SAM does not throw. A case which definitely must be decided by human intervention, since it's not always the right thing to do. Alessio Stalla > On Thu, Jun 10, 2010 at 11:34 PM, Alessio Stalla > wrote: >> >> On Thu, Jun 10, 2010 at 8:31 PM, Reinier Zwitserloot >> wrote: >> > SneakyThrows is possible in the following ways: >> > >> > 1. Use any non-java JVM language, such as scala, jython, or JRuby. None >> > of >> > these languages have the concept 'checked exception', and neither does >> > the >> > JVM ('throws' lists are of course in class files, but as far as the JVM >> > is >> > concerned these are like annotations; the JVM does nothing with them >> > other >> > than let you introspect the list). You can sneakythrow anything using >> > this >> > tactic. In the end all you need to do is create a class file with a >> > method >> > that does not have a 'throws' list but which does use the "ATHROW" >> > opcode to >> > throw a checked exception. The class verifier nor the JVM runtime >> > complains >> > about doing this; this is why jython, scala, etc all can compile just >> > fine >> > without having the notion of checked exceptions. >> > >> > 2. Use MyClass.class.newInstance() - if MyClass's no-args constructor >> > throws >> > a checked exception it will be sneakythrown onwards. The only two you >> > can't >> > sneak with this are those checked exceptions that newInstance() itself >> > declares; InstantiationException and IllegalAccessException. This is the >> > reflection library oversight that Florian was talking about, I believe. >> > It's >> > also the only one; both Method and Constructor's invoke/newInstance >> > methods >> > solved this problem by wrapping exceptions into >> > InvocationTargetException. >> > It's only Class.newInstance() that doesn't do this. >> > >> > 3. Use mixed class files. Compile "public class Sneaky { public static >> > void >> > sneaky(Throwable t) { /* do nothing */ }}", then compile your code >> > against >> > this class file, but at runtime, recompile *ONLY* Sneaky.class with >> > this: >> > "public class Sneaky { public static void sneaky(Throwable t) throws >> > Throwable { throw t; }}". The JVM doesn't check if a method's >> > signature's >> > addendums, such as the throws clauses, are still the same as they were >> > when >> > you compiled against the API, so this works just fine. In practice you'd >> > have 2 sneakies, compile against the one, but use the other for runtime. >> > >> > 4. Generics: >> > >> > public class Sneaky { >> > public static void sneaky(Throwable t) { >> > ?Sneaky.sneaky0(t); >> > } >> > >> > @SuppressWarnings("unchecked") >> > private static void sneaky0(Throwable t) throws T >> > { >> > throw (T)t; >> > } >> > } >> > >> > >> > >> > As far as I know these are the only ways, but its clear that one simply >> > cannot assume sneaky throws just don't happen; in particular assuming >> > that >> > mixed class files or class files compiled by alternative languages never >> > happen is a bad idea. >> > >> > Stephen: I wouldn't particularly mind your proposal, personally, but >> > it's >> > effectively aborting the checked exception experiment. >> >> No, it's not. It doesn't forbid checked exceptions or change their >> semantics. It gives the power to an API writer to allow you to ignore >> checked exceptions coming from the API methods. API writers already >> have this power today: they just need to explicitly wrap checked >> exceptions in unchecked ones. Spring, for example, does this >> extensively. "lone throws" simply make this option easier. >> >> > I'm okay with it >> > (heck, I tossed @SneakyThrows in lombok for a reason!) but from my >> > experiences with @SneakyThrows, there are lots and lots of java >> > programmers >> > that have been ingrained with the notion that checked exceptions are >> > what >> > keeps the world from imploding and will vehemently fight for them. Just >> > a >> > friendly heads up :) There's an alternative implementation which is >> > based on >> > explicitly stating the types you'd like to sneaky throw. I'm not quite >> > sure >> > how one would mesh this with the closure syntax, but it has the >> > advantage of >> > at least explicitly stating that, yes, I 'sneaky' throw IOException >> > here. >> > Lombok's SneakyThrow works like this: >> > >> > @SneakyThrows(IOException.class) >> > public void foo() { throw new IOException(); } >> > >> > with just "@SneakyThrows" being a shorthand for >> > @SneakyThrows(Throwable.class). In regards to closures I believe your >> > proposal to be superior, if we go down this "let's give up on checked >> > exceptions" path. >> > >> > However, your proposal has a flaw; I think it'll eventually boil down to >> > simply getting rid of the concept of checked exceptions in general. It >> > doesn't extend to SAMs, because in your system adding a "lone throws" >> > changes the signature. >> >> Right, but it changes it in such a way that old code will continue to >> work unchanged. If Runnable.run was changed to include throws; you >> could still call it without catching anything, as you do today. >> >> > You can add a lone throws to an interface method >> > without breaking backwards compatibility as far as I can tell, but >> > that's >> > not the problem. The problem is this: *Existing* SAM classes that aren't >> > updated to add a lone throws to their one abstract method CANNOT be >> > created >> > by way of the closure syntax, because closures have implicit lone >> > throws. >> >> Then update the SAM classes, what's the problem if the update is >> backwards-compatible? Are you thinking about user classes here? In >> that case, the user is responsible to update the classes if she wants >> them to be compatible with closures that can throw exceptions. They >> would need to be updated anyway if the closure declared to throw >> checked exceptions while the SAM class didn't. Or am I missing >> something? >> >> Regards, >> Alessio Stalla > > From thomas.andreas.jung at googlemail.com Fri Jun 11 03:09:19 2010 From: thomas.andreas.jung at googlemail.com (Thomas Jung) Date: Fri, 11 Jun 2010 12:09:19 +0200 Subject: Virtual extension methods - syntax options Message-ID: There has been some argument about the syntax options of defender methods. Is this syntax now set in stone or is this still an ongoing discussion? I think the two approaches have pros and cons: Inline: syntax like a regular method (less syntax), less classes, added confusion between interfaces and classes Delegation: additional syntax, more code, syntax that only works in interfaces I don't think that I special syntax is less confusing than the inline implementation. For someone new to Java it would be quite hard to understand why there is such construct. Thomas From brian.goetz at oracle.com Fri Jun 11 07:59:35 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 11 Jun 2010 10:59:35 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: <4C124F57.60905@oracle.com> The answer is neither: the syntax is not set in stone, but we strongly discourage ongoing discussions of syntax :) On 6/11/2010 6:09 AM, Thomas Jung wrote: > There has been some argument about the syntax options of defender methods. > > Is this syntax now set in stone or is this still an ongoing discussion? > > I think the two approaches have pros and cons: > Inline: syntax like a regular method (less syntax), less classes, > added confusion between interfaces and classes > Delegation: additional syntax, more code, syntax that only works in interfaces > > I don't think that I special syntax is less confusing than the inline > implementation. For someone new to Java it would be quite hard to > understand why there is such construct. > > Thomas > From neal at gafter.com Fri Jun 11 10:26:54 2010 From: neal at gafter.com (Neal Gafter) Date: Fri, 11 Jun 2010 10:26:54 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C114462.9010209@oracle.com> Message-ID: On Thu, Jun 10, 2010 at 6:42 PM, Reinier Zwitserloot < reinier at zwitserloot.com> wrote: > Alex, exception transparency is obviously not about abstracting over the > types of checked exceptions that can be thrown by a method.Exception > transparency is about the ability to let the handling of a checked > exception > thrown in a closure to be done by the containing method. As in, the > exception handling is transparent. Exception Transparency. Unless you'd > like > to enshrine your particular definition as canon, but if that's the case, I > strongly suggest you pick a different name, and add it to the official > spec. > Reinier- I'd be surprised if Alex responds to that condescending tone, so let me see if I can add something. Exception transparency is a primary use cases that motivates abstracting over the throw exception types, but it is important enough a use case to use its name to refer to the feature. It isn't so important what we call it, rather it is important what it does. Assuming it is the only important use case is an approach that leads to poor language design decisions. See < http://gafter.blogspot.com/2006/09/failure-of-imagination-in-language_17.html >. Achieving exception transparency in some APIs requires storing closures in variables. Since Java is a strongly typed language with checked exceptions, the type of the variable should be capable of expressing precisely the types of the exceptions that may be thrown when the closure is invoked. Making the variable weakly-typed or weakening Java's exception checking are not plausible approaches. Cheers, Neal From brian.goetz at oracle.com Fri Jun 11 10:59:26 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 11 Jun 2010 13:59:26 -0400 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: <4C12797E.4080904@oracle.com> I think this is an interesting exploration of the design space, so I appreciate your posting it here. However, as several other posters here have suggested, this isn't really "exception transparency" as much as it is a limited form of "turn off checked exceptions." (This is a solution to the problem of exception transparency much as arson is a solution to the problem of cockroaches.) Besides the points raised here, I could easily imagine a world where developers who don't like checked exception just decorated every method with "throws". I don't know if that is the intent of the proposal or simply a side-effect, but it is (in our view) some pretty serious collateral damage. (People are free to argue that they don't like checked exceptions and they should be abolished. But not here; there are plenty of other fora where such discussions can happen.) On 6/10/2010 8:57 AM, Stephen Colebourne wrote: > I wanted to write up this possible alternative to exception > transparency - "lone throws". This is a relatively informal > description for now to express the concept. > > Proposal > -------------------- > This is a simple proposal to permit a new form of throws clause on a > method definition. The syntax is "throws" with no exception type > ("lone throws"). For example: > > interface Block { > public void invoke(T element) throws; > } > > A method using this syntax is permitted to throw any Throwable without > declaring which explicitly: > > class MyBlock implements Block { > public void invoke(String element) throws { > new File(element).getCanonicalFile().delete(); > } > } > > In the example, the code can throw IOException, but we don't declare > it in the method signature - just the fact that the method can throw > anything (checked or unchecked). > > On the receiving side, the compiler rules for exception catching are > changed such that if the total set of exception types that a block of > code can throw includes "lone throws", then the compiler will permit > any checked exception to be caught in the catch block: > > try { > MyBlock b = new MyBlock(); > b.invoke("C:\README.txt"); > } catch (IOException ex) { > ... > } > > In the example, the IOException can be caught, because the invoke > method declares "lone throws" (normally it can't be caught unless the > block declares it actually throws IOException) > > Extending this to lambdas, I propose that all function types > implicitly specify "lone throws": > > #void(String) > > This example is equivalent to the Block interface above - the "lone > throws" is implied. > > Here is the forEach example using such a function type: > > public forEach(#void(T) block) throws; > > Any exception thrown by the passed-in block can flow-out of the forEach method. > > > Comparisons: > -------------------- > Strawman: > #void(String) throws IOException > public forEach(#void(T) throws E block) throws E; > interface Block { public void invoke(T element) throws E; } > public forEach(Block block) throws E; > > Lone throws: > #void(String) > public forEach(#void(T) block) throws; > interface Block { public void invoke(T element) throws; } > public forEach(Block block) throws; > > > Bytecode: > -------------------- > Since checked exceptions are a compile-level construct, there are no > byte-code changes for standard method code. However, there is an open > question as to what the method signature should be in bytecode. > Options include: > a) declare it as Throwable > b) declare it as a new supertype of Throwable > c) add a marker flag that indicates it can throw the special any > exception concept > d) don't add anything to the signature (however, it would then not be > possible to catch checked exceptions thrown by "lone throws") > > > Comment: > -------------------- > I believe that this approach provides exception transparency. > > I believe that this approach is easy to specify and implement. (No > disjunction types or interactions with generics that I can see) > > I believe that this approach is easy to learn. > > This approach results in a lot simpler syntax for function types, as > there is no longer a need to declare exceptions. This may open up new > syntax choices. > > This approach results in a lot simpler syntax for exception > transparent methods. There is no "follow this pattern of boilerplate > code with throws E twice in generics and also in the throws clause" - > instead, you just add one keyword. > > Current checked exceptions are maintained, however users have the > choice to effectively turn them off. Given many APIs already do this > today (by wrapping checked exceptions in unchecked) this would > probably be used beyond just lambdas. (Checked exceptions remain a > religious issue for some - this change offers teams a choice as to how > they are handled.) > > Reinier's sort/TreeSet example is fine and simpler (ignoring the fact > that Set can't be changed in a backwards incompatible way): > > Set: > public boolean add(T t) throws; > Collections: > public static void sort(List a, #int(T, T) c) throws { ... } > > The approach is less powerful. Some type-information is lost, and it > is not possible to write exception filtering lambdas that remain > exception-type-safe. My opinion is that these are edge cases. > > My opinion is that it is easy to get caught up in additional > type-information and type-safety, but Java is so verbose already that > the impact is necessarily negative. By choosing to reduce the level of > type-information in the system on this occasion, the end-result is a > whole lot simpler to understand, and more in tune with how many larger > open source projects use exceptions today (ie. wrapping any checked > exceptions). > > > Options: > -------------------- > One option is to make every method that receives a function type as a > parameter be a "lone throws" method automatically. There is no > backwards compatibilty issue, as such methods don't exist today. This > option has the advantage that developers don't need to know anything > about exception transparency wrt lambdas. This feels like an > unecessary extra rule to learn however. > > Another option is to allow "lone throws" at the class level. This > would set all methods in the class to be "lone throws", essentially > providing a quick way to alter checked exception behaviour for those > teams that choose. I suspect this would be popular. > > There may be a role for a catch clause that doesn't specify the > exception type. This would effectively 'remove' the "lone throws" from > the set of exceptions thrown by the block, leaving just the exceptions > declared in standard method signatures. This would provide the ability > to wrap these in a RuntimeException or similar if desired. This needs > more study to determine its usefulness. > > > Stephen > From alessiostalla at gmail.com Fri Jun 11 11:02:40 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Fri, 11 Jun 2010 20:02:40 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C114462.9010209@oracle.com> Message-ID: On Fri, Jun 11, 2010 at 7:26 PM, Neal Gafter wrote: > On Thu, Jun 10, 2010 at 6:42 PM, Reinier Zwitserloot < > reinier at zwitserloot.com> wrote: > >> Alex, exception transparency is obviously not about abstracting over the >> types of checked exceptions that can be thrown by a method.Exception >> transparency is about the ability to let the handling of a checked >> exception >> thrown in a closure to be done by the containing method. As in, the >> exception handling is transparent. Exception Transparency. Unless you'd >> like >> to enshrine your particular definition as canon, but if that's the case, I >> strongly suggest you pick a different name, and add it to the official >> spec. >> > > Reinier- > > I'd be surprised if Alex responds to that condescending tone, so let me see > if I can add something. > > Exception transparency is a primary use cases that motivates abstracting > over the throw exception types, but it is important enough a use case to use > its name to refer to the feature. ?It isn't so important what we call it, > rather it is important what it does. ?Assuming it is the only important use > case is an approach that leads to poor language design decisions. ?See < > http://gafter.blogspot.com/2006/09/failure-of-imagination-in-language_17.html >>. > > Achieving exception transparency in some APIs requires storing closures in > variables. ?Since Java is a strongly typed language with checked exceptions, > the type of the variable should be capable of expressing precisely the types > of the exceptions that may be thrown when the closure is invoked. ?Making > the variable weakly-typed or weakening Java's exception checking are not > plausible approaches. Well, you could argue that since Java is a fully OO language (apart from primitives), adding a functional language concept like closures is not a plausible approach. The addition of a language feature necessarily changes the language, and may even undermine the premises on which the language was built. A balance must be stroke between staying "true to Java" - almost-pure OO, type safety, checked exceptions - and adding a new feature. The cost of staying "true to Java" maybe is simply too high in this case. Similar arguments could be made for reflection as well. Reflection allows me to call a method bypassing exception type safety in a way. But it was theoretically possible, with generics, to modify reflective objects to encode exception information, as in Method. Then, method.invoke would force you to either catch or propagate IOException and SQLException. Why wasn't it done? And why must it be done with closures? Especially today, when more and more people are questioning the value of checked exceptions - as I said, a player as important as Spring officially adopts the policy of using unchecked exceptions whenever possible. Cheers, Alessio From alessiostalla at gmail.com Fri Jun 11 11:09:40 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Fri, 11 Jun 2010 20:09:40 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <4C12797E.4080904@oracle.com> References: <4C12797E.4080904@oracle.com> Message-ID: On Fri, Jun 11, 2010 at 7:59 PM, Brian Goetz wrote: > I think this is an interesting exploration of the design space, so I > appreciate your posting it here. ?However, as several other posters here have > suggested, this isn't really "exception transparency" as much as it is a > limited form of "turn off checked exceptions." ?(This is a solution to the > problem of exception transparency much as arson is a solution to the problem > of cockroaches.) I don't agree. If there were no checked exceptions, this whole discussion would not have happened - unchecked exceptions are already transparent in Java. Checked exceptions are not, and we want them to be. How? Making them behave like unchecked ones in certain circumstances seems to me a reasonable solution to that very problem. Not the only possible solution of course, but it's worth to seriously consider it imho. > Besides the points raised here, I could easily imagine a world where > developers who don't like checked exception just decorated every method with > "throws". ?I don't know if that is the intent of the proposal or simply a > side-effect, but it is (in our view) some pretty serious collateral damage. > (People are free to argue that they don't like checked exceptions and they > should be abolished. ?But not here; there are plenty of other fora where such > discussions can happen.) And I can easily imagine a world where developers who don't like checked exceptions just rewrap them all in unchecked ones. Actually I don't even need to imagine it, it's already real. Are you arguing that since adding "throws" is easier than rewrapping exceptions, people will use it more? Alessio From neal at gafter.com Fri Jun 11 11:12:59 2010 From: neal at gafter.com (Neal Gafter) Date: Fri, 11 Jun 2010 11:12:59 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C114462.9010209@oracle.com> Message-ID: On Fri, Jun 11, 2010 at 11:02 AM, Alessio Stalla wrote: > Well, you could argue that since Java is a fully OO language (apart > from primitives), adding a functional language concept like closures > is not a plausible approach. I don't really get this assertion. Using that logic one could argue that since Java is a fully OO language it shouldn't have imperative language constructs like switch-statements. There is nothing about function objects or lambda expressions that conflict with OO concepts. Smalltalk, the most pure of the pure OO languages, has closures. Similar arguments could be made for reflection as well. Reflection > allows me to call a method bypassing exception type safety in a way. > But it was theoretically possible, with generics, to modify reflective > objects to encode exception information, as in Method IOException|SQLException>. No, it wasn't theoretically possible. The information simply isn't available at compile-time to be encoded in the type. From alex.buckley at oracle.com Fri Jun 11 11:11:12 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Fri, 11 Jun 2010 11:11:12 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C114462.9010209@oracle.com> Message-ID: <4C127C40.8000705@oracle.com> On 6/11/2010 11:02 AM, Alessio Stalla wrote: > Well, you could argue that since Java is a fully OO language (apart > from primitives), adding a functional language concept like closures > is not a plausible approach. Proceeding from the assumption that closures are a "functional language concept" is not a plausible approach. See http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03269.html and the (large) surrounding discussion. Alex From howard.lovatt at gmail.com Fri Jun 11 17:07:03 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Sat, 12 Jun 2010 10:07:03 +1000 Subject: Virtual extension methods -- second draft Message-ID: *Brian Goetz* brian.goetz at oracle.com *Tue Jun 8 06:14:44 PDT 2010 wrote:* **> I've updated the draft on Defender Methods: > http://cr.openjdk.java.net/~darcy/DefenderMethods.pdf Comments: 1. Implementation option 2, section 8, seems to combine all the best characteristics; it doesn't unduly burden the class loader and is completely load-time and therefore the compiled code cannot become out of sync with interface modifications. 2. I prefer the syntax option you list in Section 15: "One alternative that was explored was to put the default method body right into the interface source file. I think that this would be confusing for users; many already don?t quite get the difference between interfaces and abstract classes. (This would be more appropriate if we went to full-blown traits.)" I don't think that it would confuse people and would probably become the norm, instead of abstract classes (which would be a good thing since it would eliminate state). With the current proposal you have to make an interface and a class of static methods, for *most* use cases this is verbose and a pain since you separate the implementation from the declaration. You can still forward to a static method when you want/need to by calling the method directly from the body declared in the interface. Also you don't need any new syntax constructs; just put the body in curly braces, it will be most natural. -- Howard. From howard.lovatt at gmail.com Fri Jun 11 18:07:09 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Sat, 12 Jun 2010 11:07:09 +1000 Subject: Virtual extension methods - syntax options Message-ID: *Brian Goetz* brian.goetz at oracle.com *Fri Jun 11 07:59:35 PDT 2010 wrote:* >The answer is neither: the syntax is not set in stone, but we strongly >discourage ongoing discussions of syntax :) Some sentiment along this line keeps on getting invoked. Since various discussions keep on coming back to the syntax, the lambdas themselves, extension methods, exception transparency, etc., I would suggest it is more important than you give it credit for. The syntax discussions can occur in parallel to the implementation discussions; in fact I would say that this is ideal, since if a workable syntax cannot be found there is no point in continuing with the implementation. To make this concrete; I would suggest that if the syntax of variance (wild cards) was throughly investigated before the implementation or in parallel with the implementation then we wouldn't have variance today (which the wider community, and myself, think would be a good thing). A good language or language feature needs to balance not only the implementation but also the burden on the programmer. Do you not see the irony in arguing that syntax isn't important on a lambda discussion group; lets face it, one of the primary motivations for lambdas is the unwieldy syntax of inner classes? On a more philosophical point, stifling discussion is rarely fruitful. If people want to discuss something let them. I would only draw the line if the discussions were abusive or wildly off topic. -- Howard. From jkuhnert at gmail.com Fri Jun 11 18:58:30 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Fri, 11 Jun 2010 21:58:30 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: The mercurial repository looks like an ideal place to try alternatives out from. Maybe you should just check it out and show us what you had in mind in the form of a working implementation? Or were you implying that everyone else should be working on your theories as well as their own? Seems only fair. On Friday, June 11, 2010, Howard Lovatt wrote: > *Brian Goetz* brian.goetz at oracle.com > > ?*Fri Jun 11 07:59:35 PDT 2010 wrote:* > >>The answer is neither: the syntax is not set in stone, but we strongly >>discourage ongoing discussions of syntax :) > > Some sentiment along this line keeps on getting invoked. Since various > discussions keep on coming back to the syntax, the lambdas themselves, > extension methods, exception transparency, etc., I would suggest it is more > important than you give it credit for. The syntax discussions can occur in > parallel to the implementation discussions; in fact I would say that this is > ideal, since if a workable syntax cannot be found there is no point in > continuing with the implementation. > > To make this concrete; I would suggest that if the syntax of variance (wild > cards) was throughly investigated before the implementation or in parallel > with the implementation then we wouldn't have variance today (which the > wider community, and myself, think would be a good thing). > > A good language or language feature needs to balance not only the > implementation but also the burden on the programmer. Do you not see the > irony in arguing that syntax isn't important on a lambda discussion group; > lets face it, one of the primary motivations for lambdas is > the unwieldy syntax of inner classes? > > On a more philosophical point, stifling discussion is rarely fruitful. If > people want to discuss something let them. I would only draw the line if the > discussions were abusive or wildly off topic. > > ?-- Howard. > > From howard.lovatt at gmail.com Fri Jun 11 19:03:23 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Sat, 12 Jun 2010 12:03:23 +1000 Subject: Exception transparency - Portable Lambdas Message-ID: I can't see any evidence that 'exception transparency' as defined in http://blogs.sun.com/briangoetz/entry/exception_transparency_in_java is achievable without immense type cutter, certainly non of the proposals so far have come close. This is in real danger of turning into 'Variance Mk II' (as Stephen Colebourne has aptly coined it), which I assume everyone contributing here wishes to avoid. On a personal note, the number one reason I give my time for free on this forum is in the hope of avoiding another disaster like variance. I would suggest that work on 'exception transparency' ceases until a sensible source code representation can be found, otherwise this will either result in Variance Mk II or ultimately will not make it into the language (either way, no point continuing until the first problem is solved). Stephen Colebourne and Reinier Zwitserlloot have both suggested alternatives that I find much more appealing than 'exception transparency'. Yes; they don't provide 'exception transparency' as defined, but they are interesting pieces of lateral thinking in the same problem space. Personally I would go further and adopt a variation on Reinier Portable Closures, which he defines as: "There are portable closures [lambdas] which have no restrictions of any kind but which are truly like portable code blocks; a simpler syntax for today's anonymous inner classes. They cannot capture (mutable) variables, do not and will never support long return/break/continue, have no exception transparency of any kind, but you can store them for later, move them to another thread, and otherwise treat them as one would any random object." The variation I would add is that a Portable Lambda cannot throw a checked exception unless it implements a SAM type that does. To be clear about this, I am proposing that the syntax proposed for lambda types, #name( arg_types )(throws exceptions), drops the throws clause and hence checked exceptions. This proposal of Portable Lambda has the advantages of simplicity and focusing on the sweet spot of usage (parallel code). Users of other languages with closures, e.g. Scala, don't find the restriction of no checked exceptions a hindrance (in fact many argue it is an advantage). Note: the proposal doesn't break old code because a checked exception is allowed for a SAM. -- Howard. From howard.lovatt at gmail.com Fri Jun 11 19:28:12 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Sat, 12 Jun 2010 12:28:12 +1000 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: Whether you code any suggestion, syntax or implementation, is surely orthogonal to whether it is a syntax or implementation suggestion. With regard to actual coding, no point anyone coding something that isn't going to fly in the long run. As an aside, I have implemented at least to the proof of concept some ideas, e.g.: http://www.artima.com/weblogs/viewpost.jsp?thread=278567 On 12 June 2010 11:58, Jesse Kuhnert wrote: > The mercurial repository looks like an ideal place to try alternatives out > from. > > Maybe you should just check it out and show us what you had in mind in > the form of a working implementation? Or were you implying that > everyone else should be working on your theories as well as their own? > Seems only fair. > > On Friday, June 11, 2010, Howard Lovatt wrote: > > *Brian Goetz* brian.goetz at oracle.com > > < > https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=lambda-dev%40openjdk.java.net&su=Virtual%20extension%20methods%20-%20syntax%20options&In-Reply-To=AANLkTimJotG3ql2j5ckvAoLBIFqFjuKC8C30oVBlHVgb%40mail.gmail.com > > > > *Fri Jun 11 07:59:35 PDT 2010 wrote:* > > > >>The answer is neither: the syntax is not set in stone, but we strongly > >>discourage ongoing discussions of syntax :) > > > > Some sentiment along this line keeps on getting invoked. Since various > > discussions keep on coming back to the syntax, the lambdas themselves, > > extension methods, exception transparency, etc., I would suggest it is > more > > important than you give it credit for. The syntax discussions can occur > in > > parallel to the implementation discussions; in fact I would say that this > is > > ideal, since if a workable syntax cannot be found there is no point in > > continuing with the implementation. > > > > To make this concrete; I would suggest that if the syntax of variance > (wild > > cards) was throughly investigated before the implementation or in > parallel > > with the implementation then we wouldn't have variance today (which the > > wider community, and myself, think would be a good thing). > > > > A good language or language feature needs to balance not only the > > implementation but also the burden on the programmer. Do you not see the > > irony in arguing that syntax isn't important on a lambda discussion > group; > > lets face it, one of the primary motivations for lambdas is > > the unwieldy syntax of inner classes? > > > > On a more philosophical point, stifling discussion is rarely fruitful. If > > people want to discuss something let them. I would only draw the line if > the > > discussions were abusive or wildly off topic. > > > > -- Howard. > > > > > -- -- Howard. From jkuhnert at gmail.com Fri Jun 11 19:55:06 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Fri, 11 Jun 2010 22:55:06 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: I just find it ironic to watch all of these people with open source affiliations conveniently leaving all those rules behind here. Probably applies to any shared creative/significant effort. They wouldn't get away with that on other projects, what makes them special here? On all projects opinions and constructive criticism are usually always well received, but there is always a distinct divide between those who do and those who do not. Bugs with patches and bugs with lots of opinions. Just saying...common sense stuff guys. We all have day jobs. On Friday, June 11, 2010, Howard Lovatt wrote: > Whether you code any suggestion, syntax or implementation, is surely?orthogonal?to whether it is a syntax or implementation suggestion. With regard to actual coding, no point anyone coding something that isn't going to fly in the long run. > > As an aside, I have implemented at least to the proof of concept some ideas, e.g.: > http://www.artima.com/weblogs/viewpost.jsp?thread=278567 > > On 12 June 2010 11:58, Jesse Kuhnert wrote: > > The mercurial repository looks like an ideal place to try alternatives out from. > > Maybe you should just check it out and show us what you had in mind in > the form of a working implementation? Or were you implying that > everyone else should be working on your theories as well as their own? > Seems only fair. > > On Friday, June 11, 2010, Howard Lovatt wrote: >> *Brian Goetz* brian.goetz at oracle.com >> >> ?*Fri Jun 11 07:59:35 PDT 2010 wrote:* >> >>>The answer is neither: the syntax is not set in stone, but we strongly >>>discourage ongoing discussions of syntax :) >> >> Some sentiment along this line keeps on getting invoked. Since various >> discussions keep on coming back to the syntax, the lambdas themselves, >> extension methods, exception transparency, etc., I would suggest it is more >> important than you give it credit for. The syntax discussions can occur in >> parallel to the implementation discussions; in fact I would say that this is >> ideal, since if a workable syntax cannot be found there is no point in >> continuing with the implementation. >> >> To make this concrete; I would suggest that if the syntax of variance (wild >> cards) was throughly investigated before the implementation or in parallel >> with the implementation then we wouldn't have variance today (which the >> wider community, and myself, think would be a good thing). >> >> A good language or language feature needs to balance not only the >> implementation but also the burden on the programmer. Do you not see the >> irony in arguing that syntax isn't important on a lambda discussion group; >> lets face it, one of the primary motivations for lambdas is >> the unwieldy syntax of inner classes? >> >> On a more philosophical point, stifling discussion is rarely fruitful. If >> people want to discuss something let them. I would only draw the line if the >> discussions were abusive or wildly off topic. >> >> ?-- Howard. >> >> > > > -- > ?-- Howard. > > From jkuhnert at gmail.com Fri Jun 11 20:39:38 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Fri, 11 Jun 2010 23:39:38 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: Just to be clear, what your statement basically says is it's not worth your time to prove your ideas? If this were the lambda-theories mailing list that might work but you'll notice it's the lambda-dev mailing list. Using your same argument I could easily say it's not worth anyones time to even read any message you send. On Friday, June 11, 2010, Howard Lovatt wrote: > Whether you code any suggestion, syntax or implementation, is surely?orthogonal?to whether it is a syntax or implementation suggestion. With regard to actual coding, no point anyone coding something that isn't going to fly in the long run. > > As an aside, I have implemented at least to the proof of concept some ideas, e.g.: > http://www.artima.com/weblogs/viewpost.jsp?thread=278567 > > On 12 June 2010 11:58, Jesse Kuhnert wrote: > > The mercurial repository looks like an ideal place to try alternatives out from. > > Maybe you should just check it out and show us what you had in mind in > the form of a working implementation? Or were you implying that > everyone else should be working on your theories as well as their own? > Seems only fair. > > On Friday, June 11, 2010, Howard Lovatt wrote: >> *Brian Goetz* brian.goetz at oracle.com >> >> ?*Fri Jun 11 07:59:35 PDT 2010 wrote:* >> >>>The answer is neither: the syntax is not set in stone, but we strongly >>>discourage ongoing discussions of syntax :) >> >> Some sentiment along this line keeps on getting invoked. Since various >> discussions keep on coming back to the syntax, the lambdas themselves, >> extension methods, exception transparency, etc., I would suggest it is more >> important than you give it credit for. The syntax discussions can occur in >> parallel to the implementation discussions; in fact I would say that this is >> ideal, since if a workable syntax cannot be found there is no point in >> continuing with the implementation. >> >> To make this concrete; I would suggest that if the syntax of variance (wild >> cards) was throughly investigated before the implementation or in parallel >> with the implementation then we wouldn't have variance today (which the >> wider community, and myself, think would be a good thing). >> >> A good language or language feature needs to balance not only the >> implementation but also the burden on the programmer. Do you not see the >> irony in arguing that syntax isn't important on a lambda discussion group; >> lets face it, one of the primary motivations for lambdas is >> the unwieldy syntax of inner classes? >> >> On a more philosophical point, stifling discussion is rarely fruitful. If >> people want to discuss something let them. I would only draw the line if the >> discussions were abusive or wildly off topic. >> >> ?-- Howard. >> >> > > > -- > ?-- Howard. > > From howard.lovatt at gmail.com Fri Jun 11 22:18:14 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Sat, 12 Jun 2010 15:18:14 +1000 Subject: Virtual extension methods - syntax options In-Reply-To: <700EFE0F-0BC2-4711-A6BF-7D8D3D2ADE16@gmail.com> References: <700EFE0F-0BC2-4711-A6BF-7D8D3D2ADE16@gmail.com> Message-ID: Neal, > While you were not personally consulted, variance and its syntax was widely discussed both online and at conferences. > The syntax went through a few iterations before settling on the current form. Your perception that it was widely criticized > at the time doesn't match my recollection. I wasn't saying that I was consulted or even involved with variance; beyond sending a couple of emails (or perhaps postings - I don't recall), one suggesting that the use cases weren't that common and another saying that the original +/- syntax was very unlikely Java. Other than those emails I don't recall any personal involvement with variance. I took much less interest, it was only later and with forums like this that I became active. I could be wrong, but my feeling is that if there had been more involvement from the community at large then variance could have been avoided. Hence my decision to become involved. I think that there was much less community involvement at the time of variance and most people took the attitude that Sun were doing a good job, so leave them to it. Therefore your recollection that variance wasn't widely criticized at the time is almost certainly correct, but that was because few people were following closely. Presumably others feel that more community involvement is a good thing, hence this forum. -- Howard. On 12 June 2010 13:51, Neal Gafter wrote: > On Jun 11, 2010, at 6:07 PM, Howard Lovatt > wrote: > > > *Brian Goetz* brian.goetz at oracle.com > > > >> The answer is neither: the syntax is not set in stone, but we strongly > >> discourage ongoing discussions of syntax :) > > > > Some sentiment along this line keeps on getting invoked. Since various > > discussions keep on coming back to the syntax, the lambdas themselves, > > extension methods, exception transparency, etc., I would suggest it is > more > > important than you give it credit for. The syntax discussions can occur > in > > parallel to the implementation discussions; in fact I would say that this > is > > ideal, since if a workable syntax cannot be found there is no point in > > continuing with the implementation. > > > > To make this concrete; I would suggest that if the syntax of variance > (wild > > cards) was throughly investigated before the implementation or in > parallel > > with the implementation then we wouldn't have variance today (which the > > wider community, and myself, think would be a good thing). > > While you were not personally consulted, variance and its syntax was widely > discussed both online and at conferences. The syntax went through a few > iterations before settling on the current form. Your perception that it was > widely criticized at the time doesn't match my recollection. From neal at gafter.com Sat Jun 12 10:44:33 2010 From: neal at gafter.com (Neal Gafter) Date: Sat, 12 Jun 2010 10:44:33 -0700 Subject: Virtual extension methods -- second draft In-Reply-To: <4C0E4244.60205@oracle.com> References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> Message-ID: On Tue, Jun 8, 2010 at 6:14 AM, Brian Goetz wrote: > I've updated the draft on Defender Methods: > http://cr.openjdk.java.net/~darcy/DefenderMethods.pdf In section (3), method dispatch, it isn't clear if this is discussing compile-time behavior or runtime behavior, nor is it clear is this is describing the behavior when the qualifying type is a class or the qualifying type is an interface. The full matrix must be described. To give an example of the kind of information missing in this section as written, imagine an "invokevirtual" method invocation. The qualifying type in the bytecode is the static type of the receiver. But this section says that it is resolved (at runtime?) based on the type of the interface being searched. The type of the interface, however, isn't available at runtime because the JLS requires that the constant pool entry for the invokevirtual instruction be given the qualifying class type. Taking the section more literally, it appears to be discussing runtime dispatch of an invokeinterface invocation where the receiver type in the constant pool is D. But the section discusses walking up the superclass hierarchy from D. Since D is an interface, its direct supertype is Object, and there are no intermediate supertypes. Perhaps some of the mentions of "D" in this section should instead be referring to the actual runtime class of the receiver. In section (3.1), resolving ambiguity, this describes one kind of failure at runtime. Is there a corresponding compile-time error to avoid these? Section (11) says that conflicting methods in different superinterfaces (same signature, different return type) are rejected today. I don't think this is correct. Any conclusions based on that premise are suspect. What are the binary compatibility implications of adding defender methods? Section (13) seems to assume that the previous API suite had no defender methods, but the binary compatibility implications of adding defender methods when some may already be present should be explained. Nice work, by the way. From brian.goetz at oracle.com Sat Jun 12 11:00:30 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 12 Jun 2010 14:00:30 -0400 Subject: Virtual extension methods -- second draft In-Reply-To: References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> Message-ID: <4C13CB3E.4090503@oracle.com> > In section (3), method dispatch, it isn't clear if this is discussing > compile-time behavior or runtime behavior, nor is it clear is this is > describing the behavior when the qualifying type is a class or the > qualifying type is an interface. The first draft badly conflated compile-time and run-time behavior. This draft attempts to do better by first describing the runtime semantics, and only then discussing possible implementation techniques, both compile-time and run-time. After an initial bout of optimism where I thought most of this could be done at compile time and the runtime behavior would be a "safety net", I have come around to the conclusion that it is better to push as much of the behavior to runtime as implementation considerations allow (which is a good fit for invokedynamic.) Anything the static compiler would do would be more of a "helping the runtime get there faster." The method dispatch section attempts to describe the semantics of a method invocation of a defender method. There are a lot of things to work out, including which invoke instructions are generated by the compiler (virtual, interface, dynamic) at the call site, and whether the others actually have semantics. Despite the improvements from V1 to V2, its still a draft, with the aim of discovering whether this is a practical means of achieving the real goal -- library evolution. > The full matrix must be described. Agreed, just not down at the JVMS level yet. > Taking the section more literally, it appears to be discussing runtime > dispatch of an invokeinterface invocation where the receiver type in > the constant pool is D. Or an invokedynamic. > But the section discusses walking up the > superclass hierarchy from D. Since D is an interface, its direct > supertype is Object, and there are no intermediate supertypes. The intention of this section (though I did not make this clear) is that D is a class, and the invoke in question is an invokevirtual or invokedynamic. > Perhaps some of the mentions of "D" in this section should instead be > referring to the actual runtime class of the receiver. That's what I meant. > In section (3.1), resolving ambiguity, this describes one kind of > failure at runtime. Is there a corresponding compile-time error to > avoid these? Yes, of course, but this is not enough to keep such bytecodes from arriving at the VM, so the VM has to be prepared for this too. > Section (13) seems to assume that the > previous API suite had no defender methods, but the binary > compatibility implications of adding defender methods when some may > already be present should be explained. Yes, we'll start with a clean slate, but over time the slate will get dirtied and slate maintenance must be planned for. > Nice work, by the way. Thanks! From forax at univ-mlv.fr Sat Jun 12 11:54:03 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Sat, 12 Jun 2010 20:54:03 +0200 Subject: Virtual extension methods -- second draft In-Reply-To: <4C13CB3E.4090503@oracle.com> References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> <4C13CB3E.4090503@oracle.com> Message-ID: <4C13D7CB.7060307@univ-mlv.fr> Le 12/06/2010 20:00, Brian Goetz a ?crit : >> In section (3), method dispatch, it isn't clear if this is discussing >> compile-time behavior or runtime behavior, nor is it clear is this is >> describing the behavior when the qualifying type is a class or the >> qualifying type is an interface. >> > The first draft badly conflated compile-time and run-time behavior. This > draft attempts to do better by first describing the runtime semantics, and > only then discussing possible implementation techniques, both compile-time and > run-time. After an initial bout of optimism where I thought most of this > could be done at compile time and the runtime behavior would be a "safety > net", I have come around to the conclusion that it is better to push as much > of the behavior to runtime as implementation considerations allow (which is a > good fit for invokedynamic.) Anything the static compiler would do would be > more of a "helping the runtime get there faster." > > The method dispatch section attempts to describe the semantics of a method > invocation of a defender method. There are a lot of things to work out, > including which invoke instructions are generated by the compiler (virtual, > interface, dynamic) at the call site, and whether the others actually have > semantics. Despite the improvements from V1 to V2, its still a draft, with > the aim of discovering whether this is a practical means of achieving the real > goal -- library evolution. > > >> The full matrix must be described. >> > Agreed, just not down at the JVMS level yet. > > >> Taking the section more literally, it appears to be discussing runtime >> dispatch of an invokeinterface invocation where the receiver type in >> the constant pool is D. >> > Or an invokedynamic. > There is only one problem with invokedynamic. Invokedynamic requires a bootstrap method and the current spec says that there is only one bootstrap method for the whole class. If defender methods are implemented using invokedynamic, developers will not be able to specify their own a bootstrap method. R?mi From brian.goetz at oracle.com Sat Jun 12 12:34:31 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 12 Jun 2010 15:34:31 -0400 Subject: Virtual extension methods -- second draft In-Reply-To: <4C13D7CB.7060307@univ-mlv.fr> References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> <4C13CB3E.4090503@oracle.com> <4C13D7CB.7060307@univ-mlv.fr> Message-ID: <4C13E147.9060402@oracle.com> >>> Taking the section more literally, it appears to be discussing runtime >>> dispatch of an invokeinterface invocation where the receiver type in >>> the constant pool is D. >>> >> Or an invokedynamic. > > There is only one problem with invokedynamic. > Invokedynamic requires a bootstrap method and the current spec says > that there is only one bootstrap method for the whole class. > If defender methods are implemented using invokedynamic, > developers will not be able to specify their own a bootstrap method. I was afraid you were going to say that. Is there no way to specify a bootstrap method on a per-call-site basis? From collin.fagan at gmail.com Sat Jun 12 14:56:33 2010 From: collin.fagan at gmail.com (Collin Fagan) Date: Sat, 12 Jun 2010 16:56:33 -0500 Subject: Virtual Extension By Inversion of Responsibility Message-ID: Hi Everyone, I've put together a draft of a document that postulates an alternate implementation of virtual extension methods. http://www.box.net/shared/r24vvgma5p I welcome any feedback. Thanks, Collin From int19h at gmail.com Sat Jun 12 15:27:58 2010 From: int19h at gmail.com (Pavel Minaev) Date: Sat, 12 Jun 2010 15:27:58 -0700 Subject: Virtual Extension By Inversion of Responsibility In-Reply-To: References: Message-ID: This seems to be largely identical to C# extension methods. The problem with it is that it misses the important use case of classes implementing interfaces with extension methods being able to override the generic implementations of those methods with their own (presumably optimized) implementation. On Sat, Jun 12, 2010 at 2:56 PM, Collin Fagan wrote: > Hi Everyone, > > I've put together a draft of a document that postulates an alternate > implementation of virtual extension methods. > > http://www.box.net/shared/r24vvgma5p > > I welcome any feedback. > > Thanks, > > Collin > > From scolebourne at joda.org Sat Jun 12 17:02:50 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Sun, 13 Jun 2010 01:02:50 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <4C12797E.4080904@oracle.com> References: <4C12797E.4080904@oracle.com> Message-ID: On 11 June 2010 18:59, Brian Goetz wrote: > ?(This is a solution to the > problem of exception transparency much as arson is a solution to the problem > of cockroaches.) Hmmm. I might argue that the same analogy applies to the strawman (ie.overkill). Neither analogy gets us anywhere. My aim is to avoid the horrific syntax that exception abstraction requires. If someone can show a sensible approach at the syntax level for function types and methods that need to be transparent, then I have no objection to the basic direction of the strawman. I simply don't believe such a syntax exists. Also, I would re-emphasise, as others have, that if all exceptions in Java were unchecked, then we would not be having this discussion. With respect to both parties, has Oracle simply accepted Neal's definition of "exception transparency" (ie "exception abstraction") without going back to the original problem? To summarise, this thread contrasts two options: 1) Strawman. Lots of extra syntax. Fully retains the power of checked exceptions. 2) Lone throws. Little extra syntax. Reduces the use of checked exceptions. Reinier has presented another approach which also has merit. My sole goal in this project is to ensure that the end result is usable by typical Java developers (a combination of semantics and syntax). Variance mark 2 (both semantics and syntax) must be avoided at all costs. > Besides the points raised here, I could easily imagine a world where > developers who don't like checked exception just decorated every method with > "throws". ?I don't know if that is the intent of the proposal or simply a > side-effect, but it is (in our view) some pretty serious collateral damage. It is not the intent of the author, no. (I do dislike checked exceptions, but I fully acknowledge that many like them, and they are a feature of Java). If some people chose to make use of the feature, then that is their decision. Given that the vast majority of existing open source libraries current wrap checked in unchecked, I suspect it would be very widely adopted. So, yes, choosing this proposal should be done with a full awareness that it will be used to reduce the role of checked exceptions generally. Some might view this as "serious collateral damage" - others might view this as a "separate language feature that has benefits in P.Lambda". The truth is somewhere in the middle. Finally, as many have commented - there is nothing new here. Escaped checked exceptions already happen, and are very hard to catch today. Given the increasing integration of languages other than Java (something I believe was being actively supported by Sun/Oracle), the escaped exception issue is only getting worse. Being honest about it would be a service to the whole Java community separate to Lambda. (Actually, a Project Coin feature to allow the coder to catch escaped checked exceptions would have been a good submission on its own) Plus, would "lone throws" not help some of the API parts of invoke dynamic where methods might throw exceptions? Occasionally its time to think the unthinkable ;-) Stephen From jkuhnert at gmail.com Sat Jun 12 17:52:46 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Sat, 12 Jun 2010 20:52:46 -0400 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: I think the fundamental question here is whether or not this is within the scope of this project? Nothing irks me more than being told I must catch this or that exception which I'm sure many if not all people might agree, but it exists already. We could come out of this with an entirely new language if we followed the path along to the end right? You are making lots of "quotes" but I'm unclear as to whether you are personally responsible for the success of the project other than some vague references to "speaking for the common man, the general developer". You don't speak for me, and I imagine - after having used joda many times finding that the API is downright frustrating and nonsensical at times - do you really speak for the common developer as much as your inflated ego would like to think. What's a period or interval or duration? They all sound the same to me. wtf?.. Indeed. On Saturday, June 12, 2010, Stephen Colebourne wrote: > On 11 June 2010 18:59, Brian Goetz wrote: >> ?(This is a solution to the >> problem of exception transparency much as arson is a solution to the problem >> of cockroaches.) > Hmmm. I might argue that the same analogy applies to the strawman > (ie.overkill). Neither analogy gets us anywhere. > > > My aim is to avoid the horrific syntax that exception abstraction > requires. If someone can show a sensible approach at the syntax level > for function types and methods that need to be transparent, then I > have no objection to the basic direction of the strawman. I simply > don't believe such a syntax exists. > > Also, I would re-emphasise, as others have, that if all exceptions in > Java were unchecked, then we would not be having this discussion. With > respect to both parties, has Oracle simply accepted Neal's definition > of "exception transparency" (ie "exception abstraction") without going > back to the original problem? > > To summarise, this thread contrasts two options: > 1) Strawman. Lots of extra syntax. Fully retains the power of checked > exceptions. > 2) Lone throws. Little extra syntax. Reduces the use of checked exceptions. > Reinier has presented another approach which also has merit. > > My sole goal in this project is to ensure that the end result is > usable by typical Java developers (a combination of semantics and > syntax). Variance mark 2 (both semantics and syntax) must be avoided > at all costs. > > >> Besides the points raised here, I could easily imagine a world where >> developers who don't like checked exception just decorated every method with >> "throws". ?I don't know if that is the intent of the proposal or simply a >> side-effect, but it is (in our view) some pretty serious collateral damage. > It is not the intent of the author, no. (I do dislike checked > exceptions, but I fully acknowledge that many like them, and they are > a feature of Java). > > If some people chose to make use of the feature, then that is their > decision. Given that the vast majority of existing open source > libraries current wrap checked in unchecked, I suspect it would be > very widely adopted. So, yes, choosing this proposal should be done > with a full awareness that it will be used to reduce the role of > checked exceptions generally. Some might view this as "serious > collateral damage" - others might view this as a "separate language > feature that has benefits in P.Lambda". The truth is somewhere in the > middle. > > Finally, as many have commented - there is nothing new here. Escaped > checked exceptions already happen, and are very hard to catch today. > Given the increasing integration of languages other than Java > (something I believe was being actively supported by Sun/Oracle), the > escaped exception issue is only getting worse. Being honest about it > would be a service to the whole Java community separate to Lambda. > > (Actually, a Project Coin feature to allow the coder to catch escaped > checked exceptions would have been a good submission on its own) > > Plus, would "lone throws" not help some of the API parts of invoke > dynamic where methods might throw exceptions? > > Occasionally its time to think the unthinkable ;-) > > Stephen > > From jkuhnert at gmail.com Sat Jun 12 19:01:10 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Sat, 12 Jun 2010 22:01:10 -0400 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: btw, I could do this all day. Bring on your Reiners / Howards / Stephens. It's time for a reckoning. Being a java developer does not make you a language designer. Learn your place. On Sat, Jun 12, 2010 at 8:52 PM, Jesse Kuhnert wrote: > I think the fundamental question here is whether or not this is within > the scope of this project? > > Nothing irks me more than being told I must catch this or that > exception which I'm sure many if not all people might agree, but it > exists already. We could come out of this with an entirely new > language if we followed the path along to the end right? > > You are making lots of "quotes" but I'm unclear as to whether you are > personally responsible for the success of the project other than some > vague references to "speaking for the common man, the general > developer". > > You don't speak for me, and I imagine - after having used joda many > times finding that the API is downright frustrating and nonsensical at > times - do you really speak for the common developer as much as your > inflated ego would like to think. What's a period or interval or > duration? They all sound the same to me. wtf?.. Indeed. > > On Saturday, June 12, 2010, Stephen Colebourne wrote: >> On 11 June 2010 18:59, Brian Goetz wrote: >>> ?(This is a solution to the >>> problem of exception transparency much as arson is a solution to the problem >>> of cockroaches.) >> Hmmm. I might argue that the same analogy applies to the strawman >> (ie.overkill). Neither analogy gets us anywhere. >> >> >> My aim is to avoid the horrific syntax that exception abstraction >> requires. If someone can show a sensible approach at the syntax level >> for function types and methods that need to be transparent, then I >> have no objection to the basic direction of the strawman. I simply >> don't believe such a syntax exists. >> >> Also, I would re-emphasise, as others have, that if all exceptions in >> Java were unchecked, then we would not be having this discussion. With >> respect to both parties, has Oracle simply accepted Neal's definition >> of "exception transparency" (ie "exception abstraction") without going >> back to the original problem? >> >> To summarise, this thread contrasts two options: >> 1) Strawman. Lots of extra syntax. Fully retains the power of checked >> exceptions. >> 2) Lone throws. Little extra syntax. Reduces the use of checked exceptions. >> Reinier has presented another approach which also has merit. >> >> My sole goal in this project is to ensure that the end result is >> usable by typical Java developers (a combination of semantics and >> syntax). Variance mark 2 (both semantics and syntax) must be avoided >> at all costs. >> >> >>> Besides the points raised here, I could easily imagine a world where >>> developers who don't like checked exception just decorated every method with >>> "throws". ?I don't know if that is the intent of the proposal or simply a >>> side-effect, but it is (in our view) some pretty serious collateral damage. >> It is not the intent of the author, no. (I do dislike checked >> exceptions, but I fully acknowledge that many like them, and they are >> a feature of Java). >> >> If some people chose to make use of the feature, then that is their >> decision. Given that the vast majority of existing open source >> libraries current wrap checked in unchecked, I suspect it would be >> very widely adopted. So, yes, choosing this proposal should be done >> with a full awareness that it will be used to reduce the role of >> checked exceptions generally. Some might view this as "serious >> collateral damage" - others might view this as a "separate language >> feature that has benefits in P.Lambda". The truth is somewhere in the >> middle. >> >> Finally, as many have commented - there is nothing new here. Escaped >> checked exceptions already happen, and are very hard to catch today. >> Given the increasing integration of languages other than Java >> (something I believe was being actively supported by Sun/Oracle), the >> escaped exception issue is only getting worse. Being honest about it >> would be a service to the whole Java community separate to Lambda. >> >> (Actually, a Project Coin feature to allow the coder to catch escaped >> checked exceptions would have been a good submission on its own) >> >> Plus, would "lone throws" not help some of the API parts of invoke >> dynamic where methods might throw exceptions? >> >> Occasionally its time to think the unthinkable ;-) >> >> Stephen >> >> > From daniel.yokomizo at gmail.com Sat Jun 12 20:18:24 2010 From: daniel.yokomizo at gmail.com (Daniel Yokomizo) Date: Sun, 13 Jun 2010 00:18:24 -0300 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: On Sat, Jun 12, 2010 at 9:02 PM, Stephen Colebourne wrote: > On 11 June 2010 18:59, Brian Goetz wrote: >> ?(This is a solution to the >> problem of exception transparency much as arson is a solution to the problem >> of cockroaches.) > Hmmm. I might argue that the same analogy applies to the strawman > (ie.overkill). Neither analogy gets us anywhere. > > > My aim is to avoid the horrific syntax that exception abstraction > requires. If someone can show a sensible approach at the syntax level > for function types and methods that need to be transparent, then I > have no objection to the basic direction of the strawman. I simply > don't believe such a syntax exists. > > Also, I would re-emphasise, as others have, that if all exceptions in > Java were unchecked, then we would not be having this discussion. With > respect to both parties, has Oracle simply accepted Neal's definition > of "exception transparency" (ie "exception abstraction") without going > back to the original problem? In a similar note if Java supported both dynamic and static typing from the beginning a similar discussion would have occurred about generics :) > To summarise, this thread contrasts two options: > 1) Strawman. Lots of extra syntax. Fully retains the power of checked > exceptions. > 2) Lone throws. Little extra syntax. Reduces the use of checked exceptions. > Reinier has presented another approach which also has merit. AFAICS there are at least three distinct goals/use cases being conflated: 1. A way to reduce syntax boilerplate when it's necessary to propagate exceptions from a closure body (or any other method body). 2. A way to express that a certain set of checked exceptions may be thrown by a function type. 3. A way to manipulate/compose throws clauses in a generic-like manner. Despite personal preferences, we can agree that not all proposals cover all goals. Also, some of these use cases may be more critical than others. The empty throws proposal covers just goal 1 and doesn't help if we are writing generic code (because this is covered also by goals 2 & 3) we end up having to declare everything with throws (e.g. a compose would have to declare empty throws). > My sole goal in this project is to ensure that the end result is > usable by typical Java developers (a combination of semantics and > syntax). Variance mark 2 (both semantics and syntax) must be avoided > at all costs. Variance is part of the cost of higher order types with subtyping. The particular solution adopted in Java is problematic, not variance. We could avoid the variance woes by dropping static typing, but it would create a less (statically) expressive solution. Similarly the three goals exist, if we reduce the scope to the first goal only we can have a simpler solution, but it'll be a partial solution. >> Besides the points raised here, I could easily imagine a world where >> developers who don't like checked exception just decorated every method with >> "throws". ?I don't know if that is the intent of the proposal or simply a >> side-effect, but it is (in our view) some pretty serious collateral damage. > It is not the intent of the author, no. (I do dislike checked > exceptions, but I fully acknowledge that many like them, and they are > a feature of Java). > > If some people chose to make use of the feature, then that is their > decision. Given that the vast majority of existing open source > libraries current wrap checked in unchecked, I suspect it would be > very widely adopted. I suspect most libraries wrap exceptions (either in unchecked or another checked) because Java didn't have a way to express abstractions/parametrization over exceptions. For example, the contract between Callable, Future and ExecutorService could be much better expressed without something like ExecutionException if we had support for goals 2 & 3. Actually with abstraction/parametrization over exceptions it wouldn't be necessary to create so many intermediate exceptions and generic code could be written with better contracts. Using the Future example we could have: interface ExecutorService { Future invoke(Callable c); } The signature makes clear which kind of exceptions are possible, problems from the Callable and problems from the Executor. > So, yes, choosing this proposal should be done > with a full awareness that it will be used to reduce the role of > checked exceptions generally. Some might view this as "serious > collateral damage" - others might view this as a "separate language > feature that has benefits in P.Lambda". The truth is somewhere in the > middle. > > Finally, as many have commented - there is nothing new here. Escaped > checked exceptions already happen, and are very hard to catch today. > Given the increasing integration of languages other than Java > (something I believe was being actively supported by Sun/Oracle), the > escaped exception issue is only getting worse. Being honest about it > would be a service to the whole Java community separate to Lambda. > > (Actually, a Project Coin feature to allow the coder to catch escaped > checked exceptions would have been a good submission on its own) > > Plus, would "lone throws" not help some of the API parts of invoke > dynamic where methods might throw exceptions? > > Occasionally its time to think the unthinkable ;-) Like deprecating support for unchecked exceptions and adding exception abstraction/parametrization at the correct places :) > Stephen Best regards, Daniel Yokomizo. From pbenedict at apache.org Sat Jun 12 22:10:59 2010 From: pbenedict at apache.org (Paul Benedict) Date: Sun, 13 Jun 2010 00:10:59 -0500 Subject: Virtual Extension By Inversion of Responsibility In-Reply-To: References: Message-ID: Can anyone tell me if C# is trying to do something similar in their language? Or any language? It seems like a novel idea to me, but please forgive me not being a language expert. Paul On Sat, Jun 12, 2010 at 5:27 PM, Pavel Minaev wrote: > This seems to be largely identical to C# extension methods. The problem with > it is that it misses the important use case of classes implementing > interfaces with extension methods being able to override the generic > implementations of those methods with their own (presumably optimized) > implementation. > > On Sat, Jun 12, 2010 at 2:56 PM, Collin Fagan wrote: > >> Hi Everyone, >> >> I've put together a draft of a document that postulates an alternate >> implementation of virtual extension methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> I welcome any feedback. >> >> Thanks, >> >> Collin >> >> > > From int19h at gmail.com Sat Jun 12 23:15:16 2010 From: int19h at gmail.com (Pavel Minaev) Date: Sat, 12 Jun 2010 23:15:16 -0700 Subject: Virtual Extension By Inversion of Responsibility In-Reply-To: References: Message-ID: In case it is of interest... Visual C# has had a somewhat similar feature, called "extension methods", since version 3.0 (released in 2008). By and large, it is just syntactic sugar that translates an instance member invocation to a static member invocation. It does not use any special syntax to distinguish the call, and so it looks identical to a normal invocation - if a method with a given name (roughly speaking; in practice, this involves overload resolution) is not found in the static type of the receiver, it looks for an "equivalent" accessible static method, with the first argument - corresponding to receiver - of a matching type, and decorated with [ExtensionAttribute], in all accessible static classes in open or imported namespaces. C# furthermore provides syntactic sugar for the attribute. Overall, this looks like this: // The original library interface public interface IEnumerable { IEnumerator GetEnumerator(); } // Third-party extension library namespace Foo { public static class EnumerableExtensions { public static IEnumerable Filter(this IEnumerable seq, Func predicate) { // "this" is syntactic sugar for [ExtensionAttribute] ... } } } // Client code using Foo; // brings extension method definition into scope class Program { static void Main() { IEnumerable xs; xs.GetEnumerator(); // normal method invocation xs = xs.Filter(x => x > 0); // extension method invocation; translated to: xs = EnumerableExtensions.Filter(xs, x => x > 0); } } More detailed coverage and examples are available here: http://msdn.microsoft.com/en-us/library/bb383977.aspx and here is a typical library class providing extension methods: http://msdn.microsoft.com/en-us/library/system.linq.enumerable_members.aspx The main issue is the same - the inability for a particular implementation of the interface to "override" an extension method. For example, the .NET base class library has a number of stock extension methods for IEnumerable interface - the usual set of operations on sequences, filter/map/fold/zip etc. Among them are e.g. Count() - count of elements in the sequence; and ElementAt() - retrieval of element by its index; which for a generic sequence are only implementable by enumerating elements until the desired one (or the end, for Count), which is O(n). Quite obviously, most collections would be able to provide an O(1) Count(), and some would be able to provide O(1) ElementAt(). However, there is no way they can do so in practice, since the method call is static, and not overridable. .NET class library cheats there - the implementations of Count() and ElementAt() are tightly coupled to interfaces such as ICollection (which can provide O(1) count) and IList (which can provide O(1) indexing) - and simply check if the receiver implements those interfaces, and use a more optimal branch if that is the case. But this all is hardcoded into the extension methods - if you come up with your own interface, you won't be able to plug it into that system. That said, it is technically still possible to make such a system extensible, if you couple every individual static extension method with a corresponding single-method interface, and make the implementation of that extension method to first check if the receiver implements that interface, and delegate to the method on that interface if available. Then, any class that needs to "override" the extension method just implements the corresponding interface. In practice, though, this scheme is very cumbersome, and I haven't ever seen it actually being used. In contrast, the scheme being discussed for Java allows classes to override default implementations of interface methods with minimal effort - from programmer's perspective, it looks exactly like an override of a base class method. On Sat, Jun 12, 2010 at 10:10 PM, Paul Benedict wrote: > Can anyone tell me if C# is trying to do something similar in their > language? Or any language? It seems like a novel idea to me, but > please forgive me not being a language expert. > > Paul > > On Sat, Jun 12, 2010 at 5:27 PM, Pavel Minaev wrote: > > This seems to be largely identical to C# extension methods. The problem > with > > it is that it misses the important use case of classes implementing > > interfaces with extension methods being able to override the generic > > implementations of those methods with their own (presumably optimized) > > implementation. > > > > On Sat, Jun 12, 2010 at 2:56 PM, Collin Fagan >wrote: > > > >> Hi Everyone, > >> > >> I've put together a draft of a document that postulates an alternate > >> implementation of virtual extension methods. > >> > >> http://www.box.net/shared/r24vvgma5p > >> > >> I welcome any feedback. > >> > >> Thanks, > >> > >> Collin > >> > >> > > > > > From scolebourne at joda.org Sun Jun 13 04:47:17 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Sun, 13 Jun 2010 12:47:17 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: On 13 June 2010 04:18, Daniel Yokomizo wrote: > AFAICS there are at least three distinct goals/use cases being conflated: > 1. A way to reduce syntax boilerplate when it's necessary to propagate > exceptions from a closure body (or any other method body). > 2. A way to express that a certain set of checked exceptions may be > thrown by a function type. > 3. A way to manipulate/compose throws clauses in a generic-like manner. > Despite personal preferences, we can agree that not all proposals > cover all goals. Also, some of these use cases may be more critical > than others. +1 > interface ExecutorService { > ? ? Future invoke(Callable c); > } > > The signature makes clear which kind of exceptions are possible, > problems from the Callable and problems from the Executor. You call it clear. I call it unreadable. Different kinds of "clear". ie. It is clear from a type-information basis. It is not clear to anyone glancing at a method in code or Javadoc and trying to figure out what the heck it does. By way of comparison, pre Java 5 we would have: interface ExecutorService { Future invoke(Callable c); } which is /instantly/ readable. I'm simply posing the question "at what point does adding type-information impair readability to the point of being unacceptable?". I don't get to choose the answer - Oracle does. Stephen From forax at univ-mlv.fr Sun Jun 13 04:50:59 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Sun, 13 Jun 2010 13:50:59 +0200 Subject: Virtual extension methods -- second draft In-Reply-To: <4C13E147.9060402@oracle.com> References: <4BEDD9E9.7050300@oracle.com> <4C0E4244.60205@oracle.com> <4C13CB3E.4090503@oracle.com> <4C13D7CB.7060307@univ-mlv.fr> <4C13E147.9060402@oracle.com> Message-ID: <4C14C623.6080102@univ-mlv.fr> Le 12/06/2010 21:34, Brian Goetz a ?crit : >>>> Taking the section more literally, it appears to be discussing runtime >>>> dispatch of an invokeinterface invocation where the receiver type in >>>> the constant pool is D. >>>> >>> Or an invokedynamic. >> >> There is only one problem with invokedynamic. >> Invokedynamic requires a bootstrap method and the current spec says >> that there is only one bootstrap method for the whole class. >> If defender methods are implemented using invokedynamic, >> developers will not be able to specify their own a bootstrap method. > > I was afraid you were going to say that. > > Is there no way to specify a bootstrap method on a per-call-site basis? This is an open issue. R?mi From scolebourne at joda.org Sun Jun 13 05:23:36 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Sun, 13 Jun 2010 13:23:36 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: On 13 June 2010 01:52, Jesse Kuhnert wrote: > I think the fundamental question here is whether or not this is within > the scope of this project? Brian indicated it was a useful exploration of the design space. > Nothing irks me more than being told I must catch this or that > exception which I'm sure many if not all people might agree, but it > exists already. We could come out of this with an entirely new > language if we followed the path along to the end right? The proposal does not remove checked exceptions. It simply recognizes current reality (other JVM languages, lombok sneaky throws etc) and runs with it. It you want a closure that declares checked exceptions, simply define a SAM for it. > You are making lots of "quotes" but I'm unclear as to whether you are > personally responsible for the success of the project other than some > vague references to "speaking for the common man, the general > developer". Language design is hard. And I'm not a language designer (never claimed I was). My role here is to assist language designers in finding the sweet spot where the concepts that they wish to express are usable to a broader audience. (By definition, everyone on this list is not an average developer, so it is always a personal judgement call as to what is and isn't usable by that wider audience). In the end, Oracle decides. I should note that given project lambda is heavily based in semantics and syntax on the FCM proposal, itself a deliberate attempt to find the sweet spot between BGGA and CICE, I don't think it unreasonable for me to have views here, nor argue constructively for them. BTW, if an Oracle member of staff wants to categorically state that this proposal is unacceptable, then please do so unequivocally. Doing so, would terminate the discussion. Of course, it wouldn't terminate the discussion of how the heck to express exception abstraction as usable syntax :-) Stephen From daniel.yokomizo at gmail.com Sun Jun 13 06:02:43 2010 From: daniel.yokomizo at gmail.com (Daniel Yokomizo) Date: Sun, 13 Jun 2010 10:02:43 -0300 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: On Sun, Jun 13, 2010 at 8:47 AM, Stephen Colebourne wrote: > On 13 June 2010 04:18, Daniel Yokomizo wrote: >> AFAICS there are at least three distinct goals/use cases being conflated: >> 1. A way to reduce syntax boilerplate when it's necessary to propagate >> exceptions from a closure body (or any other method body). >> 2. A way to express that a certain set of checked exceptions may be >> thrown by a function type. >> 3. A way to manipulate/compose throws clauses in a generic-like manner. >> Despite personal preferences, we can agree that not all proposals >> cover all goals. Also, some of these use cases may be more critical >> than others. > +1 > >> interface ExecutorService { >> ? ? Future invoke(Callable c); >> } >> >> The signature makes clear which kind of exceptions are possible, >> problems from the Callable and problems from the Executor. > You call it clear. I call it unreadable. Different kinds of "clear". > > ie. It is clear from a type-information basis. It is not clear to > anyone glancing at a method in code or Javadoc and trying to figure > out what the heck it does. By way of comparison, pre Java 5 we would > have: > > ?interface ExecutorService { > ? ?Future invoke(Callable c); > ?} > > which is /instantly/ readable. This is mostly a matter of familiarity. If people don't know how to read generic declarations they'll obviously fail to understand them. Also it's obvious that generics require more effort to understand than no generics, OTOH they provide a better foundation to write correct code. OTOH just by glancing the pre-java5 declaration I would have no idea which kind of exceptions could/would be thrown. Ditto for what kind of results. [From your other message] > It you want a closure that declares checked exceptions, > simply define a SAM for it. That is not possible without some form of exception abstraction. Currently the only way to write a compose a function types aware of exceptions (F) is to use an exception supertype: F compose(F ef, F fg); But the most specific type could be: F compose(F ef, F fg); I'm not arguing about the clarity of this syntax. The issue is how can we work generically with checked exceptions. > I'm simply posing the question "at what point does adding > type-information impair readability to the point of being > unacceptable?". I don't get to choose the answer - Oracle does. > > Stephen Best regards, Daniel Yokomizo From neal at gafter.com Sun Jun 13 09:04:35 2010 From: neal at gafter.com (Neal Gafter) Date: Sun, 13 Jun 2010 09:04:35 -0700 Subject: Virtual Extension By Inversion of Responsibility In-Reply-To: References: Message-ID: These options all suffer the same problem that defender methods were intended to fix: a subclass cannot override the implementation. -Neal On Jun 12, 2010, at 2:56 PM, Collin Fagan wrote: > Hi Everyone, > > I've put together a draft of a document that postulates an alternate > implementation of virtual extension methods. > > http://www.box.net/shared/r24vvgma5p > > I welcome any feedback. > > Thanks, > > Collin > From brian.goetz at oracle.com Sun Jun 13 11:48:31 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Sun, 13 Jun 2010 14:48:31 -0400 Subject: Virtual Extension By Inversion of Responsibility In-Reply-To: References: Message-ID: <4C1527FF.7030209@oracle.com> Quite so. Or, in other words, these are *static* extension methods, not *virtual* extension methods. On 6/13/2010 12:04 PM, Neal Gafter wrote: > These options all suffer the same problem that defender methods were > intended to fix: a subclass cannot override the implementation. > > -Neal > > On Jun 12, 2010, at 2:56 PM, Collin Fagan wrote: > >> Hi Everyone, >> >> I've put together a draft of a document that postulates an alternate >> implementation of virtual extension methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> I welcome any feedback. >> >> Thanks, >> >> Collin >> > From pbenedict at apache.org Mon Jun 14 07:17:23 2010 From: pbenedict at apache.org (Paul Benedict) Date: Mon, 14 Jun 2010 09:17:23 -0500 Subject: Virtual Extension By Inversion of Responsibility In-Reply-To: <4C1527FF.7030209@oracle.com> References: <4C1527FF.7030209@oracle.com> Message-ID: Then in regards to my original question, what other language has virtual extension methods? As I understand them, they allow new interface methods to be introduced with default implementations. Paul On Sun, Jun 13, 2010 at 1:48 PM, Brian Goetz wrote: > Quite so. ?Or, in other words, these are *static* extension methods, not > *virtual* extension methods. > > On 6/13/2010 12:04 PM, Neal Gafter wrote: >> These options all suffer the same problem that defender methods were >> intended to fix: a subclass cannot override the implementation. >> >> -Neal >> >> On Jun 12, 2010, at 2:56 PM, Collin Fagan ?wrote: >> >>> Hi Everyone, >>> >>> I've put together a draft of a document that postulates an alternate >>> implementation of virtual extension methods. >>> >>> http://www.box.net/shared/r24vvgma5p >>> >>> I welcome any feedback. >>> >>> Thanks, >>> >>> Collin >>> >> > > From aph at redhat.com Mon Jun 14 08:25:31 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 14 Jun 2010 16:25:31 +0100 Subject: Can't get lambda forest to work Message-ID: <4C1649EB.70405@redhat.com> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda It doesn't seem to work. I compile public class Closures { public static void main(String[] args) { #int() fortyTwo = #()(42); System.out.println("Hello, World!" + fortyTwo.()); } } but it doesn't run: happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac -XDallowFunctionTypes -source 7 Closures.java happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in this JVM. Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable. Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) at sun.dyn.Invokers.exactInvoker(Invokers.java:66) at sun.dyn.Invokers.genericInvoker(Invokers.java:74) at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) at Closures.main(Closures.java:7) happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version openjdk version "1.7.0-internal" OpenJDK Runtime Environment (build 1.7.0-internal-aph_2010_06_10_17_35-b00) OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) Any ideas what might be going wrong, please? Thanks, Andrew. From jonathan.gibbons at oracle.com Mon Jun 14 08:40:21 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 14 Jun 2010 08:40:21 -0700 Subject: Can't get lambda forest to work In-Reply-To: <4C1649EB.70405@redhat.com> References: <4C1649EB.70405@redhat.com> Message-ID: <4C164D65.5030806@oracle.com> The error message says to use -XX:+EnableInvokeDynamic -- Jon On 06/14/2010 08:25 AM, Andrew Haley wrote: > This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda > > It doesn't seem to work. I compile > > public class Closures > { > public static void main(String[] args) > { > #int() fortyTwo = #()(42); > > System.out.println("Hello, World!" + fortyTwo.()); > } > } > > but it doesn't run: > > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac -XDallowFunctionTypes -source 7 Closures.java > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures > OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in this JVM. Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable. > Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int > at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) > at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) > at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) > at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) > at sun.dyn.Invokers.exactInvoker(Invokers.java:66) > at sun.dyn.Invokers.genericInvoker(Invokers.java:74) > at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) > at Closures.main(Closures.java:7) > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version > openjdk version "1.7.0-internal" > OpenJDK Runtime Environment (build 1.7.0-internal-aph_2010_06_10_17_35-b00) > OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) > > Any ideas what might be going wrong, please? > > Thanks, > Andrew. > > > From aph at redhat.com Mon Jun 14 08:42:59 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 14 Jun 2010 16:42:59 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C164D65.5030806@oracle.com> References: <4C1649EB.70405@redhat.com> <4C164D65.5030806@oracle.com> Message-ID: <4C164E03.6060104@redhat.com> On 06/14/2010 04:40 PM, Jonathan Gibbons wrote: > The error message says to use -XX:+EnableInvokeDynamic Is invokedynamic being used by this example? Anyway, that doesn't help: happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures Invalid layout of java.dyn.CallSite at target # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 # fatal error: Invalid layout of preloaded class # # JRE version: 7.0 # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) # An error report file with more information is saved as: # /home/aph/hs_err_pid10544.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # Aborted > -- Jon > > > On 06/14/2010 08:25 AM, Andrew Haley wrote: >> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >> >> It doesn't seem to work. I compile >> >> public class Closures >> { >> public static void main(String[] args) >> { >> #int() fortyTwo = #()(42); >> >> System.out.println("Hello, World!" + fortyTwo.()); >> } >> } >> >> but it doesn't run: >> >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac -XDallowFunctionTypes -source 7 Closures.java >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures >> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in this JVM. Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable. >> Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int >> at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >> at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >> at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >> at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >> at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >> at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >> at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >> at Closures.main(Closures.java:7) >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >> openjdk version "1.7.0-internal" >> OpenJDK Runtime Environment (build 1.7.0-internal-aph_2010_06_10_17_35-b00) >> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >> >> Any ideas what might be going wrong, please? >> >> Thanks, >> Andrew. >> >> >> > > From pbenedict at apache.org Mon Jun 14 08:44:32 2010 From: pbenedict at apache.org (Paul Benedict) Date: Mon, 14 Jun 2010 10:44:32 -0500 Subject: Can't get lambda forest to work In-Reply-To: <4C164E03.6060104@redhat.com> References: <4C1649EB.70405@redhat.com> <4C164D65.5030806@oracle.com> <4C164E03.6060104@redhat.com> Message-ID: Yes, the stack trace shows calls to package java.dyn. On Mon, Jun 14, 2010 at 10:42 AM, Andrew Haley wrote: > On 06/14/2010 04:40 PM, Jonathan Gibbons wrote: >> The error message says to use -XX:+EnableInvokeDynamic > > Is invokedynamic being used by this example? > Anyway, that doesn't help: > > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java ?-XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures > Invalid layout of java.dyn.CallSite at target > # > # A fatal error has been detected by the Java Runtime Environment: > # > # ?Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 > # ?fatal error: Invalid layout of preloaded class > # > # JRE version: 7.0 > # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) > # An error report file with more information is saved as: > # /home/aph/hs_err_pid10544.log > # > # If you would like to submit a bug report, please visit: > # ? http://java.sun.com/webapps/bugreport/crash.jsp > # > Aborted > > > >> -- Jon >> >> >> On 06/14/2010 08:25 AM, Andrew Haley wrote: >>> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >>> >>> It doesn't seem to work. ?I compile >>> >>> public class Closures >>> { >>> ? ?public static void main(String[] args) >>> ? ?{ >>> ? ? ?#int() fortyTwo = #()(42); >>> >>> ? ? ?System.out.println("Hello, World!" + fortyTwo.()); >>> ? ?} >>> } >>> >>> but it doesn't run: >>> >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac -XDallowFunctionTypes -source 7 Closures.java >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java ?-XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles ?-cp . Closures >>> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in this JVM. ?Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable. >>> Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int >>> ? ? ? ? ?at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >>> ? ? ? ? ?at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >>> ? ? ? ? ?at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >>> ? ? ? ? ?at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >>> ? ? ? ? ?at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >>> ? ? ? ? ?at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >>> ? ? ? ? ?at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >>> ? ? ? ? ?at Closures.main(Closures.java:7) >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >>> openjdk version "1.7.0-internal" >>> OpenJDK Runtime Environment (build 1.7.0-internal-aph_2010_06_10_17_35-b00) >>> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >>> >>> Any ideas what might be going wrong, please? >>> >>> Thanks, >>> Andrew. >>> >>> >>> >> >> > > > From maurizio.cimadamore at oracle.com Mon Jun 14 08:53:23 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 14 Jun 2010 16:53:23 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C1649EB.70405@redhat.com> References: <4C1649EB.70405@redhat.com> Message-ID: <4C165073.4080401@oracle.com> On 14/06/10 16:25, Andrew Haley wrote: > This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda > > It doesn't seem to work. I compile > > public class Closures > { > public static void main(String[] args) > { > #int() fortyTwo = #()(42); > > System.out.println("Hello, World!" + fortyTwo.()); > } > } > > but it doesn't run: > > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac -XDallowFunctionTypes -source 7 Closures.java > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures > OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in this JVM. Use -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic to enable. > Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int > at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) > at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) > at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) > at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) > at sun.dyn.Invokers.exactInvoker(Invokers.java:66) > at sun.dyn.Invokers.genericInvoker(Invokers.java:74) > at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) > at Closures.main(Closures.java:7) > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version > openjdk version "1.7.0-internal" > OpenJDK Runtime Environment (build 1.7.0-internal-aph_2010_06_10_17_35-b00) > OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) > > Any ideas what might be going wrong, please? > You'll need the following VM options: -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic alternatively, you could use the handy scripts for invoking java/javac that should appear in the langtools/dist/bin directory. Those scripts automatically sets things up for you. Maurizio > Thanks, > Andrew. > > > From aph at redhat.com Mon Jun 14 09:00:00 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 14 Jun 2010 17:00:00 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C165073.4080401@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> Message-ID: <4C165200.4030402@redhat.com> On 06/14/2010 04:53 PM, Maurizio Cimadamore wrote: > On 14/06/10 16:25, Andrew Haley wrote: >> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >> >> It doesn't seem to work. I compile >> >> public class Closures >> { >> public static void main(String[] args) >> { >> #int() fortyTwo = #()(42); >> >> System.out.println("Hello, World!" + fortyTwo.()); >> } >> } >> >> but it doesn't run: >> >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac >> -XDallowFunctionTypes -source 7 Closures.java >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java >> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures >> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in >> this JVM. Use -XX:+UnlockExperimentalVMOptions >> -XX:+EnableInvokeDynamic to enable. >> Exception in thread "main" java.dyn.NoAccessException: cannot access: >> *.java.dyn.MethodHandle.invoke()int >> at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >> at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >> at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >> at >> java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >> at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >> at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >> at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >> at Closures.main(Closures.java:7) >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >> openjdk version "1.7.0-internal" >> OpenJDK Runtime Environment (build >> 1.7.0-internal-aph_2010_06_10_17_35-b00) >> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >> >> Any ideas what might be going wrong, please? >> > > You'll need the following VM options: > > -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles > -XX:+EnableInvokeDynamic Thanks. As I said in my previous reply, that doesn't help: happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures Invalid layout of java.dyn.CallSite at target # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (javaClasses.cpp:48), pid=10544, tid=14015271442 > alternatively, you could use the handy scripts for invoking java/javac > that should appear in the langtools/dist/bin directory. Those scripts > automatically sets things up for you. Thanks, but I can't find those at all. I can find /local/lambda/langtools/src/share/bin/java.sh-template which I guess must be what you mean, but no output file. Andrew. From jonathan.gibbons at oracle.com Mon Jun 14 09:12:34 2010 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 14 Jun 2010 09:12:34 -0700 Subject: Can't get lambda forest to work In-Reply-To: <4C165200.4030402@redhat.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> Message-ID: <4C1654F2.2010108@oracle.com> On 06/14/2010 09:00 AM, Andrew Haley wrote: > On 06/14/2010 04:53 PM, Maurizio Cimadamore wrote: > >> On 14/06/10 16:25, Andrew Haley wrote: >> >>> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >>> >>> It doesn't seem to work. I compile >>> >>> public class Closures >>> { >>> public static void main(String[] args) >>> { >>> #int() fortyTwo = #()(42); >>> >>> System.out.println("Hello, World!" + fortyTwo.()); >>> } >>> } >>> >>> but it doesn't run: >>> >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac >>> -XDallowFunctionTypes -source 7 Closures.java >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java >>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures >>> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in >>> this JVM. Use -XX:+UnlockExperimentalVMOptions >>> -XX:+EnableInvokeDynamic to enable. >>> Exception in thread "main" java.dyn.NoAccessException: cannot access: >>> *.java.dyn.MethodHandle.invoke()int >>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >>> at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >>> at >>> java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >>> at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >>> at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >>> at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >>> at Closures.main(Closures.java:7) >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >>> openjdk version "1.7.0-internal" >>> OpenJDK Runtime Environment (build >>> 1.7.0-internal-aph_2010_06_10_17_35-b00) >>> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >>> >>> Any ideas what might be going wrong, please? >>> >>> >> You'll need the following VM options: >> >> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >> -XX:+EnableInvokeDynamic >> > Thanks. As I said in my previous reply, that doesn't help: > > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures > Invalid layout of java.dyn.CallSite at target > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error (javaClasses.cpp:48), pid=10544, tid=14015271442 > > >> alternatively, you could use the handy scripts for invoking java/javac >> that should appear in the langtools/dist/bin directory. Those scripts >> automatically sets things up for you. >> > Thanks, but I can't find those at all. I can find > > /local/lambda/langtools/src/share/bin/java.sh-template > > which I guess must be what you mean, but no output file. > > Andrew. > > The langtools dist/bin/* files are only created in langtools "developer build" mode, and not in "full JDK build" mode, which you have done. If you wanted to build those files, you'd have to go to langtools and drive "make" or Ant directly, using an Ant target like build-all-tools. But, nothing there will help with the fatal runtime error you have uncovered. Sorry. -- Jon From maurizio.cimadamore at oracle.com Mon Jun 14 09:19:33 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 14 Jun 2010 17:19:33 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C1654F2.2010108@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> Message-ID: <4C165695.50800@oracle.com> I can run your example with no problems. Which version of JDK 7 are you using? Could it be a not too recent one? I'm using b94. In order to get the scripts I'm talking about follows the following steps: 1) cd /langtools 2) ant build-all-tools Note: step 2 might require changes to the build.properties file under langtools/make (e.g. you need to point to a valid JDK 6 for compiling the langtools repository, and then set a valid JDK 7 distro for launching the new javac). Maurizio On 14/06/10 17:12, Jonathan Gibbons wrote: > On 06/14/2010 09:00 AM, Andrew Haley wrote: > >> On 06/14/2010 04:53 PM, Maurizio Cimadamore wrote: >> >> >>> On 14/06/10 16:25, Andrew Haley wrote: >>> >>> >>>> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >>>> >>>> It doesn't seem to work. I compile >>>> >>>> public class Closures >>>> { >>>> public static void main(String[] args) >>>> { >>>> #int() fortyTwo = #()(42); >>>> >>>> System.out.println("Hello, World!" + fortyTwo.()); >>>> } >>>> } >>>> >>>> but it doesn't run: >>>> >>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac >>>> -XDallowFunctionTypes -source 7 Closures.java >>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java >>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures >>>> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in >>>> this JVM. Use -XX:+UnlockExperimentalVMOptions >>>> -XX:+EnableInvokeDynamic to enable. >>>> Exception in thread "main" java.dyn.NoAccessException: cannot access: >>>> *.java.dyn.MethodHandle.invoke()int >>>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >>>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >>>> at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >>>> at >>>> java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >>>> at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >>>> at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >>>> at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >>>> at Closures.main(Closures.java:7) >>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >>>> openjdk version "1.7.0-internal" >>>> OpenJDK Runtime Environment (build >>>> 1.7.0-internal-aph_2010_06_10_17_35-b00) >>>> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >>>> >>>> Any ideas what might be going wrong, please? >>>> >>>> >>>> >>> You'll need the following VM options: >>> >>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >>> -XX:+EnableInvokeDynamic >>> >>> >> Thanks. As I said in my previous reply, that doesn't help: >> >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures >> Invalid layout of java.dyn.CallSite at target >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # Internal Error (javaClasses.cpp:48), pid=10544, tid=14015271442 >> >> >> >>> alternatively, you could use the handy scripts for invoking java/javac >>> that should appear in the langtools/dist/bin directory. Those scripts >>> automatically sets things up for you. >>> >>> >> Thanks, but I can't find those at all. I can find >> >> /local/lambda/langtools/src/share/bin/java.sh-template >> >> which I guess must be what you mean, but no output file. >> >> Andrew. >> >> >> > The langtools dist/bin/* files are only created in langtools "developer > build" mode, and not in "full JDK build" mode, which you have done. If > you wanted to build those files, you'd have to go to langtools and drive > "make" or Ant directly, using an Ant target like build-all-tools. But, > nothing there will help with the fatal runtime error you have uncovered. > Sorry. > > -- Jon > > From maurizio.cimadamore at oracle.com Mon Jun 14 09:22:14 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 14 Jun 2010 17:22:14 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C165695.50800@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> Message-ID: <4C165736.2010109@oracle.com> On 14/06/10 17:19, Maurizio Cimadamore wrote: > I can run your example with no problems. Which version of JDK 7 are you > using? Could it be a not too recent one? I'm using b94. > Nevermind - you are using the latest one, since you are calling 'java' from the repo you've just built :-) Maurizio > In order to get the scripts I'm talking about follows the following steps: > > 1) cd/langtools > 2) ant build-all-tools > > Note: step 2 might require changes to the build.properties file under > langtools/make (e.g. you need to point to a valid JDK 6 for compiling > the langtools repository, and then set a valid JDK 7 distro for > launching the new javac). > > Maurizio > > On 14/06/10 17:12, Jonathan Gibbons wrote: > >> On 06/14/2010 09:00 AM, Andrew Haley wrote: >> >> >>> On 06/14/2010 04:53 PM, Maurizio Cimadamore wrote: >>> >>> >>> >>>> On 14/06/10 16:25, Andrew Haley wrote: >>>> >>>> >>>> >>>>> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >>>>> >>>>> It doesn't seem to work. I compile >>>>> >>>>> public class Closures >>>>> { >>>>> public static void main(String[] args) >>>>> { >>>>> #int() fortyTwo = #()(42); >>>>> >>>>> System.out.println("Hello, World!" + fortyTwo.()); >>>>> } >>>>> } >>>>> >>>>> but it doesn't run: >>>>> >>>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac >>>>> -XDallowFunctionTypes -source 7 Closures.java >>>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java >>>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures >>>>> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in >>>>> this JVM. Use -XX:+UnlockExperimentalVMOptions >>>>> -XX:+EnableInvokeDynamic to enable. >>>>> Exception in thread "main" java.dyn.NoAccessException: cannot access: >>>>> *.java.dyn.MethodHandle.invoke()int >>>>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >>>>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >>>>> at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >>>>> at >>>>> java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >>>>> at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >>>>> at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >>>>> at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >>>>> at Closures.main(Closures.java:7) >>>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >>>>> openjdk version "1.7.0-internal" >>>>> OpenJDK Runtime Environment (build >>>>> 1.7.0-internal-aph_2010_06_10_17_35-b00) >>>>> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >>>>> >>>>> Any ideas what might be going wrong, please? >>>>> >>>>> >>>>> >>>>> >>>> You'll need the following VM options: >>>> >>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >>>> -XX:+EnableInvokeDynamic >>>> >>>> >>>> >>> Thanks. As I said in my previous reply, that doesn't help: >>> >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures >>> Invalid layout of java.dyn.CallSite at target >>> # >>> # A fatal error has been detected by the Java Runtime Environment: >>> # >>> # Internal Error (javaClasses.cpp:48), pid=10544, tid=14015271442 >>> >>> >>> >>> >>>> alternatively, you could use the handy scripts for invoking java/javac >>>> that should appear in the langtools/dist/bin directory. Those scripts >>>> automatically sets things up for you. >>>> >>>> >>>> >>> Thanks, but I can't find those at all. I can find >>> >>> /local/lambda/langtools/src/share/bin/java.sh-template >>> >>> which I guess must be what you mean, but no output file. >>> >>> Andrew. >>> >>> >>> >>> >> The langtools dist/bin/* files are only created in langtools "developer >> build" mode, and not in "full JDK build" mode, which you have done. If >> you wanted to build those files, you'd have to go to langtools and drive >> "make" or Ant directly, using an Ant target like build-all-tools. But, >> nothing there will help with the fatal runtime error you have uncovered. >> Sorry. >> >> -- Jon >> >> >> > > From maurizio.cimadamore at oracle.com Mon Jun 14 09:28:03 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 14 Jun 2010 17:28:03 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C165695.50800@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> Message-ID: <4C165893.5070305@oracle.com> I tried launching the 'java' launcher from a recently built lambda repo; I added the options: -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic and that seemed to work, at least it did for me. I noticed you are using a 64-bit setting, while I'm on 32-bit, could that be the issue? Maurizio On 14/06/10 17:19, Maurizio Cimadamore wrote: > I can run your example with no problems. Which version of JDK 7 are you > using? Could it be a not too recent one? I'm using b94. > > In order to get the scripts I'm talking about follows the following steps: > > 1) cd/langtools > 2) ant build-all-tools > > Note: step 2 might require changes to the build.properties file under > langtools/make (e.g. you need to point to a valid JDK 6 for compiling > the langtools repository, and then set a valid JDK 7 distro for > launching the new javac). > > Maurizio > > On 14/06/10 17:12, Jonathan Gibbons wrote: > >> On 06/14/2010 09:00 AM, Andrew Haley wrote: >> >> >>> On 06/14/2010 04:53 PM, Maurizio Cimadamore wrote: >>> >>> >>> >>>> On 14/06/10 16:25, Andrew Haley wrote: >>>> >>>> >>>> >>>>> This is rev 179:d923ba684bc4 of http://hg.openjdk.java.net/lambda/lambda >>>>> >>>>> It doesn't seem to work. I compile >>>>> >>>>> public class Closures >>>>> { >>>>> public static void main(String[] args) >>>>> { >>>>> #int() fortyTwo = #()(42); >>>>> >>>>> System.out.println("Hello, World!" + fortyTwo.()); >>>>> } >>>>> } >>>>> >>>>> but it doesn't run: >>>>> >>>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/javac >>>>> -XDallowFunctionTypes -source 7 Closures.java >>>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java >>>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -cp . Closures >>>>> OpenJDK 64-Bit Server VM warning: JSR 292 invokedynamic is disabled in >>>>> this JVM. Use -XX:+UnlockExperimentalVMOptions >>>>> -XX:+EnableInvokeDynamic to enable. >>>>> Exception in thread "main" java.dyn.NoAccessException: cannot access: >>>>> *.java.dyn.MethodHandle.invoke()int >>>>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) >>>>> at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) >>>>> at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) >>>>> at >>>>> java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) >>>>> at sun.dyn.Invokers.exactInvoker(Invokers.java:66) >>>>> at sun.dyn.Invokers.genericInvoker(Invokers.java:74) >>>>> at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) >>>>> at Closures.main(Closures.java:7) >>>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -version >>>>> openjdk version "1.7.0-internal" >>>>> OpenJDK Runtime Environment (build >>>>> 1.7.0-internal-aph_2010_06_10_17_35-b00) >>>>> OpenJDK 64-Bit Server VM (build 19.0-b01, mixed mode) >>>>> >>>>> Any ideas what might be going wrong, please? >>>>> >>>>> >>>>> >>>>> >>>> You'll need the following VM options: >>>> >>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >>>> -XX:+EnableInvokeDynamic >>>> >>>> >>>> >>> Thanks. As I said in my previous reply, that doesn't help: >>> >>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic -cp . Closures >>> Invalid layout of java.dyn.CallSite at target >>> # >>> # A fatal error has been detected by the Java Runtime Environment: >>> # >>> # Internal Error (javaClasses.cpp:48), pid=10544, tid=14015271442 >>> >>> >>> >>> >>>> alternatively, you could use the handy scripts for invoking java/javac >>>> that should appear in the langtools/dist/bin directory. Those scripts >>>> automatically sets things up for you. >>>> >>>> >>>> >>> Thanks, but I can't find those at all. I can find >>> >>> /local/lambda/langtools/src/share/bin/java.sh-template >>> >>> which I guess must be what you mean, but no output file. >>> >>> Andrew. >>> >>> >>> >>> >> The langtools dist/bin/* files are only created in langtools "developer >> build" mode, and not in "full JDK build" mode, which you have done. If >> you wanted to build those files, you'd have to go to langtools and drive >> "make" or Ant directly, using an Ant target like build-all-tools. But, >> nothing there will help with the fatal runtime error you have uncovered. >> Sorry. >> >> -- Jon >> >> >> > > From aph at redhat.com Mon Jun 14 09:39:27 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 14 Jun 2010 17:39:27 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C165893.5070305@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> Message-ID: <4C165B3F.6070109@redhat.com> On 06/14/2010 05:28 PM, Maurizio Cimadamore wrote: > I tried launching the 'java' launcher from a recently built lambda repo; > I added the options: > > -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles > -XX:+EnableInvokeDynamic > > > and that seemed to work, at least it did for me. I noticed you are using > a 64-bit setting, while I'm on 32-bit, could that be the issue? Maybe. I'm just going to step through the VM in a debugger and have a look. I'll let you know what I find. :-) Andrew. From aph at redhat.com Mon Jun 14 09:58:58 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 14 Jun 2010 17:58:58 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C165B3F.6070109@redhat.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> Message-ID: <4C165FD2.3020806@redhat.com> On 06/14/2010 05:39 PM, Andrew Haley wrote: > On 06/14/2010 05:28 PM, Maurizio Cimadamore wrote: >> I tried launching the 'java' launcher from a recently built lambda repo; >> I added the options: >> >> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >> -XX:+EnableInvokeDynamic >> >> >> and that seemed to work, at least it did for me. I noticed you are using >> a 64-bit setting, while I'm on 32-bit, could that be the issue? > > Maybe. I'm just going to step through the VM in a debugger and have a look. > I'll let you know what I find. :-) OK, I found. The VM is looking for java_dyn_CallSite.target in java_dyn_CallSite::compute_offsets() in the Lambda forest, this field is commented out: /* // Fields used only by the JVM. Do not use or change. private Object vmmethod; int callerMID, callerBCI; // supplied by the JVM private MethodHandle target; final Object caller; // usually a class final String name; final MethodType type; */ but this code was commented out in this change: user: jrose date: Thu Jan 07 16:16:45 2010 -0800 summary: 6914665: update jdk code for JSR 292 (post 6858164) Cc'ing hotspot-dev in the hope of enlightenment... Andrew. From forax at univ-mlv.fr Mon Jun 14 10:52:09 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Mon, 14 Jun 2010 19:52:09 +0200 Subject: Can't get lambda forest to work In-Reply-To: <4C165FD2.3020806@redhat.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> <4C165FD2.3020806@redhat.com> Message-ID: <4C166C49.4040709@univ-mlv.fr> Le 14/06/2010 18:58, Andrew Haley a ?crit : > On 06/14/2010 05:39 PM, Andrew Haley wrote: > >> On 06/14/2010 05:28 PM, Maurizio Cimadamore wrote: >> >>> I tried launching the 'java' launcher from a recently built lambda repo; >>> I added the options: >>> >>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >>> -XX:+EnableInvokeDynamic >>> >>> >>> and that seemed to work, at least it did for me. I noticed you are using >>> a 64-bit setting, while I'm on 32-bit, could that be the issue? >>> >> Maybe. I'm just going to step through the VM in a debugger and have a look. >> I'll let you know what I find. :-) >> > OK, I found. The VM is looking for java_dyn_CallSite.target > in java_dyn_CallSite::compute_offsets() > > in the Lambda forest, this field is commented out: > > /* > > // Fields used only by the JVM. Do not use or change. > private Object vmmethod; > int callerMID, callerBCI; // supplied by the JVM > > private MethodHandle target; > > final Object caller; // usually a class > final String name; > final MethodType type; > */ > > but this code was commented out in this change: > > user: jrose > date: Thu Jan 07 16:16:45 2010 -0800 > summary: 6914665: update jdk code for JSR 292 (post 6858164) > > Cc'ing hotspot-dev in the hope of enlightenment... > > Andrew. > This is a known bug :) Since b95, John Rose commits support for lightweight callsite (among other things) but forget to commit the JDK runtime part. see http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001728.html for a workaround. R?mi From nathan.bryant at linkshare.com Mon Jun 14 16:54:49 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Tue, 15 Jun 2010 08:54:49 +0900 Subject: Exception transparency - lone throws (no checked exceptions) References: <4C12797E.4080904@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094B30205@EXVMSTOR302.intra.rakuten.co.jp> Under exception transparency, how will "throws nothing" be declared? public void foo(Bar bar) throws E; new Bar() would of course work, but seems... idiomatic. Is new Bar() legal? From maurizio.cimadamore at oracle.com Tue Jun 15 01:13:18 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 15 Jun 2010 09:13:18 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <7FDA6630E1822F448C97A48D5D733094B30205@EXVMSTOR302.intra.rakuten.co.jp> References: <4C12797E.4080904@oracle.com> <7FDA6630E1822F448C97A48D5D733094B30205@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <4C17361E.3050109@oracle.com> On 15/06/10 00:54, Nathan Bryant wrote: > Under exception transparency, how will "throws nothing" be declared? > > public void foo(Bar bar) throws E; > > new Bar() would of course work, but seems... > idiomatic. > > Is new Bar() legal? > > Hi 'void' seems to be the natural choice for denoting 0-arguments disjunctive types. There are some problems though (e.g. conflicts with the InvokeDynamic.invoke() syntax), however I'm working to resolve these issues (i.e. 'void' as a type-parameter is only allowed if the corresponding type-variable is a throw type-variable). Other possible choices are: *) ... (varargs syntax) *) new synthetic type (e.g. Nil) --- similar to BGGA Currently 'void' is our first choice - however it is easy enough to switch between the alternatives above (only requires a simple parser change). Maurizio From aph at redhat.com Tue Jun 15 01:29:17 2010 From: aph at redhat.com (Andrew Haley) Date: Tue, 15 Jun 2010 09:29:17 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C166C49.4040709@univ-mlv.fr> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> <4C165FD2.3020806@redhat.com> <4C166C49.4040709@univ-mlv.fr> Message-ID: <4C1739DD.7070203@redhat.com> On 06/14/2010 06:52 PM, R?mi Forax wrote: > Le 14/06/2010 18:58, Andrew Haley a ?crit : >> On 06/14/2010 05:39 PM, Andrew Haley wrote: >> >>> On 06/14/2010 05:28 PM, Maurizio Cimadamore wrote: >>> >>>> I tried launching the 'java' launcher from a recently built lambda repo; >>>> I added the options: >>>> >>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >>>> -XX:+EnableInvokeDynamic >>>> >>>> >>>> and that seemed to work, at least it did for me. I noticed you are using >>>> a 64-bit setting, while I'm on 32-bit, could that be the issue? >>>> >>> Maybe. I'm just going to step through the VM in a debugger and have a look. >>> I'll let you know what I find. :-) >>> >> OK, I found. The VM is looking for java_dyn_CallSite.target >> in java_dyn_CallSite::compute_offsets() >> >> in the Lambda forest, this field is commented out: >> >> /* >> >> // Fields used only by the JVM. Do not use or change. >> private Object vmmethod; >> int callerMID, callerBCI; // supplied by the JVM >> >> private MethodHandle target; >> >> final Object caller; // usually a class >> final String name; >> final MethodType type; >> */ >> >> but this code was commented out in this change: >> >> user: jrose >> date: Thu Jan 07 16:16:45 2010 -0800 >> summary: 6914665: update jdk code for JSR 292 (post 6858164) >> >> Cc'ing hotspot-dev in the hope of enlightenment... > > This is a known bug :) > Since b95, John Rose commits support for lightweight callsite (among > other things) > but forget to commit the JDK runtime part. > > see http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001728.html > for a workaround. OK, thanks. Andrew. From mcnepp02 at googlemail.com Tue Jun 15 02:23:54 2010 From: mcnepp02 at googlemail.com (Gernot Neppert) Date: Tue, 15 Jun 2010 10:23:54 +0100 Subject: Exception transparency III - The Advent of the No-Throw Area Message-ID: So far, there have been 2 propsals to achieve exception transparency with closures: 1. the closure declares the the exception types it intends to throw, just like regular Java methods do. The throws declaration becomes part of the closure type, important for assignment conversions. 2. the closure declares that it can throw any kind of exception ("lone throws"). This declaration must be propagated to the calling code, effectively adding "sneaky throw" to the legitimate toolset of Java programming techniques. Just for the sake of completeness, I thought it might be worth mentioning the obvious third option: 3. "A closure must not throw Checked Exceptions". This may look like a harsh restriction on first glance, but is it really? It may actually cover 80% of the usecases with 20% of the complexity of proposal 1. Here are some common scenarios for closures that will not make use of checked exceptions anyway: - Collections-related filtering or mapping functions - codeblocks passed to frameworks for asynchronous excecution (as long as they're converted to Runnable by automatic closure conversion) - codeblocks passed to GUI frameworks, since the corresponding SAMs (e.g. ActionListener) do not throw Checked Exceptions currently. Obvious advantages of this approach would be: - no involvement of the "throws" clause in the rules for assignement of closure types. - more readable declarations of methods that make use of closures. From alessiostalla at gmail.com Tue Jun 15 02:38:43 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 15 Jun 2010 11:38:43 +0200 Subject: Exception transparency III - The Advent of the No-Throw Area In-Reply-To: References: Message-ID: On Tue, Jun 15, 2010 at 11:23 AM, Gernot Neppert wrote: > So far, there have been 2 propsals to achieve exception transparency > with closures: > > 1. the closure declares the the exception types it intends to throw, > just like regular Java methods do. > The throws declaration becomes part of the closure type, important for > assignment conversions. > > 2. the closure declares that it can throw any kind of exception ("lone > throws"). This declaration must be propagated to the calling code, > effectively adding "sneaky throw" to the legitimate toolset of Java > programming techniques. > > Just for the sake of completeness, I thought it might be worth > mentioning the obvious third option: > > 3. "A closure must not throw Checked Exceptions". Not that I think that 3. is a bad idea, but it does not achieve exception transparency... except in the trivial sense that an empty throws clause is implicitly transparent :) Really, what Oracle wants - from my understanding of the discussion so far - is to embed thrown exception information in closure types and abstract over it. Any other option is not being considered. My personal opinion is that this will unnecessarily complicate the language and it will be seldom used outside of the standard API. But of course my personal opinion doesn't count that much :) Cheers, Alessio > This may look like a harsh restriction on first glance, but is it really? > It may actually cover 80% of the usecases with 20% of the complexity > of proposal 1. > > Here are some common scenarios for closures that will not make use of > checked exceptions anyway: > > - Collections-related filtering or mapping functions > > - codeblocks passed to frameworks for asynchronous excecution (as long > as they're converted to Runnable by automatic closure conversion) > > - codeblocks passed to GUI frameworks, since the corresponding SAMs > (e.g. ActionListener) do not throw Checked Exceptions currently. > > Obvious advantages of this approach would be: > > - no involvement of the "throws" clause in the rules for assignement > of closure types. > > - more readable declarations of methods that make use of closures. > > From howard.lovatt at gmail.com Tue Jun 15 02:49:29 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Tue, 15 Jun 2010 19:49:29 +1000 Subject: Exception transparency III - The Advent of the No-Throw Area Message-ID: Alessio Stalla alessiostalla at gmail.com Tue Jun 15 02:38:43 PDT 2010 wrote: > Really, what Oracle wants - from my understanding of the discussion so far - is to embed thrown > exception information in closure types and abstract over it. Any other option is not being considered. I also suspect the aim is exception transparency rather than something else in the same space. -- Howard. PS I have also suggested the no checked exception option, except for SAM types: http://mail.openjdk.java.net/pipermail/lambda-dev/2010-June/001583.html From mcnepp02 at googlemail.com Tue Jun 15 03:07:23 2010 From: mcnepp02 at googlemail.com (Gernot Neppert) Date: Tue, 15 Jun 2010 11:07:23 +0100 Subject: Exception transparency III - The Advent of the No-Throw Area In-Reply-To: References: Message-ID: Right, you've already suggested the "no throws" idea. I somehow missed it. Sorry! 2010/6/15 Howard Lovatt : > Alessio Stalla?alessiostalla at gmail.com?Tue Jun 15 02:38:43 PDT 2010 wrote: >> Really, what Oracle wants - from my understanding of the discussion so far >> - is to embed thrown >> exception information in closure types and abstract over it. Any other >> option is not being considered. > I also suspect the aim is?exception?transparency?rather than something else > in the same space. > > ?-- Howard. > > PS I have also suggested the no checked exception option, except for SAM > types:?http://mail.openjdk.java.net/pipermail/lambda-dev/2010-June/001583.html From maurizio.cimadamore at oracle.com Tue Jun 15 03:25:42 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 10:25:42 +0000 Subject: hg: lambda/lambda/langtools: *) Added support for exception transparency. Exception transparency is supported through so-called 'throws' type-variables. Such type-variables are dealt with in a special way: during type-inference the compiler doesn't apply lub(). As such, throws type-variable are inherently disjunctive. Message-ID: <20100615102546.C4C3C4724A@hg.openjdk.java.net> Changeset: 1f2a6005435d Author: mcimadamore Date: 2010-06-15 11:22 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1f2a6005435d *) Added support for exception transparency. Exception transparency is supported through so-called 'throws' type-variables. Such type-variables are dealt with in a special way: during type-inference the compiler doesn't apply lub(). As such, throws type-variable are inherently disjunctive. *) Added support for disjunctive types and retrifitted the multicatch implementation in order to leverage disjunctive types. Disjunctive types are only supported in the 'throws' clause of a method declaration, as the type of a 'catch' clause and in type-parameter position (where the corresponding formal type-variable is a 'throws' type-variable). ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/TypeTags.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Code.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/parser/Lexer.java ! src/share/classes/com/sun/tools/javac/parser/Scanner.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/util/Names.java ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java ! test/tools/javac/generics/diamond/neg/Neg01.out ! test/tools/javac/generics/diamond/neg/Neg02.out ! test/tools/javac/generics/diamond/neg/Neg03.out ! test/tools/javac/generics/diamond/neg/Neg04.out ! test/tools/javac/lambda/BadAccess.java ! test/tools/javac/lambda/BadLambdaCall.java ! test/tools/javac/lambda/BadReturn.java + test/tools/javac/lambda/ExceptionTransparency01.java ! test/tools/javac/lambda/FuncType01.java ! test/tools/javac/lambda/LambdaCapture01.java ! test/tools/javac/lambda/LambdaCapture02.java ! test/tools/javac/lambda/LambdaCapture03.java ! test/tools/javac/lambda/LambdaCapture04.java ! test/tools/javac/lambda/LambdaCapture05.java ! test/tools/javac/lambda/LambdaConv01.java ! test/tools/javac/lambda/LambdaConv02.java ! test/tools/javac/lambda/LambdaConv03.java ! test/tools/javac/lambda/LambdaConv04.java ! test/tools/javac/lambda/LambdaConv05.java ! test/tools/javac/lambda/LambdaExpr01.java ! test/tools/javac/lambda/LambdaExpr02.java ! test/tools/javac/lambda/LambdaExpr03.java ! test/tools/javac/lambda/LambdaScope01.java ! test/tools/javac/lambda/LambdaScope02.java ! test/tools/javac/lambda/NakedThis.java + test/tools/javac/transparency/Neg01.java + test/tools/javac/transparency/Neg01.out + test/tools/javac/transparency/Neg02.java + test/tools/javac/transparency/Neg02.out + test/tools/javac/transparency/Neg03.java + test/tools/javac/transparency/Neg03.out + test/tools/javac/transparency/Neg04.java + test/tools/javac/transparency/Neg04.out + test/tools/javac/transparency/Neg05.java + test/tools/javac/transparency/Neg05.out + test/tools/javac/transparency/Neg06.java + test/tools/javac/transparency/Neg06.out + test/tools/javac/transparency/Neg07.java + test/tools/javac/transparency/Neg07.out + test/tools/javac/transparency/Neg08.java + test/tools/javac/transparency/Neg08.out + test/tools/javac/transparency/Pos01.java + test/tools/javac/transparency/Pos02.java + test/tools/javac/transparency/Pos03.java From maurizio.cimadamore at oracle.com Tue Jun 15 04:56:41 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 11:56:41 +0000 Subject: hg: lambda/lambda/langtools: Fixed two bugs: Message-ID: <20100615115643.16CFD4724E@hg.openjdk.java.net> Changeset: 3e219523bf43 Author: mcimadamore Date: 2010-06-15 12:56 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/3e219523bf43 Fixed two bugs: *) return statement inside lambda cannot appear in non-method context; *) need a better way to disable definite assignment analysis during lambda attribution ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/util/Bits.java + test/tools/javac/lambda/BadReturn02.java + test/tools/javac/lambda/BadReturn02.out + test/tools/javac/lambda/LambdaConv06.java ! test/tools/javac/lambda/LambdaExpr02.java From maurizio.cimadamore at oracle.com Tue Jun 15 05:40:47 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 12:40:47 +0000 Subject: hg: lambda/lambda/langtools: Partially revert previous fix; lambda can return from *every* context (as per strawman). However there was a bug when final variable had a lambda initializer that got fixed as part of the previous push. Message-ID: <20100615124049.3DC6847251@hg.openjdk.java.net> Changeset: 535313e3087e Author: mcimadamore Date: 2010-06-15 13:40 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/535313e3087e Partially revert previous fix; lambda can return from *every* context (as per strawman). However there was a bug when final variable had a lambda initializer that got fixed as part of the previous push. ! src/share/classes/com/sun/tools/javac/comp/Attr.java - test/tools/javac/lambda/BadReturn02.java - test/tools/javac/lambda/BadReturn02.out ! test/tools/javac/lambda/LambdaExpr02.java + test/tools/javac/lambda/LambdaExpr04.java From maurizio.cimadamore at oracle.com Tue Jun 15 06:27:45 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 13:27:45 +0000 Subject: hg: lambda/lambda: 5 new changesets Message-ID: <20100615132745.8F7EF47253@hg.openjdk.java.net> Changeset: 412712f77af6 Author: ohair Date: 2010-05-25 15:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/412712f77af6 6943119: Rebrand source copyright notices Reviewed-by: darcy ! Makefile ! make/Defs-internal.gmk ! make/corba-rules.gmk ! make/deploy-rules.gmk ! make/hotspot-rules.gmk ! make/install-rules.gmk ! make/jaxp-rules.gmk ! make/jaxws-rules.gmk ! make/jdk-rules.gmk ! make/jprt.gmk ! make/jprt.properties ! make/langtools-rules.gmk ! make/sanity-rules.gmk ! make/sponsors-rules.gmk ! make/templates/bsd-header ! make/templates/gpl-cp-header ! test/Makefile Changeset: fd3663286e77 Author: ohair Date: 2010-05-26 10:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/fd3663286e77 Merge Changeset: cf71cb515116 Author: mikejwre Date: 2010-05-27 10:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/cf71cb515116 Added tag jdk7-b95 for changeset fd3663286e77 ! .hgtags Changeset: 5e197c942c6e Author: mikejwre Date: 2010-06-03 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/5e197c942c6e Added tag jdk7-b96 for changeset cf71cb515116 ! .hgtags Changeset: 5bbc7438b333 Author: mikejwre Date: 2010-06-10 13:58 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/5bbc7438b333 Added tag jdk7-b97 for changeset 5e197c942c6e ! .hgtags From maurizio.cimadamore at oracle.com Tue Jun 15 06:28:00 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 13:28:00 +0000 Subject: hg: lambda/lambda/corba: 13 new changesets Message-ID: <20100615132809.4D99547254@hg.openjdk.java.net> Changeset: 91006f157c46 Author: ohair Date: 2010-05-25 15:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/91006f157c46 6943119: Rebrand source copyright notices Reviewed-by: darcy ! make/Makefile ! make/com/Makefile ! make/com/sun/Makefile ! make/com/sun/corba/Makefile ! make/com/sun/corba/minclude/com_sun_corba_se_PortableActivationIDL.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_activation.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_corba.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_core.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_dynamicany.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_encoding.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_interceptors.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_io.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_ior.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_legacy.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_logging.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_monitoring.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_naming_cosnaming.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_naming_namingutil.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_naming_pcosnaming.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_oa_poa.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_oa_toa.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_orb.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_orbutil.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_presentation_rmi.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_protocol.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_resolver.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_transport.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_impl_util.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_internal_LegacyFiles.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_pept.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_activation.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_copyobject.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_encoding.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_extension.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_ior.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_connection.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_legacy_interceptor.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_logging.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_monitoring.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_oa.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_orb.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_orbutil.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_presentation_rmi.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_protocol.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_resolver.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_servicecontext.jmk ! make/com/sun/corba/minclude/com_sun_corba_se_spi_transport.jmk ! make/com/sun/corba/minclude/com_sun_tools_corba_se_idl_toJavaPortable.jmk ! make/com/sun/corba/minclude/ioser_io.jmk ! make/com/sun/corba/minclude/javax_activity.jmk ! make/com/sun/corba/minclude/javax_rmi.jmk ! make/com/sun/corba/minclude/javax_rmi_CORBA.jmk ! make/com/sun/corba/minclude/javax_transaction.jmk ! make/com/sun/corba/minclude/org_omg_CORBA.jmk ! make/com/sun/corba/minclude/org_omg_CORBAX.jmk ! make/com/sun/corba/minclude/org_omg_CORBA_2_3.jmk ! make/com/sun/corba/minclude/org_omg_CosNaming.jmk ! make/com/sun/corba/minclude/org_omg_DynamicAny.jmk ! make/com/sun/corba/minclude/org_omg_IOP.jmk ! make/com/sun/corba/minclude/org_omg_Messaging.jmk ! make/com/sun/corba/minclude/org_omg_PortableInterceptor.jmk ! make/com/sun/corba/minclude/org_omg_PortableServer.jmk ! make/com/sun/corba/minclude/org_omg_SendingContext.jmk ! make/com/sun/corba/minclude/sun_corba.jmk ! make/com/sun/corba/se/Makefile ! make/com/sun/corba/se/PortableActivationIDL/Makefile ! make/com/sun/corba/se/connection/FILES_java.gmk ! make/com/sun/corba/se/connection/Makefile ! make/com/sun/corba/se/core/Makefile ! make/com/sun/corba/se/corespi/Makefile ! make/com/sun/corba/se/impl/Makefile ! make/com/sun/corba/se/impl/activation/Makefile ! make/com/sun/corba/se/impl/activation/orbd/Makefile ! make/com/sun/corba/se/impl/activation/servertool/Makefile ! make/com/sun/corba/se/impl/interceptors/Makefile ! make/com/sun/corba/se/impl/logging/Makefile ! make/com/sun/corba/se/impl/monitoring/Makefile ! make/com/sun/corba/se/impl/naming/Makefile ! make/com/sun/corba/se/impl/naming/cosnaming/Makefile ! make/com/sun/corba/se/impl/naming/namingutil/Makefile ! make/com/sun/corba/se/impl/naming/pcosnaming/Makefile ! make/com/sun/corba/se/impl/oa/Makefile ! make/com/sun/corba/se/impl/oa/poa/Makefile ! make/com/sun/corba/se/impl/oa/toa/Makefile ! make/com/sun/corba/se/interceptor/FILES_java.gmk ! make/com/sun/corba/se/interceptor/Makefile ! make/com/sun/corba/se/pept/Makefile ! make/com/sun/corba/se/rmi/Makefile ! make/com/sun/corba/se/rmi/rmic/Makefile ! make/com/sun/corba/se/rmi/rmic/SUN_RMI_RMIC_IIOP_java.gmk ! make/com/sun/corba/se/sources/Makefile ! make/com/sun/corba/se/spi/Makefile ! make/com/sun/corba/se/spi/activation/Makefile ! make/com/sun/corba/se/spi/copyobject/Makefile ! make/com/sun/corba/se/spi/encoding/Makefile ! make/com/sun/corba/se/spi/extension/Makefile ! make/com/sun/corba/se/spi/legacy/Makefile ! make/com/sun/corba/se/spi/legacy/connection/Makefile ! make/com/sun/corba/se/spi/legacy/interceptor/Makefile ! make/com/sun/corba/se/spi/logging/Makefile ! make/com/sun/corba/se/spi/monitoring/Makefile ! make/common/BuildToolJar.gmk ! make/common/CancelImplicits.gmk ! make/common/Classes.gmk ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/Library.gmk ! make/common/Mapfile-vers.gmk ! make/common/Rules.gmk ! make/common/internal/NativeCompileRules.gmk ! make/common/internal/Resources.gmk ! make/common/shared/Compiler-gcc.gmk ! make/common/shared/Compiler-msvc.gmk ! make/common/shared/Compiler-sun.gmk ! make/common/shared/Compiler.gmk ! make/common/shared/Defs-java.gmk ! make/common/shared/Defs-linux.gmk ! make/common/shared/Defs-solaris.gmk ! make/common/shared/Defs-utils.gmk ! make/common/shared/Defs-windows.gmk ! make/common/shared/Defs.gmk ! make/common/shared/Platform.gmk ! make/javax/Makefile ! make/javax/xa/Makefile ! make/jprt.properties ! make/org/Makefile ! make/org/omg/CORBA/Makefile ! make/org/omg/CORBAX_java.gmk ! make/org/omg/CosNaming/Makefile ! make/org/omg/DynamicAny/Makefile ! make/org/omg/Makefile ! make/org/omg/PortableInterceptor/Makefile ! make/org/omg/PortableServer/Makefile ! make/org/omg/idl/FILES_java.gmk ! make/org/omg/idl/Makefile ! make/org/omg/sources/Makefile ! make/sun/Makefile ! make/sun/corba/Makefile ! make/sun/corba/org/Makefile ! make/sun/corba/org/omg/FILES_java.gmk ! make/sun/corba/org/omg/Makefile ! make/sun/rmi/Makefile ! make/sun/rmi/corbalogcompile/Makefile ! make/sun/rmi/corbalogsources/Makefile ! make/sun/rmi/rmic/FILES.gmk ! make/sun/rmi/rmic/Makefile ! make/tools/Makefile ! make/tools/idlj/Makefile ! make/tools/logutil/Makefile ! make/tools/src/build/tools/stripproperties/StripProperties.java ! make/tools/strip_properties/Makefile ! src/share/classes/com/sun/corba/se/GiopIDL/GIOP.idl ! src/share/classes/com/sun/corba/se/GiopIDL/messages.idl ! src/share/classes/com/sun/corba/se/PortableActivationIDL/activation.idl ! src/share/classes/com/sun/corba/se/impl/activation/CommandHandler.java ! src/share/classes/com/sun/corba/se/impl/activation/NameServiceStartThread.java ! src/share/classes/com/sun/corba/se/impl/activation/ORBD.java ! src/share/classes/com/sun/corba/se/impl/activation/ProcessMonitorThread.java ! src/share/classes/com/sun/corba/se/impl/activation/RepositoryImpl.java ! src/share/classes/com/sun/corba/se/impl/activation/ServerMain.java ! src/share/classes/com/sun/corba/se/impl/activation/ServerManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/activation/ServerTableEntry.java ! src/share/classes/com/sun/corba/se/impl/activation/ServerTool.java ! src/share/classes/com/sun/corba/se/impl/copyobject/CopierManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/copyobject/FallbackObjectCopierImpl.java ! src/share/classes/com/sun/corba/se/impl/copyobject/JavaInputStream.sjava ! src/share/classes/com/sun/corba/se/impl/copyobject/JavaOutputStream.sjava ! src/share/classes/com/sun/corba/se/impl/copyobject/JavaStreamObjectCopierImpl.java ! src/share/classes/com/sun/corba/se/impl/copyobject/ORBStreamObjectCopierImpl.java ! src/share/classes/com/sun/corba/se/impl/copyobject/ReferenceObjectCopierImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/AnyImplHelper.java ! src/share/classes/com/sun/corba/se/impl/corba/AsynchInvoke.java ! src/share/classes/com/sun/corba/se/impl/corba/CORBAObjectImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/ContextImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/ContextListImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/EnvironmentImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/ExceptionListImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/NVListImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/NamedValueImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/PrincipalImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/RequestImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/ServerRequestImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/TCUtility.java ! src/share/classes/com/sun/corba/se/impl/corba/TypeCodeFactory.java ! src/share/classes/com/sun/corba/se/impl/corba/TypeCodeImpl.java ! src/share/classes/com/sun/corba/se/impl/corba/TypeCodeImplHelper.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyBasicImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyCollectionImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyComplexImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyConstructedImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynAnyUtil.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynArrayImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynEnumImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynFixedImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynSequenceImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynStructImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynUnionImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynValueBoxImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynValueCommonImpl.java ! src/share/classes/com/sun/corba/se/impl/dynamicany/DynValueImpl.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerFactory.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerRead.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerReadGrow.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerReadStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWrite.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteCollect.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteGrow.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferManagerWriteStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/BufferQueue.java ! src/share/classes/com/sun/corba/se/impl/encoding/ByteBufferWithInfo.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDRInputObject.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStreamBase.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStream_1_0.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStream_1_1.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDRInputStream_1_2.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDROutputObject.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStreamBase.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStream_1_0.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStream_1_1.java ! src/share/classes/com/sun/corba/se/impl/encoding/CDROutputStream_1_2.java ! src/share/classes/com/sun/corba/se/impl/encoding/CachedCodeBase.java ! src/share/classes/com/sun/corba/se/impl/encoding/CodeSetCache.java ! src/share/classes/com/sun/corba/se/impl/encoding/CodeSetComponentInfo.java ! src/share/classes/com/sun/corba/se/impl/encoding/CodeSetConversion.java ! src/share/classes/com/sun/corba/se/impl/encoding/EncapsInputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/EncapsOutputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/IDLJavaSerializationInputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/IDLJavaSerializationOutputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/MarkAndResetHandler.java ! src/share/classes/com/sun/corba/se/impl/encoding/MarshalInputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/MarshalOutputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/OSFCodeSetRegistry.java ! src/share/classes/com/sun/corba/se/impl/encoding/RestorableInputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java ! src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeReader.java ! src/share/classes/com/sun/corba/se/impl/encoding/WrapperInputStream.java ! src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java ! src/share/classes/com/sun/corba/se/impl/interceptors/ClientRequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/CodecFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/IORInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/InterceptorInvoker.java ! src/share/classes/com/sun/corba/se/impl/interceptors/InterceptorList.java ! src/share/classes/com/sun/corba/se/impl/interceptors/ORBInitInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PICurrent.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PIHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/PINoOpHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/RequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/ServerRequestInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/interceptors/SlotTable.java ! src/share/classes/com/sun/corba/se/impl/interceptors/SlotTableStack.java ! src/share/classes/com/sun/corba/se/impl/interceptors/ThreadCurrentStack.sjava ! src/share/classes/com/sun/corba/se/impl/io/FVDCodeBaseImpl.java ! src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java ! src/share/classes/com/sun/corba/se/impl/io/IIOPOutputStream.java ! src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java ! src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java ! src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClassCorbaExt.java ! src/share/classes/com/sun/corba/se/impl/io/ObjectStreamField.java ! src/share/classes/com/sun/corba/se/impl/io/OptionalDataException.java ! src/share/classes/com/sun/corba/se/impl/io/OutputStreamHook.java ! src/share/classes/com/sun/corba/se/impl/io/TypeMismatchException.java ! src/share/classes/com/sun/corba/se/impl/io/ValueHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/io/ValueUtility.java ! src/share/classes/com/sun/corba/se/impl/ior/ByteBuffer.java ! src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java ! src/share/classes/com/sun/corba/se/impl/ior/FreezableList.java ! src/share/classes/com/sun/corba/se/impl/ior/GenericIdentifiable.java ! src/share/classes/com/sun/corba/se/impl/ior/GenericTaggedComponent.java ! src/share/classes/com/sun/corba/se/impl/ior/GenericTaggedProfile.java ! src/share/classes/com/sun/corba/se/impl/ior/IORImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/IORTemplateImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/IORTemplateListImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/IdentifiableFactoryFinderBase.java ! src/share/classes/com/sun/corba/se/impl/ior/JIDLObjectKeyTemplate.java ! src/share/classes/com/sun/corba/se/impl/ior/NewObjectKeyTemplateBase.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectAdapterIdArray.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectAdapterIdBase.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectAdapterIdNumber.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectIdImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyTemplateBase.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectReferenceFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectReferenceProducerBase.java ! src/share/classes/com/sun/corba/se/impl/ior/ObjectReferenceTemplateImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/OldJIDLObjectKeyTemplate.java ! src/share/classes/com/sun/corba/se/impl/ior/OldObjectKeyTemplateBase.java ! src/share/classes/com/sun/corba/se/impl/ior/OldPOAObjectKeyTemplate.java ! src/share/classes/com/sun/corba/se/impl/ior/POAObjectKeyTemplate.java ! src/share/classes/com/sun/corba/se/impl/ior/StubIORImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/TaggedComponentFactoryFinderImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/TaggedProfileFactoryFinderImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/TaggedProfileTemplateFactoryFinderImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/WireObjectKeyTemplate.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/AlternateIIOPAddressComponentImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/CodeSetsComponentImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPAddressBase.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPAddressClosureImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPAddressImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileTemplateImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/JavaCodebaseComponentImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/JavaSerializationComponent.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/MaxStreamFormatVersionComponentImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/ORBTypeComponentImpl.java ! src/share/classes/com/sun/corba/se/impl/ior/iiop/RequestPartitioningComponentImpl.java ! src/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/StubDelegateImpl.java ! src/share/classes/com/sun/corba/se/impl/javax/rmi/CORBA/Util.java ! src/share/classes/com/sun/corba/se/impl/javax/rmi/PortableRemoteObject.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/DefaultSocketFactory.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/EndPointInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/LegacyServerSocketManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/SocketFactoryAcceptorImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/SocketFactoryConnectionImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/SocketFactoryContactInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/SocketFactoryContactInfoListImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/SocketFactoryContactInfoListIteratorImpl.java ! src/share/classes/com/sun/corba/se/impl/legacy/connection/USLPort.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoredAttributeInfoFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoredAttributeInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoredObjectFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoredObjectImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoringManagerFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/monitoring/MonitoringManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/BindingIteratorImpl.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/InterOperableNamingImpl.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/InternalBindingKey.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/InternalBindingValue.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/NamingContextDataStore.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/NamingContextImpl.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/NamingUtils.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/TransientBindingIterator.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/TransientNameServer.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/TransientNameService.java ! src/share/classes/com/sun/corba/se/impl/naming/cosnaming/TransientNamingContext.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/CorbalocURL.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/CorbanameURL.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/IIOPEndpointInfo.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/INSURL.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/INSURLBase.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/INSURLHandler.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/NamingConstants.java ! src/share/classes/com/sun/corba/se/impl/naming/namingutil/Utility.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/InternalBindingKey.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/InternalBindingValue.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/NameServer.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/NameService.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/NamingContextImpl.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/PersistentBindingIterator.java ! src/share/classes/com/sun/corba/se/impl/naming/pcosnaming/ServantManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/NullServantImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/AOMEntry.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/ActiveObjectMap.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/BadServerIdHandler.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/DelegateImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/IdAssignmentPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/IdUniquenessPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/ImplicitActivationPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/LifespanPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POACurrent.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAFactory.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediator.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorBase_R.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorFactory.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_NR_UDS.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_NR_USM.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_R_AOM.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_R_UDS.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/POAPolicyMediatorImpl_R_USM.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/RequestProcessingPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/ServantRetentionPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/poa/ThreadPolicyImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/toa/TOA.java ! src/share/classes/com/sun/corba/se/impl/oa/toa/TOAFactory.java ! src/share/classes/com/sun/corba/se/impl/oa/toa/TOAImpl.java ! src/share/classes/com/sun/corba/se/impl/oa/toa/TransientObjectManager.java ! src/share/classes/com/sun/corba/se/impl/orb/AppletDataCollector.java ! src/share/classes/com/sun/corba/se/impl/orb/DataCollectorBase.java ! src/share/classes/com/sun/corba/se/impl/orb/DataCollectorFactory.java ! src/share/classes/com/sun/corba/se/impl/orb/NormalDataCollector.java ! src/share/classes/com/sun/corba/se/impl/orb/NormalParserAction.java ! src/share/classes/com/sun/corba/se/impl/orb/NormalParserData.java ! src/share/classes/com/sun/corba/se/impl/orb/ORBConfiguratorImpl.java ! src/share/classes/com/sun/corba/se/impl/orb/ORBDataParserImpl.java ! src/share/classes/com/sun/corba/se/impl/orb/ORBImpl.java ! src/share/classes/com/sun/corba/se/impl/orb/ORBSingleton.java ! src/share/classes/com/sun/corba/se/impl/orb/ORBVersionImpl.java ! src/share/classes/com/sun/corba/se/impl/orb/ParserAction.java ! src/share/classes/com/sun/corba/se/impl/orb/ParserActionBase.java ! src/share/classes/com/sun/corba/se/impl/orb/ParserActionFactory.java ! src/share/classes/com/sun/corba/se/impl/orb/ParserDataBase.java ! src/share/classes/com/sun/corba/se/impl/orb/ParserTable.java ! src/share/classes/com/sun/corba/se/impl/orb/PrefixParserAction.java ! src/share/classes/com/sun/corba/se/impl/orb/PrefixParserData.java ! src/share/classes/com/sun/corba/se/impl/orb/PropertyOnlyDataCollector.java ! src/share/classes/com/sun/corba/se/impl/orbutil/CacheTable.java ! src/share/classes/com/sun/corba/se/impl/orbutil/CorbaResourceUtil.java ! src/share/classes/com/sun/corba/se/impl/orbutil/DenseIntMapImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/GetPropertyAction.java ! src/share/classes/com/sun/corba/se/impl/orbutil/HexOutputStream.java ! src/share/classes/com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/IIOPInputStream_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/IIOPOutputStream_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/LegacyHookGetFields.java ! src/share/classes/com/sun/corba/se/impl/orbutil/LegacyHookPutFields.java ! src/share/classes/com/sun/corba/se/impl/orbutil/LogKeywords.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ORBClassLoader.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ORBConstants.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ORBUtility.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClassUtil_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClass_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamField.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ObjectUtility.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ObjectWriter.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepIdDelegator_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdCache_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdFactory.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdInterface.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdStrings.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryIdUtility.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/RepositoryId_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/StackImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3.java ! src/share/classes/com/sun/corba/se/impl/orbutil/ValueHandlerImpl_1_3_1.java ! src/share/classes/com/sun/corba/se/impl/orbutil/closure/Constant.java ! src/share/classes/com/sun/corba/se/impl/orbutil/closure/Future.java ! src/share/classes/com/sun/corba/se/impl/orbutil/concurrent/CondVar.java ! src/share/classes/com/sun/corba/se/impl/orbutil/concurrent/DebugMutex.java ! src/share/classes/com/sun/corba/se/impl/orbutil/concurrent/Mutex.java ! src/share/classes/com/sun/corba/se/impl/orbutil/concurrent/ReentrantMutex.java ! src/share/classes/com/sun/corba/se/impl/orbutil/concurrent/Sync.java ! src/share/classes/com/sun/corba/se/impl/orbutil/concurrent/SyncUtil.java ! src/share/classes/com/sun/corba/se/impl/orbutil/fsm/GuardedAction.java ! src/share/classes/com/sun/corba/se/impl/orbutil/fsm/NameBase.java ! src/share/classes/com/sun/corba/se/impl/orbutil/fsm/StateEngineImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/graph/Graph.java ! src/share/classes/com/sun/corba/se/impl/orbutil/graph/GraphImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/graph/Node.java ! src/share/classes/com/sun/corba/se/impl/orbutil/graph/NodeData.java ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_de.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_es.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_fr.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_it.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ko.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_sv.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_zh_CN.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_zh_TW.properties ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/ThreadPoolManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/TimeoutException.java ! src/share/classes/com/sun/corba/se/impl/orbutil/threadpool/WorkQueueImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/DynamicAccessPermission.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/DynamicMethodMarshallerImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/DynamicStubImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandler.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/ExceptionHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl_save.sjava ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLType.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLTypeException.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLTypesUtil.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/PresentationManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/ReflectiveTie.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubConnectImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryBase.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryDynamicBase.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryBase.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryDynamicBase.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryStaticImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryProxyImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryStaticImpl.java ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubInvocationHandlerImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/AddressingDispositionException.java ! src/share/classes/com/sun/corba/se/impl/protocol/BootstrapServerRequestDispatcher.java ! src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientDelegateImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/CorbaInvocationInfo.java ! src/share/classes/com/sun/corba/se/impl/protocol/CorbaMessageMediatorImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/CorbaServerRequestDispatcherImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/FullServantCacheLocalCRDImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/INSServerRequestDispatcher.java ! src/share/classes/com/sun/corba/se/impl/protocol/InfoOnlyServantCacheLocalCRDImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/JIDLLocalCRDImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/LocalClientRequestDispatcherBase.java ! src/share/classes/com/sun/corba/se/impl/protocol/MinimalServantCacheLocalCRDImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/NotLocalLocalCRDImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/POALocalCRDImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/RequestCanceledException.java ! src/share/classes/com/sun/corba/se/impl/protocol/RequestDispatcherRegistryImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/ServantCacheLocalCRDBase.java ! src/share/classes/com/sun/corba/se/impl/protocol/SharedCDRClientRequestDispatcherImpl.java ! src/share/classes/com/sun/corba/se/impl/protocol/SpecialMethod.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/AddressingDispositionHelper.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/CancelRequestMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/CancelRequestMessage_1_0.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/CancelRequestMessage_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/CancelRequestMessage_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/FragmentMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/FragmentMessage_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/FragmentMessage_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/IORAddressingInfo.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/IORAddressingInfoHelper.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/KeyAddr.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyMessage_1_0.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyMessage_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyMessage_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateReplyOrReplyMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage_1_0.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/LocateRequestMessage_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/Message.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/MessageBase.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/MessageHandler.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/Message_1_0.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/Message_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/Message_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ProfileAddr.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReferenceAddr.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_0.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/ReplyMessage_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/RequestMessage.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/RequestMessage_1_0.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/RequestMessage_1_1.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/RequestMessage_1_2.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/TargetAddress.java ! src/share/classes/com/sun/corba/se/impl/protocol/giopmsgheaders/TargetAddressHelper.java ! src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientRequestImpl.sjava ! src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientResponseImpl.sjava ! src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerRequestImpl.sjava ! src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerResponseImpl.sjava ! src/share/classes/com/sun/corba/se/impl/resolver/BootstrapResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/CompositeResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/FileResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/LocalResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/ORBDefaultInitRefResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/ORBInitRefResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/resolver/SplitLocalResolverImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/BufferConnectionImpl.sjava ! src/share/classes/com/sun/corba/se/impl/transport/ByteBufferPoolImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaConnectionCacheBase.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaContactInfoBase.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaContactInfoListImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaContactInfoListIteratorImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaInboundConnectionCacheImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaOutboundConnectionCacheImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaResponseWaitingRoomImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/CorbaTransportManagerImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/DefaultIORToSocketInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/EventHandlerBase.java ! src/share/classes/com/sun/corba/se/impl/transport/ListenerThreadImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/ReadTCPTimeoutsImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/ReaderThreadImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SharedCDRContactInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java ! src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelContactInfoImpl.java ! src/share/classes/com/sun/corba/se/impl/util/IdentityHashtable.java ! src/share/classes/com/sun/corba/se/impl/util/IdentityHashtableEnumerator.java ! src/share/classes/com/sun/corba/se/impl/util/JDKBridge.java ! src/share/classes/com/sun/corba/se/impl/util/JDKClassLoader.java ! src/share/classes/com/sun/corba/se/impl/util/ORBProperties.java ! src/share/classes/com/sun/corba/se/impl/util/PackagePrefixChecker.java ! src/share/classes/com/sun/corba/se/impl/util/RepositoryId.java ! src/share/classes/com/sun/corba/se/impl/util/RepositoryIdCache.java ! src/share/classes/com/sun/corba/se/impl/util/SUNVMCID.java ! src/share/classes/com/sun/corba/se/impl/util/Utility.java ! src/share/classes/com/sun/corba/se/impl/util/Version.java ! src/share/classes/com/sun/corba/se/internal/CosNaming/BootstrapServer.java ! src/share/classes/com/sun/corba/se/internal/Interceptors/PIORB.java ! src/share/classes/com/sun/corba/se/internal/POA/POAORB.java ! src/share/classes/com/sun/corba/se/internal/corba/ORBSingleton.java ! src/share/classes/com/sun/corba/se/internal/iiop/ORB.java ! src/share/classes/com/sun/corba/se/org/omg/CORBA/ORB.java ! src/share/classes/com/sun/corba/se/pept/broker/Broker.java ! src/share/classes/com/sun/corba/se/pept/encoding/InputObject.java ! src/share/classes/com/sun/corba/se/pept/encoding/OutputObject.java ! src/share/classes/com/sun/corba/se/pept/package.html ! src/share/classes/com/sun/corba/se/pept/protocol/ClientDelegate.java ! src/share/classes/com/sun/corba/se/pept/protocol/ClientInvocationInfo.java ! src/share/classes/com/sun/corba/se/pept/protocol/ClientRequestDispatcher.java ! src/share/classes/com/sun/corba/se/pept/protocol/MessageMediator.java ! src/share/classes/com/sun/corba/se/pept/protocol/ProtocolHandler.java ! src/share/classes/com/sun/corba/se/pept/protocol/ServerRequestDispatcher.java ! src/share/classes/com/sun/corba/se/pept/transport/Acceptor.java ! src/share/classes/com/sun/corba/se/pept/transport/ByteBufferPool.java ! src/share/classes/com/sun/corba/se/pept/transport/Connection.java ! src/share/classes/com/sun/corba/se/pept/transport/ConnectionCache.java ! src/share/classes/com/sun/corba/se/pept/transport/ContactInfo.java ! src/share/classes/com/sun/corba/se/pept/transport/ContactInfoList.java ! src/share/classes/com/sun/corba/se/pept/transport/ContactInfoListIterator.java ! src/share/classes/com/sun/corba/se/pept/transport/EventHandler.java ! src/share/classes/com/sun/corba/se/pept/transport/InboundConnectionCache.java ! src/share/classes/com/sun/corba/se/pept/transport/ListenerThread.java ! src/share/classes/com/sun/corba/se/pept/transport/OutboundConnectionCache.java ! src/share/classes/com/sun/corba/se/pept/transport/ReaderThread.java ! src/share/classes/com/sun/corba/se/pept/transport/ResponseWaitingRoom.java ! src/share/classes/com/sun/corba/se/pept/transport/Selector.java ! src/share/classes/com/sun/corba/se/pept/transport/TransportManager.java ! src/share/classes/com/sun/corba/se/spi/activation/activation.idl ! src/share/classes/com/sun/corba/se/spi/copyobject/CopierManager.java ! src/share/classes/com/sun/corba/se/spi/copyobject/CopyobjectDefaults.java ! src/share/classes/com/sun/corba/se/spi/copyobject/ObjectCopier.java ! src/share/classes/com/sun/corba/se/spi/copyobject/ObjectCopierFactory.java ! src/share/classes/com/sun/corba/se/spi/copyobject/ReflectiveCopyException.java ! src/share/classes/com/sun/corba/se/spi/encoding/CorbaInputObject.java ! src/share/classes/com/sun/corba/se/spi/encoding/CorbaOutputObject.java ! src/share/classes/com/sun/corba/se/spi/extension/CopyObjectPolicy.java ! src/share/classes/com/sun/corba/se/spi/extension/RequestPartitioningPolicy.java ! src/share/classes/com/sun/corba/se/spi/extension/ServantCachingPolicy.java ! src/share/classes/com/sun/corba/se/spi/extension/ZeroPortPolicy.java ! src/share/classes/com/sun/corba/se/spi/ior/EncapsulationFactoryBase.java ! src/share/classes/com/sun/corba/se/spi/ior/IOR.java ! src/share/classes/com/sun/corba/se/spi/ior/IORFactories.java ! src/share/classes/com/sun/corba/se/spi/ior/IORFactory.java ! src/share/classes/com/sun/corba/se/spi/ior/IORTemplate.java ! src/share/classes/com/sun/corba/se/spi/ior/IORTemplateList.java ! src/share/classes/com/sun/corba/se/spi/ior/Identifiable.java ! src/share/classes/com/sun/corba/se/spi/ior/IdentifiableBase.java ! src/share/classes/com/sun/corba/se/spi/ior/IdentifiableContainerBase.java ! src/share/classes/com/sun/corba/se/spi/ior/IdentifiableFactory.java ! src/share/classes/com/sun/corba/se/spi/ior/IdentifiableFactoryFinder.java ! src/share/classes/com/sun/corba/se/spi/ior/MakeImmutable.java ! src/share/classes/com/sun/corba/se/spi/ior/ObjectAdapterId.java ! src/share/classes/com/sun/corba/se/spi/ior/ObjectId.java ! src/share/classes/com/sun/corba/se/spi/ior/ObjectKey.java ! src/share/classes/com/sun/corba/se/spi/ior/ObjectKeyFactory.java ! src/share/classes/com/sun/corba/se/spi/ior/ObjectKeyTemplate.java ! src/share/classes/com/sun/corba/se/spi/ior/TaggedComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/TaggedComponentBase.java ! src/share/classes/com/sun/corba/se/spi/ior/TaggedComponentFactoryFinder.java ! src/share/classes/com/sun/corba/se/spi/ior/TaggedProfile.java ! src/share/classes/com/sun/corba/se/spi/ior/TaggedProfileTemplate.java ! src/share/classes/com/sun/corba/se/spi/ior/TaggedProfileTemplateBase.java ! src/share/classes/com/sun/corba/se/spi/ior/WriteContents.java ! src/share/classes/com/sun/corba/se/spi/ior/Writeable.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/AlternateIIOPAddressComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/CodeSetsComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/GIOPVersion.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/IIOPAddress.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/IIOPFactories.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/IIOPProfile.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/IIOPProfileTemplate.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/JavaCodebaseComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/MaxStreamFormatVersionComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/ORBTypeComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/iiop/RequestPartitioningComponent.java ! src/share/classes/com/sun/corba/se/spi/ior/package.html ! src/share/classes/com/sun/corba/se/spi/legacy/connection/Connection.java ! src/share/classes/com/sun/corba/se/spi/legacy/connection/GetEndPointInfoAgainException.java ! src/share/classes/com/sun/corba/se/spi/legacy/connection/LegacyServerSocketEndPointInfo.java ! src/share/classes/com/sun/corba/se/spi/legacy/connection/LegacyServerSocketManager.java ! src/share/classes/com/sun/corba/se/spi/legacy/connection/ORBSocketFactory.java ! src/share/classes/com/sun/corba/se/spi/legacy/connection/README.txt ! src/share/classes/com/sun/corba/se/spi/legacy/interceptor/IORInfoExt.java ! src/share/classes/com/sun/corba/se/spi/legacy/interceptor/ORBInitInfoExt.java ! src/share/classes/com/sun/corba/se/spi/legacy/interceptor/RequestInfoExt.java ! src/share/classes/com/sun/corba/se/spi/legacy/interceptor/UnknownType.java ! src/share/classes/com/sun/corba/se/spi/logging/CORBALogDomains.java ! src/share/classes/com/sun/corba/se/spi/logging/LogWrapperBase.java ! src/share/classes/com/sun/corba/se/spi/logging/LogWrapperFactory.java ! src/share/classes/com/sun/corba/se/spi/logging/data/Activation.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/IOR.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/Interceptors.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/Naming.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/OMG.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/ORBUtil.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/POA.mc ! src/share/classes/com/sun/corba/se/spi/logging/data/Util.mc ! src/share/classes/com/sun/corba/se/spi/monitoring/LongMonitoredAttributeBase.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoredAttribute.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoredAttributeBase.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoredAttributeInfo.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoredAttributeInfoFactory.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoredObject.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoredObjectFactory.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoringConstants.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoringFactories.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoringManager.java ! src/share/classes/com/sun/corba/se/spi/monitoring/MonitoringManagerFactory.java ! src/share/classes/com/sun/corba/se/spi/monitoring/StatisticMonitoredAttribute.java ! src/share/classes/com/sun/corba/se/spi/monitoring/StatisticsAccumulator.java ! src/share/classes/com/sun/corba/se/spi/monitoring/StringMonitoredAttributeBase.java ! src/share/classes/com/sun/corba/se/spi/monitoring/package.html ! src/share/classes/com/sun/corba/se/spi/oa/NullServant.java ! src/share/classes/com/sun/corba/se/spi/oa/OADefault.java ! src/share/classes/com/sun/corba/se/spi/oa/OADestroyed.java ! src/share/classes/com/sun/corba/se/spi/oa/OAInvocationInfo.java ! src/share/classes/com/sun/corba/se/spi/oa/ObjectAdapter.java ! src/share/classes/com/sun/corba/se/spi/oa/ObjectAdapterBase.java ! src/share/classes/com/sun/corba/se/spi/oa/ObjectAdapterFactory.java ! src/share/classes/com/sun/corba/se/spi/orb/DataCollector.java ! src/share/classes/com/sun/corba/se/spi/orb/ORB.java ! src/share/classes/com/sun/corba/se/spi/orb/ORBConfigurator.java ! src/share/classes/com/sun/corba/se/spi/orb/ORBData.java ! src/share/classes/com/sun/corba/se/spi/orb/ORBVersion.java ! src/share/classes/com/sun/corba/se/spi/orb/ORBVersionFactory.java ! src/share/classes/com/sun/corba/se/spi/orb/Operation.java ! src/share/classes/com/sun/corba/se/spi/orb/OperationFactory.java ! src/share/classes/com/sun/corba/se/spi/orb/ParserData.java ! src/share/classes/com/sun/corba/se/spi/orb/ParserDataFactory.java ! src/share/classes/com/sun/corba/se/spi/orb/ParserImplBase.java ! src/share/classes/com/sun/corba/se/spi/orb/ParserImplTableBase.java ! src/share/classes/com/sun/corba/se/spi/orb/PropertyParser.java ! src/share/classes/com/sun/corba/se/spi/orb/StringPair.java ! src/share/classes/com/sun/corba/se/spi/orbutil/closure/Closure.java ! src/share/classes/com/sun/corba/se/spi/orbutil/closure/ClosureFactory.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/Action.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/ActionBase.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/FSM.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/FSMImpl.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/FSMTest.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/Guard.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/GuardBase.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/Input.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/InputImpl.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/State.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/StateEngine.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/StateEngineFactory.java ! src/share/classes/com/sun/corba/se/spi/orbutil/fsm/StateImpl.java ! src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandler.java ! src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java ! src/share/classes/com/sun/corba/se/spi/orbutil/proxy/DelegateInvocationHandlerImpl.java ! src/share/classes/com/sun/corba/se/spi/orbutil/proxy/InvocationHandlerFactory.java ! src/share/classes/com/sun/corba/se/spi/orbutil/proxy/LinkedInvocationHandler.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/NoSuchThreadPoolException.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/NoSuchWorkQueueException.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/ThreadPool.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/ThreadPoolChooser.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/ThreadPoolManager.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/Work.java ! src/share/classes/com/sun/corba/se/spi/orbutil/threadpool/WorkQueue.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/DynamicMethodMarshaller.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/DynamicStub.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/IDLNameTranslator.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/PresentationDefaults.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/PresentationManager.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/StubAdapter.java ! src/share/classes/com/sun/corba/se/spi/presentation/rmi/StubWrapper.java ! src/share/classes/com/sun/corba/se/spi/protocol/ClientDelegateFactory.java ! src/share/classes/com/sun/corba/se/spi/protocol/CorbaClientDelegate.java ! src/share/classes/com/sun/corba/se/spi/protocol/CorbaMessageMediator.java ! src/share/classes/com/sun/corba/se/spi/protocol/CorbaProtocolHandler.java ! src/share/classes/com/sun/corba/se/spi/protocol/CorbaServerRequestDispatcher.java ! src/share/classes/com/sun/corba/se/spi/protocol/ForwardException.java ! src/share/classes/com/sun/corba/se/spi/protocol/InitialServerRequestDispatcher.java ! src/share/classes/com/sun/corba/se/spi/protocol/LocalClientRequestDispatcher.java ! src/share/classes/com/sun/corba/se/spi/protocol/LocalClientRequestDispatcherFactory.java ! src/share/classes/com/sun/corba/se/spi/protocol/PIHandler.java ! src/share/classes/com/sun/corba/se/spi/protocol/RequestDispatcherDefault.java ! src/share/classes/com/sun/corba/se/spi/protocol/RequestDispatcherRegistry.java ! src/share/classes/com/sun/corba/se/spi/resolver/LocalResolver.java ! src/share/classes/com/sun/corba/se/spi/resolver/Resolver.java ! src/share/classes/com/sun/corba/se/spi/resolver/ResolverDefault.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/CodeSetServiceContext.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/MaxStreamFormatVersionServiceContext.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/ORBVersionServiceContext.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/SendingContextServiceContext.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContext.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContextData.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContextRegistry.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContexts.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/UEInfoServiceContext.java ! src/share/classes/com/sun/corba/se/spi/servicecontext/UnknownServiceContext.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaAcceptor.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaConnection.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaConnectionCache.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaContactInfo.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaContactInfoList.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaContactInfoListFactory.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaContactInfoListIterator.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaResponseWaitingRoom.java ! src/share/classes/com/sun/corba/se/spi/transport/CorbaTransportManager.java ! src/share/classes/com/sun/corba/se/spi/transport/IIOPPrimaryToContactInfo.java ! src/share/classes/com/sun/corba/se/spi/transport/IORToSocketInfo.java ! src/share/classes/com/sun/corba/se/spi/transport/IORTransformer.java ! src/share/classes/com/sun/corba/se/spi/transport/ORBSocketFactory.java ! src/share/classes/com/sun/corba/se/spi/transport/ReadTimeouts.java ! src/share/classes/com/sun/corba/se/spi/transport/ReadTimeoutsFactory.java ! src/share/classes/com/sun/corba/se/spi/transport/SocketInfo.java ! src/share/classes/com/sun/corba/se/spi/transport/SocketOrChannelAcceptor.java ! src/share/classes/com/sun/corba/se/spi/transport/TransportDefault.java ! src/share/classes/com/sun/org/omg/CORBA/AttrDescriptionSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/AttributeDescription.java ! src/share/classes/com/sun/org/omg/CORBA/AttributeDescriptionHelper.java ! src/share/classes/com/sun/org/omg/CORBA/AttributeMode.java ! src/share/classes/com/sun/org/omg/CORBA/AttributeModeHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ContextIdSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ContextIdentifierHelper.java ! src/share/classes/com/sun/org/omg/CORBA/DefinitionKindHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ExcDescriptionSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ExceptionDescription.java ! src/share/classes/com/sun/org/omg/CORBA/ExceptionDescriptionHelper.java ! src/share/classes/com/sun/org/omg/CORBA/IDLTypeHelper.java ! src/share/classes/com/sun/org/omg/CORBA/IDLTypeOperations.java ! src/share/classes/com/sun/org/omg/CORBA/IRObjectOperations.java ! src/share/classes/com/sun/org/omg/CORBA/IdentifierHelper.java ! src/share/classes/com/sun/org/omg/CORBA/Initializer.java ! src/share/classes/com/sun/org/omg/CORBA/InitializerHelper.java ! src/share/classes/com/sun/org/omg/CORBA/InitializerSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/OpDescriptionSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/OperationDescription.java ! src/share/classes/com/sun/org/omg/CORBA/OperationDescriptionHelper.java ! src/share/classes/com/sun/org/omg/CORBA/OperationMode.java ! src/share/classes/com/sun/org/omg/CORBA/OperationModeHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ParDescriptionSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ParameterDescription.java ! src/share/classes/com/sun/org/omg/CORBA/ParameterDescriptionHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ParameterMode.java ! src/share/classes/com/sun/org/omg/CORBA/ParameterModeHelper.java ! src/share/classes/com/sun/org/omg/CORBA/Repository.java ! src/share/classes/com/sun/org/omg/CORBA/RepositoryHelper.java ! src/share/classes/com/sun/org/omg/CORBA/RepositoryIdHelper.java ! src/share/classes/com/sun/org/omg/CORBA/RepositoryIdSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/StructMemberHelper.java ! src/share/classes/com/sun/org/omg/CORBA/StructMemberSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ValueDefPackage/FullValueDescription.java ! src/share/classes/com/sun/org/omg/CORBA/ValueDefPackage/FullValueDescriptionHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ValueMemberHelper.java ! src/share/classes/com/sun/org/omg/CORBA/ValueMemberSeqHelper.java ! src/share/classes/com/sun/org/omg/CORBA/VersionSpecHelper.java ! src/share/classes/com/sun/org/omg/CORBA/VisibilityHelper.java ! src/share/classes/com/sun/org/omg/CORBA/_IDLTypeStub.java ! src/share/classes/com/sun/org/omg/CORBA/portable/ValueHelper.java ! src/share/classes/com/sun/org/omg/SendingContext/CodeBase.java ! src/share/classes/com/sun/org/omg/SendingContext/CodeBaseHelper.java ! src/share/classes/com/sun/org/omg/SendingContext/CodeBaseOperations.java ! src/share/classes/com/sun/org/omg/SendingContext/CodeBasePackage/URLHelper.java ! src/share/classes/com/sun/org/omg/SendingContext/CodeBasePackage/URLSeqHelper.java ! src/share/classes/com/sun/org/omg/SendingContext/CodeBasePackage/ValueDescSeqHelper.java ! src/share/classes/com/sun/org/omg/SendingContext/_CodeBaseImplBase.java ! src/share/classes/com/sun/org/omg/SendingContext/_CodeBaseStub.java ! src/share/classes/com/sun/tools/corba/se/idl/Arguments.java ! src/share/classes/com/sun/tools/corba/se/idl/AttributeEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/AttributeGen.java ! src/share/classes/com/sun/tools/corba/se/idl/Comment.java ! src/share/classes/com/sun/tools/corba/se/idl/Compile.java ! src/share/classes/com/sun/tools/corba/se/idl/ConstEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ConstGen.java ! src/share/classes/com/sun/tools/corba/se/idl/DefaultSymtabFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/EnumEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/EnumGen.java ! src/share/classes/com/sun/tools/corba/se/idl/ExceptionEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ExceptionGen.java ! src/share/classes/com/sun/tools/corba/se/idl/Factories.java ! src/share/classes/com/sun/tools/corba/se/idl/ForwardEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ForwardGen.java ! src/share/classes/com/sun/tools/corba/se/idl/ForwardValueEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ForwardValueGen.java ! src/share/classes/com/sun/tools/corba/se/idl/GenFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/GenFileStream.java ! src/share/classes/com/sun/tools/corba/se/idl/Generator.java ! src/share/classes/com/sun/tools/corba/se/idl/IDLID.java ! src/share/classes/com/sun/tools/corba/se/idl/IncludeEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/IncludeGen.java ! src/share/classes/com/sun/tools/corba/se/idl/InterfaceEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/InterfaceGen.java ! src/share/classes/com/sun/tools/corba/se/idl/InterfaceState.java ! src/share/classes/com/sun/tools/corba/se/idl/InterfaceType.java ! src/share/classes/com/sun/tools/corba/se/idl/InvalidArgument.java ! src/share/classes/com/sun/tools/corba/se/idl/InvalidCharacter.java ! src/share/classes/com/sun/tools/corba/se/idl/MethodEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/MethodGen.java ! src/share/classes/com/sun/tools/corba/se/idl/ModuleEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ModuleGen.java ! src/share/classes/com/sun/tools/corba/se/idl/NativeEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/NativeGen.java ! src/share/classes/com/sun/tools/corba/se/idl/NoPragma.java ! src/share/classes/com/sun/tools/corba/se/idl/Noop.java ! src/share/classes/com/sun/tools/corba/se/idl/ParameterEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ParameterGen.java ! src/share/classes/com/sun/tools/corba/se/idl/ParseException.java ! src/share/classes/com/sun/tools/corba/se/idl/Parser.java ! src/share/classes/com/sun/tools/corba/se/idl/PragmaEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/PragmaGen.java ! src/share/classes/com/sun/tools/corba/se/idl/PragmaHandler.java ! src/share/classes/com/sun/tools/corba/se/idl/Preprocessor.java ! src/share/classes/com/sun/tools/corba/se/idl/PrimitiveEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/PrimitiveGen.java ! src/share/classes/com/sun/tools/corba/se/idl/RepositoryID.java ! src/share/classes/com/sun/tools/corba/se/idl/ResourceBundleUtil.java ! src/share/classes/com/sun/tools/corba/se/idl/Scanner.java ! src/share/classes/com/sun/tools/corba/se/idl/SequenceEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/SequenceGen.java ! src/share/classes/com/sun/tools/corba/se/idl/StringEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/StringGen.java ! src/share/classes/com/sun/tools/corba/se/idl/StructEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/StructGen.java ! src/share/classes/com/sun/tools/corba/se/idl/SymtabEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/SymtabFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/Token.java ! src/share/classes/com/sun/tools/corba/se/idl/TokenBuffer.java ! src/share/classes/com/sun/tools/corba/se/idl/TypedefEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/TypedefGen.java ! src/share/classes/com/sun/tools/corba/se/idl/UnionBranch.java ! src/share/classes/com/sun/tools/corba/se/idl/UnionEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/UnionGen.java ! src/share/classes/com/sun/tools/corba/se/idl/Util.java ! src/share/classes/com/sun/tools/corba/se/idl/ValueBoxEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ValueBoxGen.java ! src/share/classes/com/sun/tools/corba/se/idl/ValueEntry.java ! src/share/classes/com/sun/tools/corba/se/idl/ValueGen.java ! src/share/classes/com/sun/tools/corba/se/idl/ValueRepositoryId.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/And.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/BinaryExpr.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/BooleanAnd.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/BooleanNot.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/BooleanOr.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/DefaultExprFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Divide.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Equal.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/EvaluationException.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/ExprFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Expression.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/GreaterEqual.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/GreaterThan.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/LessEqual.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/LessThan.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Minus.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Modulo.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Negative.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Not.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/NotEqual.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Or.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Plus.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Positive.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/ShiftLeft.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/ShiftRight.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Terminal.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Times.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/UnaryExpr.java ! src/share/classes/com/sun/tools/corba/se/idl/constExpr/Xor.java ! src/share/classes/com/sun/tools/corba/se/idl/first.set ! src/share/classes/com/sun/tools/corba/se/idl/follow.set ! src/share/classes/com/sun/tools/corba/se/idl/grammar.idl ! src/share/classes/com/sun/tools/corba/se/idl/grammar3.idl ! src/share/classes/com/sun/tools/corba/se/idl/idl.prp ! src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp ! src/share/classes/com/sun/tools/corba/se/idl/idl_zh_CN.prp ! src/share/classes/com/sun/tools/corba/se/idl/ir.idl ! src/share/classes/com/sun/tools/corba/se/idl/orb.idl ! src/share/classes/com/sun/tools/corba/se/idl/som/cff/FileLocator.java ! src/share/classes/com/sun/tools/corba/se/idl/som/cff/Messages.java ! src/share/classes/com/sun/tools/corba/se/idl/som/idlemit/MetaPragma.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Arguments.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/AttributeGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/AttributeGen24.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/AuxGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Compile.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ConstGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/DefaultFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/EnumGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ExceptionGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Factories.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ForwardValueGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/GenFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Helper.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Helper24.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Holder.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/InterfaceGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/JavaGenerator.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/MethodGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/MethodGen24.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/MethodGenClone24.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ModuleGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/NameModifier.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/NameModifierImpl.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/NativeGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/PrimitiveGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/SequenceGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Skeleton.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/StringGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/StructGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Stub.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/TCOffsets.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/TypedefGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/UnionGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/Util.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ValueBoxGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ValueBoxGen24.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ValueFactory.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ValueGen.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/ValueGen24.java ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable.prp ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable_ja.prp ! src/share/classes/com/sun/tools/corba/se/idl/toJavaPortable/toJavaPortable_zh_CN.prp ! src/share/classes/com/sun/tools/corba/se/logutil/IndentingPrintWriter.java ! src/share/classes/com/sun/tools/corba/se/logutil/Input.java ! src/share/classes/com/sun/tools/corba/se/logutil/InputCode.java ! src/share/classes/com/sun/tools/corba/se/logutil/InputException.java ! src/share/classes/com/sun/tools/corba/se/logutil/MC.java ! src/share/classes/com/sun/tools/corba/se/logutil/Makefile ! src/share/classes/com/sun/tools/corba/se/logutil/StringUtil.java ! src/share/classes/javax/activity/ActivityCompletedException.java ! src/share/classes/javax/activity/ActivityRequiredException.java ! src/share/classes/javax/activity/InvalidActivityException.java ! src/share/classes/javax/activity/package.html ! src/share/classes/javax/rmi/CORBA/ClassDesc.java ! src/share/classes/javax/rmi/CORBA/GetORBPropertiesFileAction.java ! src/share/classes/javax/rmi/CORBA/PortableRemoteObjectDelegate.java ! src/share/classes/javax/rmi/CORBA/Stub.java ! src/share/classes/javax/rmi/CORBA/StubDelegate.java ! src/share/classes/javax/rmi/CORBA/Tie.java ! src/share/classes/javax/rmi/CORBA/Util.java ! src/share/classes/javax/rmi/CORBA/UtilDelegate.java ! src/share/classes/javax/rmi/CORBA/ValueHandler.java ! src/share/classes/javax/rmi/CORBA/ValueHandlerMultiFormat.java ! src/share/classes/javax/rmi/CORBA/package.html ! src/share/classes/javax/rmi/PortableRemoteObject.java ! src/share/classes/javax/rmi/package.html ! src/share/classes/javax/transaction/InvalidTransactionException.java ! src/share/classes/javax/transaction/TransactionRequiredException.java ! src/share/classes/javax/transaction/TransactionRolledbackException.java ! src/share/classes/javax/transaction/package.html ! src/share/classes/javax/transaction/xa/XAException.java ! src/share/classes/javax/transaction/xa/XAResource.java ! src/share/classes/javax/transaction/xa/Xid.java ! src/share/classes/javax/transaction/xa/package.html ! src/share/classes/org/omg/CORBA/ACTIVITY_COMPLETED.java ! src/share/classes/org/omg/CORBA/ACTIVITY_REQUIRED.java ! src/share/classes/org/omg/CORBA/ARG_IN.java ! src/share/classes/org/omg/CORBA/ARG_INOUT.java ! src/share/classes/org/omg/CORBA/ARG_OUT.java ! src/share/classes/org/omg/CORBA/Any.java ! src/share/classes/org/omg/CORBA/AnyHolder.java ! src/share/classes/org/omg/CORBA/AnySeqHelper.java ! src/share/classes/org/omg/CORBA/AnySeqHolder.java ! src/share/classes/org/omg/CORBA/BAD_CONTEXT.java ! src/share/classes/org/omg/CORBA/BAD_INV_ORDER.java ! src/share/classes/org/omg/CORBA/BAD_OPERATION.java ! src/share/classes/org/omg/CORBA/BAD_PARAM.java ! src/share/classes/org/omg/CORBA/BAD_POLICY.java ! src/share/classes/org/omg/CORBA/BAD_POLICY_TYPE.java ! src/share/classes/org/omg/CORBA/BAD_POLICY_VALUE.java ! src/share/classes/org/omg/CORBA/BAD_QOS.java ! src/share/classes/org/omg/CORBA/BAD_TYPECODE.java ! src/share/classes/org/omg/CORBA/BooleanHolder.java ! src/share/classes/org/omg/CORBA/BooleanSeqHelper.java ! src/share/classes/org/omg/CORBA/BooleanSeqHolder.java ! src/share/classes/org/omg/CORBA/Bounds.java ! src/share/classes/org/omg/CORBA/ByteHolder.java ! src/share/classes/org/omg/CORBA/CODESET_INCOMPATIBLE.java ! src/share/classes/org/omg/CORBA/COMM_FAILURE.java ! src/share/classes/org/omg/CORBA/CTX_RESTRICT_SCOPE.java ! src/share/classes/org/omg/CORBA/CharHolder.java ! src/share/classes/org/omg/CORBA/CharSeqHelper.java ! src/share/classes/org/omg/CORBA/CharSeqHolder.java ! src/share/classes/org/omg/CORBA/CompletionStatus.java ! src/share/classes/org/omg/CORBA/CompletionStatusHelper.java ! src/share/classes/org/omg/CORBA/Context.java ! src/share/classes/org/omg/CORBA/ContextList.java ! src/share/classes/org/omg/CORBA/Current.java ! src/share/classes/org/omg/CORBA/CurrentHelper.java ! src/share/classes/org/omg/CORBA/CurrentHolder.java ! src/share/classes/org/omg/CORBA/CurrentOperations.java ! src/share/classes/org/omg/CORBA/CustomMarshal.java ! src/share/classes/org/omg/CORBA/DATA_CONVERSION.java ! src/share/classes/org/omg/CORBA/DataInputStream.java ! src/share/classes/org/omg/CORBA/DataOutputStream.java ! src/share/classes/org/omg/CORBA/DefinitionKind.java ! src/share/classes/org/omg/CORBA/DefinitionKindHelper.java ! src/share/classes/org/omg/CORBA/DomainManager.java ! src/share/classes/org/omg/CORBA/DomainManagerOperations.java ! src/share/classes/org/omg/CORBA/DoubleHolder.java ! src/share/classes/org/omg/CORBA/DoubleSeqHelper.java ! src/share/classes/org/omg/CORBA/DoubleSeqHolder.java ! src/share/classes/org/omg/CORBA/DynAny.java ! src/share/classes/org/omg/CORBA/DynAnyPackage/Invalid.java ! src/share/classes/org/omg/CORBA/DynAnyPackage/InvalidSeq.java ! src/share/classes/org/omg/CORBA/DynAnyPackage/InvalidValue.java ! src/share/classes/org/omg/CORBA/DynAnyPackage/TypeMismatch.java ! src/share/classes/org/omg/CORBA/DynAnyPackage/package.html ! src/share/classes/org/omg/CORBA/DynArray.java ! src/share/classes/org/omg/CORBA/DynEnum.java ! src/share/classes/org/omg/CORBA/DynFixed.java ! src/share/classes/org/omg/CORBA/DynSequence.java ! src/share/classes/org/omg/CORBA/DynStruct.java ! src/share/classes/org/omg/CORBA/DynUnion.java ! src/share/classes/org/omg/CORBA/DynValue.java ! src/share/classes/org/omg/CORBA/DynamicImplementation.java ! src/share/classes/org/omg/CORBA/Environment.java ! src/share/classes/org/omg/CORBA/ExceptionList.java ! src/share/classes/org/omg/CORBA/FREE_MEM.java ! src/share/classes/org/omg/CORBA/FieldNameHelper.java ! src/share/classes/org/omg/CORBA/FixedHolder.java ! src/share/classes/org/omg/CORBA/FloatHolder.java ! src/share/classes/org/omg/CORBA/FloatSeqHelper.java ! src/share/classes/org/omg/CORBA/FloatSeqHolder.java ! src/share/classes/org/omg/CORBA/IDLType.java ! src/share/classes/org/omg/CORBA/IDLTypeHelper.java ! src/share/classes/org/omg/CORBA/IDLTypeOperations.java ! src/share/classes/org/omg/CORBA/IMP_LIMIT.java ! src/share/classes/org/omg/CORBA/INITIALIZE.java ! src/share/classes/org/omg/CORBA/INTERNAL.java ! src/share/classes/org/omg/CORBA/INTF_REPOS.java ! src/share/classes/org/omg/CORBA/INVALID_ACTIVITY.java ! src/share/classes/org/omg/CORBA/INVALID_TRANSACTION.java ! src/share/classes/org/omg/CORBA/INV_FLAG.java ! src/share/classes/org/omg/CORBA/INV_IDENT.java ! src/share/classes/org/omg/CORBA/INV_OBJREF.java ! src/share/classes/org/omg/CORBA/INV_POLICY.java ! src/share/classes/org/omg/CORBA/IRObject.java ! src/share/classes/org/omg/CORBA/IRObjectOperations.java ! src/share/classes/org/omg/CORBA/IdentifierHelper.java ! src/share/classes/org/omg/CORBA/IntHolder.java ! src/share/classes/org/omg/CORBA/LocalObject.java ! src/share/classes/org/omg/CORBA/LongHolder.java ! src/share/classes/org/omg/CORBA/LongLongSeqHelper.java ! src/share/classes/org/omg/CORBA/LongLongSeqHolder.java ! src/share/classes/org/omg/CORBA/LongSeqHelper.java ! src/share/classes/org/omg/CORBA/LongSeqHolder.java ! src/share/classes/org/omg/CORBA/MARSHAL.java ! src/share/classes/org/omg/CORBA/NO_IMPLEMENT.java ! src/share/classes/org/omg/CORBA/NO_MEMORY.java ! src/share/classes/org/omg/CORBA/NO_PERMISSION.java ! src/share/classes/org/omg/CORBA/NO_RESOURCES.java ! src/share/classes/org/omg/CORBA/NO_RESPONSE.java ! src/share/classes/org/omg/CORBA/NVList.java ! src/share/classes/org/omg/CORBA/NameValuePair.java ! src/share/classes/org/omg/CORBA/NameValuePairHelper.java ! src/share/classes/org/omg/CORBA/NamedValue.java ! src/share/classes/org/omg/CORBA/OBJECT_NOT_EXIST.java ! src/share/classes/org/omg/CORBA/OBJ_ADAPTER.java ! src/share/classes/org/omg/CORBA/OMGVMCID.java ! src/share/classes/org/omg/CORBA/ORB.java ! src/share/classes/org/omg/CORBA/ORBPackage/InconsistentTypeCode.java ! src/share/classes/org/omg/CORBA/ORBPackage/InvalidName.java ! src/share/classes/org/omg/CORBA/ORBPackage/package.html ! src/share/classes/org/omg/CORBA/Object.java ! src/share/classes/org/omg/CORBA/ObjectHelper.java ! src/share/classes/org/omg/CORBA/ObjectHolder.java ! src/share/classes/org/omg/CORBA/OctetSeqHelper.java ! src/share/classes/org/omg/CORBA/OctetSeqHolder.java ! src/share/classes/org/omg/CORBA/PERSIST_STORE.java ! src/share/classes/org/omg/CORBA/PRIVATE_MEMBER.java ! src/share/classes/org/omg/CORBA/PUBLIC_MEMBER.java ! src/share/classes/org/omg/CORBA/Policy.java ! src/share/classes/org/omg/CORBA/PolicyError.java ! src/share/classes/org/omg/CORBA/PolicyHelper.java ! src/share/classes/org/omg/CORBA/PolicyHolder.java ! src/share/classes/org/omg/CORBA/PolicyListHelper.java ! src/share/classes/org/omg/CORBA/PolicyListHolder.java ! src/share/classes/org/omg/CORBA/PolicyOperations.java ! src/share/classes/org/omg/CORBA/PolicyTypeHelper.java ! src/share/classes/org/omg/CORBA/Principal.java ! src/share/classes/org/omg/CORBA/PrincipalHolder.java ! src/share/classes/org/omg/CORBA/REBIND.java ! src/share/classes/org/omg/CORBA/RepositoryIdHelper.java ! src/share/classes/org/omg/CORBA/Request.java ! src/share/classes/org/omg/CORBA/ServerRequest.java ! src/share/classes/org/omg/CORBA/ServiceDetail.java ! src/share/classes/org/omg/CORBA/ServiceDetailHelper.java ! src/share/classes/org/omg/CORBA/ServiceInformation.java ! src/share/classes/org/omg/CORBA/ServiceInformationHelper.java ! src/share/classes/org/omg/CORBA/ServiceInformationHolder.java ! src/share/classes/org/omg/CORBA/SetOverrideType.java ! src/share/classes/org/omg/CORBA/SetOverrideTypeHelper.java ! src/share/classes/org/omg/CORBA/ShortHolder.java ! src/share/classes/org/omg/CORBA/ShortSeqHelper.java ! src/share/classes/org/omg/CORBA/ShortSeqHolder.java ! src/share/classes/org/omg/CORBA/StringHolder.java ! src/share/classes/org/omg/CORBA/StringValueHelper.java ! src/share/classes/org/omg/CORBA/StructMember.java ! src/share/classes/org/omg/CORBA/StructMemberHelper.java ! src/share/classes/org/omg/CORBA/SystemException.java ! src/share/classes/org/omg/CORBA/TCKind.java ! src/share/classes/org/omg/CORBA/TIMEOUT.java ! src/share/classes/org/omg/CORBA/TRANSACTION_MODE.java ! src/share/classes/org/omg/CORBA/TRANSACTION_REQUIRED.java ! src/share/classes/org/omg/CORBA/TRANSACTION_ROLLEDBACK.java ! src/share/classes/org/omg/CORBA/TRANSACTION_UNAVAILABLE.java ! src/share/classes/org/omg/CORBA/TRANSIENT.java ! src/share/classes/org/omg/CORBA/TypeCode.java ! src/share/classes/org/omg/CORBA/TypeCodeHolder.java ! src/share/classes/org/omg/CORBA/TypeCodePackage/BadKind.java ! src/share/classes/org/omg/CORBA/TypeCodePackage/Bounds.java ! src/share/classes/org/omg/CORBA/TypeCodePackage/package.html ! src/share/classes/org/omg/CORBA/ULongLongSeqHelper.java ! src/share/classes/org/omg/CORBA/ULongLongSeqHolder.java ! src/share/classes/org/omg/CORBA/ULongSeqHelper.java ! src/share/classes/org/omg/CORBA/ULongSeqHolder.java ! src/share/classes/org/omg/CORBA/UNKNOWN.java ! src/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY.java ! src/share/classes/org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java ! src/share/classes/org/omg/CORBA/UShortSeqHelper.java ! src/share/classes/org/omg/CORBA/UShortSeqHolder.java ! src/share/classes/org/omg/CORBA/UnionMember.java ! src/share/classes/org/omg/CORBA/UnionMemberHelper.java ! src/share/classes/org/omg/CORBA/UnknownUserException.java ! src/share/classes/org/omg/CORBA/UnknownUserExceptionHelper.java ! src/share/classes/org/omg/CORBA/UnknownUserExceptionHolder.java ! src/share/classes/org/omg/CORBA/UserException.java ! src/share/classes/org/omg/CORBA/VM_ABSTRACT.java ! src/share/classes/org/omg/CORBA/VM_CUSTOM.java ! src/share/classes/org/omg/CORBA/VM_NONE.java ! src/share/classes/org/omg/CORBA/VM_TRUNCATABLE.java ! src/share/classes/org/omg/CORBA/ValueBaseHelper.java ! src/share/classes/org/omg/CORBA/ValueBaseHolder.java ! src/share/classes/org/omg/CORBA/ValueMember.java ! src/share/classes/org/omg/CORBA/ValueMemberHelper.java ! src/share/classes/org/omg/CORBA/VersionSpecHelper.java ! src/share/classes/org/omg/CORBA/VisibilityHelper.java ! src/share/classes/org/omg/CORBA/WCharSeqHelper.java ! src/share/classes/org/omg/CORBA/WCharSeqHolder.java ! src/share/classes/org/omg/CORBA/WStringValueHelper.java ! src/share/classes/org/omg/CORBA/WrongTransaction.java ! src/share/classes/org/omg/CORBA/WrongTransactionHelper.java ! src/share/classes/org/omg/CORBA/WrongTransactionHolder.java ! src/share/classes/org/omg/CORBA/_IDLTypeStub.java ! src/share/classes/org/omg/CORBA/_PolicyStub.java ! src/share/classes/org/omg/CORBA/ir.idl ! src/share/classes/org/omg/CORBA/orb.idl ! src/share/classes/org/omg/CORBA/package.html ! src/share/classes/org/omg/CORBA/portable/ApplicationException.java ! src/share/classes/org/omg/CORBA/portable/BoxedValueHelper.java ! src/share/classes/org/omg/CORBA/portable/CustomValue.java ! src/share/classes/org/omg/CORBA/portable/Delegate.java ! src/share/classes/org/omg/CORBA/portable/IDLEntity.java ! src/share/classes/org/omg/CORBA/portable/IndirectionException.java ! src/share/classes/org/omg/CORBA/portable/InputStream.java ! src/share/classes/org/omg/CORBA/portable/InvokeHandler.java ! src/share/classes/org/omg/CORBA/portable/ObjectImpl.java ! src/share/classes/org/omg/CORBA/portable/OutputStream.java ! src/share/classes/org/omg/CORBA/portable/RemarshalException.java ! src/share/classes/org/omg/CORBA/portable/ResponseHandler.java ! src/share/classes/org/omg/CORBA/portable/ServantObject.java ! src/share/classes/org/omg/CORBA/portable/Streamable.java ! src/share/classes/org/omg/CORBA/portable/StreamableValue.java ! src/share/classes/org/omg/CORBA/portable/UnknownException.java ! src/share/classes/org/omg/CORBA/portable/ValueBase.java ! src/share/classes/org/omg/CORBA/portable/ValueFactory.java ! src/share/classes/org/omg/CORBA/portable/ValueInputStream.java ! src/share/classes/org/omg/CORBA/portable/ValueOutputStream.java ! src/share/classes/org/omg/CORBA/portable/package.html ! src/share/classes/org/omg/CORBA_2_3/ORB.java ! src/share/classes/org/omg/CORBA_2_3/package.html ! src/share/classes/org/omg/CORBA_2_3/portable/Delegate.java ! src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java ! src/share/classes/org/omg/CORBA_2_3/portable/ObjectImpl.java ! src/share/classes/org/omg/CORBA_2_3/portable/OutputStream.java ! src/share/classes/org/omg/CORBA_2_3/portable/package.html ! src/share/classes/org/omg/CosNaming/NamingContextExtPackage/package.html ! src/share/classes/org/omg/CosNaming/NamingContextPackage/package.html ! src/share/classes/org/omg/CosNaming/_BindingIteratorImplBase.java ! src/share/classes/org/omg/CosNaming/_NamingContextImplBase.java ! src/share/classes/org/omg/CosNaming/nameservice.idl ! src/share/classes/org/omg/CosNaming/package.html ! src/share/classes/org/omg/Dynamic/package.html ! src/share/classes/org/omg/DynamicAny/DynAnyFactoryPackage/package.html ! src/share/classes/org/omg/DynamicAny/DynAnyPackage/package.html ! src/share/classes/org/omg/DynamicAny/DynamicAny.idl ! src/share/classes/org/omg/DynamicAny/package.html ! src/share/classes/org/omg/IOP/CodecFactoryPackage/package.html ! src/share/classes/org/omg/IOP/CodecPackage/package.html ! src/share/classes/org/omg/IOP/package.html ! src/share/classes/org/omg/Messaging/package.html ! src/share/classes/org/omg/PortableInterceptor/CORBAX.idl ! src/share/classes/org/omg/PortableInterceptor/IOP.idl ! src/share/classes/org/omg/PortableInterceptor/Interceptors.idl ! src/share/classes/org/omg/PortableInterceptor/Messaging.idl ! src/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html ! src/share/classes/org/omg/PortableInterceptor/package.html ! src/share/classes/org/omg/PortableServer/CurrentHelper.java ! src/share/classes/org/omg/PortableServer/CurrentPackage/package.html ! src/share/classes/org/omg/PortableServer/DynamicImplementation.java ! src/share/classes/org/omg/PortableServer/POAHelper.java ! src/share/classes/org/omg/PortableServer/POAManagerPackage/package.html ! src/share/classes/org/omg/PortableServer/POAPackage/package.html ! src/share/classes/org/omg/PortableServer/Servant.java ! src/share/classes/org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java ! src/share/classes/org/omg/PortableServer/ServantLocatorPackage/package.html ! src/share/classes/org/omg/PortableServer/corba.idl ! src/share/classes/org/omg/PortableServer/package.html ! src/share/classes/org/omg/PortableServer/poa.idl ! src/share/classes/org/omg/PortableServer/portable/Delegate.java ! src/share/classes/org/omg/PortableServer/portable/package.html ! src/share/classes/org/omg/SendingContext/RunTime.java ! src/share/classes/org/omg/SendingContext/RunTimeOperations.java ! src/share/classes/org/omg/SendingContext/package.html ! src/share/classes/org/omg/stub/java/rmi/_Remote_Stub.java ! src/share/classes/org/omg/stub/java/rmi/package.html ! src/share/classes/sun/corba/Bridge.java ! src/share/classes/sun/corba/BridgePermission.java ! src/share/classes/sun/corba/package.html ! src/share/classes/sun/rmi/rmic/iiop/AbstractType.java ! src/share/classes/sun/rmi/rmic/iiop/ArrayType.java ! src/share/classes/sun/rmi/rmic/iiop/BatchEnvironment.java ! src/share/classes/sun/rmi/rmic/iiop/ClassPathLoader.java ! src/share/classes/sun/rmi/rmic/iiop/ClassType.java ! src/share/classes/sun/rmi/rmic/iiop/CompoundType.java ! src/share/classes/sun/rmi/rmic/iiop/Constants.java ! src/share/classes/sun/rmi/rmic/iiop/ContextElement.java ! src/share/classes/sun/rmi/rmic/iiop/ContextStack.java ! src/share/classes/sun/rmi/rmic/iiop/DirectoryLoader.java ! src/share/classes/sun/rmi/rmic/iiop/Generator.java ! src/share/classes/sun/rmi/rmic/iiop/IDLGenerator.java ! src/share/classes/sun/rmi/rmic/iiop/IDLNames.java ! src/share/classes/sun/rmi/rmic/iiop/ImplementationType.java ! src/share/classes/sun/rmi/rmic/iiop/InterfaceType.java ! src/share/classes/sun/rmi/rmic/iiop/NCClassType.java ! src/share/classes/sun/rmi/rmic/iiop/NCInterfaceType.java ! src/share/classes/sun/rmi/rmic/iiop/NameContext.java ! src/share/classes/sun/rmi/rmic/iiop/PrimitiveType.java ! src/share/classes/sun/rmi/rmic/iiop/PrintGenerator.java ! src/share/classes/sun/rmi/rmic/iiop/RemoteType.java ! src/share/classes/sun/rmi/rmic/iiop/SpecialClassType.java ! src/share/classes/sun/rmi/rmic/iiop/SpecialInterfaceType.java ! src/share/classes/sun/rmi/rmic/iiop/StaticStringsHash.java ! src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java ! src/share/classes/sun/rmi/rmic/iiop/Type.java ! src/share/classes/sun/rmi/rmic/iiop/Util.java ! src/share/classes/sun/rmi/rmic/iiop/ValueType.java ! src/windows/resource/version.rc Changeset: 41d03931cddb Author: ohair Date: 2010-05-26 10:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/41d03931cddb Merge Changeset: 217e205758ea Author: mikejwre Date: 2010-05-27 10:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/217e205758ea Added tag jdk7-b95 for changeset 06dbf406818c ! .hgtags Changeset: 125b504c5b72 Author: mikejwre Date: 2010-05-29 09:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/125b504c5b72 Merge Changeset: c16ac7e7a579 Author: ohair Date: 2010-05-26 20:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/c16ac7e7a579 6956202: Fix a few missed rebranding issues, please contact lines etc. Reviewed-by: jjg, darcy, weijun ! src/share/classes/com/sun/corba/se/pept/package.html ! src/share/classes/com/sun/corba/se/spi/ior/package.html ! src/share/classes/com/sun/corba/se/spi/monitoring/package.html ! src/share/classes/javax/activity/package.html ! src/share/classes/javax/rmi/CORBA/package.html ! src/share/classes/javax/rmi/package.html ! src/share/classes/javax/transaction/package.html ! src/share/classes/javax/transaction/xa/package.html ! src/share/classes/org/omg/CORBA/DynAnyPackage/package.html ! src/share/classes/org/omg/CORBA/ORBPackage/package.html ! src/share/classes/org/omg/CORBA/portable/package.html ! src/share/classes/org/omg/IOP/CodecFactoryPackage/package.html ! src/share/classes/org/omg/IOP/CodecPackage/package.html ! src/share/classes/org/omg/IOP/package.html ! src/share/classes/org/omg/Messaging/package.html ! src/share/classes/org/omg/PortableInterceptor/ORBInitInfoPackage/package.html ! src/share/classes/org/omg/PortableInterceptor/package.html Changeset: 1b5234624436 Author: ohair Date: 2010-05-28 10:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/1b5234624436 6956930: Remove unused OS_VENDOR make variable Reviewed-by: trims ! make/common/shared/Platform.gmk Changeset: edc2a2659c77 Author: mikejwre Date: 2010-06-02 15:39 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/edc2a2659c77 Merge Changeset: 8c6e70ef006c Author: mikejwre Date: 2010-06-03 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/8c6e70ef006c Added tag jdk7-b96 for changeset edc2a2659c77 ! .hgtags Changeset: 888a846a860a Author: alanb Date: 2010-06-01 15:16 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/888a846a860a 6955873: CORBA resources bundles and javax.activity missing from b94 Reviewed-by: ohair - make/com/sun/corba/minclude/ioser_io.jmk ! make/sun/corba/Makefile + make/sun/corba/core/Makefile ! make/sun/rmi/rmic/FILES.gmk Changeset: 1f87478a2d66 Author: lana Date: 2010-06-07 16:15 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/1f87478a2d66 Merge - make/com/sun/corba/minclude/ioser_io.jmk Changeset: 2657ee0d2d14 Author: andrew Date: 2010-06-03 19:37 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/2657ee0d2d14 6958257: Add support for alpha Summary: Allow the Zero port to be built on alpha architectures Reviewed-by: ohair ! make/common/Defs-linux.gmk Changeset: 4ec9d59374ca Author: mikejwre Date: 2010-06-09 18:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/4ec9d59374ca Merge Changeset: 3b99409057e4 Author: mikejwre Date: 2010-06-10 13:58 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/3b99409057e4 Added tag jdk7-b97 for changeset 4ec9d59374ca ! .hgtags From maurizio.cimadamore at oracle.com Tue Jun 15 06:29:36 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 13:29:36 +0000 Subject: hg: lambda/lambda/jaxp: 5 new changesets Message-ID: <20100615132936.EF70447256@hg.openjdk.java.net> Changeset: 72d78db95fb1 Author: ohair Date: 2010-05-25 15:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/72d78db95fb1 6943119: Rebrand source copyright notices Reviewed-by: darcy ! build-defs.xml ! build-drop-template.xml ! build.properties ! build.xml ! jaxp.properties ! make/Makefile ! make/jprt.properties Changeset: 07050840f98c Author: ohair Date: 2010-05-26 10:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/07050840f98c Merge Changeset: 9510ed0e1c7a Author: mikejwre Date: 2010-05-27 10:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/9510ed0e1c7a Added tag jdk7-b95 for changeset 07050840f98c ! .hgtags Changeset: ca01ec32561f Author: mikejwre Date: 2010-06-03 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/ca01ec32561f Added tag jdk7-b96 for changeset 9510ed0e1c7a ! .hgtags Changeset: d4adf4f2d14c Author: mikejwre Date: 2010-06-10 13:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/d4adf4f2d14c Added tag jdk7-b97 for changeset ca01ec32561f ! .hgtags From maurizio.cimadamore at oracle.com Tue Jun 15 06:29:43 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 13:29:43 +0000 Subject: hg: lambda/lambda/jaxws: 5 new changesets Message-ID: <20100615132943.366AE47257@hg.openjdk.java.net> Changeset: 4ac192952d75 Author: ohair Date: 2010-05-25 15:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/4ac192952d75 6943119: Rebrand source copyright notices Reviewed-by: darcy ! build-defs.xml ! build-drop-template.xml ! build.properties ! build.xml ! jaxws.properties ! make/Makefile ! make/jprt.properties Changeset: ee06cfb113d5 Author: ohair Date: 2010-05-26 10:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/ee06cfb113d5 Merge Changeset: 208fd4451232 Author: mikejwre Date: 2010-05-27 10:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/208fd4451232 Added tag jdk7-b95 for changeset ee06cfb113d5 ! .hgtags Changeset: dac23846092a Author: mikejwre Date: 2010-06-03 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/dac23846092a Added tag jdk7-b96 for changeset 208fd4451232 ! .hgtags Changeset: 457109807109 Author: mikejwre Date: 2010-06-10 13:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/457109807109 Added tag jdk7-b97 for changeset dac23846092a ! .hgtags From maurizio.cimadamore at oracle.com Tue Jun 15 06:49:47 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 15 Jun 2010 14:49:47 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C1739DD.7070203@redhat.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> <4C165FD2.3020806@redhat.com> <4C166C49.4040709@univ-mlv.fr> <4C1739DD.7070203@redhat.com> Message-ID: <4C1784FB.9000204@oracle.com> I did a merge with b97, I hope that helps. Maurizio On 15/06/10 09:29, Andrew Haley wrote: > On 06/14/2010 06:52 PM, R?mi Forax wrote: > >> Le 14/06/2010 18:58, Andrew Haley a ?crit : >> >>> On 06/14/2010 05:39 PM, Andrew Haley wrote: >>> >>> >>>> On 06/14/2010 05:28 PM, Maurizio Cimadamore wrote: >>>> >>>> >>>>> I tried launching the 'java' launcher from a recently built lambda repo; >>>>> I added the options: >>>>> >>>>> -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles >>>>> -XX:+EnableInvokeDynamic >>>>> >>>>> >>>>> and that seemed to work, at least it did for me. I noticed you are using >>>>> a 64-bit setting, while I'm on 32-bit, could that be the issue? >>>>> >>>>> >>>> Maybe. I'm just going to step through the VM in a debugger and have a look. >>>> I'll let you know what I find. :-) >>>> >>>> >>> OK, I found. The VM is looking for java_dyn_CallSite.target >>> in java_dyn_CallSite::compute_offsets() >>> >>> in the Lambda forest, this field is commented out: >>> >>> /* >>> >>> // Fields used only by the JVM. Do not use or change. >>> private Object vmmethod; >>> int callerMID, callerBCI; // supplied by the JVM >>> >>> private MethodHandle target; >>> >>> final Object caller; // usually a class >>> final String name; >>> final MethodType type; >>> */ >>> >>> but this code was commented out in this change: >>> >>> user: jrose >>> date: Thu Jan 07 16:16:45 2010 -0800 >>> summary: 6914665: update jdk code for JSR 292 (post 6858164) >>> >>> Cc'ing hotspot-dev in the hope of enlightenment... >>> >> This is a known bug :) >> Since b95, John Rose commits support for lightweight callsite (among >> other things) >> but forget to commit the JDK runtime part. >> >> see http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001728.html >> for a workaround. >> > OK, thanks. > > Andrew. > > From aph at redhat.com Tue Jun 15 09:57:22 2010 From: aph at redhat.com (Andrew Haley) Date: Tue, 15 Jun 2010 17:57:22 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C1784FB.9000204@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> <4C165FD2.3020806@redhat.com> <4C166C49.4040709@univ-mlv.fr> <4C1739DD.7070203@redhat.com> <4C1784FB.9000204@oracle.com> Message-ID: <4C17B0F2.10309@redhat.com> On 06/15/2010 02:49 PM, Maurizio Cimadamore wrote: > I did a merge with b97, I hope that helps. Not exactly, sorry. I still get happy:local $ hg fclone http://hg.openjdk.java.net/lambda/lambda ... make ... happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Closures Invalid layout of java.dyn.CallSite at target Andrew. From maurizio.cimadamore at oracle.com Tue Jun 15 09:58:52 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 15 Jun 2010 17:58:52 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C17B0F2.10309@redhat.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> <4C165FD2.3020806@redhat.com> <4C166C49.4040709@univ-mlv.fr> <4C1739DD.7070203@redhat.com> <4C1784FB.9000204@oracle.com> <4C17B0F2.10309@redhat.com> Message-ID: <4C17B14C.3030403@oracle.com> On 15/06/10 17:57, Andrew Haley wrote: > On 06/15/2010 02:49 PM, Maurizio Cimadamore wrote: > >> I did a merge with b97, I hope that helps. >> > Not exactly, sorry. > > I still get > Noticed that me too - we are working to fix this issue. Maurizio > happy:local $ hg fclone http://hg.openjdk.java.net/lambda/lambda > > ... make ... > > happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Closures > Invalid layout of java.dyn.CallSite at target > > Andrew. > From maurizio.cimadamore at oracle.com Wed Jun 16 04:49:44 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:49:44 +0000 Subject: hg: lambda/lambda: remove jcheck Message-ID: <20100616114944.7B0D4472A3@hg.openjdk.java.net> Changeset: e4297bb04252 Author: mcimadamore Date: 2010-06-16 12:46 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/rev/e4297bb04252 remove jcheck - .jcheck/conf From maurizio.cimadamore at oracle.com Wed Jun 16 04:49:51 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:49:51 +0000 Subject: hg: lambda/lambda/corba: remove jcheck Message-ID: <20100616114953.47116472A4@hg.openjdk.java.net> Changeset: 26026b444816 Author: mcimadamore Date: 2010-06-16 12:40 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/26026b444816 remove jcheck - .jcheck/conf From maurizio.cimadamore at oracle.com Wed Jun 16 04:50:06 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:50:06 +0000 Subject: hg: lambda/lambda/hotspot: remove jcheck Message-ID: <20100616115009.DC46F472A5@hg.openjdk.java.net> Changeset: 7051f382e408 Author: mcimadamore Date: 2010-06-16 12:41 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7051f382e408 remove jcheck - .jcheck/conf From maurizio.cimadamore at oracle.com Wed Jun 16 04:50:17 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:50:17 +0000 Subject: hg: lambda/lambda/jaxp: remove jcheck Message-ID: <20100616115017.7BB15472A6@hg.openjdk.java.net> Changeset: 4fa859c4b801 Author: mcimadamore Date: 2010-06-16 12:41 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/4fa859c4b801 remove jcheck - .jcheck/conf From maurizio.cimadamore at oracle.com Wed Jun 16 04:50:24 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:50:24 +0000 Subject: hg: lambda/lambda/jaxws: remove jcheck Message-ID: <20100616115024.E013D472A7@hg.openjdk.java.net> Changeset: 0f11651a56a0 Author: mcimadamore Date: 2010-06-16 12:41 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/0f11651a56a0 remove jcheck - .jcheck/conf From maurizio.cimadamore at oracle.com Wed Jun 16 04:50:33 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:50:33 +0000 Subject: hg: lambda/lambda/jdk: remove jcheck, fix launcher and add com.sun.runtime to rt.jar Message-ID: <20100616115052.5EEEA472A8@hg.openjdk.java.net> Changeset: 1d5d23a62702 Author: mcimadamore Date: 2010-06-16 12:42 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1d5d23a62702 remove jcheck, fix launcher and add com.sun.runtime to rt.jar - .jcheck/conf ! make/common/internal/Defs-langtools.gmk ! make/docs/NON_CORE_PKGS.gmk ! src/share/bin/java.c From maurizio.cimadamore at oracle.com Wed Jun 16 04:51:00 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Wed, 16 Jun 2010 11:51:00 +0000 Subject: hg: lambda/lambda/langtools: remove jcheck and fix build script to be more JDK friendly Message-ID: <20100616115102.62DD0472AA@hg.openjdk.java.net> Changeset: 40d30a39cf19 Author: mcimadamore Date: 2010-06-16 12:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/40d30a39cf19 remove jcheck and fix build script to be more JDK friendly - .jcheck/conf ! make/build.properties ! make/build.xml ! src/share/bin/java.sh-template ! src/share/bin/launcher.sh-template From maurizio.cimadamore at oracle.com Wed Jun 16 05:08:48 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 16 Jun 2010 13:08:48 +0100 Subject: Can't get lambda forest to work In-Reply-To: <4C17B14C.3030403@oracle.com> References: <4C1649EB.70405@redhat.com> <4C165073.4080401@oracle.com> <4C165200.4030402@redhat.com> <4C1654F2.2010108@oracle.com> <4C165695.50800@oracle.com> <4C165893.5070305@oracle.com> <4C165B3F.6070109@redhat.com> <4C165FD2.3020806@redhat.com> <4C166C49.4040709@univ-mlv.fr> <4C1739DD.7070203@redhat.com> <4C1784FB.9000204@oracle.com> <4C17B0F2.10309@redhat.com> <4C17B14C.3030403@oracle.com> Message-ID: <4C18BED0.5010809@oracle.com> I recently pushed some changes that should improve the usability of the javac/java artifacts generated during a full build of the lambda repository. Now it is not necessary to manually specify the -XX VM options (the launcher adds them for you); classes that are required during compilation/execution (e.g. com/sun/runtime/ProxyHelper) are now added to rt.jar so that they are automatically found by the jdk. The only problem that needs to be fixed now is the VM crash. We are working on a patch that I will push it in the lambda-repo; meanwhile you might want to build the repo with the ALT_JDK_IMPORT_PATH option set (to point to a JDK distro, b94 is fine), and also BUILD_HOTSPOT=false. Alternatively you can use the workaround suggested in this email, as Remi pointed out: http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001727.html with one caveat: if you build hotspot from the sources in the lambda repo, you will need to add the patch to the bootclasspath of the VM used for launching javac. This is done by invoking javac as follows: javac -J-Xbootclasspath/p:$DOWNLOADS$/hs19-b01-jsr292-patch.jar I apologize for the inconvenient. Maurizio On 15/06/10 17:58, Maurizio Cimadamore wrote: > On 15/06/10 17:57, Andrew Haley wrote: > >> On 06/15/2010 02:49 PM, Maurizio Cimadamore wrote: >> >> >>> I did a merge with b97, I hope that helps. >>> >>> >> Not exactly, sorry. >> >> I still get >> >> > Noticed that me too - we are working to fix this issue. > > Maurizio > >> happy:local $ hg fclone http://hg.openjdk.java.net/lambda/lambda >> >> ... make ... >> >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Closures >> Invalid layout of java.dyn.CallSite at target >> >> Andrew. >> >> > > From reinier at zwitserloot.com Wed Jun 16 09:29:44 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 16 Jun 2010 17:29:44 +0100 Subject: Exception transparency III - The Advent of the No-Throw Area In-Reply-To: References: Message-ID: You're forgetting: 4. Introduce pure/impure closures and get exception transparency for free, though that will turn your closure into an impure closure. Where pure closures are required, you'd go with "no transparency" - the closure has to handle (or explicitly declare as thrown onwards) any checked exceptions. Fortunately a casual glance at APIs show that where pure closures are required, exception transparency doesn't make nearly as much sense as those API calls where impure closures are allowed. Also, filtering, mapping, etc on collections-related classes can still involve checked exceptions. Here's a trivial real world example of this: public List byteArraysToStrings(List data, String encoding) throws UnsupportedEncodingException { return data.map(#(byte[] in)(new String(in, encoding))); } The above isn't going to work without some sort of exception transparency, and that's a shame, because the above flow is correct; if the language doesn't compile the above, that's entirely the fault of the language and not from the developer. --Reinier Zwitserloot On Tue, Jun 15, 2010 at 10:23 AM, Gernot Neppert wrote: > So far, there have been 2 propsals to achieve exception transparency > with closures: > > 1. the closure declares the the exception types it intends to throw, > just like regular Java methods do. > The throws declaration becomes part of the closure type, important for > assignment conversions. > > 2. the closure declares that it can throw any kind of exception ("lone > throws"). This declaration must be propagated to the calling code, > effectively adding "sneaky throw" to the legitimate toolset of Java > programming techniques. > > Just for the sake of completeness, I thought it might be worth > mentioning the obvious third option: > > 3. "A closure must not throw Checked Exceptions". > > This may look like a harsh restriction on first glance, but is it really? > It may actually cover 80% of the usecases with 20% of the complexity > of proposal 1. > > Here are some common scenarios for closures that will not make use of > checked exceptions anyway: > > - Collections-related filtering or mapping functions > > - codeblocks passed to frameworks for asynchronous excecution (as long > as they're converted to Runnable by automatic closure conversion) > > - codeblocks passed to GUI frameworks, since the corresponding SAMs > (e.g. ActionListener) do not throw Checked Exceptions currently. > > Obvious advantages of this approach would be: > > - no involvement of the "throws" clause in the rules for assignement > of closure types. > > - more readable declarations of methods that make use of closures. > > From reinier at zwitserloot.com Wed Jun 16 09:41:35 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 16 Jun 2010 17:41:35 +0100 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: Joe posted something relevant on the topic just now: http://blogs.sun.com/darcy/entry/syntax_sin_tax It's as usual a bit more complicated than this. Comments along the line of: * "#void(int, int)" is ugly, we should use: "#(int, int)void" instead! or: * "method.()" 'isn't Java' and should either be just "method()" or "method.invoke()". are indeed painting the bikeshed. they ARE pointless, in that now is not the time to make these decisions, and it is clear that from the "method.()" syntax you can move to either "method()" or "method.invoke()" with the same effort all throughout the process. In other words, moving forward on implementing "method.()" doesn't make switching this particular aspect any harder than it would be today. Hence there is no point to start debate on this. Furthermore, syntax clearly tends towards the opinion part of the spectrum; it is far more difficult to prove that a certain syntax is better than some other syntax, compared to, say, showing that a certain implementation strategy is faster on the current VM than some other strategy, or that some shortcoming is acceptable or not ("provable" one way or the other by writing a search tool that'll find occurrences in source repositories). Language discussions are difficult enough already. On the other hand, some discussions are focussed around syntax but in such a way that NOT changing the outlook becomes more expensive over time. For example, blazing forward with the exception transparency proposal as it was written (with and friends) is a lot of work, which would all have to be tossed if the Pure/Impure closures alternative is used instead (which is good, then that time can be invested in writing a spec and implementation for detecting pure and impure closures!), or lone throws. It would all be fair game if the argument "well, we don't have the time to do this anymore" is never uttered, but clearly it will (in fact, it already HAS, when full reification came up. I get why there's no time for that, but it does prove by default that time is a factor). Whether a certain comment on syntax falls in the 'pointless painting of the bikeshed' domain or 'fruitful lateral thinking' domain is an exercise for the reader. --Reinier Zwitserloot On Sat, Jun 12, 2010 at 2:07 AM, Howard Lovatt wrote: > *Brian Goetz* brian.goetz at oracle.com > < > https://mail.google.com/mail/?view=cm&fs=1&tf=1&to=lambda-dev%40openjdk.java.net&su=Virtual%20extension%20methods%20-%20syntax%20options&In-Reply-To=AANLkTimJotG3ql2j5ckvAoLBIFqFjuKC8C30oVBlHVgb%40mail.gmail.com > > > *Fri Jun 11 07:59:35 PDT 2010 wrote:* > > >The answer is neither: the syntax is not set in stone, but we strongly > >discourage ongoing discussions of syntax :) > > Some sentiment along this line keeps on getting invoked. Since various > discussions keep on coming back to the syntax, the lambdas themselves, > extension methods, exception transparency, etc., I would suggest it is more > important than you give it credit for. The syntax discussions can occur in > parallel to the implementation discussions; in fact I would say that this > is > ideal, since if a workable syntax cannot be found there is no point in > continuing with the implementation. > > To make this concrete; I would suggest that if the syntax of variance (wild > cards) was throughly investigated before the implementation or in parallel > with the implementation then we wouldn't have variance today (which the > wider community, and myself, think would be a good thing). > > A good language or language feature needs to balance not only the > implementation but also the burden on the programmer. Do you not see the > irony in arguing that syntax isn't important on a lambda discussion group; > lets face it, one of the primary motivations for lambdas is > the unwieldy syntax of inner classes? > > On a more philosophical point, stifling discussion is rarely fruitful. If > people want to discuss something let them. I would only draw the line if > the > discussions were abusive or wildly off topic. > > -- Howard. > > From reinier at zwitserloot.com Wed Jun 16 09:48:10 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 16 Jun 2010 17:48:10 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <827hm6yhtk.fsf@mid.bfk.de> Message-ID: I make an observation that offering a way to opt out of checked exceptions (project lombok's @Cleanup) has resulted in plenty of fairly rabid opposition and in return I get flippant remarks and words put into my mouth. Your observations, Alessio, are mostly correct, though lets not get ahead of ourselves and embrace "lone throws" as some sort of bastion of type safety. In the end, saying "I can throw anything" is barely an improvement over "I don't declare anything specific". It IS safer, but only marginally so; just think about the practicalities of it. What do you even do when one of the methods you call includes a lone throws? You suggest you generate a warning in the IDE to hint at the fact that you don't have a catch-everything clause someplace, but obviously that'd be a horrible plan! *EVERY* closure signature by default includes it in the "lone throws" proposal, which means one must safeguard every single closure invoke with a try/catch(Exception) OR with a @SuppressWarnings(), and that would be silly. --Reinier Zwitserloot On Fri, Jun 11, 2010 at 8:54 AM, Alessio Stalla wrote: > On Fri, Jun 11, 2010 at 3:39 AM, Reinier Zwitserloot > wrote: > > Where did I claim it removes the ability to _use_ checked exceptions? > > Offering a way to opt out of them is more than enough to irk some wraths. > > Java already offers such a way, wrapping with RuntimeException. Should > we ban unchecked exceptions altogether, then? > > I must be honest: I think checked exceptions are one of Java's weakest > points. However, Java is like it is and no one here is proposing to > revolutionize it and drop checked exceptions. Actually in fact lone > throws are safer than wrapping in runtime exceptions, because with > lone throws tools have a way of statically checking if exceptions > could sneakily be thrown out of a method. IDEs could show meaningful > warnings - "foo() can throw anything but you only catch IOException, > are you sure?" or "bar() throws but you don't catch anything nor > declare your method throws" - which they can't show now when runtime > exception wrappers are used. > > > Updating SAM classes is obviously a big problem. There's are a few > bajillion > > SAM classes out there in the greater java community, and oracle can only > > update those in rt.jar. With the update to the SAM class, there's also a > > semantic difference, which may be important. I mentioned it in my more > > detailed proposal (folks presuming that if a block containing X > statements > > throws checked exception of type E, that only the method calls to methods > > declaring throws E could possibly be the source of that exception, which > > ceases to be true in the face of lone throws) - but it's much bigger > issue > > when lone throws is legal anywhere. > > How does this differ from the strawman proposal? If you encode generic > exception information in the lambda's signature then the SAM class > will need to add the same (or compatible) information to its single > method signature. Note also that users are not forced to update all > SAM classes, just the ones that they want to be targets of > closure-to-SAM conversion for closures that can throw exceptions that > the existing SAM does not throw. A case which definitely must be > decided by human intervention, since it's not always the right thing > to do. > > Alessio Stalla > > > On Thu, Jun 10, 2010 at 11:34 PM, Alessio Stalla < > alessiostalla at gmail.com> > > wrote: > >> > >> On Thu, Jun 10, 2010 at 8:31 PM, Reinier Zwitserloot > >> wrote: > >> > SneakyThrows is possible in the following ways: > >> > > >> > 1. Use any non-java JVM language, such as scala, jython, or JRuby. > None > >> > of > >> > these languages have the concept 'checked exception', and neither does > >> > the > >> > JVM ('throws' lists are of course in class files, but as far as the > JVM > >> > is > >> > concerned these are like annotations; the JVM does nothing with them > >> > other > >> > than let you introspect the list). You can sneakythrow anything using > >> > this > >> > tactic. In the end all you need to do is create a class file with a > >> > method > >> > that does not have a 'throws' list but which does use the "ATHROW" > >> > opcode to > >> > throw a checked exception. The class verifier nor the JVM runtime > >> > complains > >> > about doing this; this is why jython, scala, etc all can compile just > >> > fine > >> > without having the notion of checked exceptions. > >> > > >> > 2. Use MyClass.class.newInstance() - if MyClass's no-args constructor > >> > throws > >> > a checked exception it will be sneakythrown onwards. The only two you > >> > can't > >> > sneak with this are those checked exceptions that newInstance() itself > >> > declares; InstantiationException and IllegalAccessException. This is > the > >> > reflection library oversight that Florian was talking about, I > believe. > >> > It's > >> > also the only one; both Method and Constructor's invoke/newInstance > >> > methods > >> > solved this problem by wrapping exceptions into > >> > InvocationTargetException. > >> > It's only Class.newInstance() that doesn't do this. > >> > > >> > 3. Use mixed class files. Compile "public class Sneaky { public static > >> > void > >> > sneaky(Throwable t) { /* do nothing */ }}", then compile your code > >> > against > >> > this class file, but at runtime, recompile *ONLY* Sneaky.class with > >> > this: > >> > "public class Sneaky { public static void sneaky(Throwable t) throws > >> > Throwable { throw t; }}". The JVM doesn't check if a method's > >> > signature's > >> > addendums, such as the throws clauses, are still the same as they were > >> > when > >> > you compiled against the API, so this works just fine. In practice > you'd > >> > have 2 sneakies, compile against the one, but use the other for > runtime. > >> > > >> > 4. Generics: > >> > > >> > public class Sneaky { > >> > public static void sneaky(Throwable t) { > >> > Sneaky.sneaky0(t); > >> > } > >> > > >> > @SuppressWarnings("unchecked") > >> > private static void sneaky0(Throwable t) throws > T > >> > { > >> > throw (T)t; > >> > } > >> > } > >> > > >> > > >> > > >> > As far as I know these are the only ways, but its clear that one > simply > >> > cannot assume sneaky throws just don't happen; in particular assuming > >> > that > >> > mixed class files or class files compiled by alternative languages > never > >> > happen is a bad idea. > >> > > >> > Stephen: I wouldn't particularly mind your proposal, personally, but > >> > it's > >> > effectively aborting the checked exception experiment. > >> > >> No, it's not. It doesn't forbid checked exceptions or change their > >> semantics. It gives the power to an API writer to allow you to ignore > >> checked exceptions coming from the API methods. API writers already > >> have this power today: they just need to explicitly wrap checked > >> exceptions in unchecked ones. Spring, for example, does this > >> extensively. "lone throws" simply make this option easier. > >> > >> > I'm okay with it > >> > (heck, I tossed @SneakyThrows in lombok for a reason!) but from my > >> > experiences with @SneakyThrows, there are lots and lots of java > >> > programmers > >> > that have been ingrained with the notion that checked exceptions are > >> > what > >> > keeps the world from imploding and will vehemently fight for them. > Just > >> > a > >> > friendly heads up :) There's an alternative implementation which is > >> > based on > >> > explicitly stating the types you'd like to sneaky throw. I'm not quite > >> > sure > >> > how one would mesh this with the closure syntax, but it has the > >> > advantage of > >> > at least explicitly stating that, yes, I 'sneaky' throw IOException > >> > here. > >> > Lombok's SneakyThrow works like this: > >> > > >> > @SneakyThrows(IOException.class) > >> > public void foo() { throw new IOException(); } > >> > > >> > with just "@SneakyThrows" being a shorthand for > >> > @SneakyThrows(Throwable.class). In regards to closures I believe your > >> > proposal to be superior, if we go down this "let's give up on checked > >> > exceptions" path. > >> > > >> > However, your proposal has a flaw; I think it'll eventually boil down > to > >> > simply getting rid of the concept of checked exceptions in general. It > >> > doesn't extend to SAMs, because in your system adding a "lone throws" > >> > changes the signature. > >> > >> Right, but it changes it in such a way that old code will continue to > >> work unchanged. If Runnable.run was changed to include throws; you > >> could still call it without catching anything, as you do today. > >> > >> > You can add a lone throws to an interface method > >> > without breaking backwards compatibility as far as I can tell, but > >> > that's > >> > not the problem. The problem is this: *Existing* SAM classes that > aren't > >> > updated to add a lone throws to their one abstract method CANNOT be > >> > created > >> > by way of the closure syntax, because closures have implicit lone > >> > throws. > >> > >> Then update the SAM classes, what's the problem if the update is > >> backwards-compatible? Are you thinking about user classes here? In > >> that case, the user is responsible to update the classes if she wants > >> them to be compatible with closures that can throw exceptions. They > >> would need to be updated anyway if the closure declared to throw > >> checked exceptions while the SAM class didn't. Or am I missing > >> something? > >> > >> Regards, > >> Alessio Stalla > > > > > From reinier at zwitserloot.com Wed Jun 16 10:03:19 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 16 Jun 2010 18:03:19 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: This observation by Stephen was worth repeating: My aim is to avoid the horrific syntax that exception abstraction > requires. If someone can show a sensible approach at the syntax level > for function types and methods that need to be transparent, then I > have no objection to the basic direction of the strawman. I simply > don't believe such a syntax exists. > Neal, I've admitted that the syntax-based exception transparency plan no doubt handles the most use cases of the 3 solutions offered (explicit, implicit-for-impure, lone throws) However, I've also said that the frequency of cases that it can handle that my pure/impure concept can't is most likely rather small, whereas the extra complexity required is enormous, and not just for the compiler builders - generics is still a source of never-ending puzzlers. In the case of generics I don't know of any proposal that gave us most of the power without most of the complexity, but if it HAD come along it might well have been the better choice. There was no such proposal, the considerable added complexity was nevertheless worth doing because the added expressiveness outpaced the complexity. However, between explicit ET and implicit-for-impure ET, I'm saying the value proposition isn't worth it; the jump in complexity from implicit-for-impure to explicit is gigantic, and the added expressiveness is relatively small. You have a tendency to claim certain use cases MUST be supported and any proposal that can't do it doesn't even bear thinking about (such as Tennent's Correspondence Principle), but, for example, long breaks/returns/continue is out, at least for now, most likely because the complexity added is considerable. Incidentally, pure/impure closures make adding return/break/continue transparency very simple; all that needs to be done then is invent new syntax to be able to specify the target of a return statement, somehow, either by letting you explicitly target them e.g. with labels like you can with breaks/continues, or by inventing a new syntax for local return. Which just goes to show how fluid these proposals can be: Pure/impure removes complexity and makes return/break/continue transparency much simpler, but it makes use-cases involving the storage of closures much more difficult. So, it's a trade-off. I don't think talking about such things in absolute terms are a fruitful exercise. Is it a good trade-off - that's the question. I believe it will be, by a mile, but I might be wrong. From brian.goetz at oracle.com Wed Jun 16 10:05:43 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 16 Jun 2010 13:05:43 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: <4C190467.9060209@oracle.com> > Joe posted something relevant on the topic just now: > > http://blogs.sun.com/darcy/entry/syntax_sin_tax > > It's as usual a bit more complicated than this. Of course. And as you point out, there are areas where the issue is not "I don't like syntax X", but "any syntax for this feature is going to be too much work for the user to wrap his brain around". (Cue Stephen to say "like variance!") And this is a sign that it is worth exploring other options. Many would say "why not let everyone say what they want, and ignore what you don't find useful." Its a nice idea! The problem is that even though syntax is important (terribly important, as it shapes people's thinking about the language!), *discussions* about syntax on public lists are like an invasive species -- they suck up all the oxygen and as a result the other species suffer, rendering the list a monoculture. Just as with invasive species, one most go on periodic rampages to pull them up by the roots for the health of the ecosystem. Sometimes when you go on a rampage against an invasive species, there is collateral damage; more delicate species get trampled on, or the ground is disturbed which makes things harder for everyone. From neal.gafter at gmail.com Fri Jun 11 20:51:24 2010 From: neal.gafter at gmail.com (Neal Gafter) Date: Fri, 11 Jun 2010 20:51:24 -0700 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: <700EFE0F-0BC2-4711-A6BF-7D8D3D2ADE16@gmail.com> On Jun 11, 2010, at 6:07 PM, Howard Lovatt wrote: > *Brian Goetz* brian.goetz at oracle.com > >> The answer is neither: the syntax is not set in stone, but we strongly >> discourage ongoing discussions of syntax :) > > Some sentiment along this line keeps on getting invoked. Since various > discussions keep on coming back to the syntax, the lambdas themselves, > extension methods, exception transparency, etc., I would suggest it is more > important than you give it credit for. The syntax discussions can occur in > parallel to the implementation discussions; in fact I would say that this is > ideal, since if a workable syntax cannot be found there is no point in > continuing with the implementation. > > To make this concrete; I would suggest that if the syntax of variance (wild > cards) was throughly investigated before the implementation or in parallel > with the implementation then we wouldn't have variance today (which the > wider community, and myself, think would be a good thing). While you were not personally consulted, variance and its syntax was widely discussed both online and at conferences. The syntax went through a few iterations before settling on the current form. Your perception that it was widely criticized at the time doesn't match my recollection. From neal.gafter at gmail.com Fri Jun 11 20:59:37 2010 From: neal.gafter at gmail.com (Neal Gafter) Date: Fri, 11 Jun 2010 20:59:37 -0700 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: On Jun 11, 2010, at 7:28 PM, Howard Lovatt wrote: > Whether you code any suggestion, syntax or implementation, is > surely orthogonal to whether it is a syntax or implementation suggestion. > With regard to actual coding, no point anyone coding something that isn't > going to fly in the long run. > > As an aside, I have implemented at least to the proof of concept some ideas, > e.g.: > > http://www.artima.com/weblogs/viewpost.jsp?thread=278567 I didn't know you implemented any of these ideas, but I do recall that they were shown to be unsound. From maurizio.cimadamore at oracle.com Tue Jun 15 06:31:52 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 13:31:52 +0000 Subject: hg: lambda/lambda/jdk: 65 new changesets Message-ID: <20100615134505.C6A6D4725A@hg.openjdk.java.net> Changeset: 00cd9dc3c2b5 Author: ohair Date: 2010-05-25 15:58 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/00cd9dc3c2b5 6943119: Rebrand source copyright notices Reviewed-by: darcy, weijun ! make/Makefile ! make/com/Makefile ! make/com/sun/Makefile ! make/com/sun/crypto/provider/Makefile ! make/com/sun/demo/Makefile ! make/com/sun/demo/jvmti/Makefile ! make/com/sun/demo/jvmti/hprof/Makefile ! make/com/sun/image/Makefile ! make/com/sun/inputmethods/Makefile ! make/com/sun/inputmethods/indicim/Makefile ! make/com/sun/inputmethods/thaiim/Makefile ! make/com/sun/jarsigner/Makefile ! make/com/sun/java/Makefile ! make/com/sun/java/browser/Makefile ! make/com/sun/java/browser/dom/Makefile ! make/com/sun/java/browser/net/Makefile ! make/com/sun/java/pack/FILES_cpp.gmk ! make/com/sun/java/pack/Makefile ! make/com/sun/java/pack/mapfile-vers ! make/com/sun/java/pack/prop/Makefile ! make/com/sun/jmx/Makefile ! make/com/sun/jmx/snmp/Makefile ! make/com/sun/jndi/Makefile ! make/com/sun/jndi/cosnaming/Makefile ! make/com/sun/jndi/dns/Makefile ! make/com/sun/jndi/ldap/Makefile ! make/com/sun/jndi/rmi/Makefile ! make/com/sun/jndi/rmi/registry/Makefile ! make/com/sun/jndi/toolkit/Makefile ! make/com/sun/net/httpserver/Makefile ! make/com/sun/net/ssl/Makefile ! make/com/sun/nio/Makefile ! make/com/sun/nio/sctp/Exportedfiles.gmk ! make/com/sun/nio/sctp/FILES_c.gmk ! make/com/sun/nio/sctp/FILES_java.gmk ! make/com/sun/nio/sctp/Makefile ! make/com/sun/nio/sctp/mapfile-vers ! make/com/sun/org/Makefile ! make/com/sun/org/apache/Makefile ! make/com/sun/org/apache/xml/Makefile ! make/com/sun/rowset/Makefile ! make/com/sun/script/Makefile ! make/com/sun/security/Makefile ! make/com/sun/security/auth/FILES_java.gmk ! make/com/sun/security/auth/Makefile ! make/com/sun/security/auth/module/FILES_c_solaris.gmk ! make/com/sun/security/auth/module/FILES_c_unix.gmk ! make/com/sun/security/auth/module/FILES_c_windows.gmk ! make/com/sun/security/auth/module/FILES_export_solaris.gmk ! make/com/sun/security/auth/module/FILES_export_unix.gmk ! make/com/sun/security/auth/module/FILES_export_windows.gmk ! make/com/sun/security/auth/module/FILES_java.gmk ! make/com/sun/security/auth/module/Makefile ! make/com/sun/security/auth/module/mapfile-vers ! make/com/sun/security/jgss/Makefile ! make/com/sun/security/sasl/Makefile ! make/com/sun/servicetag/Makefile ! make/com/sun/sql/FILES_java.gmk ! make/com/sun/sql/Makefile ! make/com/sun/tools/Makefile ! make/com/sun/tools/attach/Exportedfiles.gmk ! make/com/sun/tools/attach/FILES_c.gmk ! make/com/sun/tools/attach/FILES_java.gmk ! make/com/sun/tools/attach/Makefile ! make/com/sun/tools/attach/mapfile-linux ! make/com/sun/tools/attach/mapfile-solaris ! make/com/sun/tracing/Makefile ! make/com/sun/tracing/dtrace/Makefile ! make/com/sun/xml/Makefile ! make/common/BuildToolJar.gmk ! make/common/CancelImplicits.gmk ! make/common/Classes.gmk ! make/common/Cscope.gmk ! make/common/Defs-linux.gmk ! make/common/Defs-solaris.gmk ! make/common/Defs-windows.gmk ! make/common/Defs.gmk ! make/common/Demo.gmk ! make/common/Library.gmk ! make/common/Mapfile-vers.gmk ! make/common/Modules.gmk ! make/common/Program.gmk ! make/common/Release.gmk ! make/common/Rules-SCCS.gmk ! make/common/Rules.gmk ! make/common/Sanity.gmk ! make/common/Subdirs.gmk ! make/common/internal/BinaryPlugs.gmk ! make/common/internal/Defs-corba.gmk ! make/common/internal/Defs-jaxp.gmk ! make/common/internal/Defs-jaxws.gmk ! make/common/internal/Defs-langtools.gmk ! make/common/internal/ImportComponents.gmk ! make/common/internal/NativeCompileRules.gmk ! make/common/internal/Resources.gmk ! make/common/shared/Compiler-gcc.gmk ! make/common/shared/Compiler-msvc.gmk ! make/common/shared/Compiler-sun.gmk ! make/common/shared/Defs-control.gmk ! make/common/shared/Defs-java.gmk ! make/common/shared/Defs-linux.gmk ! make/common/shared/Defs-solaris.gmk ! make/common/shared/Defs-utils.gmk ! make/common/shared/Defs-versions.gmk ! make/common/shared/Defs-windows.gmk ! make/common/shared/Defs.gmk ! make/common/shared/Platform.gmk ! make/common/shared/Sanity-Settings.gmk ! make/common/shared/Sanity.gmk ! make/docs/CORE_PKGS.gmk ! make/docs/Makefile ! make/docs/NON_CORE_PKGS.gmk ! make/java/Makefile ! make/java/applet/Makefile ! make/java/awt/Makefile ! make/java/beans/Makefile ! make/java/dyn/Makefile ! make/java/fdlibm/FILES_c.gmk ! make/java/fdlibm/Makefile ! make/java/hpi/Makefile ! make/java/hpi/hpi_common.gmk ! make/java/hpi/native/Makefile ! make/java/hpi/native/mapfile-vers ! make/java/hpi/windows/Makefile ! make/java/instrument/Makefile ! make/java/instrument/mapfile-vers ! make/java/jar/Makefile ! make/java/java/Exportedfiles.gmk ! make/java/java/FILES_c.gmk ! make/java/java/FILES_java.gmk ! make/java/java/Makefile ! make/java/java/genlocales.gmk ! make/java/java/localegen.sh ! make/java/java/localelist.sh ! make/java/java/mapfile-vers ! make/java/java/reflect/Makefile ! make/java/java_crw_demo/Makefile ! make/java/java_crw_demo/mapfile-vers ! make/java/java_hprof_demo/Makefile ! make/java/java_hprof_demo/mapfile-vers ! make/java/jexec/Makefile ! make/java/jli/Makefile ! make/java/jli/mapfile-vers ! make/java/jvm/Makefile ! make/java/logging/Makefile ! make/java/main/Makefile ! make/java/main/java/Makefile ! make/java/main/java/mapfile-amd64 ! make/java/main/java/mapfile-i586 ! make/java/main/java/mapfile-sparc ! make/java/main/java/mapfile-sparcv9 ! make/java/main/javaw/Makefile ! make/java/management/Exportedfiles.gmk ! make/java/management/FILES_c.gmk ! make/java/management/Makefile ! make/java/management/mapfile-vers ! make/java/math/Makefile ! make/java/net/FILES_c.gmk ! make/java/net/Makefile ! make/java/net/mapfile-vers ! make/java/nio/Exportedfiles.gmk ! make/java/nio/FILES_c.gmk ! make/java/nio/FILES_java.gmk ! make/java/nio/Makefile ! make/java/nio/addNotices.sh ! make/java/nio/genBuffer.sh ! make/java/nio/genCharsetProvider.sh ! make/java/nio/genCoder.sh ! make/java/nio/genExceptions.sh ! make/java/nio/mapfile-linux ! make/java/nio/mapfile-solaris ! make/java/nio/mxbean/Makefile ! make/java/npt/Makefile ! make/java/npt/mapfile-vers ! make/java/redist/Makefile ! make/java/redist/fonts/Makefile ! make/java/redist/sajdi/Makefile ! make/java/rmi/Makefile ! make/java/security/Makefile ! make/java/sql/Makefile ! make/java/sun_nio/FILES_java.gmk ! make/java/sun_nio/Makefile ! make/java/text/Makefile ! make/java/text/base/FILES_java.gmk ! make/java/text/base/Makefile ! make/java/text/bidi/Makefile ! make/java/util/FILES_java.gmk ! make/java/util/FILES_properties.gmk ! make/java/util/Makefile ! make/java/verify/Makefile ! make/java/verify/mapfile-vers ! make/java/version/Makefile ! make/java/zip/FILES_c.gmk ! make/java/zip/FILES_java.gmk ! make/java/zip/Makefile ! make/java/zip/mapfile-vers ! make/javax/Makefile ! make/javax/accessibility/Makefile ! make/javax/crypto/Defs-jce.gmk ! make/javax/crypto/Makefile ! make/javax/imageio/Makefile ! make/javax/management/Makefile ! make/javax/others/Makefile ! make/javax/print/Makefile ! make/javax/rmi/Makefile ! make/javax/rmi/ssl/Makefile ! make/javax/sound/FILES_c.gmk ! make/javax/sound/Makefile ! make/javax/sound/SoundDefs.gmk ! make/javax/sound/jsoundalsa/Makefile ! make/javax/sound/jsoundalsa/mapfile-vers ! make/javax/sound/jsoundds/Makefile ! make/javax/sound/mapfile-vers ! make/javax/sql/Makefile ! make/javax/swing/FILES.gmk ! make/javax/swing/Makefile ! make/javax/swing/beaninfo/FILES.gmk ! make/javax/swing/beaninfo/Makefile ! make/javax/swing/beaninfo/SwingBeans.gmk ! make/javax/swing/html32dtd/Makefile ! make/javax/swing/plaf/FILES.gmk ! make/javax/swing/plaf/Makefile ! make/jdk_generic_profile.sh ! make/jpda/Makefile ! make/jpda/back/Makefile ! make/jpda/back/mapfile-vers ! make/jpda/bdi/Makefile ! make/jpda/expr/Makefile ! make/jpda/front/Makefile ! make/jpda/gui/Makefile ! make/jpda/jdwp/Makefile ! make/jpda/jdwp/jdwp.spec ! make/jpda/transport/Makefile ! make/jpda/transport/shmem/Makefile ! make/jpda/transport/shmem/mapfile-vers ! make/jpda/transport/socket/Makefile ! make/jpda/transport/socket/mapfile-vers ! make/jpda/tty/Makefile ! make/jprt.gmk ! make/jprt.properties ! make/launchers/Makefile ! make/launchers/Makefile.launcher ! make/mkdemo/Makefile ! make/mkdemo/applets/Animator/Makefile ! make/mkdemo/applets/ArcTest/Makefile ! make/mkdemo/applets/BarChart/Makefile ! make/mkdemo/applets/Blink/Makefile ! make/mkdemo/applets/CardTest/Makefile ! make/mkdemo/applets/Clock/Makefile ! make/mkdemo/applets/DitherTest/Makefile ! make/mkdemo/applets/DrawTest/Makefile ! make/mkdemo/applets/Fractal/Makefile ! make/mkdemo/applets/GraphLayout/Makefile ! make/mkdemo/applets/GraphicsTest/Makefile ! make/mkdemo/applets/JumpingBox/Makefile ! make/mkdemo/applets/Makefile ! make/mkdemo/applets/MoleculeViewer/Makefile ! make/mkdemo/applets/NervousText/Makefile ! make/mkdemo/applets/SimpleGraph/Makefile ! make/mkdemo/applets/SortDemo/Makefile ! make/mkdemo/applets/SpreadSheet/Makefile ! make/mkdemo/applets/TicTacToe/Makefile ! make/mkdemo/applets/WireFrame/Makefile ! make/mkdemo/jfc/CodePointIM/Makefile ! make/mkdemo/jfc/FileChooserDemo/Makefile ! make/mkdemo/jfc/Font2DTest/Makefile ! make/mkdemo/jfc/Java2D/Makefile ! make/mkdemo/jfc/Makefile ! make/mkdemo/jfc/Metalworks/Makefile ! make/mkdemo/jfc/Notepad/Makefile ! make/mkdemo/jfc/SampleTree/Makefile ! make/mkdemo/jfc/Stylepad/Makefile ! make/mkdemo/jfc/SwingApplet/Makefile ! make/mkdemo/jfc/SwingSet2/Makefile ! make/mkdemo/jfc/TableExample/Makefile ! make/mkdemo/jni/Makefile ! make/mkdemo/jni/Poller/Makefile ! make/mkdemo/jpda/Makefile ! make/mkdemo/jvmti/Makefile ! make/mkdemo/jvmti/README.txt ! make/mkdemo/jvmti/compiledMethodLoad/Makefile ! make/mkdemo/jvmti/gctest/Makefile ! make/mkdemo/jvmti/heapTracker/Makefile ! make/mkdemo/jvmti/heapViewer/Makefile ! make/mkdemo/jvmti/hprof/Makefile ! make/mkdemo/jvmti/mapfile-vers ! make/mkdemo/jvmti/minst/Makefile ! make/mkdemo/jvmti/mtrace/Makefile ! make/mkdemo/jvmti/versionCheck/Makefile ! make/mkdemo/jvmti/waiters/Makefile ! make/mkdemo/management/FullThreadDump/Makefile ! make/mkdemo/management/JTop/Makefile ! make/mkdemo/management/Makefile ! make/mkdemo/management/MemoryMonitor/Makefile ! make/mkdemo/management/README.txt ! make/mkdemo/management/VerboseGC/Makefile ! make/mkdemo/scripting/Makefile ! make/mkdemo/scripting/jconsole-plugin/Makefile ! make/mksample/Makefile ! make/mksample/dtrace/Makefile ! make/mksample/jmx/Makefile ! make/mksample/jmx/jmx-scandir/Makefile ! make/mksample/nbproject/Makefile ! make/mksample/nio/Makefile ! make/mksample/nio/file/Makefile ! make/mksample/nio/multicast/Makefile ! make/mksample/nio/server/Makefile ! make/mksample/scripting/Makefile ! make/mksample/scripting/scriptpad/Makefile ! make/mksample/webservices/EbayClient/Makefile ! make/mksample/webservices/EbayServer/Makefile ! make/mksample/webservices/Makefile ! make/modules/Makefile ! make/modules/bootmodule.roots ! make/modules/jdk7.depconfig ! make/modules/modules.config ! make/modules/modules.group ! make/modules/optional.depconfig ! make/modules/tools/Makefile ! make/modules/tools/build.xml ! make/modules/tools/nbproject/project.properties ! make/modules/tools/nbproject/project.xml ! make/modules/tools/src/com/sun/classanalyzer/AnnotatedDependency.java ! make/modules/tools/src/com/sun/classanalyzer/AnnotationParser.java ! make/modules/tools/src/com/sun/classanalyzer/BootAnalyzer.java ! make/modules/tools/src/com/sun/classanalyzer/CheckDeps.java ! make/modules/tools/src/com/sun/classanalyzer/ClassAnalyzer.java ! make/modules/tools/src/com/sun/classanalyzer/ClassFileParser.java ! make/modules/tools/src/com/sun/classanalyzer/ClassPath.java ! make/modules/tools/src/com/sun/classanalyzer/CodeAttributeParser.java ! make/modules/tools/src/com/sun/classanalyzer/ConstantPoolAnalyzer.java ! make/modules/tools/src/com/sun/classanalyzer/ConstantPoolParser.java ! make/modules/tools/src/com/sun/classanalyzer/DependencyConfig.java ! make/modules/tools/src/com/sun/classanalyzer/Klass.java ! make/modules/tools/src/com/sun/classanalyzer/Module.java ! make/modules/tools/src/com/sun/classanalyzer/ModuleConfig.java ! make/modules/tools/src/com/sun/classanalyzer/ResolutionInfo.java ! make/modules/tools/src/com/sun/classanalyzer/ResourceFile.java ! make/modules/tools/src/com/sun/classanalyzer/ShowDeps.java ! make/netbeans/awt2d/build.properties ! make/netbeans/awt2d/build.xml ! make/netbeans/awt2d/nbproject/project.xml ! make/netbeans/common/architectures/arch-amd64.properties ! make/netbeans/common/architectures/arch-i386.properties ! make/netbeans/common/architectures/arch-sparc.properties ! make/netbeans/common/architectures/arch-x86.properties ! make/netbeans/common/architectures/name-Linux.properties ! make/netbeans/common/architectures/name-SunOS.properties ! make/netbeans/common/build-folder.ent ! make/netbeans/common/closed-share-sources.ent ! make/netbeans/common/closed-share-view.ent ! make/netbeans/common/demo-sources.ent ! make/netbeans/common/demo-view.ent ! make/netbeans/common/file-view.ent ! make/netbeans/common/java-data-native.ent ! make/netbeans/common/java-data-no-native.ent ! make/netbeans/common/jtreg-sources.ent ! make/netbeans/common/jtreg-view.ent ! make/netbeans/common/make.xml ! make/netbeans/common/properties.ent ! make/netbeans/common/sample-sources.ent ! make/netbeans/common/sample-view.ent ! make/netbeans/common/share-sources.ent ! make/netbeans/common/share-view.ent ! make/netbeans/common/shared.xml ! make/netbeans/common/standard-actions.ent ! make/netbeans/common/standard-bindings.ent ! make/netbeans/common/unix-sources.ent ! make/netbeans/common/unix-view.ent ! make/netbeans/common/windows-sources.ent ! make/netbeans/common/windows-view.ent ! make/netbeans/j2se/build.properties ! make/netbeans/j2se/build.xml ! make/netbeans/j2se/nbproject/project.xml ! make/netbeans/jarzip/build.properties ! make/netbeans/jarzip/build.xml ! make/netbeans/jarzip/nbproject/project.xml ! make/netbeans/jconsole/build.properties ! make/netbeans/jconsole/build.xml ! make/netbeans/jconsole/nbproject/project.xml ! make/netbeans/jmx/build.properties ! make/netbeans/jmx/build.xml ! make/netbeans/jmx/nbproject/project.xml ! make/netbeans/swing/build.properties ! make/netbeans/swing/build.xml ! make/netbeans/swing/nbproject/project.xml ! make/netbeans/world/build.properties ! make/netbeans/world/build.xml ! make/netbeans/world/nbproject/project.xml ! make/org/Makefile ! make/org/ietf/Makefile ! make/org/ietf/jgss/FILES_java.gmk ! make/org/ietf/jgss/Makefile ! make/org/jcp/Makefile ! make/sun/Makefile ! make/sun/applet/Makefile ! make/sun/audio/Makefile ! make/sun/awt/FILES_c_unix.gmk ! make/sun/awt/FILES_c_windows.gmk ! make/sun/awt/FILES_export_unix.gmk ! make/sun/awt/FILES_export_windows.gmk ! make/sun/awt/Makefile ! make/sun/awt/mapfile-mawt-vers ! make/sun/awt/mapfile-vers ! make/sun/awt/mapfile-vers-linux ! make/sun/awt/mawt.gmk ! make/sun/beans/Makefile ! make/sun/cmm/Makefile ! make/sun/cmm/kcms/FILES_c_unix.gmk ! make/sun/cmm/kcms/FILES_c_windows.gmk ! make/sun/cmm/kcms/Makefile ! make/sun/cmm/kcms/mapfile-vers ! make/sun/cmm/lcms/FILES_c_unix.gmk ! make/sun/cmm/lcms/FILES_c_windows.gmk ! make/sun/cmm/lcms/Makefile ! make/sun/cmm/lcms/mapfile-vers ! make/sun/dcpr/FILES_c.gmk ! make/sun/dcpr/Makefile ! make/sun/dcpr/mapfile-vers ! make/sun/font/FILES_c.gmk ! make/sun/font/Makefile ! make/sun/font/mapfile-vers ! make/sun/font/mapfile-vers.openjdk ! make/sun/font/t2k/FILES_c.gmk ! make/sun/font/t2k/Makefile ! make/sun/font/t2k/mapfile-vers ! make/sun/headless/Makefile ! make/sun/headless/mapfile-vers ! make/sun/image/Makefile ! make/sun/image/generic/FILES_c.gmk ! make/sun/image/generic/Makefile ! make/sun/image/generic/mapfile-vers ! make/sun/image/vis/FILES_c.gmk ! make/sun/image/vis/Makefile ! make/sun/jar/Makefile ! make/sun/javazic/Makefile ! make/sun/javazic/javatz/fullset.txt ! make/sun/javazic/javatz/java_11_ids.txt ! make/sun/javazic/javatz/java_us_ids.txt ! make/sun/javazic/javatz/java_win_ids.txt ! make/sun/javazic/javatz/java_zone_ids.txt ! make/sun/javazic/javatz/jdk1.1.x_zone_ids.txt ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/africa ! make/sun/javazic/tzdata/antarctica ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/backward ! make/sun/javazic/tzdata/etcetera ! make/sun/javazic/tzdata/europe ! make/sun/javazic/tzdata/factory ! make/sun/javazic/tzdata/iso3166.tab ! make/sun/javazic/tzdata/leapseconds ! make/sun/javazic/tzdata/northamerica ! make/sun/javazic/tzdata/pacificnew ! make/sun/javazic/tzdata/solar87 ! make/sun/javazic/tzdata/solar88 ! make/sun/javazic/tzdata/solar89 ! make/sun/javazic/tzdata/southamerica ! make/sun/javazic/tzdata/systemv ! make/sun/javazic/tzdata/zone.tab ! make/sun/javazic/tzdata_jdk/gmt ! make/sun/javazic/tzdata_jdk/jdk11_backward ! make/sun/javazic/tzdata_jdk/jdk11_full_backward ! make/sun/jawt/Makefile ! make/sun/jawt/mapfile-vers ! make/sun/jconsole/FILES.gmk ! make/sun/jconsole/Makefile ! make/sun/jdbc/Makefile ! make/sun/jdga/Makefile ! make/sun/jdga/mapfile-vers ! make/sun/jkernel/FILES_c_windows.gmk ! make/sun/jkernel/FILES_java.gmk ! make/sun/jkernel/Makefile ! make/sun/jpeg/FILES_c.gmk ! make/sun/jpeg/Makefile ! make/sun/jpeg/mapfile-vers ! make/sun/jpeg/mapfile-vers-closed ! make/sun/launcher/Makefile ! make/sun/management/Makefile ! make/sun/management/jmxremote/Makefile ! make/sun/management/snmp/Makefile ! make/sun/misc/Makefile ! make/sun/native2ascii/Makefile ! make/sun/net/FILES_java.gmk ! make/sun/net/Makefile ! make/sun/net/others/Makefile ! make/sun/net/spi/Makefile ! make/sun/net/spi/nameservice/Makefile ! make/sun/net/spi/nameservice/dns/Makefile ! make/sun/nio/Makefile ! make/sun/nio/cs/FILES_java.gmk ! make/sun/nio/cs/Makefile ! make/sun/org/Makefile ! make/sun/org/mozilla/Makefile ! make/sun/org/mozilla/javascript/Makefile ! make/sun/pisces/Makefile ! make/sun/rmi/Makefile ! make/sun/rmi/cgi/Makefile ! make/sun/rmi/oldtools/FILES_java.gmk ! make/sun/rmi/oldtools/Makefile ! make/sun/rmi/registry/Makefile ! make/sun/rmi/rmi/Makefile ! make/sun/rmi/rmi/mapfile-vers ! make/sun/rmi/rmic/FILES.gmk ! make/sun/rmi/rmic/Makefile ! make/sun/rmi/rmid/Makefile ! make/sun/security/Makefile ! make/sun/security/action/Makefile ! make/sun/security/ec/FILES_c.gmk ! make/sun/security/ec/Makefile ! make/sun/security/ec/mapfile-vers ! make/sun/security/jgss/Makefile ! make/sun/security/jgss/wrapper/FILES_c.gmk ! make/sun/security/jgss/wrapper/Makefile ! make/sun/security/jgss/wrapper/mapfile-vers ! make/sun/security/krb5/FILES_c_windows.gmk ! make/sun/security/krb5/Makefile ! make/sun/security/mscapi/FILES_cpp.gmk ! make/sun/security/mscapi/Makefile ! make/sun/security/other/Makefile ! make/sun/security/pkcs11/FILES_c.gmk ! make/sun/security/pkcs11/Makefile ! make/sun/security/pkcs11/mapfile-vers ! make/sun/security/smartcardio/FILES_c.gmk ! make/sun/security/smartcardio/Makefile ! make/sun/security/smartcardio/mapfile-vers ! make/sun/security/tools/Makefile ! make/sun/security/util/Makefile ! make/sun/serialver/Makefile ! make/sun/splashscreen/FILES_c.gmk ! make/sun/splashscreen/Makefile ! make/sun/splashscreen/mapfile-vers ! make/sun/text/FILES_java.gmk ! make/sun/text/FILES_properties.gmk ! make/sun/text/Makefile ! make/sun/tools/Makefile ! make/sun/tracing/Makefile ! make/sun/tracing/dtrace/Makefile ! make/sun/tracing/dtrace/mapfile-vers ! make/sun/xawt/FILES_c_unix.gmk ! make/sun/xawt/FILES_export_unix.gmk ! make/sun/xawt/Makefile ! make/sun/xawt/ToBin.java ! make/sun/xawt/mapfile-vers ! make/sunw/Makefile ! make/templates/bsd-header ! make/templates/gpl-cp-header ! make/tools/CharsetMapping/DoubleByte-X.java.template ! make/tools/CharsetMapping/Makefile ! make/tools/CharsetMapping/SingleByte-X.java.template ! make/tools/GenerateCharacter/Character.c.template ! make/tools/GenerateCharacter/CharacterData00.java.template ! make/tools/GenerateCharacter/CharacterData01.java.template ! make/tools/GenerateCharacter/CharacterData02.java.template ! make/tools/GenerateCharacter/CharacterData0E.java.template ! make/tools/GenerateCharacter/CharacterDataLatin1.java.template ! make/tools/GenerateCharacter/CharacterDataPrivateUse.java.template ! make/tools/GenerateCharacter/CharacterDataUndefined.java.template ! make/tools/GenerateCharacter/Makefile ! make/tools/GenerateCharacter/check_class.c.template ! make/tools/Makefile ! make/tools/addjsum/Makefile ! make/tools/buildmetaindex/Makefile ! make/tools/commentchecker/Makefile ! make/tools/compile_font_config/Makefile ! make/tools/compile_properties/Makefile ! make/tools/dir_diff/Makefile ! make/tools/dtdbuilder/Makefile ! make/tools/dtdbuilder/dtds/html32.dtd ! make/tools/freetypecheck/Makefile ! make/tools/freetypecheck/freetypecheck.c ! make/tools/generate_break_iterator/Makefile ! make/tools/generate_nimbus/Makefile ! make/tools/generatecurrencydata/Makefile ! make/tools/hasher_classes/Makefile ! make/tools/jarreorder/Makefile ! make/tools/jarsplit/Makefile ! make/tools/javazic/Makefile ! make/tools/jdwpgen/Makefile ! make/tools/makeclasslist/Makefile ! make/tools/reorder/Makefile ! make/tools/reorder/tests/Exit.java ! make/tools/reorder/tests/Hello.java ! make/tools/reorder/tests/IntToString.java ! make/tools/reorder/tests/JHello.java ! make/tools/reorder/tests/LoadFrame.java ! make/tools/reorder/tests/LoadJFrame.java ! make/tools/reorder/tests/LoadToolkit.java ! make/tools/reorder/tests/Null.java ! make/tools/reorder/tests/Sleep.java ! make/tools/reorder/tools/Combine.java ! make/tools/reorder/tools/MaxTime.java ! make/tools/reorder/tools/mcount.c ! make/tools/reorder/tools/remove_mcount.c ! make/tools/sharing/tests/GHello.java ! make/tools/sharing/tests/Hello.java ! make/tools/sharing/tests/JHello.java ! make/tools/spp/Makefile ! make/tools/src/build/tools/addjsum/AddJsum.java ! make/tools/src/build/tools/buildmetaindex/BuildMetaIndex.java ! make/tools/src/build/tools/charsetmapping/DBCS.java ! make/tools/src/build/tools/charsetmapping/EUC_TW.java ! make/tools/src/build/tools/charsetmapping/HKSCS.java ! make/tools/src/build/tools/charsetmapping/JIS0213.java ! make/tools/src/build/tools/charsetmapping/Main.java ! make/tools/src/build/tools/charsetmapping/SBCS.java ! make/tools/src/build/tools/charsetmapping/Utils.java ! make/tools/src/build/tools/commentchecker/CommentChecker.java ! make/tools/src/build/tools/compilefontconfig/CompileFontConfig.java ! make/tools/src/build/tools/compileproperties/CompileProperties.java ! make/tools/src/build/tools/dirdiff/DirDiff.java ! make/tools/src/build/tools/dtdbuilder/DTDBuilder.java ! make/tools/src/build/tools/dtdbuilder/DTDInputStream.java ! make/tools/src/build/tools/dtdbuilder/DTDParser.java ! make/tools/src/build/tools/dtdbuilder/PublicMapping.java ! make/tools/src/build/tools/generatebreakiteratordata/CharSet.java ! make/tools/src/build/tools/generatebreakiteratordata/CharacterCategory.java ! make/tools/src/build/tools/generatebreakiteratordata/DictionaryBasedBreakIteratorBuilder.java ! make/tools/src/build/tools/generatebreakiteratordata/GenerateBreakIteratorData.java ! make/tools/src/build/tools/generatebreakiteratordata/RuleBasedBreakIteratorBuilder.java ! make/tools/src/build/tools/generatebreakiteratordata/SupplementaryCharacterData.java ! make/tools/src/build/tools/generatecharacter/GenerateCharacter.java ! make/tools/src/build/tools/generatecharacter/PrintCharacterRanges.java ! make/tools/src/build/tools/generatecharacter/SpecialCaseMap.java ! make/tools/src/build/tools/generatecharacter/UnicodeSpec.java ! make/tools/src/build/tools/generatecharacter/Utility.java ! make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java ! make/tools/src/build/tools/generatenimbus/Generator.java ! make/tools/src/build/tools/generatenimbus/ObjectFactory.java ! make/tools/src/build/tools/generatenimbus/Paint.java ! make/tools/src/build/tools/generatenimbus/PainterGenerator.java ! make/tools/src/build/tools/generatenimbus/Shape.java ! make/tools/src/build/tools/generatenimbus/SynthModel.java ! make/tools/src/build/tools/generatenimbus/UIDefault.java ! make/tools/src/build/tools/generatenimbus/UIStyle.java ! make/tools/src/build/tools/generatenimbus/Utils.java ! make/tools/src/build/tools/hasher/Hasher.java ! make/tools/src/build/tools/jarreorder/JarReorder.java ! make/tools/src/build/tools/jarsplit/JarSplit.java ! make/tools/src/build/tools/javazic/BackEnd.java ! make/tools/src/build/tools/javazic/Checksum.java ! make/tools/src/build/tools/javazic/DayOfWeek.java ! make/tools/src/build/tools/javazic/Gen.java ! make/tools/src/build/tools/javazic/GenDoc.java ! make/tools/src/build/tools/javazic/Main.java ! make/tools/src/build/tools/javazic/Mappings.java ! make/tools/src/build/tools/javazic/Month.java ! make/tools/src/build/tools/javazic/Rule.java ! make/tools/src/build/tools/javazic/RuleDay.java ! make/tools/src/build/tools/javazic/RuleRec.java ! make/tools/src/build/tools/javazic/Simple.java ! make/tools/src/build/tools/javazic/Time.java ! make/tools/src/build/tools/javazic/Timezone.java ! make/tools/src/build/tools/javazic/Zone.java ! make/tools/src/build/tools/javazic/ZoneRec.java ! make/tools/src/build/tools/javazic/Zoneinfo.java ! make/tools/src/build/tools/jdwpgen/AbstractCommandNode.java ! make/tools/src/build/tools/jdwpgen/AbstractGroupNode.java ! make/tools/src/build/tools/jdwpgen/AbstractNamedNode.java ! make/tools/src/build/tools/jdwpgen/AbstractSimpleNode.java ! make/tools/src/build/tools/jdwpgen/AbstractSimpleTypeNode.java ! make/tools/src/build/tools/jdwpgen/AbstractTypeListNode.java ! make/tools/src/build/tools/jdwpgen/AbstractTypeNode.java ! make/tools/src/build/tools/jdwpgen/AltNode.java ! make/tools/src/build/tools/jdwpgen/ArrayObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/ArrayRegionTypeNode.java ! make/tools/src/build/tools/jdwpgen/ArrayTypeNode.java ! make/tools/src/build/tools/jdwpgen/BooleanTypeNode.java ! make/tools/src/build/tools/jdwpgen/ByteTypeNode.java ! make/tools/src/build/tools/jdwpgen/ClassLoaderObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/ClassObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/ClassTypeNode.java ! make/tools/src/build/tools/jdwpgen/CommandNode.java ! make/tools/src/build/tools/jdwpgen/CommandSetNode.java ! make/tools/src/build/tools/jdwpgen/CommentNode.java ! make/tools/src/build/tools/jdwpgen/ConstantNode.java ! make/tools/src/build/tools/jdwpgen/ConstantSetNode.java ! make/tools/src/build/tools/jdwpgen/Context.java ! make/tools/src/build/tools/jdwpgen/ErrorNode.java ! make/tools/src/build/tools/jdwpgen/ErrorSetNode.java ! make/tools/src/build/tools/jdwpgen/EventNode.java ! make/tools/src/build/tools/jdwpgen/FieldTypeNode.java ! make/tools/src/build/tools/jdwpgen/FrameTypeNode.java ! make/tools/src/build/tools/jdwpgen/GroupNode.java ! make/tools/src/build/tools/jdwpgen/IntTypeNode.java ! make/tools/src/build/tools/jdwpgen/InterfaceTypeNode.java ! make/tools/src/build/tools/jdwpgen/LocationTypeNode.java ! make/tools/src/build/tools/jdwpgen/LongTypeNode.java ! make/tools/src/build/tools/jdwpgen/Main.java ! make/tools/src/build/tools/jdwpgen/MethodTypeNode.java ! make/tools/src/build/tools/jdwpgen/NameNode.java ! make/tools/src/build/tools/jdwpgen/NameValueNode.java ! make/tools/src/build/tools/jdwpgen/Node.java ! make/tools/src/build/tools/jdwpgen/ObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/OutNode.java ! make/tools/src/build/tools/jdwpgen/Parse.java ! make/tools/src/build/tools/jdwpgen/ReferenceIDTypeNode.java ! make/tools/src/build/tools/jdwpgen/ReferenceTypeNode.java ! make/tools/src/build/tools/jdwpgen/RepeatNode.java ! make/tools/src/build/tools/jdwpgen/ReplyNode.java ! make/tools/src/build/tools/jdwpgen/RootNode.java ! make/tools/src/build/tools/jdwpgen/SelectNode.java ! make/tools/src/build/tools/jdwpgen/StringObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/StringTypeNode.java ! make/tools/src/build/tools/jdwpgen/TaggedObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/ThreadGroupObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/ThreadObjectTypeNode.java ! make/tools/src/build/tools/jdwpgen/TypeNode.java ! make/tools/src/build/tools/jdwpgen/UntaggedValueTypeNode.java ! make/tools/src/build/tools/jdwpgen/ValueTypeNode.java ! make/tools/src/build/tools/makeclasslist/MakeClasslist.java ! make/tools/src/build/tools/spp/Spp.java ! make/tools/src/build/tools/stripproperties/StripProperties.java ! make/tools/strip_properties/Makefile ! make/tools/swing-beans/DocBeanInfo.java ! make/tools/swing-beans/GenDocletBeanInfo.java ! make/tools/swing-beans/GenSwingBeanInfo.java ! make/tools/swing-beans/SwingBeanInfo.template ! make/tools/swing-beans/beaninfo/BeanInfoUtils.java ! make/tools/swing-beans/beaninfo/SwingBeanInfoBase.java ! src/linux/doc/man/appletviewer.1 ! src/linux/doc/man/apt.1 ! src/linux/doc/man/extcheck.1 ! src/linux/doc/man/idlj.1 ! src/linux/doc/man/ja/appletviewer.1 ! src/linux/doc/man/ja/apt.1 ! src/linux/doc/man/ja/extcheck.1 ! src/linux/doc/man/ja/idlj.1 ! src/linux/doc/man/ja/jar.1 ! src/linux/doc/man/ja/jarsigner.1 ! src/linux/doc/man/ja/java.1 ! src/linux/doc/man/ja/javac.1 ! src/linux/doc/man/ja/javadoc.1 ! src/linux/doc/man/ja/javah.1 ! src/linux/doc/man/ja/javap.1 ! src/linux/doc/man/ja/javaws.1 ! src/linux/doc/man/ja/jconsole.1 ! src/linux/doc/man/ja/jdb.1 ! src/linux/doc/man/ja/jhat.1 ! src/linux/doc/man/ja/jinfo.1 ! src/linux/doc/man/ja/jmap.1 ! src/linux/doc/man/ja/jps.1 ! src/linux/doc/man/ja/jrunscript.1 ! src/linux/doc/man/ja/jsadebugd.1 ! src/linux/doc/man/ja/jstack.1 ! src/linux/doc/man/ja/jstat.1 ! src/linux/doc/man/ja/jstatd.1 ! src/linux/doc/man/ja/keytool.1 ! src/linux/doc/man/ja/kinit.1 ! src/linux/doc/man/ja/klist.1 ! src/linux/doc/man/ja/ktab.1 ! src/linux/doc/man/ja/native2ascii.1 ! src/linux/doc/man/ja/orbd.1 ! src/linux/doc/man/ja/pack200.1 ! src/linux/doc/man/ja/policytool.1 ! src/linux/doc/man/ja/rmic.1 ! src/linux/doc/man/ja/rmid.1 ! src/linux/doc/man/ja/rmiregistry.1 ! src/linux/doc/man/ja/schemagen.1 ! src/linux/doc/man/ja/serialver.1 ! src/linux/doc/man/ja/servertool.1 ! src/linux/doc/man/ja/tnameserv.1 ! src/linux/doc/man/ja/unpack200.1 ! src/linux/doc/man/ja/wsgen.1 ! src/linux/doc/man/ja/wsimport.1 ! src/linux/doc/man/ja/xjc.1 ! src/linux/doc/man/jar.1 ! src/linux/doc/man/jarsigner.1 ! src/linux/doc/man/java.1 ! src/linux/doc/man/javac.1 ! src/linux/doc/man/javadoc.1 ! src/linux/doc/man/javah.1 ! src/linux/doc/man/javap.1 ! src/linux/doc/man/javaws.1 ! src/linux/doc/man/jconsole.1 ! src/linux/doc/man/jdb.1 ! src/linux/doc/man/jhat.1 ! src/linux/doc/man/jinfo.1 ! src/linux/doc/man/jmap.1 ! src/linux/doc/man/jps.1 ! src/linux/doc/man/jrunscript.1 ! src/linux/doc/man/jsadebugd.1 ! src/linux/doc/man/jstack.1 ! src/linux/doc/man/jstat.1 ! src/linux/doc/man/jstatd.1 ! src/linux/doc/man/keytool.1 ! src/linux/doc/man/native2ascii.1 ! src/linux/doc/man/orbd.1 ! src/linux/doc/man/pack200.1 ! src/linux/doc/man/policytool.1 ! src/linux/doc/man/rmic.1 ! src/linux/doc/man/rmid.1 ! src/linux/doc/man/rmiregistry.1 ! src/linux/doc/man/schemagen.1 ! src/linux/doc/man/serialver.1 ! src/linux/doc/man/servertool.1 ! src/linux/doc/man/tnameserv.1 ! src/linux/doc/man/unpack200.1 ! src/linux/doc/man/wsgen.1 ! src/linux/doc/man/wsimport.1 ! src/linux/doc/man/xjc.1 ! src/share/back/ArrayReferenceImpl.c ! src/share/back/ArrayReferenceImpl.h ! src/share/back/ArrayTypeImpl.c ! src/share/back/ArrayTypeImpl.h ! src/share/back/ClassLoaderReferenceImpl.c ! src/share/back/ClassLoaderReferenceImpl.h ! src/share/back/ClassObjectReferenceImpl.c ! src/share/back/ClassObjectReferenceImpl.h ! src/share/back/ClassTypeImpl.c ! src/share/back/ClassTypeImpl.h ! src/share/back/EventRequestImpl.c ! src/share/back/EventRequestImpl.h ! src/share/back/FieldImpl.c ! src/share/back/FieldImpl.h ! src/share/back/FrameID.c ! src/share/back/FrameID.h ! src/share/back/JDWP.h ! src/share/back/MethodImpl.c ! src/share/back/MethodImpl.h ! src/share/back/ObjectReferenceImpl.c ! src/share/back/ObjectReferenceImpl.h ! src/share/back/ReferenceTypeImpl.c ! src/share/back/ReferenceTypeImpl.h ! src/share/back/SDE.c ! src/share/back/SDE.h ! src/share/back/StackFrameImpl.c ! src/share/back/StackFrameImpl.h ! src/share/back/StringReferenceImpl.c ! src/share/back/StringReferenceImpl.h ! src/share/back/ThreadGroupReferenceImpl.c ! src/share/back/ThreadGroupReferenceImpl.h ! src/share/back/ThreadReferenceImpl.c ! src/share/back/ThreadReferenceImpl.h ! src/share/back/VirtualMachineImpl.c ! src/share/back/VirtualMachineImpl.h ! src/share/back/bag.c ! src/share/back/bag.h ! src/share/back/classTrack.c ! src/share/back/classTrack.h ! src/share/back/commonRef.c ! src/share/back/commonRef.h ! src/share/back/debugDispatch.c ! src/share/back/debugDispatch.h ! src/share/back/debugInit.c ! src/share/back/debugInit.h ! src/share/back/debugLoop.c ! src/share/back/debugLoop.h ! src/share/back/error_messages.c ! src/share/back/error_messages.h ! src/share/back/eventFilter.c ! src/share/back/eventFilter.h ! src/share/back/eventFilterRestricted.h ! src/share/back/eventHandler.c ! src/share/back/eventHandler.h ! src/share/back/eventHandlerRestricted.h ! src/share/back/eventHelper.c ! src/share/back/eventHelper.h ! src/share/back/export/sys.h ! src/share/back/inStream.c ! src/share/back/inStream.h ! src/share/back/invoker.c ! src/share/back/invoker.h ! src/share/back/log_messages.c ! src/share/back/log_messages.h ! src/share/back/outStream.c ! src/share/back/outStream.h ! src/share/back/standardHandlers.c ! src/share/back/standardHandlers.h ! src/share/back/stepControl.c ! src/share/back/stepControl.h ! src/share/back/stream.c ! src/share/back/stream.h ! src/share/back/threadControl.c ! src/share/back/threadControl.h ! src/share/back/transport.c ! src/share/back/transport.h ! src/share/back/util.c ! src/share/back/util.h ! src/share/back/vm_interface.h ! src/share/bin/defines.h ! src/share/bin/emessages.h ! src/share/bin/java.c ! src/share/bin/java.h ! src/share/bin/jli_util.c ! src/share/bin/jli_util.h ! src/share/bin/main.c ! src/share/bin/manifest_info.h ! src/share/bin/parse_manifest.c ! src/share/bin/splashscreen.h ! src/share/bin/splashscreen_stubs.c ! src/share/bin/version_comp.c ! src/share/bin/version_comp.h ! src/share/bin/wildcard.c ! src/share/bin/wildcard.h ! src/share/classes/com/sun/awt/AWTUtilities.java ! src/share/classes/com/sun/awt/SecurityWarning.java ! src/share/classes/com/sun/beans/TypeResolver.java ! src/share/classes/com/sun/beans/WeakCache.java ! src/share/classes/com/sun/beans/WildcardTypeImpl.java ! src/share/classes/com/sun/beans/decoder/AccessorElementHandler.java ! src/share/classes/com/sun/beans/decoder/ArrayElementHandler.java ! src/share/classes/com/sun/beans/decoder/BooleanElementHandler.java ! src/share/classes/com/sun/beans/decoder/ByteElementHandler.java ! src/share/classes/com/sun/beans/decoder/CharElementHandler.java ! src/share/classes/com/sun/beans/decoder/ClassElementHandler.java ! src/share/classes/com/sun/beans/decoder/DocumentHandler.java ! src/share/classes/com/sun/beans/decoder/DoubleElementHandler.java ! src/share/classes/com/sun/beans/decoder/ElementHandler.java ! src/share/classes/com/sun/beans/decoder/FalseElementHandler.java ! src/share/classes/com/sun/beans/decoder/FieldElementHandler.java ! src/share/classes/com/sun/beans/decoder/FloatElementHandler.java ! src/share/classes/com/sun/beans/decoder/IntElementHandler.java ! src/share/classes/com/sun/beans/decoder/JavaElementHandler.java ! src/share/classes/com/sun/beans/decoder/LongElementHandler.java ! src/share/classes/com/sun/beans/decoder/MethodElementHandler.java ! src/share/classes/com/sun/beans/decoder/NewElementHandler.java ! src/share/classes/com/sun/beans/decoder/NullElementHandler.java ! src/share/classes/com/sun/beans/decoder/ObjectElementHandler.java ! src/share/classes/com/sun/beans/decoder/PropertyElementHandler.java ! src/share/classes/com/sun/beans/decoder/ShortElementHandler.java ! src/share/classes/com/sun/beans/decoder/StringElementHandler.java ! src/share/classes/com/sun/beans/decoder/TrueElementHandler.java ! src/share/classes/com/sun/beans/decoder/ValueObject.java ! src/share/classes/com/sun/beans/decoder/ValueObjectImpl.java ! src/share/classes/com/sun/beans/decoder/VarElementHandler.java ! src/share/classes/com/sun/beans/decoder/VoidElementHandler.java ! src/share/classes/com/sun/beans/finder/AbstractFinder.java ! src/share/classes/com/sun/beans/finder/BeanInfoFinder.java ! src/share/classes/com/sun/beans/finder/ClassFinder.java ! src/share/classes/com/sun/beans/finder/ConstructorFinder.java ! src/share/classes/com/sun/beans/finder/FieldFinder.java ! src/share/classes/com/sun/beans/finder/InstanceFinder.java ! src/share/classes/com/sun/beans/finder/MethodFinder.java ! src/share/classes/com/sun/beans/finder/PersistenceDelegateFinder.java ! src/share/classes/com/sun/beans/finder/PrimitiveTypeMap.java ! src/share/classes/com/sun/beans/finder/PrimitiveWrapperMap.java ! src/share/classes/com/sun/beans/finder/PropertyEditorFinder.java ! src/share/classes/com/sun/beans/finder/Signature.java ! src/share/classes/com/sun/crypto/provider/AESCipher.java ! src/share/classes/com/sun/crypto/provider/AESConstants.java ! src/share/classes/com/sun/crypto/provider/AESCrypt.java ! src/share/classes/com/sun/crypto/provider/AESKeyGenerator.java ! src/share/classes/com/sun/crypto/provider/AESParameters.java ! src/share/classes/com/sun/crypto/provider/AESWrapCipher.java ! src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java ! src/share/classes/com/sun/crypto/provider/BlockCipherParamsCore.java ! src/share/classes/com/sun/crypto/provider/BlowfishCipher.java ! src/share/classes/com/sun/crypto/provider/BlowfishConstants.java ! src/share/classes/com/sun/crypto/provider/BlowfishCrypt.java ! src/share/classes/com/sun/crypto/provider/BlowfishKeyGenerator.java ! src/share/classes/com/sun/crypto/provider/BlowfishParameters.java ! src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java ! src/share/classes/com/sun/crypto/provider/CipherCore.java ! src/share/classes/com/sun/crypto/provider/CipherFeedback.java ! src/share/classes/com/sun/crypto/provider/CipherTextStealing.java ! src/share/classes/com/sun/crypto/provider/CipherWithWrappingSpi.java ! src/share/classes/com/sun/crypto/provider/ConstructKeys.java ! src/share/classes/com/sun/crypto/provider/CounterMode.java ! src/share/classes/com/sun/crypto/provider/DESCipher.java ! src/share/classes/com/sun/crypto/provider/DESConstants.java ! src/share/classes/com/sun/crypto/provider/DESCrypt.java ! src/share/classes/com/sun/crypto/provider/DESKey.java ! src/share/classes/com/sun/crypto/provider/DESKeyFactory.java ! src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java ! src/share/classes/com/sun/crypto/provider/DESParameters.java ! src/share/classes/com/sun/crypto/provider/DESedeCipher.java ! src/share/classes/com/sun/crypto/provider/DESedeCrypt.java ! src/share/classes/com/sun/crypto/provider/DESedeKey.java ! src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java ! src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java ! src/share/classes/com/sun/crypto/provider/DESedeParameters.java ! src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java ! src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java ! src/share/classes/com/sun/crypto/provider/DHKeyFactory.java ! src/share/classes/com/sun/crypto/provider/DHKeyPairGenerator.java ! src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java ! src/share/classes/com/sun/crypto/provider/DHParameters.java ! src/share/classes/com/sun/crypto/provider/DHPrivateKey.java ! src/share/classes/com/sun/crypto/provider/DHPublicKey.java ! src/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java ! src/share/classes/com/sun/crypto/provider/EncryptedPrivateKeyInfo.java ! src/share/classes/com/sun/crypto/provider/FeedbackCipher.java ! src/share/classes/com/sun/crypto/provider/HmacCore.java ! src/share/classes/com/sun/crypto/provider/HmacMD5.java ! src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java ! src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java ! src/share/classes/com/sun/crypto/provider/HmacSHA1.java ! src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java ! src/share/classes/com/sun/crypto/provider/ISO10126Padding.java ! src/share/classes/com/sun/crypto/provider/JceKeyStore.java ! src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java ! src/share/classes/com/sun/crypto/provider/KeyProtector.java ! src/share/classes/com/sun/crypto/provider/OAEPParameters.java ! src/share/classes/com/sun/crypto/provider/OutputFeedback.java ! src/share/classes/com/sun/crypto/provider/PBECipherCore.java ! src/share/classes/com/sun/crypto/provider/PBEKey.java ! src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java ! src/share/classes/com/sun/crypto/provider/PBEParameters.java ! src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java ! src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java ! src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java ! src/share/classes/com/sun/crypto/provider/PBKDF2KeyImpl.java ! src/share/classes/com/sun/crypto/provider/PCBC.java ! src/share/classes/com/sun/crypto/provider/PKCS12PBECipherCore.java ! src/share/classes/com/sun/crypto/provider/PKCS5Padding.java ! src/share/classes/com/sun/crypto/provider/Padding.java ! src/share/classes/com/sun/crypto/provider/PrivateKeyInfo.java ! src/share/classes/com/sun/crypto/provider/RC2Cipher.java ! src/share/classes/com/sun/crypto/provider/RC2Crypt.java ! src/share/classes/com/sun/crypto/provider/RC2Parameters.java ! src/share/classes/com/sun/crypto/provider/RSACipher.java ! src/share/classes/com/sun/crypto/provider/SslMacCore.java ! src/share/classes/com/sun/crypto/provider/SunJCE.java ! src/share/classes/com/sun/crypto/provider/SymmetricCipher.java ! src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java ! src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java ! src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java ! src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java ! src/share/classes/com/sun/crypto/provider/ai.java ! src/share/classes/com/sun/demo/jvmti/hprof/Tracker.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/common/BitFile.java ! src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java ! src/share/classes/com/sun/imageio/plugins/common/I18N.java ! src/share/classes/com/sun/imageio/plugins/common/I18NImpl.java ! src/share/classes/com/sun/imageio/plugins/common/ImageUtil.java ! src/share/classes/com/sun/imageio/plugins/common/InputStreamAdapter.java ! src/share/classes/com/sun/imageio/plugins/common/LZWCompressor.java ! src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java ! src/share/classes/com/sun/imageio/plugins/common/PaletteBuilder.java ! src/share/classes/com/sun/imageio/plugins/common/ReaderUtil.java ! src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/common/StandardMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/common/SubImageInputStream.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageReader.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFMetadata.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadata.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFWritableImageMetadata.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFWritableStreamMetadata.java ! src/share/classes/com/sun/imageio/plugins/jpeg/AdobeMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/COMMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/DRIMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGBuffer.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReaderResources.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriterResources.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGStreamMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGStreamMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/jpeg/MarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/jpeg/SOSMarkerSegment.java ! src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java ! src/share/classes/com/sun/imageio/plugins/png/PNGImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/png/PNGImageWriter.java ! src/share/classes/com/sun/imageio/plugins/png/PNGImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java ! src/share/classes/com/sun/imageio/plugins/png/PNGMetadataFormat.java ! src/share/classes/com/sun/imageio/plugins/png/PNGMetadataFormatResources.java ! src/share/classes/com/sun/imageio/plugins/png/RowFilter.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReader.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriter.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageWriterSpi.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadataFormat.java ! src/share/classes/com/sun/imageio/spi/FileImageInputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/FileImageOutputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/InputStreamImageInputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/OutputStreamImageOutputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/RAFImageInputStreamSpi.java ! src/share/classes/com/sun/imageio/spi/RAFImageOutputStreamSpi.java ! src/share/classes/com/sun/imageio/stream/CloseableDisposerRecord.java ! src/share/classes/com/sun/imageio/stream/StreamCloser.java ! src/share/classes/com/sun/imageio/stream/StreamFinalizer.java ! src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java ! src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java ! src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java ! src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java ! src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java ! src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java ! src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java ! src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java ! src/share/classes/com/sun/jarsigner/ContentSigner.java ! src/share/classes/com/sun/jarsigner/ContentSignerParameters.java ! src/share/classes/com/sun/jarsigner/package.html ! src/share/classes/com/sun/java/browser/dom/DOMAccessException.java ! src/share/classes/com/sun/java/browser/dom/DOMAccessor.java ! src/share/classes/com/sun/java/browser/dom/DOMAction.java ! src/share/classes/com/sun/java/browser/dom/DOMService.java ! src/share/classes/com/sun/java/browser/dom/DOMServiceProvider.java ! src/share/classes/com/sun/java/browser/dom/DOMUnsupportedException.java ! src/share/classes/com/sun/java/browser/net/ProxyInfo.java ! src/share/classes/com/sun/java/browser/net/ProxyService.java ! src/share/classes/com/sun/java/browser/net/ProxyServiceProvider.java ! src/share/classes/com/sun/java/swing/Painter.java ! src/share/classes/com/sun/java/swing/SwingUtilities3.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKColorChooserPanel.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKColorType.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKConstants.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKIconFactory.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKPainter.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKRegion.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyle.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKStyleFactory.java ! src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java ! src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java ! src/share/classes/com/sun/java/swing/plaf/gtk/XColors.java ! src/share/classes/com/sun/java/swing/plaf/gtk/resources/metacity/SwingFallbackTheme/metacity-1/metacity-theme-1.xml ! src/share/classes/com/sun/java/swing/plaf/motif/MotifBorders.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifButtonListener.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifButtonUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifCheckBoxMenuItemUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifCheckBoxUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifComboBoxUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopIconUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifDesktopPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifEditorPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifGraphicsUtils.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifIconFactory.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameTitlePane.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifInternalFrameUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifLabelUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuBarUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuItemUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuMouseListener.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuMouseMotionListener.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifMenuUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifOptionPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifPasswordFieldUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifPopupMenuSeparatorUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifPopupMenuUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifProgressBarUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifRadioButtonMenuItemUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifRadioButtonUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollBarButton.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollBarUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifSeparatorUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifSliderUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifSplitPaneDivider.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifSplitPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTabbedPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTextAreaUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTextFieldUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTextPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTextUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifToggleButtonUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTreeCellRenderer.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifTreeUI.java ! src/share/classes/com/sun/java/swing/plaf/nimbus/AbstractRegionPainter.java ! src/share/classes/com/sun/java/swing/plaf/nimbus/NimbusLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/windows/AnimationController.java ! src/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java ! src/share/classes/com/sun/java/swing/plaf/windows/TMSchema.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsBorders.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsButtonListener.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsButtonUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxMenuItemUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsCheckBoxUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsClassicLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsComboBoxUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopIconUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsEditorPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsGraphicsUtils.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsIconFactory.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameTitlePane.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsLabelUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuBarUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuItemUIAccessor.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsMenuUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsOptionPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsPasswordFieldUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuSeparatorUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupMenuUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsPopupWindow.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsProgressBarUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonMenuItemUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsRadioButtonUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsRootPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsScrollBarUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsScrollPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsSeparatorUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsSliderUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsSpinnerUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsSplitPaneDivider.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsSplitPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextAreaUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextFieldUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextPaneUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTextUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsToggleButtonUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsToolBarSeparatorUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsToolBarUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTreeUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/XPStyle.java ! src/share/classes/com/sun/java/util/jar/pack/AdaptiveCoding.java ! src/share/classes/com/sun/java/util/jar/pack/Attribute.java ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ! src/share/classes/com/sun/java/util/jar/pack/ClassWriter.java ! src/share/classes/com/sun/java/util/jar/pack/Code.java ! src/share/classes/com/sun/java/util/jar/pack/Coding.java ! src/share/classes/com/sun/java/util/jar/pack/CodingChooser.java ! src/share/classes/com/sun/java/util/jar/pack/CodingMethod.java ! src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java ! src/share/classes/com/sun/java/util/jar/pack/Constants.java ! src/share/classes/com/sun/java/util/jar/pack/Driver.java ! src/share/classes/com/sun/java/util/jar/pack/DriverResource.java ! src/share/classes/com/sun/java/util/jar/pack/Fixups.java ! src/share/classes/com/sun/java/util/jar/pack/Histogram.java ! src/share/classes/com/sun/java/util/jar/pack/Instruction.java ! src/share/classes/com/sun/java/util/jar/pack/NativeUnpack.java ! src/share/classes/com/sun/java/util/jar/pack/Package.java ! src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ! src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ! src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java ! src/share/classes/com/sun/java/util/jar/pack/PopulationCoding.java ! src/share/classes/com/sun/java/util/jar/pack/PropMap.java ! src/share/classes/com/sun/java/util/jar/pack/UnpackerImpl.java ! src/share/classes/com/sun/java/util/jar/pack/Utils.java ! src/share/classes/com/sun/java/util/jar/pack/package.html ! src/share/classes/com/sun/jdi/AbsentInformationException.java ! src/share/classes/com/sun/jdi/Accessible.java ! src/share/classes/com/sun/jdi/ArrayReference.java ! src/share/classes/com/sun/jdi/ArrayType.java ! src/share/classes/com/sun/jdi/BooleanType.java ! src/share/classes/com/sun/jdi/BooleanValue.java ! src/share/classes/com/sun/jdi/Bootstrap.java ! src/share/classes/com/sun/jdi/ByteType.java ! src/share/classes/com/sun/jdi/ByteValue.java ! src/share/classes/com/sun/jdi/CharType.java ! src/share/classes/com/sun/jdi/CharValue.java ! src/share/classes/com/sun/jdi/ClassLoaderReference.java ! src/share/classes/com/sun/jdi/ClassNotLoadedException.java ! src/share/classes/com/sun/jdi/ClassNotPreparedException.java ! src/share/classes/com/sun/jdi/ClassObjectReference.java ! src/share/classes/com/sun/jdi/ClassType.java ! src/share/classes/com/sun/jdi/DoubleType.java ! src/share/classes/com/sun/jdi/DoubleValue.java ! src/share/classes/com/sun/jdi/Field.java ! src/share/classes/com/sun/jdi/FloatType.java ! src/share/classes/com/sun/jdi/FloatValue.java ! src/share/classes/com/sun/jdi/IncompatibleThreadStateException.java ! src/share/classes/com/sun/jdi/InconsistentDebugInfoException.java ! src/share/classes/com/sun/jdi/IntegerType.java ! src/share/classes/com/sun/jdi/IntegerValue.java ! src/share/classes/com/sun/jdi/InterfaceType.java ! src/share/classes/com/sun/jdi/InternalException.java ! src/share/classes/com/sun/jdi/InvalidCodeIndexException.java ! src/share/classes/com/sun/jdi/InvalidLineNumberException.java ! src/share/classes/com/sun/jdi/InvalidStackFrameException.java ! src/share/classes/com/sun/jdi/InvalidTypeException.java ! src/share/classes/com/sun/jdi/InvocationException.java ! src/share/classes/com/sun/jdi/JDIPermission.java ! src/share/classes/com/sun/jdi/LocalVariable.java ! src/share/classes/com/sun/jdi/Locatable.java ! src/share/classes/com/sun/jdi/Location.java ! src/share/classes/com/sun/jdi/LongType.java ! src/share/classes/com/sun/jdi/LongValue.java ! src/share/classes/com/sun/jdi/Method.java ! src/share/classes/com/sun/jdi/Mirror.java ! src/share/classes/com/sun/jdi/MonitorInfo.java ! src/share/classes/com/sun/jdi/NativeMethodException.java ! src/share/classes/com/sun/jdi/ObjectCollectedException.java ! src/share/classes/com/sun/jdi/ObjectReference.java ! src/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java ! src/share/classes/com/sun/jdi/PrimitiveType.java ! src/share/classes/com/sun/jdi/PrimitiveValue.java ! src/share/classes/com/sun/jdi/ReferenceType.java ! src/share/classes/com/sun/jdi/ShortType.java ! src/share/classes/com/sun/jdi/ShortValue.java ! src/share/classes/com/sun/jdi/StackFrame.java ! src/share/classes/com/sun/jdi/StringReference.java ! src/share/classes/com/sun/jdi/ThreadGroupReference.java ! src/share/classes/com/sun/jdi/ThreadReference.java ! src/share/classes/com/sun/jdi/Type.java ! src/share/classes/com/sun/jdi/TypeComponent.java ! src/share/classes/com/sun/jdi/VMCannotBeModifiedException.java ! src/share/classes/com/sun/jdi/VMDisconnectedException.java ! src/share/classes/com/sun/jdi/VMMismatchException.java ! src/share/classes/com/sun/jdi/VMOutOfMemoryException.java ! src/share/classes/com/sun/jdi/Value.java ! src/share/classes/com/sun/jdi/VirtualMachine.java ! src/share/classes/com/sun/jdi/VirtualMachineManager.java ! src/share/classes/com/sun/jdi/VoidType.java ! src/share/classes/com/sun/jdi/VoidValue.java ! src/share/classes/com/sun/jdi/connect/AttachingConnector.java ! src/share/classes/com/sun/jdi/connect/Connector.java ! src/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java ! src/share/classes/com/sun/jdi/connect/LaunchingConnector.java ! src/share/classes/com/sun/jdi/connect/ListeningConnector.java ! src/share/classes/com/sun/jdi/connect/Transport.java ! src/share/classes/com/sun/jdi/connect/TransportTimeoutException.java ! src/share/classes/com/sun/jdi/connect/VMStartException.java ! src/share/classes/com/sun/jdi/connect/package.html ! src/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java ! src/share/classes/com/sun/jdi/connect/spi/Connection.java ! src/share/classes/com/sun/jdi/connect/spi/TransportService.java ! src/share/classes/com/sun/jdi/connect/spi/package.html ! src/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java ! src/share/classes/com/sun/jdi/event/BreakpointEvent.java ! src/share/classes/com/sun/jdi/event/ClassPrepareEvent.java ! src/share/classes/com/sun/jdi/event/ClassUnloadEvent.java ! src/share/classes/com/sun/jdi/event/Event.java ! src/share/classes/com/sun/jdi/event/EventIterator.java ! src/share/classes/com/sun/jdi/event/EventQueue.java ! src/share/classes/com/sun/jdi/event/EventSet.java ! src/share/classes/com/sun/jdi/event/ExceptionEvent.java ! src/share/classes/com/sun/jdi/event/LocatableEvent.java ! src/share/classes/com/sun/jdi/event/MethodEntryEvent.java ! src/share/classes/com/sun/jdi/event/MethodExitEvent.java ! src/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java ! src/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java ! src/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java ! src/share/classes/com/sun/jdi/event/MonitorWaitEvent.java ! src/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java ! src/share/classes/com/sun/jdi/event/StepEvent.java ! src/share/classes/com/sun/jdi/event/ThreadDeathEvent.java ! src/share/classes/com/sun/jdi/event/ThreadStartEvent.java ! src/share/classes/com/sun/jdi/event/VMDeathEvent.java ! src/share/classes/com/sun/jdi/event/VMDisconnectEvent.java ! src/share/classes/com/sun/jdi/event/VMStartEvent.java ! src/share/classes/com/sun/jdi/event/WatchpointEvent.java ! src/share/classes/com/sun/jdi/event/package.html ! src/share/classes/com/sun/jdi/package.html ! src/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java ! src/share/classes/com/sun/jdi/request/BreakpointRequest.java ! src/share/classes/com/sun/jdi/request/ClassPrepareRequest.java ! src/share/classes/com/sun/jdi/request/ClassUnloadRequest.java ! src/share/classes/com/sun/jdi/request/DuplicateRequestException.java ! src/share/classes/com/sun/jdi/request/EventRequest.java ! src/share/classes/com/sun/jdi/request/EventRequestManager.java ! src/share/classes/com/sun/jdi/request/ExceptionRequest.java ! src/share/classes/com/sun/jdi/request/InvalidRequestStateException.java ! src/share/classes/com/sun/jdi/request/MethodEntryRequest.java ! src/share/classes/com/sun/jdi/request/MethodExitRequest.java ! src/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java ! src/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java ! src/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java ! src/share/classes/com/sun/jdi/request/MonitorWaitRequest.java ! src/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java ! src/share/classes/com/sun/jdi/request/StepRequest.java ! src/share/classes/com/sun/jdi/request/ThreadDeathRequest.java ! src/share/classes/com/sun/jdi/request/ThreadStartRequest.java ! src/share/classes/com/sun/jdi/request/VMDeathRequest.java ! src/share/classes/com/sun/jdi/request/WatchpointRequest.java ! src/share/classes/com/sun/jdi/request/package.html ! src/share/classes/com/sun/jmx/defaults/JmxProperties.java ! src/share/classes/com/sun/jmx/defaults/ServiceName.java ! src/share/classes/com/sun/jmx/defaults/package.html ! src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java ! src/share/classes/com/sun/jmx/interceptor/MBeanServerInterceptor.java ! src/share/classes/com/sun/jmx/interceptor/package.html ! src/share/classes/com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport.java ! src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java ! src/share/classes/com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory.java ! src/share/classes/com/sun/jmx/mbeanserver/DescriptorCache.java ! src/share/classes/com/sun/jmx/mbeanserver/DynamicMBean2.java ! src/share/classes/com/sun/jmx/mbeanserver/GetPropertyAction.java ! src/share/classes/com/sun/jmx/mbeanserver/Introspector.java ! src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServer.java ! src/share/classes/com/sun/jmx/mbeanserver/JmxMBeanServerBuilder.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanInstantiator.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanServerDelegateImpl.java ! src/share/classes/com/sun/jmx/mbeanserver/MBeanSupport.java ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanMapping.java ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanMappingFactory.java ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanProxy.java ! src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java ! src/share/classes/com/sun/jmx/mbeanserver/ModifiableClassLoaderRepository.java ! src/share/classes/com/sun/jmx/mbeanserver/NamedObject.java ! src/share/classes/com/sun/jmx/mbeanserver/ObjectInputStreamWithLoader.java ! src/share/classes/com/sun/jmx/mbeanserver/PerInterface.java ! src/share/classes/com/sun/jmx/mbeanserver/Repository.java ! src/share/classes/com/sun/jmx/mbeanserver/SecureClassLoaderRepository.java ! src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanIntrospector.java ! src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanSupport.java ! src/share/classes/com/sun/jmx/mbeanserver/SunJmxMBeanServer.java ! src/share/classes/com/sun/jmx/mbeanserver/Util.java ! src/share/classes/com/sun/jmx/mbeanserver/WeakIdentityHashMap.java ! src/share/classes/com/sun/jmx/mbeanserver/package.html ! src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java ! src/share/classes/com/sun/jmx/remote/internal/ArrayQueue.java ! src/share/classes/com/sun/jmx/remote/internal/ClientCommunicatorAdmin.java ! src/share/classes/com/sun/jmx/remote/internal/ClientListenerInfo.java ! src/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java ! src/share/classes/com/sun/jmx/remote/internal/IIOPHelper.java ! src/share/classes/com/sun/jmx/remote/internal/IIOPProxy.java ! src/share/classes/com/sun/jmx/remote/internal/NotificationBuffer.java ! src/share/classes/com/sun/jmx/remote/internal/NotificationBufferFilter.java ! src/share/classes/com/sun/jmx/remote/internal/ProxyRef.java ! src/share/classes/com/sun/jmx/remote/internal/RMIExporter.java ! src/share/classes/com/sun/jmx/remote/internal/ServerCommunicatorAdmin.java ! src/share/classes/com/sun/jmx/remote/internal/ServerNotifForwarder.java ! src/share/classes/com/sun/jmx/remote/internal/Unmarshal.java ! src/share/classes/com/sun/jmx/remote/internal/package.html ! src/share/classes/com/sun/jmx/remote/protocol/iiop/ClientProvider.java ! src/share/classes/com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl.java ! src/share/classes/com/sun/jmx/remote/protocol/iiop/ProxyInputStream.java ! src/share/classes/com/sun/jmx/remote/protocol/iiop/ServerProvider.java ! src/share/classes/com/sun/jmx/remote/protocol/rmi/ClientProvider.java ! src/share/classes/com/sun/jmx/remote/protocol/rmi/ServerProvider.java ! src/share/classes/com/sun/jmx/remote/security/FileLoginModule.java ! src/share/classes/com/sun/jmx/remote/security/JMXPluggableAuthenticator.java ! src/share/classes/com/sun/jmx/remote/security/JMXSubjectDomainCombiner.java ! src/share/classes/com/sun/jmx/remote/security/MBeanServerAccessController.java ! src/share/classes/com/sun/jmx/remote/security/MBeanServerFileAccessController.java ! src/share/classes/com/sun/jmx/remote/security/NotificationAccessController.java ! src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java ! src/share/classes/com/sun/jmx/remote/util/CacheMap.java ! src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java ! src/share/classes/com/sun/jmx/remote/util/ClassLogger.java ! src/share/classes/com/sun/jmx/remote/util/EnvHelp.java ! src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java ! src/share/classes/com/sun/jmx/snmp/BerDecoder.java ! src/share/classes/com/sun/jmx/snmp/BerEncoder.java ! src/share/classes/com/sun/jmx/snmp/BerException.java ! src/share/classes/com/sun/jmx/snmp/EnumRowStatus.java ! src/share/classes/com/sun/jmx/snmp/Enumerated.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/ASCII_CharStream.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/AclEntryImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/AclImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/GroupImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/Host.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAccess.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclBlock.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMAclItem.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMCommunities.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMCommunity.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMEnterprise.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHost.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostInform.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostName.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMHostTrap.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformBlock.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformCommunity.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformInterestedHost.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMInformItem.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpAddress.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpMask.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMIpV6Address.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMManagers.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMNetMask.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMNetMaskV6.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMSecurityDefs.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapBlock.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapCommunity.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapInterestedHost.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapItem.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JDMTrapNum.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/JJTParserState.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/NetMaskImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/Node.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/OwnerImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/ParseError.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/ParseException.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jj ! src/share/classes/com/sun/jmx/snmp/IPAcl/Parser.jjt ! src/share/classes/com/sun/jmx/snmp/IPAcl/ParserConstants.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/ParserTokenManager.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/ParserTreeConstants.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/PermissionImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/PrincipalImpl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/SimpleNode.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/SnmpAcl.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/Token.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/TokenMgrError.java ! src/share/classes/com/sun/jmx/snmp/IPAcl/package.html ! src/share/classes/com/sun/jmx/snmp/InetAddressAcl.java ! src/share/classes/com/sun/jmx/snmp/ServiceName.java ! src/share/classes/com/sun/jmx/snmp/SnmpAckPdu.java ! src/share/classes/com/sun/jmx/snmp/SnmpBadSecurityLevelException.java ! src/share/classes/com/sun/jmx/snmp/SnmpCounter.java ! src/share/classes/com/sun/jmx/snmp/SnmpCounter64.java ! src/share/classes/com/sun/jmx/snmp/SnmpEngine.java ! src/share/classes/com/sun/jmx/snmp/SnmpEngineFactory.java ! src/share/classes/com/sun/jmx/snmp/SnmpEngineId.java ! src/share/classes/com/sun/jmx/snmp/SnmpEngineParameters.java ! src/share/classes/com/sun/jmx/snmp/SnmpGauge.java ! src/share/classes/com/sun/jmx/snmp/SnmpInt.java ! src/share/classes/com/sun/jmx/snmp/SnmpIpAddress.java ! src/share/classes/com/sun/jmx/snmp/SnmpMessage.java ! src/share/classes/com/sun/jmx/snmp/SnmpMsg.java ! src/share/classes/com/sun/jmx/snmp/SnmpNull.java ! src/share/classes/com/sun/jmx/snmp/SnmpOpaque.java ! src/share/classes/com/sun/jmx/snmp/SnmpParams.java ! src/share/classes/com/sun/jmx/snmp/SnmpPdu.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduBulk.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduBulkType.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduFactory.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduFactoryBER.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduRequest.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduRequestType.java ! src/share/classes/com/sun/jmx/snmp/SnmpPduTrap.java ! src/share/classes/com/sun/jmx/snmp/SnmpScopedPduBulk.java ! src/share/classes/com/sun/jmx/snmp/SnmpScopedPduPacket.java ! src/share/classes/com/sun/jmx/snmp/SnmpScopedPduRequest.java ! src/share/classes/com/sun/jmx/snmp/SnmpSecurityException.java ! src/share/classes/com/sun/jmx/snmp/SnmpSecurityParameters.java ! src/share/classes/com/sun/jmx/snmp/SnmpStatusException.java ! src/share/classes/com/sun/jmx/snmp/SnmpString.java ! src/share/classes/com/sun/jmx/snmp/SnmpStringFixed.java ! src/share/classes/com/sun/jmx/snmp/SnmpTooBigException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnknownAccContrModelException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnknownModelException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnknownModelLcdException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnknownMsgProcModelException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnknownSecModelException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnknownSubSystemException.java ! src/share/classes/com/sun/jmx/snmp/SnmpUnsignedInt.java ! src/share/classes/com/sun/jmx/snmp/SnmpUsmKeyHandler.java ! src/share/classes/com/sun/jmx/snmp/SnmpV3Message.java ! src/share/classes/com/sun/jmx/snmp/SnmpValue.java ! src/share/classes/com/sun/jmx/snmp/ThreadContext.java ! src/share/classes/com/sun/jmx/snmp/UserAcl.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpEntryOid.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpErrorHandlerAgent.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericMetaServer.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpGenericObjectServer.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpIndex.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMib.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgent.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibAgentMBean.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibEntry.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibHandler.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibNode.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequest.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibRequestImpl.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibSubRequest.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpRequestTree.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardMetaServer.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpStandardObjectServer.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpTableCallbackHandler.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpTableEntryFactory.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpTableEntryNotification.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpTableSupport.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpUserDataFactory.java ! src/share/classes/com/sun/jmx/snmp/agent/package.html ! src/share/classes/com/sun/jmx/snmp/daemon/ClientHandler.java ! src/share/classes/com/sun/jmx/snmp/daemon/CommunicationException.java ! src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServer.java ! src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServerMBean.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServer.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpAdaptorServerMBean.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpInformHandler.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpMibTree.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubBulkRequestHandler.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubNextRequestHandler.java ! src/share/classes/com/sun/jmx/snmp/daemon/SnmpSubRequestHandler.java ! src/share/classes/com/sun/jmx/snmp/daemon/package.html ! src/share/classes/com/sun/jmx/snmp/defaults/DefaultPaths.java ! src/share/classes/com/sun/jmx/snmp/defaults/SnmpProperties.java ! src/share/classes/com/sun/jmx/snmp/defaults/package.html ! src/share/classes/com/sun/jmx/snmp/internal/SnmpAccessControlModel.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpAccessControlSubSystem.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpDecryptedPdu.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpEngineImpl.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpIncomingRequest.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpIncomingResponse.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpLcd.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpModel.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpModelLcd.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpMsgProcessingModel.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpMsgProcessingSubSystem.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpOutgoingRequest.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpSecurityCache.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpSecurityModel.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpSecuritySubSystem.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpSubSystem.java ! src/share/classes/com/sun/jmx/snmp/internal/SnmpTools.java ! src/share/classes/com/sun/jmx/snmp/internal/package.html ! src/share/classes/com/sun/jmx/snmp/mpm/SnmpMsgTranslator.java ! src/share/classes/com/sun/jmx/snmp/mpm/package.html ! src/share/classes/com/sun/jmx/snmp/package.html ! src/share/classes/com/sun/jmx/snmp/tasks/Task.java ! src/share/classes/com/sun/jmx/snmp/tasks/TaskServer.java ! src/share/classes/com/sun/jmx/snmp/tasks/ThreadService.java ! src/share/classes/com/sun/jmx/snmp/tasks/package.html ! src/share/classes/com/sun/jndi/cosnaming/CNBindingEnumeration.java ! src/share/classes/com/sun/jndi/cosnaming/CNCtx.java ! src/share/classes/com/sun/jndi/cosnaming/CNCtxFactory.java ! src/share/classes/com/sun/jndi/cosnaming/CNNameParser.java ! src/share/classes/com/sun/jndi/cosnaming/CorbanameUrl.java ! src/share/classes/com/sun/jndi/cosnaming/ExceptionMapper.java ! src/share/classes/com/sun/jndi/cosnaming/IiopUrl.java ! src/share/classes/com/sun/jndi/cosnaming/OrbReuseTracker.java ! src/share/classes/com/sun/jndi/cosnaming/RemoteToCorba.java ! src/share/classes/com/sun/jndi/dns/DnsClient.java ! src/share/classes/com/sun/jndi/dns/DnsContext.java ! src/share/classes/com/sun/jndi/dns/DnsContextFactory.java ! src/share/classes/com/sun/jndi/dns/DnsName.java ! src/share/classes/com/sun/jndi/dns/DnsNameParser.java ! src/share/classes/com/sun/jndi/dns/DnsUrl.java ! src/share/classes/com/sun/jndi/dns/Header.java ! src/share/classes/com/sun/jndi/dns/NameNode.java ! src/share/classes/com/sun/jndi/dns/Resolver.java ! src/share/classes/com/sun/jndi/dns/ResourceRecord.java ! src/share/classes/com/sun/jndi/dns/ResourceRecords.java ! src/share/classes/com/sun/jndi/dns/ZoneNode.java ! src/share/classes/com/sun/jndi/ldap/BasicControl.java ! src/share/classes/com/sun/jndi/ldap/Ber.java ! src/share/classes/com/sun/jndi/ldap/BerDecoder.java ! src/share/classes/com/sun/jndi/ldap/BerEncoder.java ! src/share/classes/com/sun/jndi/ldap/BindingWithControls.java ! src/share/classes/com/sun/jndi/ldap/ClientId.java ! src/share/classes/com/sun/jndi/ldap/Connection.java ! src/share/classes/com/sun/jndi/ldap/DefaultResponseControlFactory.java ! src/share/classes/com/sun/jndi/ldap/DigestClientId.java ! src/share/classes/com/sun/jndi/ldap/EntryChangeResponseControl.java ! src/share/classes/com/sun/jndi/ldap/EventQueue.java ! src/share/classes/com/sun/jndi/ldap/EventSupport.java ! src/share/classes/com/sun/jndi/ldap/Filter.java ! src/share/classes/com/sun/jndi/ldap/LdapAttribute.java ! src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java ! src/share/classes/com/sun/jndi/ldap/LdapClient.java ! src/share/classes/com/sun/jndi/ldap/LdapClientFactory.java ! src/share/classes/com/sun/jndi/ldap/LdapCtx.java ! src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java ! src/share/classes/com/sun/jndi/ldap/LdapEntry.java ! src/share/classes/com/sun/jndi/ldap/LdapName.java ! src/share/classes/com/sun/jndi/ldap/LdapNameParser.java ! src/share/classes/com/sun/jndi/ldap/LdapNamingEnumeration.java ! src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java ! src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java ! src/share/classes/com/sun/jndi/ldap/LdapReferralException.java ! src/share/classes/com/sun/jndi/ldap/LdapRequest.java ! src/share/classes/com/sun/jndi/ldap/LdapResult.java ! src/share/classes/com/sun/jndi/ldap/LdapSchemaCtx.java ! src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java ! src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java ! src/share/classes/com/sun/jndi/ldap/LdapURL.java ! src/share/classes/com/sun/jndi/ldap/ManageReferralControl.java ! src/share/classes/com/sun/jndi/ldap/NameClassPairWithControls.java ! src/share/classes/com/sun/jndi/ldap/NamingEventNotifier.java ! src/share/classes/com/sun/jndi/ldap/NotifierArgs.java ! src/share/classes/com/sun/jndi/ldap/Obj.java ! src/share/classes/com/sun/jndi/ldap/PersistentSearchControl.java ! src/share/classes/com/sun/jndi/ldap/ReferralEnumeration.java ! src/share/classes/com/sun/jndi/ldap/SearchResultWithControls.java ! src/share/classes/com/sun/jndi/ldap/ServiceLocator.java ! src/share/classes/com/sun/jndi/ldap/SimpleClientId.java ! src/share/classes/com/sun/jndi/ldap/UnsolicitedResponseImpl.java ! src/share/classes/com/sun/jndi/ldap/VersionHelper.java ! src/share/classes/com/sun/jndi/ldap/VersionHelper12.java ! src/share/classes/com/sun/jndi/ldap/ext/StartTlsResponseImpl.java ! src/share/classes/com/sun/jndi/ldap/pool/ConnectionDesc.java ! src/share/classes/com/sun/jndi/ldap/pool/Connections.java ! src/share/classes/com/sun/jndi/ldap/pool/ConnectionsRef.java ! src/share/classes/com/sun/jndi/ldap/pool/ConnectionsWeakRef.java ! src/share/classes/com/sun/jndi/ldap/pool/Pool.java ! src/share/classes/com/sun/jndi/ldap/pool/PoolCallback.java ! src/share/classes/com/sun/jndi/ldap/pool/PoolCleaner.java ! src/share/classes/com/sun/jndi/ldap/pool/PooledConnection.java ! src/share/classes/com/sun/jndi/ldap/pool/PooledConnectionFactory.java ! src/share/classes/com/sun/jndi/ldap/sasl/DefaultCallbackHandler.java ! src/share/classes/com/sun/jndi/ldap/sasl/LdapSasl.java ! src/share/classes/com/sun/jndi/ldap/sasl/SaslInputStream.java ! src/share/classes/com/sun/jndi/ldap/sasl/SaslOutputStream.java ! src/share/classes/com/sun/jndi/rmi/registry/ReferenceWrapper.java ! src/share/classes/com/sun/jndi/rmi/registry/RegistryContext.java ! src/share/classes/com/sun/jndi/rmi/registry/RegistryContextFactory.java ! src/share/classes/com/sun/jndi/rmi/registry/RemoteReference.java ! src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java ! src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java ! src/share/classes/com/sun/jndi/toolkit/ctx/AtomicDirContext.java ! src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java ! src/share/classes/com/sun/jndi/toolkit/ctx/ComponentDirContext.java ! src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java ! src/share/classes/com/sun/jndi/toolkit/ctx/HeadTail.java ! src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeContext.java ! src/share/classes/com/sun/jndi/toolkit/ctx/PartialCompositeDirContext.java ! src/share/classes/com/sun/jndi/toolkit/ctx/StringHeadTail.java ! src/share/classes/com/sun/jndi/toolkit/dir/AttrFilter.java ! src/share/classes/com/sun/jndi/toolkit/dir/ContainmentFilter.java ! src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java ! src/share/classes/com/sun/jndi/toolkit/dir/DirSearch.java ! src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java ! src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java ! src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java ! src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java ! src/share/classes/com/sun/jndi/toolkit/url/GenericURLDirContext.java ! src/share/classes/com/sun/jndi/toolkit/url/Uri.java ! src/share/classes/com/sun/jndi/toolkit/url/UrlUtil.java ! src/share/classes/com/sun/jndi/url/corbaname/corbanameURLContextFactory.java ! src/share/classes/com/sun/jndi/url/dns/dnsURLContext.java ! src/share/classes/com/sun/jndi/url/dns/dnsURLContextFactory.java ! src/share/classes/com/sun/jndi/url/iiop/iiopURLContext.java ! src/share/classes/com/sun/jndi/url/iiop/iiopURLContextFactory.java ! src/share/classes/com/sun/jndi/url/iiopname/iiopnameURLContextFactory.java ! src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java ! src/share/classes/com/sun/jndi/url/ldap/ldapURLContextFactory.java ! src/share/classes/com/sun/jndi/url/ldaps/ldapsURLContextFactory.java ! src/share/classes/com/sun/jndi/url/rmi/rmiURLContext.java ! src/share/classes/com/sun/jndi/url/rmi/rmiURLContextFactory.java ! src/share/classes/com/sun/management/GarbageCollectorMXBean.java ! src/share/classes/com/sun/management/GcInfo.java ! src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java ! src/share/classes/com/sun/management/OperatingSystemMXBean.java ! src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java ! src/share/classes/com/sun/management/VMOption.java ! src/share/classes/com/sun/management/mgmt-overview.html ! src/share/classes/com/sun/management/package.html ! src/share/classes/com/sun/media/sound/AbstractDataLine.java ! src/share/classes/com/sun/media/sound/AbstractLine.java ! src/share/classes/com/sun/media/sound/AbstractMidiDevice.java ! src/share/classes/com/sun/media/sound/AbstractMidiDeviceProvider.java ! src/share/classes/com/sun/media/sound/AbstractMixer.java ! src/share/classes/com/sun/media/sound/AiffFileFormat.java ! src/share/classes/com/sun/media/sound/AiffFileReader.java ! src/share/classes/com/sun/media/sound/AiffFileWriter.java ! src/share/classes/com/sun/media/sound/AlawCodec.java ! src/share/classes/com/sun/media/sound/AuFileFormat.java ! src/share/classes/com/sun/media/sound/AuFileReader.java ! src/share/classes/com/sun/media/sound/AuFileWriter.java ! src/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java ! src/share/classes/com/sun/media/sound/AudioFloatConverter.java ! src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java ! src/share/classes/com/sun/media/sound/AudioFloatInputStream.java ! src/share/classes/com/sun/media/sound/AudioSynthesizer.java ! src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java ! src/share/classes/com/sun/media/sound/AutoClosingClip.java ! src/share/classes/com/sun/media/sound/AutoConnectSequencer.java ! src/share/classes/com/sun/media/sound/DLSInfo.java ! src/share/classes/com/sun/media/sound/DLSInstrument.java ! src/share/classes/com/sun/media/sound/DLSModulator.java ! src/share/classes/com/sun/media/sound/DLSRegion.java ! src/share/classes/com/sun/media/sound/DLSSample.java ! src/share/classes/com/sun/media/sound/DLSSampleLoop.java ! src/share/classes/com/sun/media/sound/DLSSampleOptions.java ! src/share/classes/com/sun/media/sound/DLSSoundbank.java ! src/share/classes/com/sun/media/sound/DLSSoundbankReader.java ! src/share/classes/com/sun/media/sound/DataPusher.java ! src/share/classes/com/sun/media/sound/DirectAudioDevice.java ! src/share/classes/com/sun/media/sound/DirectAudioDeviceProvider.java ! src/share/classes/com/sun/media/sound/EmergencySoundbank.java ! src/share/classes/com/sun/media/sound/EventDispatcher.java ! src/share/classes/com/sun/media/sound/FFT.java ! src/share/classes/com/sun/media/sound/FastShortMessage.java ! src/share/classes/com/sun/media/sound/FastSysexMessage.java ! src/share/classes/com/sun/media/sound/InvalidDataException.java ! src/share/classes/com/sun/media/sound/InvalidFormatException.java ! src/share/classes/com/sun/media/sound/JARSoundbankReader.java ! src/share/classes/com/sun/media/sound/JDK13Services.java ! src/share/classes/com/sun/media/sound/JSSecurityManager.java ! src/share/classes/com/sun/media/sound/JavaSoundAudioClip.java ! src/share/classes/com/sun/media/sound/MidiDeviceReceiver.java ! src/share/classes/com/sun/media/sound/MidiInDevice.java ! src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java ! src/share/classes/com/sun/media/sound/MidiOutDevice.java ! src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java ! src/share/classes/com/sun/media/sound/MidiUtils.java ! src/share/classes/com/sun/media/sound/ModelAbstractChannelMixer.java ! src/share/classes/com/sun/media/sound/ModelAbstractOscillator.java ! src/share/classes/com/sun/media/sound/ModelByteBuffer.java ! src/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java ! src/share/classes/com/sun/media/sound/ModelChannelMixer.java ! src/share/classes/com/sun/media/sound/ModelConnectionBlock.java ! src/share/classes/com/sun/media/sound/ModelDestination.java ! src/share/classes/com/sun/media/sound/ModelDirectedPlayer.java ! src/share/classes/com/sun/media/sound/ModelDirector.java ! src/share/classes/com/sun/media/sound/ModelIdentifier.java ! src/share/classes/com/sun/media/sound/ModelInstrument.java ! src/share/classes/com/sun/media/sound/ModelInstrumentComparator.java ! src/share/classes/com/sun/media/sound/ModelMappedInstrument.java ! src/share/classes/com/sun/media/sound/ModelOscillator.java ! src/share/classes/com/sun/media/sound/ModelOscillatorStream.java ! src/share/classes/com/sun/media/sound/ModelPatch.java ! src/share/classes/com/sun/media/sound/ModelPerformer.java ! src/share/classes/com/sun/media/sound/ModelSource.java ! src/share/classes/com/sun/media/sound/ModelStandardDirector.java ! src/share/classes/com/sun/media/sound/ModelStandardTransform.java ! src/share/classes/com/sun/media/sound/ModelTransform.java ! src/share/classes/com/sun/media/sound/ModelWavetable.java ! src/share/classes/com/sun/media/sound/PCMtoPCMCodec.java ! src/share/classes/com/sun/media/sound/Platform.java ! src/share/classes/com/sun/media/sound/PortMixer.java ! src/share/classes/com/sun/media/sound/PortMixerProvider.java ! src/share/classes/com/sun/media/sound/Printer.java ! src/share/classes/com/sun/media/sound/RIFFInvalidDataException.java ! src/share/classes/com/sun/media/sound/RIFFInvalidFormatException.java ! src/share/classes/com/sun/media/sound/RIFFReader.java ! src/share/classes/com/sun/media/sound/RIFFWriter.java ! src/share/classes/com/sun/media/sound/RealTimeSequencer.java ! src/share/classes/com/sun/media/sound/RealTimeSequencerProvider.java ! src/share/classes/com/sun/media/sound/ReferenceCountingDevice.java ! src/share/classes/com/sun/media/sound/SF2GlobalRegion.java ! src/share/classes/com/sun/media/sound/SF2Instrument.java ! src/share/classes/com/sun/media/sound/SF2InstrumentRegion.java ! src/share/classes/com/sun/media/sound/SF2Layer.java ! src/share/classes/com/sun/media/sound/SF2LayerRegion.java ! src/share/classes/com/sun/media/sound/SF2Modulator.java ! src/share/classes/com/sun/media/sound/SF2Region.java ! src/share/classes/com/sun/media/sound/SF2Sample.java ! src/share/classes/com/sun/media/sound/SF2Soundbank.java ! src/share/classes/com/sun/media/sound/SF2SoundbankReader.java ! src/share/classes/com/sun/media/sound/SimpleInstrument.java ! src/share/classes/com/sun/media/sound/SimpleSoundbank.java ! src/share/classes/com/sun/media/sound/SoftAbstractResampler.java ! src/share/classes/com/sun/media/sound/SoftAudioBuffer.java ! src/share/classes/com/sun/media/sound/SoftAudioProcessor.java ! src/share/classes/com/sun/media/sound/SoftAudioPusher.java ! src/share/classes/com/sun/media/sound/SoftChannel.java ! src/share/classes/com/sun/media/sound/SoftChannelProxy.java ! src/share/classes/com/sun/media/sound/SoftChorus.java ! src/share/classes/com/sun/media/sound/SoftControl.java ! src/share/classes/com/sun/media/sound/SoftCubicResampler.java ! src/share/classes/com/sun/media/sound/SoftEnvelopeGenerator.java ! src/share/classes/com/sun/media/sound/SoftFilter.java ! src/share/classes/com/sun/media/sound/SoftInstrument.java ! src/share/classes/com/sun/media/sound/SoftJitterCorrector.java ! src/share/classes/com/sun/media/sound/SoftLanczosResampler.java ! src/share/classes/com/sun/media/sound/SoftLimiter.java ! src/share/classes/com/sun/media/sound/SoftLinearResampler.java ! src/share/classes/com/sun/media/sound/SoftLinearResampler2.java ! src/share/classes/com/sun/media/sound/SoftLowFrequencyOscillator.java ! src/share/classes/com/sun/media/sound/SoftMainMixer.java ! src/share/classes/com/sun/media/sound/SoftMidiAudioFileReader.java ! src/share/classes/com/sun/media/sound/SoftMixingClip.java ! src/share/classes/com/sun/media/sound/SoftMixingDataLine.java ! src/share/classes/com/sun/media/sound/SoftMixingMainMixer.java ! src/share/classes/com/sun/media/sound/SoftMixingMixer.java ! src/share/classes/com/sun/media/sound/SoftMixingMixerProvider.java ! src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java ! src/share/classes/com/sun/media/sound/SoftPerformer.java ! src/share/classes/com/sun/media/sound/SoftPointResampler.java ! src/share/classes/com/sun/media/sound/SoftProcess.java ! src/share/classes/com/sun/media/sound/SoftProvider.java ! src/share/classes/com/sun/media/sound/SoftReceiver.java ! src/share/classes/com/sun/media/sound/SoftResampler.java ! src/share/classes/com/sun/media/sound/SoftResamplerStreamer.java ! src/share/classes/com/sun/media/sound/SoftReverb.java ! src/share/classes/com/sun/media/sound/SoftShortMessage.java ! src/share/classes/com/sun/media/sound/SoftSincResampler.java ! src/share/classes/com/sun/media/sound/SoftSynthesizer.java ! src/share/classes/com/sun/media/sound/SoftTuning.java ! src/share/classes/com/sun/media/sound/SoftVoice.java ! src/share/classes/com/sun/media/sound/StandardMidiFileReader.java ! src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java ! src/share/classes/com/sun/media/sound/SunCodec.java ! src/share/classes/com/sun/media/sound/SunFileReader.java ! src/share/classes/com/sun/media/sound/SunFileWriter.java ! src/share/classes/com/sun/media/sound/Toolkit.java ! src/share/classes/com/sun/media/sound/UlawCodec.java ! src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java ! src/share/classes/com/sun/media/sound/WaveFileFormat.java ! src/share/classes/com/sun/media/sound/WaveFileReader.java ! src/share/classes/com/sun/media/sound/WaveFileWriter.java ! src/share/classes/com/sun/media/sound/WaveFloatFileReader.java ! src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java ! src/share/classes/com/sun/naming/internal/FactoryEnumeration.java ! src/share/classes/com/sun/naming/internal/NamedWeakReference.java ! src/share/classes/com/sun/naming/internal/ResourceManager.java ! src/share/classes/com/sun/naming/internal/VersionHelper.java ! src/share/classes/com/sun/naming/internal/VersionHelper12.java ! src/share/classes/com/sun/net/httpserver/Authenticator.java ! src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java ! src/share/classes/com/sun/net/httpserver/Filter.java ! src/share/classes/com/sun/net/httpserver/Headers.java ! src/share/classes/com/sun/net/httpserver/HttpContext.java ! src/share/classes/com/sun/net/httpserver/HttpExchange.java ! src/share/classes/com/sun/net/httpserver/HttpHandler.java ! src/share/classes/com/sun/net/httpserver/HttpPrincipal.java ! src/share/classes/com/sun/net/httpserver/HttpServer.java ! src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java ! src/share/classes/com/sun/net/httpserver/HttpsExchange.java ! src/share/classes/com/sun/net/httpserver/HttpsParameters.java ! src/share/classes/com/sun/net/httpserver/HttpsServer.java ! src/share/classes/com/sun/net/httpserver/package-info.java ! src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java ! src/share/classes/com/sun/net/httpserver/spi/package-info.java ! src/share/classes/com/sun/net/ssl/HostnameVerifier.java ! src/share/classes/com/sun/net/ssl/HttpsURLConnection.java ! src/share/classes/com/sun/net/ssl/KeyManager.java ! src/share/classes/com/sun/net/ssl/KeyManagerFactory.java ! src/share/classes/com/sun/net/ssl/KeyManagerFactorySpi.java ! src/share/classes/com/sun/net/ssl/SSLContext.java ! src/share/classes/com/sun/net/ssl/SSLContextSpi.java ! src/share/classes/com/sun/net/ssl/SSLPermission.java ! src/share/classes/com/sun/net/ssl/SSLSecurity.java ! src/share/classes/com/sun/net/ssl/TrustManager.java ! src/share/classes/com/sun/net/ssl/TrustManagerFactory.java ! src/share/classes/com/sun/net/ssl/TrustManagerFactorySpi.java ! src/share/classes/com/sun/net/ssl/X509KeyManager.java ! src/share/classes/com/sun/net/ssl/X509TrustManager.java ! src/share/classes/com/sun/net/ssl/internal/ssl/Provider.java ! src/share/classes/com/sun/net/ssl/internal/ssl/X509ExtendedTrustManager.java ! src/share/classes/com/sun/net/ssl/internal/www/protocol/https/DelegateHttpsURLConnection.java ! src/share/classes/com/sun/net/ssl/internal/www/protocol/https/Handler.java ! src/share/classes/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java ! src/share/classes/com/sun/net/ssl/package.html ! src/share/classes/com/sun/nio/file/ExtendedCopyOption.java ! src/share/classes/com/sun/nio/file/ExtendedOpenOption.java ! src/share/classes/com/sun/nio/file/ExtendedWatchEventModifier.java ! src/share/classes/com/sun/nio/file/SensitivityWatchEventModifier.java ! src/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java ! src/share/classes/com/sun/nio/sctp/Association.java ! src/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java ! src/share/classes/com/sun/nio/sctp/HandlerResult.java ! src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java ! src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java ! src/share/classes/com/sun/nio/sctp/InvalidStreamException.java ! src/share/classes/com/sun/nio/sctp/MessageInfo.java ! src/share/classes/com/sun/nio/sctp/Notification.java ! src/share/classes/com/sun/nio/sctp/NotificationHandler.java ! src/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java ! src/share/classes/com/sun/nio/sctp/SctpChannel.java ! src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java ! src/share/classes/com/sun/nio/sctp/SctpServerChannel.java ! src/share/classes/com/sun/nio/sctp/SctpSocketOption.java ! src/share/classes/com/sun/nio/sctp/SctpStandardSocketOption.java ! src/share/classes/com/sun/nio/sctp/SendFailedNotification.java ! src/share/classes/com/sun/nio/sctp/ShutdownNotification.java ! src/share/classes/com/sun/nio/sctp/package-info.java ! src/share/classes/com/sun/pept/Delegate.java ! src/share/classes/com/sun/pept/encoding/Decoder.java ! src/share/classes/com/sun/pept/encoding/Encoder.java ! src/share/classes/com/sun/pept/ept/Acceptor.java ! src/share/classes/com/sun/pept/ept/ContactInfo.java ! src/share/classes/com/sun/pept/ept/ContactInfoList.java ! src/share/classes/com/sun/pept/ept/ContactInfoListIterator.java ! src/share/classes/com/sun/pept/ept/EPTFactory.java ! src/share/classes/com/sun/pept/ept/MessageInfo.java ! src/share/classes/com/sun/pept/presentation/MessageStruct.java ! src/share/classes/com/sun/pept/presentation/Stub.java ! src/share/classes/com/sun/pept/presentation/TargetFinder.java ! src/share/classes/com/sun/pept/presentation/Tie.java ! src/share/classes/com/sun/pept/protocol/Interceptors.java ! src/share/classes/com/sun/pept/protocol/MessageDispatcher.java ! src/share/classes/com/sun/pept/transport/Connection.java ! src/share/classes/com/sun/rmi/rmid/ExecOptionPermission.java ! src/share/classes/com/sun/rmi/rmid/ExecPermission.java ! src/share/classes/com/sun/rowset/CachedRowSetImpl.java ! src/share/classes/com/sun/rowset/FilteredRowSetImpl.java ! src/share/classes/com/sun/rowset/JdbcRowSetImpl.java ! src/share/classes/com/sun/rowset/JdbcRowSetResourceBundle.java ! src/share/classes/com/sun/rowset/JoinRowSetImpl.java ! src/share/classes/com/sun/rowset/RowSetResourceBundle.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_es.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_fr.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_it.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_CN.properties ! src/share/classes/com/sun/rowset/RowSetResourceBundle_zh_TW.properties ! src/share/classes/com/sun/rowset/WebRowSetImpl.java ! src/share/classes/com/sun/rowset/internal/BaseRow.java ! src/share/classes/com/sun/rowset/internal/CachedRowSetReader.java ! src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java ! src/share/classes/com/sun/rowset/internal/InsertRow.java ! src/share/classes/com/sun/rowset/internal/Row.java ! src/share/classes/com/sun/rowset/internal/SyncResolverImpl.java ! src/share/classes/com/sun/rowset/internal/WebRowSetXmlReader.java ! src/share/classes/com/sun/rowset/internal/WebRowSetXmlWriter.java ! src/share/classes/com/sun/rowset/internal/XmlErrorHandler.java ! src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java ! src/share/classes/com/sun/rowset/internal/XmlResolver.java ! src/share/classes/com/sun/rowset/package.html ! src/share/classes/com/sun/rowset/providers/RIOptimisticProvider.java ! src/share/classes/com/sun/rowset/providers/RIXMLProvider.java ! src/share/classes/com/sun/rowset/providers/package.html ! src/share/classes/com/sun/script/javascript/ExternalScriptable.java ! src/share/classes/com/sun/script/javascript/JSAdapter.java ! src/share/classes/com/sun/script/javascript/JavaAdapter.java ! src/share/classes/com/sun/script/javascript/RhinoClassShutter.java ! src/share/classes/com/sun/script/javascript/RhinoCompiledScript.java ! src/share/classes/com/sun/script/javascript/RhinoScriptEngine.java ! src/share/classes/com/sun/script/javascript/RhinoScriptEngineFactory.java ! src/share/classes/com/sun/script/javascript/RhinoTopLevel.java ! src/share/classes/com/sun/script/javascript/RhinoWrapFactory.java ! src/share/classes/com/sun/script/util/BindingsBase.java ! src/share/classes/com/sun/script/util/BindingsEntrySet.java ! src/share/classes/com/sun/script/util/BindingsImpl.java ! src/share/classes/com/sun/script/util/InterfaceImplementor.java ! src/share/classes/com/sun/script/util/ScriptEngineFactoryBase.java ! src/share/classes/com/sun/security/auth/LdapPrincipal.java ! src/share/classes/com/sun/security/auth/NTDomainPrincipal.java ! src/share/classes/com/sun/security/auth/NTNumericCredential.java ! src/share/classes/com/sun/security/auth/NTSid.java ! src/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java ! src/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java ! src/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java ! src/share/classes/com/sun/security/auth/NTSidUserPrincipal.java ! src/share/classes/com/sun/security/auth/NTUserPrincipal.java ! src/share/classes/com/sun/security/auth/PolicyFile.java ! src/share/classes/com/sun/security/auth/PolicyParser.java ! src/share/classes/com/sun/security/auth/PrincipalComparator.java ! src/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java ! src/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java ! src/share/classes/com/sun/security/auth/SolarisPrincipal.java ! src/share/classes/com/sun/security/auth/SubjectCodeSource.java ! src/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java ! src/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java ! src/share/classes/com/sun/security/auth/UnixPrincipal.java ! src/share/classes/com/sun/security/auth/UserPrincipal.java ! src/share/classes/com/sun/security/auth/X500Principal.java ! src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java ! src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java ! src/share/classes/com/sun/security/auth/login/ConfigFile.java ! src/share/classes/com/sun/security/auth/module/Crypt.java ! src/share/classes/com/sun/security/auth/module/JndiLoginModule.java ! src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java ! src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java ! src/share/classes/com/sun/security/auth/module/LdapLoginModule.java ! src/share/classes/com/sun/security/auth/module/NTLoginModule.java ! src/share/classes/com/sun/security/auth/module/NTSystem.java ! src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java ! src/share/classes/com/sun/security/auth/module/SolarisSystem.java ! src/share/classes/com/sun/security/auth/module/UnixLoginModule.java ! src/share/classes/com/sun/security/auth/module/UnixSystem.java ! src/share/classes/com/sun/security/cert/internal/x509/X509V1CertImpl.java ! src/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java ! src/share/classes/com/sun/security/jgss/ExtendedGSSContext.java ! src/share/classes/com/sun/security/jgss/GSSUtil.java ! src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java ! src/share/classes/com/sun/security/jgss/InquireType.java ! src/share/classes/com/sun/security/sasl/ClientFactoryImpl.java ! src/share/classes/com/sun/security/sasl/CramMD5Base.java ! src/share/classes/com/sun/security/sasl/CramMD5Client.java ! src/share/classes/com/sun/security/sasl/CramMD5Server.java ! src/share/classes/com/sun/security/sasl/ExternalClient.java ! src/share/classes/com/sun/security/sasl/PlainClient.java ! src/share/classes/com/sun/security/sasl/Provider.java ! src/share/classes/com/sun/security/sasl/ServerFactoryImpl.java ! src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java ! src/share/classes/com/sun/security/sasl/digest/DigestMD5Client.java ! src/share/classes/com/sun/security/sasl/digest/DigestMD5Server.java ! src/share/classes/com/sun/security/sasl/digest/FactoryImpl.java ! src/share/classes/com/sun/security/sasl/digest/SecurityCtx.java ! src/share/classes/com/sun/security/sasl/gsskerb/FactoryImpl.java ! src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Base.java ! src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java ! src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java ! src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java ! src/share/classes/com/sun/security/sasl/util/PolicyUtils.java ! src/share/classes/com/sun/servicetag/BrowserSupport.java ! src/share/classes/com/sun/servicetag/Installer.java ! src/share/classes/com/sun/servicetag/LinuxSystemEnvironment.java ! src/share/classes/com/sun/servicetag/RegistrationData.java ! src/share/classes/com/sun/servicetag/RegistrationDocument.java ! src/share/classes/com/sun/servicetag/Registry.java ! src/share/classes/com/sun/servicetag/ServiceTag.java ! src/share/classes/com/sun/servicetag/SolarisServiceTag.java ! src/share/classes/com/sun/servicetag/SolarisSystemEnvironment.java ! src/share/classes/com/sun/servicetag/SunConnection.java ! src/share/classes/com/sun/servicetag/SystemEnvironment.java ! src/share/classes/com/sun/servicetag/UnauthorizedAccessException.java ! src/share/classes/com/sun/servicetag/Util.java ! src/share/classes/com/sun/servicetag/WindowsSystemEnvironment.java ! src/share/classes/com/sun/servicetag/package.html ! src/share/classes/com/sun/servicetag/resources/javase_5_swordfish.properties ! src/share/classes/com/sun/servicetag/resources/javase_6_swordfish.properties ! src/share/classes/com/sun/servicetag/resources/javase_7_swordfish.properties ! src/share/classes/com/sun/servicetag/resources/register.html ! src/share/classes/com/sun/servicetag/resources/register_ja.html ! src/share/classes/com/sun/servicetag/resources/register_zh_CN.html ! src/share/classes/com/sun/tools/attach/AgentInitializationException.java ! src/share/classes/com/sun/tools/attach/AgentLoadException.java ! src/share/classes/com/sun/tools/attach/AttachNotSupportedException.java ! src/share/classes/com/sun/tools/attach/AttachPermission.java ! src/share/classes/com/sun/tools/attach/VirtualMachine.java ! src/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java ! src/share/classes/com/sun/tools/attach/package.html ! src/share/classes/com/sun/tools/attach/spi/AttachProvider.java ! src/share/classes/com/sun/tools/attach/spi/package.html ! src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java ! src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java ! src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java ! src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpecList.java ! src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java ! src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java ! src/share/classes/com/sun/tools/example/debug/bdi/InputListener.java ! src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java ! src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java ! src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java ! src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java ! src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java ! src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java ! src/share/classes/com/sun/tools/example/debug/bdi/OutputListener.java ! src/share/classes/com/sun/tools/example/debug/bdi/ParseException.java ! src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/Session.java ! src/share/classes/com/sun/tools/example/debug/bdi/SessionListener.java ! src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java ! src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java ! src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java ! src/share/classes/com/sun/tools/example/debug/bdi/SpecListener.java ! src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java ! src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java ! src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java ! src/share/classes/com/sun/tools/example/debug/bdi/Utils.java ! src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java ! src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java ! src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java ! src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java ! src/share/classes/com/sun/tools/example/debug/event/JDIListener.java ! src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java ! src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java ! src/share/classes/com/sun/tools/example/debug/expr/ASCII_UCodeESC_CharStream.java ! src/share/classes/com/sun/tools/example/debug/expr/Expr.jj ! src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java ! src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserConstants.java ! src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java ! src/share/classes/com/sun/tools/example/debug/expr/LValue.java ! src/share/classes/com/sun/tools/example/debug/expr/ParseException.java ! src/share/classes/com/sun/tools/example/debug/expr/Token.java ! src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java ! src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java ! src/share/classes/com/sun/tools/example/debug/gui/ClassManager.java ! src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java ! src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java ! src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java ! src/share/classes/com/sun/tools/example/debug/gui/ContextListener.java ! src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java ! src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java ! src/share/classes/com/sun/tools/example/debug/gui/Environment.java ! src/share/classes/com/sun/tools/example/debug/gui/GUI.java ! src/share/classes/com/sun/tools/example/debug/gui/Icons.java ! src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java ! src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java ! src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java ! src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java ! src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java ! src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java ! src/share/classes/com/sun/tools/example/debug/gui/OutputSink.java ! src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java ! src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceListener.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java ! src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java ! src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java ! src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java ! src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java ! src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java ! src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java ! src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java ! src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java ! src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/Commands.java ! src/share/classes/com/sun/tools/example/debug/tty/Env.java ! src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java ! src/share/classes/com/sun/tools/example/debug/tty/EventNotifier.java ! src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java ! src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java ! src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java ! src/share/classes/com/sun/tools/example/debug/tty/MessageOutput.java ! src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java ! src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java ! src/share/classes/com/sun/tools/example/debug/tty/TTY.java ! src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java ! src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java ! src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java ! src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java ! src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java ! src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java ! src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java ! src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java ! src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java ! src/share/classes/com/sun/tools/example/trace/EventThread.java ! src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java ! src/share/classes/com/sun/tools/example/trace/Trace.java ! src/share/classes/com/sun/tools/extcheck/ExtCheck.java ! src/share/classes/com/sun/tools/extcheck/Main.java ! src/share/classes/com/sun/tools/hat/Main.java ! src/share/classes/com/sun/tools/hat/build.xml ! src/share/classes/com/sun/tools/hat/internal/model/AbstractJavaHeapObjectVisitor.java ! src/share/classes/com/sun/tools/hat/internal/model/ArrayTypeCodes.java ! src/share/classes/com/sun/tools/hat/internal/model/HackJavaValue.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaBoolean.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaByte.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaChar.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaDouble.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaField.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaFloat.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObjectVisitor.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaInt.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaLazyReadObject.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaLong.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaObject.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaObjectArray.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaObjectRef.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaShort.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaStatic.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaThing.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaValue.java ! src/share/classes/com/sun/tools/hat/internal/model/JavaValueArray.java ! src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludes.java ! src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java ! src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java ! src/share/classes/com/sun/tools/hat/internal/model/ReferenceChain.java ! src/share/classes/com/sun/tools/hat/internal/model/Root.java ! src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java ! src/share/classes/com/sun/tools/hat/internal/model/StackFrame.java ! src/share/classes/com/sun/tools/hat/internal/model/StackTrace.java ! src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java ! src/share/classes/com/sun/tools/hat/internal/oql/OQLException.java ! src/share/classes/com/sun/tools/hat/internal/oql/OQLQuery.java ! src/share/classes/com/sun/tools/hat/internal/oql/ObjectVisitor.java ! src/share/classes/com/sun/tools/hat/internal/parser/FileReadBuffer.java ! src/share/classes/com/sun/tools/hat/internal/parser/HprofReader.java ! src/share/classes/com/sun/tools/hat/internal/parser/MappedReadBuffer.java ! src/share/classes/com/sun/tools/hat/internal/parser/PositionDataInputStream.java ! src/share/classes/com/sun/tools/hat/internal/parser/PositionInputStream.java ! src/share/classes/com/sun/tools/hat/internal/parser/ReadBuffer.java ! src/share/classes/com/sun/tools/hat/internal/parser/Reader.java ! src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/AllRootsQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/HistogramQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java ! src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java ! src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/ObjectQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/PlatformClasses.java ! src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java ! src/share/classes/com/sun/tools/hat/internal/server/QueryListener.java ! src/share/classes/com/sun/tools/hat/internal/server/ReachableQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/RootStackQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/RootsQuery.java ! src/share/classes/com/sun/tools/hat/internal/util/ArraySorter.java ! src/share/classes/com/sun/tools/hat/internal/util/Comparer.java ! src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java ! src/share/classes/com/sun/tools/hat/internal/util/Misc.java ! src/share/classes/com/sun/tools/hat/internal/util/VectorSorter.java ! src/share/classes/com/sun/tools/hat/resources/hat.js ! src/share/classes/com/sun/tools/hat/resources/oqlhelp.html ! src/share/classes/com/sun/tools/jconsole/JConsoleContext.java ! src/share/classes/com/sun/tools/jconsole/JConsolePlugin.java ! src/share/classes/com/sun/tools/jconsole/package.html ! src/share/classes/com/sun/tools/jdi/AbstractLauncher.java ! src/share/classes/com/sun/tools/jdi/ArrayReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/ArrayTypeImpl.java ! src/share/classes/com/sun/tools/jdi/BaseLineInfo.java ! src/share/classes/com/sun/tools/jdi/BooleanTypeImpl.java ! src/share/classes/com/sun/tools/jdi/BooleanValueImpl.java ! src/share/classes/com/sun/tools/jdi/ByteTypeImpl.java ! src/share/classes/com/sun/tools/jdi/ByteValueImpl.java ! src/share/classes/com/sun/tools/jdi/CharTypeImpl.java ! src/share/classes/com/sun/tools/jdi/CharValueImpl.java ! src/share/classes/com/sun/tools/jdi/ClassLoaderReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/ClassObjectReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/ClassTypeImpl.java ! src/share/classes/com/sun/tools/jdi/CommandSender.java ! src/share/classes/com/sun/tools/jdi/ConcreteMethodImpl.java ! src/share/classes/com/sun/tools/jdi/ConnectorImpl.java ! src/share/classes/com/sun/tools/jdi/DoubleTypeImpl.java ! src/share/classes/com/sun/tools/jdi/DoubleValueImpl.java ! src/share/classes/com/sun/tools/jdi/EventQueueImpl.java ! src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java ! src/share/classes/com/sun/tools/jdi/EventSetImpl.java ! src/share/classes/com/sun/tools/jdi/FieldImpl.java ! src/share/classes/com/sun/tools/jdi/FloatTypeImpl.java ! src/share/classes/com/sun/tools/jdi/FloatValueImpl.java ! src/share/classes/com/sun/tools/jdi/GenericAttachingConnector.java ! src/share/classes/com/sun/tools/jdi/GenericListeningConnector.java ! src/share/classes/com/sun/tools/jdi/IntegerTypeImpl.java ! src/share/classes/com/sun/tools/jdi/IntegerValueImpl.java ! src/share/classes/com/sun/tools/jdi/InterfaceTypeImpl.java ! src/share/classes/com/sun/tools/jdi/InternalEventHandler.java ! src/share/classes/com/sun/tools/jdi/JDWPException.java ! src/share/classes/com/sun/tools/jdi/JNITypeParser.java ! src/share/classes/com/sun/tools/jdi/LineInfo.java ! src/share/classes/com/sun/tools/jdi/LinkedHashMap.java ! src/share/classes/com/sun/tools/jdi/LocalVariableImpl.java ! src/share/classes/com/sun/tools/jdi/LocationImpl.java ! src/share/classes/com/sun/tools/jdi/LockObject.java ! src/share/classes/com/sun/tools/jdi/LongTypeImpl.java ! src/share/classes/com/sun/tools/jdi/LongValueImpl.java ! src/share/classes/com/sun/tools/jdi/META-INF/services/com.sun.jdi.connect.Connector ! src/share/classes/com/sun/tools/jdi/META-INF/services/com.sun.jdi.connect.spi.TransportService ! src/share/classes/com/sun/tools/jdi/MethodImpl.java ! src/share/classes/com/sun/tools/jdi/MirrorImpl.java ! src/share/classes/com/sun/tools/jdi/MonitorInfoImpl.java ! src/share/classes/com/sun/tools/jdi/NonConcreteMethodImpl.java ! src/share/classes/com/sun/tools/jdi/ObjectReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/ObsoleteMethodImpl.java ! src/share/classes/com/sun/tools/jdi/Packet.java ! src/share/classes/com/sun/tools/jdi/PacketStream.java ! src/share/classes/com/sun/tools/jdi/PrimitiveTypeImpl.java ! src/share/classes/com/sun/tools/jdi/PrimitiveValueImpl.java ! src/share/classes/com/sun/tools/jdi/ProcessAttachingConnector.java ! src/share/classes/com/sun/tools/jdi/RawCommandLineLauncher.java ! src/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java ! src/share/classes/com/sun/tools/jdi/SDE.java ! src/share/classes/com/sun/tools/jdi/ShortTypeImpl.java ! src/share/classes/com/sun/tools/jdi/ShortValueImpl.java ! src/share/classes/com/sun/tools/jdi/SocketAttachingConnector.java ! src/share/classes/com/sun/tools/jdi/SocketListeningConnector.java ! src/share/classes/com/sun/tools/jdi/SocketTransportService.java ! src/share/classes/com/sun/tools/jdi/StackFrameImpl.java ! src/share/classes/com/sun/tools/jdi/StratumLineInfo.java ! src/share/classes/com/sun/tools/jdi/StringReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/SunCommandLineLauncher.java ! src/share/classes/com/sun/tools/jdi/TargetVM.java ! src/share/classes/com/sun/tools/jdi/ThreadAction.java ! src/share/classes/com/sun/tools/jdi/ThreadGroupReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/ThreadListener.java ! src/share/classes/com/sun/tools/jdi/ThreadReferenceImpl.java ! src/share/classes/com/sun/tools/jdi/TypeComponentImpl.java ! src/share/classes/com/sun/tools/jdi/TypeImpl.java ! src/share/classes/com/sun/tools/jdi/VMAction.java ! src/share/classes/com/sun/tools/jdi/VMListener.java ! src/share/classes/com/sun/tools/jdi/VMModifiers.java ! src/share/classes/com/sun/tools/jdi/VMState.java ! src/share/classes/com/sun/tools/jdi/ValueContainer.java ! src/share/classes/com/sun/tools/jdi/ValueImpl.java ! src/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java ! src/share/classes/com/sun/tools/jdi/VirtualMachineManagerImpl.java ! src/share/classes/com/sun/tools/jdi/VirtualMachineManagerService.java ! src/share/classes/com/sun/tools/jdi/VoidTypeImpl.java ! src/share/classes/com/sun/tools/jdi/VoidValueImpl.java ! src/share/classes/com/sun/tools/script/shell/Main.java ! src/share/classes/com/sun/tools/script/shell/init.js ! src/share/classes/com/sun/tools/script/shell/messages.properties ! src/share/classes/com/sun/tracing/Probe.java ! src/share/classes/com/sun/tracing/ProbeName.java ! src/share/classes/com/sun/tracing/Provider.java ! src/share/classes/com/sun/tracing/ProviderName.java ! src/share/classes/com/sun/tracing/dtrace/ArgsAttributes.java ! src/share/classes/com/sun/tracing/dtrace/Attributes.java ! src/share/classes/com/sun/tracing/dtrace/DependencyClass.java ! src/share/classes/com/sun/tracing/dtrace/FunctionAttributes.java ! src/share/classes/com/sun/tracing/dtrace/FunctionName.java ! src/share/classes/com/sun/tracing/dtrace/ModuleAttributes.java ! src/share/classes/com/sun/tracing/dtrace/ModuleName.java ! src/share/classes/com/sun/tracing/dtrace/NameAttributes.java ! src/share/classes/com/sun/tracing/dtrace/ProviderAttributes.java ! src/share/classes/com/sun/tracing/dtrace/StabilityLevel.java ! src/share/classes/com/sun/tracing/dtrace/package-info.java ! src/share/classes/com/sun/tracing/package-info.java ! src/share/classes/java/applet/Applet.java ! src/share/classes/java/applet/AppletContext.java ! src/share/classes/java/applet/AppletStub.java ! src/share/classes/java/applet/AudioClip.java ! src/share/classes/java/applet/package.html ! src/share/classes/java/awt/AWTError.java ! src/share/classes/java/awt/AWTEvent.java ! src/share/classes/java/awt/AWTEventMulticaster.java ! src/share/classes/java/awt/AWTException.java ! src/share/classes/java/awt/AWTKeyStroke.java ! src/share/classes/java/awt/AWTPermission.java ! src/share/classes/java/awt/ActiveEvent.java ! src/share/classes/java/awt/Adjustable.java ! src/share/classes/java/awt/AlphaComposite.java ! src/share/classes/java/awt/AttributeValue.java ! src/share/classes/java/awt/BasicStroke.java ! src/share/classes/java/awt/BorderLayout.java ! src/share/classes/java/awt/BufferCapabilities.java ! src/share/classes/java/awt/Button.java ! src/share/classes/java/awt/Canvas.java ! src/share/classes/java/awt/CardLayout.java ! src/share/classes/java/awt/Checkbox.java ! src/share/classes/java/awt/CheckboxGroup.java ! src/share/classes/java/awt/CheckboxMenuItem.java ! src/share/classes/java/awt/Choice.java ! src/share/classes/java/awt/Color.java ! src/share/classes/java/awt/ColorPaintContext.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/ComponentOrientation.java ! src/share/classes/java/awt/Composite.java ! src/share/classes/java/awt/CompositeContext.java ! src/share/classes/java/awt/Conditional.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java ! src/share/classes/java/awt/Cursor.java ! src/share/classes/java/awt/DefaultFocusTraversalPolicy.java ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/Desktop.java ! src/share/classes/java/awt/Dialog.java ! src/share/classes/java/awt/Dimension.java ! src/share/classes/java/awt/DisplayMode.java ! src/share/classes/java/awt/Event.java ! src/share/classes/java/awt/EventDispatchThread.java ! src/share/classes/java/awt/EventFilter.java ! src/share/classes/java/awt/EventQueue.java ! src/share/classes/java/awt/FileDialog.java ! src/share/classes/java/awt/FlowLayout.java ! src/share/classes/java/awt/FocusTraversalPolicy.java ! src/share/classes/java/awt/Font.java ! src/share/classes/java/awt/FontFormatException.java ! src/share/classes/java/awt/FontMetrics.java ! src/share/classes/java/awt/Frame.java ! src/share/classes/java/awt/GradientPaint.java ! src/share/classes/java/awt/GradientPaintContext.java ! src/share/classes/java/awt/Graphics.java ! src/share/classes/java/awt/Graphics2D.java ! src/share/classes/java/awt/GraphicsCallback.java ! src/share/classes/java/awt/GraphicsConfigTemplate.java ! src/share/classes/java/awt/GraphicsConfiguration.java ! src/share/classes/java/awt/GraphicsDevice.java ! src/share/classes/java/awt/GraphicsEnvironment.java ! src/share/classes/java/awt/GridBagConstraints.java ! src/share/classes/java/awt/GridBagLayout.java ! src/share/classes/java/awt/GridBagLayoutInfo.java ! src/share/classes/java/awt/GridLayout.java ! src/share/classes/java/awt/HeadlessException.java ! src/share/classes/java/awt/IllegalComponentStateException.java ! src/share/classes/java/awt/Image.java ! src/share/classes/java/awt/ImageCapabilities.java ! src/share/classes/java/awt/Insets.java ! src/share/classes/java/awt/ItemSelectable.java ! src/share/classes/java/awt/JobAttributes.java ! src/share/classes/java/awt/KeyEventDispatcher.java ! src/share/classes/java/awt/KeyEventPostProcessor.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/Label.java ! src/share/classes/java/awt/LayoutManager.java ! src/share/classes/java/awt/LayoutManager2.java ! src/share/classes/java/awt/LinearGradientPaint.java ! src/share/classes/java/awt/LinearGradientPaintContext.java ! src/share/classes/java/awt/List.java ! src/share/classes/java/awt/MediaTracker.java ! src/share/classes/java/awt/Menu.java ! src/share/classes/java/awt/MenuBar.java ! src/share/classes/java/awt/MenuComponent.java ! src/share/classes/java/awt/MenuContainer.java ! src/share/classes/java/awt/MenuItem.java ! src/share/classes/java/awt/MenuShortcut.java ! src/share/classes/java/awt/ModalEventFilter.java ! src/share/classes/java/awt/MouseInfo.java ! src/share/classes/java/awt/MultipleGradientPaint.java ! src/share/classes/java/awt/MultipleGradientPaintContext.java ! src/share/classes/java/awt/PageAttributes.java ! src/share/classes/java/awt/Paint.java ! src/share/classes/java/awt/PaintContext.java ! src/share/classes/java/awt/Panel.java ! src/share/classes/java/awt/Point.java ! src/share/classes/java/awt/PointerInfo.java ! src/share/classes/java/awt/Polygon.java ! src/share/classes/java/awt/PopupMenu.java ! src/share/classes/java/awt/PrintGraphics.java ! src/share/classes/java/awt/PrintJob.java ! src/share/classes/java/awt/RadialGradientPaint.java ! src/share/classes/java/awt/RadialGradientPaintContext.java ! src/share/classes/java/awt/Rectangle.java ! src/share/classes/java/awt/RenderingHints.java ! src/share/classes/java/awt/Robot.java ! src/share/classes/java/awt/ScrollPane.java ! src/share/classes/java/awt/ScrollPaneAdjustable.java ! src/share/classes/java/awt/Scrollbar.java ! src/share/classes/java/awt/SentEvent.java ! src/share/classes/java/awt/SequencedEvent.java ! src/share/classes/java/awt/Shape.java ! src/share/classes/java/awt/SplashScreen.java ! src/share/classes/java/awt/Stroke.java ! src/share/classes/java/awt/SystemColor.java ! src/share/classes/java/awt/SystemTray.java ! src/share/classes/java/awt/TextArea.java ! src/share/classes/java/awt/TextComponent.java ! src/share/classes/java/awt/TextField.java ! src/share/classes/java/awt/TexturePaint.java ! src/share/classes/java/awt/TexturePaintContext.java ! src/share/classes/java/awt/Toolkit.java ! src/share/classes/java/awt/Transparency.java ! src/share/classes/java/awt/TrayIcon.java ! src/share/classes/java/awt/Window.java ! src/share/classes/java/awt/color/CMMException.java ! src/share/classes/java/awt/color/ColorSpace.java ! src/share/classes/java/awt/color/ICC_ColorSpace.java ! src/share/classes/java/awt/color/ICC_Profile.java ! src/share/classes/java/awt/color/ICC_ProfileGray.java ! src/share/classes/java/awt/color/ICC_ProfileRGB.java ! src/share/classes/java/awt/color/ProfileDataException.java ! src/share/classes/java/awt/color/package.html ! src/share/classes/java/awt/datatransfer/Clipboard.java ! src/share/classes/java/awt/datatransfer/ClipboardOwner.java ! src/share/classes/java/awt/datatransfer/DataFlavor.java ! src/share/classes/java/awt/datatransfer/FlavorEvent.java ! src/share/classes/java/awt/datatransfer/FlavorListener.java ! src/share/classes/java/awt/datatransfer/FlavorMap.java ! src/share/classes/java/awt/datatransfer/FlavorTable.java ! src/share/classes/java/awt/datatransfer/MimeType.java ! src/share/classes/java/awt/datatransfer/MimeTypeParameterList.java ! src/share/classes/java/awt/datatransfer/MimeTypeParseException.java ! src/share/classes/java/awt/datatransfer/StringSelection.java ! src/share/classes/java/awt/datatransfer/SystemFlavorMap.java ! src/share/classes/java/awt/datatransfer/Transferable.java ! src/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java ! src/share/classes/java/awt/datatransfer/package.html ! src/share/classes/java/awt/dnd/Autoscroll.java ! src/share/classes/java/awt/dnd/DnDConstants.java ! src/share/classes/java/awt/dnd/DnDEventMulticaster.java ! src/share/classes/java/awt/dnd/DragGestureEvent.java ! src/share/classes/java/awt/dnd/DragGestureListener.java ! src/share/classes/java/awt/dnd/DragGestureRecognizer.java ! src/share/classes/java/awt/dnd/DragSource.java ! src/share/classes/java/awt/dnd/DragSourceAdapter.java ! src/share/classes/java/awt/dnd/DragSourceContext.java ! src/share/classes/java/awt/dnd/DragSourceDragEvent.java ! src/share/classes/java/awt/dnd/DragSourceDropEvent.java ! src/share/classes/java/awt/dnd/DragSourceEvent.java ! src/share/classes/java/awt/dnd/DragSourceListener.java ! src/share/classes/java/awt/dnd/DragSourceMotionListener.java ! src/share/classes/java/awt/dnd/DropTarget.java ! src/share/classes/java/awt/dnd/DropTargetAdapter.java ! src/share/classes/java/awt/dnd/DropTargetContext.java ! src/share/classes/java/awt/dnd/DropTargetDragEvent.java ! src/share/classes/java/awt/dnd/DropTargetDropEvent.java ! src/share/classes/java/awt/dnd/DropTargetEvent.java ! src/share/classes/java/awt/dnd/DropTargetListener.java ! src/share/classes/java/awt/dnd/InvalidDnDOperationException.java ! src/share/classes/java/awt/dnd/MouseDragGestureRecognizer.java ! src/share/classes/java/awt/dnd/SerializationTester.java ! src/share/classes/java/awt/dnd/package.html ! src/share/classes/java/awt/dnd/peer/DragSourceContextPeer.java ! src/share/classes/java/awt/dnd/peer/DropTargetContextPeer.java ! src/share/classes/java/awt/dnd/peer/DropTargetPeer.java ! src/share/classes/java/awt/dnd/peer/package.html ! src/share/classes/java/awt/doc-files/AWTThreadIssues.html ! src/share/classes/java/awt/doc-files/DesktopProperties.html ! src/share/classes/java/awt/doc-files/FocusSpec.html ! src/share/classes/java/awt/doc-files/Modality.html ! src/share/classes/java/awt/event/AWTEventListener.java ! src/share/classes/java/awt/event/AWTEventListenerProxy.java ! src/share/classes/java/awt/event/ActionEvent.java ! src/share/classes/java/awt/event/ActionListener.java ! src/share/classes/java/awt/event/AdjustmentEvent.java ! src/share/classes/java/awt/event/AdjustmentListener.java ! src/share/classes/java/awt/event/ComponentAdapter.java ! src/share/classes/java/awt/event/ComponentEvent.java ! src/share/classes/java/awt/event/ComponentListener.java ! src/share/classes/java/awt/event/ContainerAdapter.java ! src/share/classes/java/awt/event/ContainerEvent.java ! src/share/classes/java/awt/event/ContainerListener.java ! src/share/classes/java/awt/event/FocusAdapter.java ! src/share/classes/java/awt/event/FocusEvent.java ! src/share/classes/java/awt/event/FocusListener.java ! src/share/classes/java/awt/event/HierarchyBoundsAdapter.java ! src/share/classes/java/awt/event/HierarchyBoundsListener.java ! src/share/classes/java/awt/event/HierarchyEvent.java ! src/share/classes/java/awt/event/HierarchyListener.java ! src/share/classes/java/awt/event/InputEvent.java ! src/share/classes/java/awt/event/InputMethodEvent.java ! src/share/classes/java/awt/event/InputMethodListener.java ! src/share/classes/java/awt/event/InvocationEvent.java ! src/share/classes/java/awt/event/ItemEvent.java ! src/share/classes/java/awt/event/ItemListener.java ! src/share/classes/java/awt/event/KeyAdapter.java ! src/share/classes/java/awt/event/KeyEvent.java ! src/share/classes/java/awt/event/KeyListener.java ! src/share/classes/java/awt/event/MouseAdapter.java ! src/share/classes/java/awt/event/MouseEvent.java ! src/share/classes/java/awt/event/MouseListener.java ! src/share/classes/java/awt/event/MouseMotionAdapter.java ! src/share/classes/java/awt/event/MouseMotionListener.java ! src/share/classes/java/awt/event/MouseWheelEvent.java ! src/share/classes/java/awt/event/MouseWheelListener.java ! src/share/classes/java/awt/event/NativeLibLoader.java ! src/share/classes/java/awt/event/PaintEvent.java ! src/share/classes/java/awt/event/TextEvent.java ! src/share/classes/java/awt/event/TextListener.java ! src/share/classes/java/awt/event/WindowAdapter.java ! src/share/classes/java/awt/event/WindowEvent.java ! src/share/classes/java/awt/event/WindowFocusListener.java ! src/share/classes/java/awt/event/WindowListener.java ! src/share/classes/java/awt/event/WindowStateListener.java ! src/share/classes/java/awt/event/package.html ! src/share/classes/java/awt/font/CharArrayIterator.java ! src/share/classes/java/awt/font/FontRenderContext.java ! src/share/classes/java/awt/font/GlyphJustificationInfo.java ! src/share/classes/java/awt/font/GlyphMetrics.java ! src/share/classes/java/awt/font/GlyphVector.java ! src/share/classes/java/awt/font/GraphicAttribute.java ! src/share/classes/java/awt/font/ImageGraphicAttribute.java ! src/share/classes/java/awt/font/LayoutPath.java ! src/share/classes/java/awt/font/LineBreakMeasurer.java ! src/share/classes/java/awt/font/LineMetrics.java ! src/share/classes/java/awt/font/MultipleMaster.java ! src/share/classes/java/awt/font/NumericShaper.java ! src/share/classes/java/awt/font/OpenType.java ! src/share/classes/java/awt/font/ShapeGraphicAttribute.java ! src/share/classes/java/awt/font/StyledParagraph.java ! src/share/classes/java/awt/font/TextAttribute.java ! src/share/classes/java/awt/font/TextHitInfo.java ! src/share/classes/java/awt/font/TextJustifier.java ! src/share/classes/java/awt/font/TextLayout.java ! src/share/classes/java/awt/font/TextLine.java ! src/share/classes/java/awt/font/TextMeasurer.java ! src/share/classes/java/awt/font/TransformAttribute.java ! src/share/classes/java/awt/font/package.html ! src/share/classes/java/awt/geom/AffineTransform.java ! src/share/classes/java/awt/geom/Arc2D.java ! src/share/classes/java/awt/geom/ArcIterator.java ! src/share/classes/java/awt/geom/Area.java ! src/share/classes/java/awt/geom/CubicCurve2D.java ! src/share/classes/java/awt/geom/CubicIterator.java ! src/share/classes/java/awt/geom/Dimension2D.java ! src/share/classes/java/awt/geom/Ellipse2D.java ! src/share/classes/java/awt/geom/EllipseIterator.java ! src/share/classes/java/awt/geom/FlatteningPathIterator.java ! src/share/classes/java/awt/geom/GeneralPath.java ! src/share/classes/java/awt/geom/IllegalPathStateException.java ! src/share/classes/java/awt/geom/Line2D.java ! src/share/classes/java/awt/geom/LineIterator.java ! src/share/classes/java/awt/geom/NoninvertibleTransformException.java ! src/share/classes/java/awt/geom/Path2D.java ! src/share/classes/java/awt/geom/PathIterator.java ! src/share/classes/java/awt/geom/Point2D.java ! src/share/classes/java/awt/geom/QuadCurve2D.java ! src/share/classes/java/awt/geom/QuadIterator.java ! src/share/classes/java/awt/geom/RectIterator.java ! src/share/classes/java/awt/geom/Rectangle2D.java ! src/share/classes/java/awt/geom/RectangularShape.java ! src/share/classes/java/awt/geom/RoundRectIterator.java ! src/share/classes/java/awt/geom/RoundRectangle2D.java ! src/share/classes/java/awt/geom/package.html ! src/share/classes/java/awt/im/InputContext.java ! src/share/classes/java/awt/im/InputMethodHighlight.java ! src/share/classes/java/awt/im/InputMethodRequests.java ! src/share/classes/java/awt/im/InputSubset.java ! src/share/classes/java/awt/im/package.html ! src/share/classes/java/awt/im/spi/InputMethod.java ! src/share/classes/java/awt/im/spi/InputMethodContext.java ! src/share/classes/java/awt/im/spi/InputMethodDescriptor.java ! src/share/classes/java/awt/im/spi/package.html ! src/share/classes/java/awt/image/AffineTransformOp.java ! src/share/classes/java/awt/image/AreaAveragingScaleFilter.java ! src/share/classes/java/awt/image/BandCombineOp.java ! src/share/classes/java/awt/image/BandedSampleModel.java ! src/share/classes/java/awt/image/BufferStrategy.java ! src/share/classes/java/awt/image/BufferedImage.java ! src/share/classes/java/awt/image/BufferedImageFilter.java ! src/share/classes/java/awt/image/BufferedImageOp.java ! src/share/classes/java/awt/image/ByteLookupTable.java ! src/share/classes/java/awt/image/ColorConvertOp.java ! src/share/classes/java/awt/image/ColorModel.java ! src/share/classes/java/awt/image/ComponentColorModel.java ! src/share/classes/java/awt/image/ComponentSampleModel.java ! src/share/classes/java/awt/image/ConvolveOp.java ! src/share/classes/java/awt/image/CropImageFilter.java ! src/share/classes/java/awt/image/DataBuffer.java ! src/share/classes/java/awt/image/DataBufferByte.java ! src/share/classes/java/awt/image/DataBufferDouble.java ! src/share/classes/java/awt/image/DataBufferFloat.java ! src/share/classes/java/awt/image/DataBufferInt.java ! src/share/classes/java/awt/image/DataBufferShort.java ! src/share/classes/java/awt/image/DataBufferUShort.java ! src/share/classes/java/awt/image/DirectColorModel.java ! src/share/classes/java/awt/image/FilteredImageSource.java ! src/share/classes/java/awt/image/ImageConsumer.java ! src/share/classes/java/awt/image/ImageFilter.java ! src/share/classes/java/awt/image/ImageObserver.java ! src/share/classes/java/awt/image/ImageProducer.java ! src/share/classes/java/awt/image/ImagingOpException.java ! src/share/classes/java/awt/image/IndexColorModel.java ! src/share/classes/java/awt/image/Kernel.java ! src/share/classes/java/awt/image/LookupOp.java ! src/share/classes/java/awt/image/LookupTable.java ! src/share/classes/java/awt/image/MemoryImageSource.java ! src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java ! src/share/classes/java/awt/image/PackedColorModel.java ! src/share/classes/java/awt/image/PixelGrabber.java ! src/share/classes/java/awt/image/PixelInterleavedSampleModel.java ! src/share/classes/java/awt/image/RGBImageFilter.java ! src/share/classes/java/awt/image/Raster.java ! src/share/classes/java/awt/image/RasterFormatException.java ! src/share/classes/java/awt/image/RasterOp.java ! src/share/classes/java/awt/image/RenderedImage.java ! src/share/classes/java/awt/image/ReplicateScaleFilter.java ! src/share/classes/java/awt/image/RescaleOp.java ! src/share/classes/java/awt/image/SampleModel.java ! src/share/classes/java/awt/image/ShortLookupTable.java ! src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java ! src/share/classes/java/awt/image/TileObserver.java ! src/share/classes/java/awt/image/VolatileImage.java ! src/share/classes/java/awt/image/WritableRaster.java ! src/share/classes/java/awt/image/WritableRenderedImage.java ! src/share/classes/java/awt/image/package.html ! src/share/classes/java/awt/image/renderable/ContextualRenderedImageFactory.java ! src/share/classes/java/awt/image/renderable/ParameterBlock.java ! src/share/classes/java/awt/image/renderable/RenderContext.java ! src/share/classes/java/awt/image/renderable/RenderableImage.java ! src/share/classes/java/awt/image/renderable/RenderableImageOp.java ! src/share/classes/java/awt/image/renderable/RenderableImageProducer.java ! src/share/classes/java/awt/image/renderable/RenderedImageFactory.java ! src/share/classes/java/awt/image/renderable/package.html ! src/share/classes/java/awt/package.html ! src/share/classes/java/awt/peer/ButtonPeer.java ! src/share/classes/java/awt/peer/CanvasPeer.java ! src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java ! src/share/classes/java/awt/peer/CheckboxPeer.java ! src/share/classes/java/awt/peer/ChoicePeer.java ! src/share/classes/java/awt/peer/ComponentPeer.java ! src/share/classes/java/awt/peer/ContainerPeer.java ! src/share/classes/java/awt/peer/DesktopPeer.java ! src/share/classes/java/awt/peer/DialogPeer.java ! src/share/classes/java/awt/peer/FileDialogPeer.java ! src/share/classes/java/awt/peer/FontPeer.java ! src/share/classes/java/awt/peer/FramePeer.java ! src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java ! src/share/classes/java/awt/peer/LabelPeer.java ! src/share/classes/java/awt/peer/LightweightPeer.java ! src/share/classes/java/awt/peer/ListPeer.java ! src/share/classes/java/awt/peer/MenuBarPeer.java ! src/share/classes/java/awt/peer/MenuComponentPeer.java ! src/share/classes/java/awt/peer/MenuItemPeer.java ! src/share/classes/java/awt/peer/MenuPeer.java ! src/share/classes/java/awt/peer/MouseInfoPeer.java ! src/share/classes/java/awt/peer/PanelPeer.java ! src/share/classes/java/awt/peer/PopupMenuPeer.java ! src/share/classes/java/awt/peer/RobotPeer.java ! src/share/classes/java/awt/peer/ScrollPanePeer.java ! src/share/classes/java/awt/peer/ScrollbarPeer.java ! src/share/classes/java/awt/peer/SystemTrayPeer.java ! src/share/classes/java/awt/peer/TextAreaPeer.java ! src/share/classes/java/awt/peer/TextComponentPeer.java ! src/share/classes/java/awt/peer/TextFieldPeer.java ! src/share/classes/java/awt/peer/TrayIconPeer.java ! src/share/classes/java/awt/peer/WindowPeer.java ! src/share/classes/java/awt/peer/package.html ! src/share/classes/java/awt/print/Book.java ! src/share/classes/java/awt/print/PageFormat.java ! src/share/classes/java/awt/print/Pageable.java ! src/share/classes/java/awt/print/Paper.java ! src/share/classes/java/awt/print/Printable.java ! src/share/classes/java/awt/print/PrinterAbortException.java ! src/share/classes/java/awt/print/PrinterException.java ! src/share/classes/java/awt/print/PrinterGraphics.java ! src/share/classes/java/awt/print/PrinterIOException.java ! src/share/classes/java/awt/print/PrinterJob.java ! src/share/classes/java/awt/print/package.html ! src/share/classes/java/beans/AppletInitializer.java ! src/share/classes/java/beans/BeanDescriptor.java ! src/share/classes/java/beans/BeanInfo.java ! src/share/classes/java/beans/Beans.java ! src/share/classes/java/beans/ChangeListenerMap.java ! src/share/classes/java/beans/ConstructorProperties.java ! src/share/classes/java/beans/Customizer.java ! src/share/classes/java/beans/DefaultPersistenceDelegate.java ! src/share/classes/java/beans/DesignMode.java ! src/share/classes/java/beans/Encoder.java ! src/share/classes/java/beans/EventHandler.java ! src/share/classes/java/beans/EventSetDescriptor.java ! src/share/classes/java/beans/ExceptionListener.java ! src/share/classes/java/beans/Expression.java ! src/share/classes/java/beans/FeatureDescriptor.java ! src/share/classes/java/beans/IndexedPropertyChangeEvent.java ! src/share/classes/java/beans/IndexedPropertyDescriptor.java ! src/share/classes/java/beans/IntrospectionException.java ! src/share/classes/java/beans/Introspector.java ! src/share/classes/java/beans/MetaData.java ! src/share/classes/java/beans/MethodDescriptor.java ! src/share/classes/java/beans/NameGenerator.java ! src/share/classes/java/beans/ParameterDescriptor.java ! src/share/classes/java/beans/PersistenceDelegate.java ! src/share/classes/java/beans/PropertyChangeEvent.java ! src/share/classes/java/beans/PropertyChangeListener.java ! src/share/classes/java/beans/PropertyChangeListenerProxy.java ! src/share/classes/java/beans/PropertyChangeSupport.java ! src/share/classes/java/beans/PropertyDescriptor.java ! src/share/classes/java/beans/PropertyEditor.java ! src/share/classes/java/beans/PropertyEditorManager.java ! src/share/classes/java/beans/PropertyEditorSupport.java ! src/share/classes/java/beans/PropertyVetoException.java ! src/share/classes/java/beans/ReflectionUtils.java ! src/share/classes/java/beans/SimpleBeanInfo.java ! src/share/classes/java/beans/Statement.java ! src/share/classes/java/beans/Transient.java ! src/share/classes/java/beans/VetoableChangeListener.java ! src/share/classes/java/beans/VetoableChangeListenerProxy.java ! src/share/classes/java/beans/VetoableChangeSupport.java ! src/share/classes/java/beans/Visibility.java ! src/share/classes/java/beans/XMLDecoder.java ! src/share/classes/java/beans/XMLEncoder.java ! src/share/classes/java/beans/beancontext/BeanContext.java ! src/share/classes/java/beans/beancontext/BeanContextChild.java ! src/share/classes/java/beans/beancontext/BeanContextChildComponentProxy.java ! src/share/classes/java/beans/beancontext/BeanContextChildSupport.java ! src/share/classes/java/beans/beancontext/BeanContextContainerProxy.java ! src/share/classes/java/beans/beancontext/BeanContextEvent.java ! src/share/classes/java/beans/beancontext/BeanContextMembershipEvent.java ! src/share/classes/java/beans/beancontext/BeanContextMembershipListener.java ! src/share/classes/java/beans/beancontext/BeanContextProxy.java ! src/share/classes/java/beans/beancontext/BeanContextServiceAvailableEvent.java ! src/share/classes/java/beans/beancontext/BeanContextServiceProvider.java ! src/share/classes/java/beans/beancontext/BeanContextServiceProviderBeanInfo.java ! src/share/classes/java/beans/beancontext/BeanContextServiceRevokedEvent.java ! src/share/classes/java/beans/beancontext/BeanContextServiceRevokedListener.java ! src/share/classes/java/beans/beancontext/BeanContextServices.java ! src/share/classes/java/beans/beancontext/BeanContextServicesListener.java ! src/share/classes/java/beans/beancontext/BeanContextServicesSupport.java ! src/share/classes/java/beans/beancontext/BeanContextSupport.java ! src/share/classes/java/beans/beancontext/package.html ! src/share/classes/java/beans/package.html ! src/share/classes/java/dyn/CallSite.java ! src/share/classes/java/dyn/InvokeDynamic.java ! src/share/classes/java/dyn/InvokeDynamicBootstrapError.java ! src/share/classes/java/dyn/JavaMethodHandle.java ! src/share/classes/java/dyn/Linkage.java ! src/share/classes/java/dyn/LinkagePermission.java ! src/share/classes/java/dyn/MethodHandle.java ! src/share/classes/java/dyn/MethodHandles.java ! src/share/classes/java/dyn/MethodType.java ! src/share/classes/java/dyn/MethodTypeForm.java ! src/share/classes/java/dyn/NoAccessException.java ! src/share/classes/java/dyn/WrongMethodTypeException.java ! src/share/classes/java/dyn/package-info.java ! src/share/classes/java/io/Bits.java ! src/share/classes/java/io/BufferedInputStream.java ! src/share/classes/java/io/BufferedOutputStream.java ! src/share/classes/java/io/BufferedReader.java ! src/share/classes/java/io/BufferedWriter.java ! src/share/classes/java/io/ByteArrayInputStream.java ! src/share/classes/java/io/ByteArrayOutputStream.java ! src/share/classes/java/io/CharArrayReader.java ! src/share/classes/java/io/CharArrayWriter.java ! src/share/classes/java/io/CharConversionException.java ! src/share/classes/java/io/Closeable.java ! src/share/classes/java/io/Console.java ! src/share/classes/java/io/DataInput.java ! src/share/classes/java/io/DataInputStream.java ! src/share/classes/java/io/DataOutput.java ! src/share/classes/java/io/DataOutputStream.java ! src/share/classes/java/io/DeleteOnExitHook.java ! src/share/classes/java/io/EOFException.java ! src/share/classes/java/io/ExpiringCache.java ! src/share/classes/java/io/Externalizable.java ! src/share/classes/java/io/File.java ! src/share/classes/java/io/FileFilter.java ! src/share/classes/java/io/FileInputStream.java ! src/share/classes/java/io/FileNotFoundException.java ! src/share/classes/java/io/FileOutputStream.java ! src/share/classes/java/io/FilePermission.java ! src/share/classes/java/io/FileReader.java ! src/share/classes/java/io/FileSystem.java ! src/share/classes/java/io/FileWriter.java ! src/share/classes/java/io/FilenameFilter.java ! src/share/classes/java/io/FilterInputStream.java ! src/share/classes/java/io/FilterOutputStream.java ! src/share/classes/java/io/FilterReader.java ! src/share/classes/java/io/FilterWriter.java ! src/share/classes/java/io/Flushable.java ! src/share/classes/java/io/IOError.java ! src/share/classes/java/io/IOException.java ! src/share/classes/java/io/InputStream.java ! src/share/classes/java/io/InputStreamReader.java ! src/share/classes/java/io/InterruptedIOException.java ! src/share/classes/java/io/InvalidClassException.java ! src/share/classes/java/io/InvalidObjectException.java ! src/share/classes/java/io/LineNumberInputStream.java ! src/share/classes/java/io/LineNumberReader.java ! src/share/classes/java/io/NotActiveException.java ! src/share/classes/java/io/NotSerializableException.java ! src/share/classes/java/io/ObjectInput.java ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/io/ObjectInputValidation.java ! src/share/classes/java/io/ObjectOutput.java ! src/share/classes/java/io/ObjectOutputStream.java ! src/share/classes/java/io/ObjectStreamClass.java ! src/share/classes/java/io/ObjectStreamConstants.java ! src/share/classes/java/io/ObjectStreamException.java ! src/share/classes/java/io/ObjectStreamField.java ! src/share/classes/java/io/OptionalDataException.java ! src/share/classes/java/io/OutputStream.java ! src/share/classes/java/io/OutputStreamWriter.java ! src/share/classes/java/io/PipedInputStream.java ! src/share/classes/java/io/PipedOutputStream.java ! src/share/classes/java/io/PipedReader.java ! src/share/classes/java/io/PipedWriter.java ! src/share/classes/java/io/PrintStream.java ! src/share/classes/java/io/PrintWriter.java ! src/share/classes/java/io/PushbackInputStream.java ! src/share/classes/java/io/PushbackReader.java ! src/share/classes/java/io/RandomAccessFile.java ! src/share/classes/java/io/Reader.java ! src/share/classes/java/io/SequenceInputStream.java ! src/share/classes/java/io/Serializable.java ! src/share/classes/java/io/SerializablePermission.java ! src/share/classes/java/io/StreamCorruptedException.java ! src/share/classes/java/io/StreamTokenizer.java ! src/share/classes/java/io/StringBufferInputStream.java ! src/share/classes/java/io/StringReader.java ! src/share/classes/java/io/StringWriter.java ! src/share/classes/java/io/SyncFailedException.java ! src/share/classes/java/io/TempFileHelper.java ! src/share/classes/java/io/UTFDataFormatException.java ! src/share/classes/java/io/UnsupportedEncodingException.java ! src/share/classes/java/io/WriteAbortedException.java ! src/share/classes/java/io/Writer.java ! src/share/classes/java/io/package.html ! src/share/classes/java/lang/AbstractMethodError.java ! src/share/classes/java/lang/AbstractStringBuilder.java ! src/share/classes/java/lang/Appendable.java ! src/share/classes/java/lang/ApplicationShutdownHooks.java ! src/share/classes/java/lang/ArithmeticException.java ! src/share/classes/java/lang/ArrayIndexOutOfBoundsException.java ! src/share/classes/java/lang/ArrayStoreException.java ! src/share/classes/java/lang/AssertionError.java ! src/share/classes/java/lang/AssertionStatusDirectives.java ! src/share/classes/java/lang/Boolean.java ! src/share/classes/java/lang/Byte.java ! src/share/classes/java/lang/CharSequence.java ! src/share/classes/java/lang/Character.java ! src/share/classes/java/lang/CharacterData.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/ClassCastException.java ! src/share/classes/java/lang/ClassCircularityError.java ! src/share/classes/java/lang/ClassFormatError.java ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/lang/ClassNotFoundException.java ! src/share/classes/java/lang/CloneNotSupportedException.java ! src/share/classes/java/lang/Cloneable.java ! src/share/classes/java/lang/Comparable.java ! src/share/classes/java/lang/Compiler.java ! src/share/classes/java/lang/ConditionalSpecialCasing.java ! src/share/classes/java/lang/Deprecated.java ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Enum.java ! src/share/classes/java/lang/EnumConstantNotPresentException.java ! src/share/classes/java/lang/Error.java ! src/share/classes/java/lang/Exception.java ! src/share/classes/java/lang/ExceptionInInitializerError.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/IllegalAccessError.java ! src/share/classes/java/lang/IllegalAccessException.java ! src/share/classes/java/lang/IllegalArgumentException.java ! src/share/classes/java/lang/IllegalMonitorStateException.java ! src/share/classes/java/lang/IllegalStateException.java ! src/share/classes/java/lang/IllegalThreadStateException.java ! src/share/classes/java/lang/IncompatibleClassChangeError.java ! src/share/classes/java/lang/IndexOutOfBoundsException.java ! src/share/classes/java/lang/InheritableThreadLocal.java ! src/share/classes/java/lang/InstantiationError.java ! src/share/classes/java/lang/InstantiationException.java ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/InternalError.java ! src/share/classes/java/lang/InterruptedException.java ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/lang/LinkageError.java ! src/share/classes/java/lang/Long.java ! src/share/classes/java/lang/Math.java ! src/share/classes/java/lang/NegativeArraySizeException.java ! src/share/classes/java/lang/NoClassDefFoundError.java ! src/share/classes/java/lang/NoSuchFieldError.java ! src/share/classes/java/lang/NoSuchFieldException.java ! src/share/classes/java/lang/NoSuchMethodError.java ! src/share/classes/java/lang/NoSuchMethodException.java ! src/share/classes/java/lang/NullPointerException.java ! src/share/classes/java/lang/Number.java ! src/share/classes/java/lang/NumberFormatException.java ! src/share/classes/java/lang/Object.java ! src/share/classes/java/lang/OutOfMemoryError.java ! src/share/classes/java/lang/Override.java ! src/share/classes/java/lang/Package.java ! src/share/classes/java/lang/Process.java ! src/share/classes/java/lang/ProcessBuilder.java ! src/share/classes/java/lang/Readable.java ! src/share/classes/java/lang/ReflectiveOperationException.java ! src/share/classes/java/lang/Runnable.java ! src/share/classes/java/lang/Runtime.java ! src/share/classes/java/lang/RuntimeException.java ! src/share/classes/java/lang/RuntimePermission.java ! src/share/classes/java/lang/SecurityException.java ! src/share/classes/java/lang/SecurityManager.java ! src/share/classes/java/lang/Short.java ! src/share/classes/java/lang/Shutdown.java ! src/share/classes/java/lang/StackOverflowError.java ! src/share/classes/java/lang/StackTraceElement.java ! src/share/classes/java/lang/StrictMath.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/StringBuffer.java ! src/share/classes/java/lang/StringBuilder.java ! src/share/classes/java/lang/StringCoding.java ! src/share/classes/java/lang/StringIndexOutOfBoundsException.java ! src/share/classes/java/lang/SuppressWarnings.java ! src/share/classes/java/lang/System.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/ThreadDeath.java ! src/share/classes/java/lang/ThreadGroup.java ! src/share/classes/java/lang/ThreadLocal.java ! src/share/classes/java/lang/Throwable.java ! src/share/classes/java/lang/TypeNotPresentException.java ! src/share/classes/java/lang/UnknownError.java ! src/share/classes/java/lang/UnsatisfiedLinkError.java ! src/share/classes/java/lang/UnsupportedClassVersionError.java ! src/share/classes/java/lang/UnsupportedOperationException.java ! src/share/classes/java/lang/VerifyError.java ! src/share/classes/java/lang/VirtualMachineError.java ! src/share/classes/java/lang/Void.java ! src/share/classes/java/lang/annotation/Annotation.java ! src/share/classes/java/lang/annotation/AnnotationFormatError.java ! src/share/classes/java/lang/annotation/AnnotationTypeMismatchException.java ! src/share/classes/java/lang/annotation/Documented.java ! src/share/classes/java/lang/annotation/ElementType.java ! src/share/classes/java/lang/annotation/IncompleteAnnotationException.java ! src/share/classes/java/lang/annotation/Inherited.java ! src/share/classes/java/lang/annotation/Retention.java ! src/share/classes/java/lang/annotation/RetentionPolicy.java ! src/share/classes/java/lang/annotation/Target.java ! src/share/classes/java/lang/annotation/package-info.java ! src/share/classes/java/lang/instrument/ClassDefinition.java ! src/share/classes/java/lang/instrument/ClassFileTransformer.java ! src/share/classes/java/lang/instrument/IllegalClassFormatException.java ! src/share/classes/java/lang/instrument/Instrumentation.java ! src/share/classes/java/lang/instrument/UnmodifiableClassException.java ! src/share/classes/java/lang/instrument/package.html ! src/share/classes/java/lang/management/ClassLoadingMXBean.java ! src/share/classes/java/lang/management/CompilationMXBean.java ! src/share/classes/java/lang/management/GarbageCollectorMXBean.java ! src/share/classes/java/lang/management/LockInfo.java ! src/share/classes/java/lang/management/ManagementFactory.java ! src/share/classes/java/lang/management/ManagementPermission.java ! src/share/classes/java/lang/management/MemoryMXBean.java ! src/share/classes/java/lang/management/MemoryManagerMXBean.java ! src/share/classes/java/lang/management/MemoryNotificationInfo.java ! src/share/classes/java/lang/management/MemoryPoolMXBean.java ! src/share/classes/java/lang/management/MemoryType.java ! src/share/classes/java/lang/management/MemoryUsage.java ! src/share/classes/java/lang/management/MonitorInfo.java ! src/share/classes/java/lang/management/OperatingSystemMXBean.java ! src/share/classes/java/lang/management/PlatformComponent.java ! src/share/classes/java/lang/management/PlatformManagedObject.java ! src/share/classes/java/lang/management/RuntimeMXBean.java ! src/share/classes/java/lang/management/ThreadInfo.java ! src/share/classes/java/lang/management/ThreadMXBean.java ! src/share/classes/java/lang/management/package.html ! src/share/classes/java/lang/package-info.java ! src/share/classes/java/lang/ref/FinalReference.java ! src/share/classes/java/lang/ref/Finalizer.java ! src/share/classes/java/lang/ref/PhantomReference.java ! src/share/classes/java/lang/ref/Reference.java ! src/share/classes/java/lang/ref/ReferenceQueue.java ! src/share/classes/java/lang/ref/SoftReference.java ! src/share/classes/java/lang/ref/WeakReference.java ! src/share/classes/java/lang/ref/package.html ! src/share/classes/java/lang/reflect/AccessibleObject.java ! src/share/classes/java/lang/reflect/AnnotatedElement.java ! src/share/classes/java/lang/reflect/Array.java ! src/share/classes/java/lang/reflect/Constructor.java ! src/share/classes/java/lang/reflect/Field.java ! src/share/classes/java/lang/reflect/GenericArrayType.java ! src/share/classes/java/lang/reflect/GenericDeclaration.java ! src/share/classes/java/lang/reflect/GenericSignatureFormatError.java ! src/share/classes/java/lang/reflect/InvocationHandler.java ! src/share/classes/java/lang/reflect/InvocationTargetException.java ! src/share/classes/java/lang/reflect/MalformedParameterizedTypeException.java ! src/share/classes/java/lang/reflect/Member.java ! src/share/classes/java/lang/reflect/Method.java ! src/share/classes/java/lang/reflect/Modifier.java ! src/share/classes/java/lang/reflect/ParameterizedType.java ! src/share/classes/java/lang/reflect/Proxy.java ! src/share/classes/java/lang/reflect/ReflectAccess.java ! src/share/classes/java/lang/reflect/ReflectPermission.java ! src/share/classes/java/lang/reflect/Type.java ! src/share/classes/java/lang/reflect/TypeVariable.java ! src/share/classes/java/lang/reflect/UndeclaredThrowableException.java ! src/share/classes/java/lang/reflect/WildcardType.java ! src/share/classes/java/lang/reflect/package-info.java ! src/share/classes/java/math/BigDecimal.java ! src/share/classes/java/math/BigInteger.java ! src/share/classes/java/math/BitSieve.java ! src/share/classes/java/math/MathContext.java ! src/share/classes/java/math/MutableBigInteger.java ! src/share/classes/java/math/RoundingMode.java ! src/share/classes/java/math/SignedMutableBigInteger.java ! src/share/classes/java/math/package-info.java ! src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java ! src/share/classes/java/net/AbstractPlainSocketImpl.java ! src/share/classes/java/net/Authenticator.java ! src/share/classes/java/net/BindException.java ! src/share/classes/java/net/CacheRequest.java ! src/share/classes/java/net/CacheResponse.java ! src/share/classes/java/net/ConnectException.java ! src/share/classes/java/net/ContentHandler.java ! src/share/classes/java/net/ContentHandlerFactory.java ! src/share/classes/java/net/CookieHandler.java ! src/share/classes/java/net/CookieManager.java ! src/share/classes/java/net/CookiePolicy.java ! src/share/classes/java/net/CookieStore.java ! src/share/classes/java/net/DatagramPacket.java ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/DatagramSocketImpl.java ! src/share/classes/java/net/DatagramSocketImplFactory.java ! src/share/classes/java/net/FileNameMap.java ! src/share/classes/java/net/HttpCookie.java ! src/share/classes/java/net/HttpRetryException.java ! src/share/classes/java/net/HttpURLConnection.java ! src/share/classes/java/net/IDN.java ! src/share/classes/java/net/InMemoryCookieStore.java ! src/share/classes/java/net/Inet4Address.java ! src/share/classes/java/net/Inet4AddressImpl.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/Inet6AddressImpl.java ! src/share/classes/java/net/InetAddress.java ! src/share/classes/java/net/InetAddressImpl.java ! src/share/classes/java/net/InetSocketAddress.java ! src/share/classes/java/net/InterfaceAddress.java ! src/share/classes/java/net/JarURLConnection.java ! src/share/classes/java/net/MalformedURLException.java ! src/share/classes/java/net/MulticastSocket.java ! src/share/classes/java/net/NetPermission.java ! src/share/classes/java/net/NetworkInterface.java ! src/share/classes/java/net/NoRouteToHostException.java ! src/share/classes/java/net/PasswordAuthentication.java ! src/share/classes/java/net/PortUnreachableException.java ! src/share/classes/java/net/ProtocolException.java ! src/share/classes/java/net/ProtocolFamily.java ! src/share/classes/java/net/Proxy.java ! src/share/classes/java/net/ProxySelector.java ! src/share/classes/java/net/ResponseCache.java ! src/share/classes/java/net/SecureCacheResponse.java ! src/share/classes/java/net/ServerSocket.java ! src/share/classes/java/net/Socket.java ! src/share/classes/java/net/SocketAddress.java ! src/share/classes/java/net/SocketException.java ! src/share/classes/java/net/SocketImpl.java ! src/share/classes/java/net/SocketImplFactory.java ! src/share/classes/java/net/SocketInputStream.java ! src/share/classes/java/net/SocketOption.java ! src/share/classes/java/net/SocketOptions.java ! src/share/classes/java/net/SocketOutputStream.java ! src/share/classes/java/net/SocketPermission.java ! src/share/classes/java/net/SocketTimeoutException.java ! src/share/classes/java/net/SocksConsts.java ! src/share/classes/java/net/SocksSocketImpl.java ! src/share/classes/java/net/StandardProtocolFamily.java ! src/share/classes/java/net/StandardSocketOption.java ! src/share/classes/java/net/URI.java ! src/share/classes/java/net/URISyntaxException.java ! src/share/classes/java/net/URL.java ! src/share/classes/java/net/URLClassLoader.java ! src/share/classes/java/net/URLConnection.java ! src/share/classes/java/net/URLDecoder.java ! src/share/classes/java/net/URLEncoder.java ! src/share/classes/java/net/URLStreamHandler.java ! src/share/classes/java/net/URLStreamHandlerFactory.java ! src/share/classes/java/net/UnknownHostException.java ! src/share/classes/java/net/UnknownServiceException.java ! src/share/classes/java/net/doc-files/net-properties.html ! src/share/classes/java/net/package.html ! src/share/classes/java/nio/Bits.java ! src/share/classes/java/nio/Buffer.java ! src/share/classes/java/nio/BufferPoolMXBean.java ! src/share/classes/java/nio/ByteBufferAs-X-Buffer.java.template ! src/share/classes/java/nio/ByteOrder.java ! src/share/classes/java/nio/Direct-X-Buffer-bin.java.template ! src/share/classes/java/nio/Direct-X-Buffer.java.template ! src/share/classes/java/nio/Heap-X-Buffer.java.template ! src/share/classes/java/nio/MappedByteBuffer.java ! src/share/classes/java/nio/StringCharBuffer.java ! src/share/classes/java/nio/X-Buffer-bin.java.template ! src/share/classes/java/nio/X-Buffer.java.template ! src/share/classes/java/nio/channels/AsynchronousByteChannel.java ! src/share/classes/java/nio/channels/AsynchronousChannel.java ! src/share/classes/java/nio/channels/AsynchronousChannelGroup.java ! src/share/classes/java/nio/channels/AsynchronousDatagramChannel.java ! src/share/classes/java/nio/channels/AsynchronousFileChannel.java ! src/share/classes/java/nio/channels/AsynchronousServerSocketChannel.java ! src/share/classes/java/nio/channels/AsynchronousSocketChannel.java ! src/share/classes/java/nio/channels/ByteChannel.java ! src/share/classes/java/nio/channels/Channel.java ! src/share/classes/java/nio/channels/Channels.java ! src/share/classes/java/nio/channels/CompletionHandler.java ! src/share/classes/java/nio/channels/DatagramChannel.java ! src/share/classes/java/nio/channels/FileChannel.java ! src/share/classes/java/nio/channels/FileLock.java ! src/share/classes/java/nio/channels/GatheringByteChannel.java ! src/share/classes/java/nio/channels/InterruptibleChannel.java ! src/share/classes/java/nio/channels/MembershipKey.java ! src/share/classes/java/nio/channels/MulticastChannel.java ! src/share/classes/java/nio/channels/NetworkChannel.java ! src/share/classes/java/nio/channels/Pipe.java ! src/share/classes/java/nio/channels/ReadableByteChannel.java ! src/share/classes/java/nio/channels/ScatteringByteChannel.java ! src/share/classes/java/nio/channels/SeekableByteChannel.java ! src/share/classes/java/nio/channels/SelectableChannel.java ! src/share/classes/java/nio/channels/SelectionKey.java ! src/share/classes/java/nio/channels/Selector.java ! src/share/classes/java/nio/channels/ServerSocketChannel.java ! src/share/classes/java/nio/channels/SocketChannel.java ! src/share/classes/java/nio/channels/WritableByteChannel.java ! src/share/classes/java/nio/channels/exceptions ! src/share/classes/java/nio/channels/package-info.java ! src/share/classes/java/nio/channels/spi/AbstractInterruptibleChannel.java ! src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java ! src/share/classes/java/nio/channels/spi/AbstractSelectionKey.java ! src/share/classes/java/nio/channels/spi/AbstractSelector.java ! src/share/classes/java/nio/channels/spi/AsynchronousChannelProvider.java ! src/share/classes/java/nio/channels/spi/SelectorProvider.java ! src/share/classes/java/nio/channels/spi/package.html ! src/share/classes/java/nio/charset/Charset-X-Coder.java.template ! src/share/classes/java/nio/charset/Charset.java ! src/share/classes/java/nio/charset/CoderMalfunctionError.java ! src/share/classes/java/nio/charset/CoderResult.java ! src/share/classes/java/nio/charset/CodingErrorAction.java ! src/share/classes/java/nio/charset/MalformedInputException.java ! src/share/classes/java/nio/charset/UnmappableCharacterException.java ! src/share/classes/java/nio/charset/exceptions ! src/share/classes/java/nio/charset/package.html ! src/share/classes/java/nio/charset/spi/CharsetProvider.java ! src/share/classes/java/nio/charset/spi/package.html ! src/share/classes/java/nio/exceptions ! src/share/classes/java/nio/file/AccessDeniedException.java ! src/share/classes/java/nio/file/AccessMode.java ! src/share/classes/java/nio/file/AtomicMoveNotSupportedException.java ! src/share/classes/java/nio/file/ClosedDirectoryStreamException.java ! src/share/classes/java/nio/file/ClosedFileSystemException.java ! src/share/classes/java/nio/file/ClosedWatchServiceException.java ! src/share/classes/java/nio/file/CopyOption.java ! src/share/classes/java/nio/file/DirectoryNotEmptyException.java ! src/share/classes/java/nio/file/DirectoryStream.java ! src/share/classes/java/nio/file/FileAlreadyExistsException.java ! src/share/classes/java/nio/file/FileRef.java ! src/share/classes/java/nio/file/FileStore.java ! src/share/classes/java/nio/file/FileSystem.java ! src/share/classes/java/nio/file/FileSystemAlreadyExistsException.java ! src/share/classes/java/nio/file/FileSystemException.java ! src/share/classes/java/nio/file/FileSystemNotFoundException.java ! src/share/classes/java/nio/file/FileSystems.java ! src/share/classes/java/nio/file/FileTreeWalker.java ! src/share/classes/java/nio/file/FileVisitOption.java ! src/share/classes/java/nio/file/FileVisitResult.java ! src/share/classes/java/nio/file/FileVisitor.java ! src/share/classes/java/nio/file/Files.java ! src/share/classes/java/nio/file/InvalidPathException.java ! src/share/classes/java/nio/file/LinkOption.java ! src/share/classes/java/nio/file/LinkPermission.java ! src/share/classes/java/nio/file/NoSuchFileException.java ! src/share/classes/java/nio/file/NotDirectoryException.java ! src/share/classes/java/nio/file/NotLinkException.java ! src/share/classes/java/nio/file/OpenOption.java ! src/share/classes/java/nio/file/Path.java ! src/share/classes/java/nio/file/PathMatcher.java ! src/share/classes/java/nio/file/Paths.java ! src/share/classes/java/nio/file/ProviderMismatchException.java ! src/share/classes/java/nio/file/ProviderNotFoundException.java ! src/share/classes/java/nio/file/ReadOnlyFileSystemException.java ! src/share/classes/java/nio/file/SecureDirectoryStream.java ! src/share/classes/java/nio/file/SimpleFileVisitor.java ! src/share/classes/java/nio/file/StandardCopyOption.java ! src/share/classes/java/nio/file/StandardOpenOption.java ! src/share/classes/java/nio/file/StandardWatchEventKind.java ! src/share/classes/java/nio/file/WatchEvent.java ! src/share/classes/java/nio/file/WatchKey.java ! src/share/classes/java/nio/file/WatchService.java ! src/share/classes/java/nio/file/Watchable.java ! src/share/classes/java/nio/file/attribute/AclEntry.java ! src/share/classes/java/nio/file/attribute/AclEntryFlag.java ! src/share/classes/java/nio/file/attribute/AclEntryPermission.java ! src/share/classes/java/nio/file/attribute/AclEntryType.java ! src/share/classes/java/nio/file/attribute/AclFileAttributeView.java ! src/share/classes/java/nio/file/attribute/AttributeView.java ! src/share/classes/java/nio/file/attribute/Attributes.java ! src/share/classes/java/nio/file/attribute/BasicFileAttributeView.java ! src/share/classes/java/nio/file/attribute/BasicFileAttributes.java ! src/share/classes/java/nio/file/attribute/DosFileAttributeView.java ! src/share/classes/java/nio/file/attribute/DosFileAttributes.java ! src/share/classes/java/nio/file/attribute/FileAttribute.java ! src/share/classes/java/nio/file/attribute/FileAttributeView.java ! src/share/classes/java/nio/file/attribute/FileOwnerAttributeView.java ! src/share/classes/java/nio/file/attribute/FileStoreAttributeView.java ! src/share/classes/java/nio/file/attribute/FileStoreSpaceAttributeView.java ! src/share/classes/java/nio/file/attribute/FileStoreSpaceAttributes.java ! src/share/classes/java/nio/file/attribute/FileTime.java ! src/share/classes/java/nio/file/attribute/GroupPrincipal.java ! src/share/classes/java/nio/file/attribute/PosixFileAttributeView.java ! src/share/classes/java/nio/file/attribute/PosixFileAttributes.java ! src/share/classes/java/nio/file/attribute/PosixFilePermission.java ! src/share/classes/java/nio/file/attribute/PosixFilePermissions.java ! src/share/classes/java/nio/file/attribute/UserDefinedFileAttributeView.java ! src/share/classes/java/nio/file/attribute/UserPrincipal.java ! src/share/classes/java/nio/file/attribute/UserPrincipalLookupService.java ! src/share/classes/java/nio/file/attribute/UserPrincipalNotFoundException.java ! src/share/classes/java/nio/file/attribute/package-info.java ! src/share/classes/java/nio/file/package-info.java ! src/share/classes/java/nio/file/spi/FileSystemProvider.java ! src/share/classes/java/nio/file/spi/FileTypeDetector.java ! src/share/classes/java/nio/file/spi/package-info.java ! src/share/classes/java/nio/package.html ! src/share/classes/java/rmi/AccessException.java ! src/share/classes/java/rmi/AlreadyBoundException.java ! src/share/classes/java/rmi/ConnectException.java ! src/share/classes/java/rmi/ConnectIOException.java ! src/share/classes/java/rmi/MarshalException.java ! src/share/classes/java/rmi/MarshalledObject.java ! src/share/classes/java/rmi/Naming.java ! src/share/classes/java/rmi/NoSuchObjectException.java ! src/share/classes/java/rmi/NotBoundException.java ! src/share/classes/java/rmi/RMISecurityException.java ! src/share/classes/java/rmi/RMISecurityManager.java ! src/share/classes/java/rmi/Remote.java ! src/share/classes/java/rmi/RemoteException.java ! src/share/classes/java/rmi/ServerError.java ! src/share/classes/java/rmi/ServerException.java ! src/share/classes/java/rmi/ServerRuntimeException.java ! src/share/classes/java/rmi/StubNotFoundException.java ! src/share/classes/java/rmi/UnexpectedException.java ! src/share/classes/java/rmi/UnknownHostException.java ! src/share/classes/java/rmi/UnmarshalException.java ! src/share/classes/java/rmi/activation/Activatable.java ! src/share/classes/java/rmi/activation/ActivateFailedException.java ! src/share/classes/java/rmi/activation/ActivationDesc.java ! src/share/classes/java/rmi/activation/ActivationException.java ! src/share/classes/java/rmi/activation/ActivationGroup.java ! src/share/classes/java/rmi/activation/ActivationGroupDesc.java ! src/share/classes/java/rmi/activation/ActivationGroupID.java ! src/share/classes/java/rmi/activation/ActivationID.java ! src/share/classes/java/rmi/activation/ActivationInstantiator.java ! src/share/classes/java/rmi/activation/ActivationMonitor.java ! src/share/classes/java/rmi/activation/ActivationSystem.java ! src/share/classes/java/rmi/activation/Activator.java ! src/share/classes/java/rmi/activation/UnknownGroupException.java ! src/share/classes/java/rmi/activation/UnknownObjectException.java ! src/share/classes/java/rmi/activation/package.html ! src/share/classes/java/rmi/dgc/DGC.java ! src/share/classes/java/rmi/dgc/Lease.java ! src/share/classes/java/rmi/dgc/VMID.java ! src/share/classes/java/rmi/dgc/package.html ! src/share/classes/java/rmi/package.html ! src/share/classes/java/rmi/registry/LocateRegistry.java ! src/share/classes/java/rmi/registry/Registry.java ! src/share/classes/java/rmi/registry/RegistryHandler.java ! src/share/classes/java/rmi/registry/package.html ! src/share/classes/java/rmi/server/ExportException.java ! src/share/classes/java/rmi/server/LoaderHandler.java ! src/share/classes/java/rmi/server/LogStream.java ! src/share/classes/java/rmi/server/ObjID.java ! src/share/classes/java/rmi/server/Operation.java ! src/share/classes/java/rmi/server/RMIClassLoader.java ! src/share/classes/java/rmi/server/RMIClassLoaderSpi.java ! src/share/classes/java/rmi/server/RMIClientSocketFactory.java ! src/share/classes/java/rmi/server/RMIFailureHandler.java ! src/share/classes/java/rmi/server/RMIServerSocketFactory.java ! src/share/classes/java/rmi/server/RMISocketFactory.java ! src/share/classes/java/rmi/server/RemoteCall.java ! src/share/classes/java/rmi/server/RemoteObject.java ! src/share/classes/java/rmi/server/RemoteObjectInvocationHandler.java ! src/share/classes/java/rmi/server/RemoteRef.java ! src/share/classes/java/rmi/server/RemoteServer.java ! src/share/classes/java/rmi/server/RemoteStub.java ! src/share/classes/java/rmi/server/ServerCloneException.java ! src/share/classes/java/rmi/server/ServerNotActiveException.java ! src/share/classes/java/rmi/server/ServerRef.java ! src/share/classes/java/rmi/server/Skeleton.java ! src/share/classes/java/rmi/server/SkeletonMismatchException.java ! src/share/classes/java/rmi/server/SkeletonNotFoundException.java ! src/share/classes/java/rmi/server/SocketSecurityException.java ! src/share/classes/java/rmi/server/UID.java ! src/share/classes/java/rmi/server/UnicastRemoteObject.java ! src/share/classes/java/rmi/server/Unreferenced.java ! src/share/classes/java/rmi/server/package.html ! src/share/classes/java/security/AccessControlContext.java ! src/share/classes/java/security/AccessControlException.java ! src/share/classes/java/security/AccessController.java ! src/share/classes/java/security/AlgorithmParameterGenerator.java ! src/share/classes/java/security/AlgorithmParameterGeneratorSpi.java ! src/share/classes/java/security/AlgorithmParameters.java ! src/share/classes/java/security/AlgorithmParametersSpi.java ! src/share/classes/java/security/AllPermission.java ! src/share/classes/java/security/AuthProvider.java ! src/share/classes/java/security/BasicPermission.java ! src/share/classes/java/security/Certificate.java ! src/share/classes/java/security/CodeSigner.java ! src/share/classes/java/security/CodeSource.java ! src/share/classes/java/security/DigestException.java ! src/share/classes/java/security/DigestInputStream.java ! src/share/classes/java/security/DigestOutputStream.java ! src/share/classes/java/security/DomainCombiner.java ! src/share/classes/java/security/GeneralSecurityException.java ! src/share/classes/java/security/Guard.java ! src/share/classes/java/security/GuardedObject.java ! src/share/classes/java/security/Identity.java ! src/share/classes/java/security/IdentityScope.java ! src/share/classes/java/security/InvalidAlgorithmParameterException.java ! src/share/classes/java/security/InvalidKeyException.java ! src/share/classes/java/security/InvalidParameterException.java ! src/share/classes/java/security/Key.java ! src/share/classes/java/security/KeyException.java ! src/share/classes/java/security/KeyFactory.java ! src/share/classes/java/security/KeyFactorySpi.java ! src/share/classes/java/security/KeyManagementException.java ! src/share/classes/java/security/KeyPair.java ! src/share/classes/java/security/KeyPairGenerator.java ! src/share/classes/java/security/KeyPairGeneratorSpi.java ! src/share/classes/java/security/KeyRep.java ! src/share/classes/java/security/KeyStore.java ! src/share/classes/java/security/KeyStoreException.java ! src/share/classes/java/security/KeyStoreSpi.java ! src/share/classes/java/security/MessageDigest.java ! src/share/classes/java/security/MessageDigestSpi.java ! src/share/classes/java/security/NoSuchAlgorithmException.java ! src/share/classes/java/security/NoSuchProviderException.java ! src/share/classes/java/security/Permission.java ! src/share/classes/java/security/PermissionCollection.java ! src/share/classes/java/security/Permissions.java ! src/share/classes/java/security/Policy.java ! src/share/classes/java/security/PolicySpi.java ! src/share/classes/java/security/Principal.java ! src/share/classes/java/security/PrivateKey.java ! src/share/classes/java/security/PrivilegedAction.java ! src/share/classes/java/security/PrivilegedActionException.java ! src/share/classes/java/security/PrivilegedExceptionAction.java ! src/share/classes/java/security/ProtectionDomain.java ! src/share/classes/java/security/Provider.java ! src/share/classes/java/security/ProviderException.java ! src/share/classes/java/security/PublicKey.java ! src/share/classes/java/security/SecureClassLoader.java ! src/share/classes/java/security/SecureRandom.java ! src/share/classes/java/security/SecureRandomSpi.java ! src/share/classes/java/security/Security.java ! src/share/classes/java/security/SecurityPermission.java ! src/share/classes/java/security/Signature.java ! src/share/classes/java/security/SignatureException.java ! src/share/classes/java/security/SignatureSpi.java ! src/share/classes/java/security/SignedObject.java ! src/share/classes/java/security/Signer.java ! src/share/classes/java/security/Timestamp.java ! src/share/classes/java/security/URIParameter.java ! src/share/classes/java/security/UnrecoverableEntryException.java ! src/share/classes/java/security/UnrecoverableKeyException.java ! src/share/classes/java/security/UnresolvedPermission.java ! src/share/classes/java/security/UnresolvedPermissionCollection.java ! src/share/classes/java/security/acl/Acl.java ! src/share/classes/java/security/acl/AclEntry.java ! src/share/classes/java/security/acl/AclNotFoundException.java ! src/share/classes/java/security/acl/Group.java ! src/share/classes/java/security/acl/LastOwnerException.java ! src/share/classes/java/security/acl/NotOwnerException.java ! src/share/classes/java/security/acl/Owner.java ! src/share/classes/java/security/acl/Permission.java ! src/share/classes/java/security/acl/package.html ! src/share/classes/java/security/cert/CRL.java ! src/share/classes/java/security/cert/CRLException.java ! src/share/classes/java/security/cert/CRLReason.java ! src/share/classes/java/security/cert/CRLSelector.java ! src/share/classes/java/security/cert/CertPath.java ! src/share/classes/java/security/cert/CertPathBuilder.java ! src/share/classes/java/security/cert/CertPathBuilderException.java ! src/share/classes/java/security/cert/CertPathBuilderResult.java ! src/share/classes/java/security/cert/CertPathBuilderSpi.java ! src/share/classes/java/security/cert/CertPathHelperImpl.java ! src/share/classes/java/security/cert/CertPathParameters.java ! src/share/classes/java/security/cert/CertPathValidator.java ! src/share/classes/java/security/cert/CertPathValidatorException.java ! src/share/classes/java/security/cert/CertPathValidatorResult.java ! src/share/classes/java/security/cert/CertPathValidatorSpi.java ! src/share/classes/java/security/cert/CertSelector.java ! src/share/classes/java/security/cert/CertStore.java ! src/share/classes/java/security/cert/CertStoreException.java ! src/share/classes/java/security/cert/CertStoreParameters.java ! src/share/classes/java/security/cert/CertStoreSpi.java ! src/share/classes/java/security/cert/Certificate.java ! src/share/classes/java/security/cert/CertificateEncodingException.java ! src/share/classes/java/security/cert/CertificateException.java ! src/share/classes/java/security/cert/CertificateExpiredException.java ! src/share/classes/java/security/cert/CertificateFactory.java ! src/share/classes/java/security/cert/CertificateFactorySpi.java ! src/share/classes/java/security/cert/CertificateNotYetValidException.java ! src/share/classes/java/security/cert/CertificateParsingException.java ! src/share/classes/java/security/cert/CertificateRevokedException.java ! src/share/classes/java/security/cert/CollectionCertStoreParameters.java ! src/share/classes/java/security/cert/Extension.java ! src/share/classes/java/security/cert/LDAPCertStoreParameters.java ! src/share/classes/java/security/cert/PKIXBuilderParameters.java ! src/share/classes/java/security/cert/PKIXCertPathBuilderResult.java ! src/share/classes/java/security/cert/PKIXCertPathChecker.java ! src/share/classes/java/security/cert/PKIXCertPathValidatorResult.java ! src/share/classes/java/security/cert/PKIXParameters.java ! src/share/classes/java/security/cert/PKIXReason.java ! src/share/classes/java/security/cert/PolicyNode.java ! src/share/classes/java/security/cert/PolicyQualifierInfo.java ! src/share/classes/java/security/cert/TrustAnchor.java ! src/share/classes/java/security/cert/X509CRL.java ! src/share/classes/java/security/cert/X509CRLEntry.java ! src/share/classes/java/security/cert/X509CRLSelector.java ! src/share/classes/java/security/cert/X509CertSelector.java ! src/share/classes/java/security/cert/X509Certificate.java ! src/share/classes/java/security/cert/X509Extension.java ! src/share/classes/java/security/cert/package.html ! src/share/classes/java/security/interfaces/DSAKey.java ! src/share/classes/java/security/interfaces/DSAKeyPairGenerator.java ! src/share/classes/java/security/interfaces/DSAParams.java ! src/share/classes/java/security/interfaces/DSAPrivateKey.java ! src/share/classes/java/security/interfaces/DSAPublicKey.java ! src/share/classes/java/security/interfaces/ECKey.java ! src/share/classes/java/security/interfaces/ECPrivateKey.java ! src/share/classes/java/security/interfaces/ECPublicKey.java ! src/share/classes/java/security/interfaces/RSAKey.java ! src/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java ! src/share/classes/java/security/interfaces/RSAPrivateCrtKey.java ! src/share/classes/java/security/interfaces/RSAPrivateKey.java ! src/share/classes/java/security/interfaces/RSAPublicKey.java ! src/share/classes/java/security/interfaces/package.html ! src/share/classes/java/security/package.html ! src/share/classes/java/security/spec/AlgorithmParameterSpec.java ! src/share/classes/java/security/spec/DSAParameterSpec.java ! src/share/classes/java/security/spec/DSAPrivateKeySpec.java ! src/share/classes/java/security/spec/DSAPublicKeySpec.java ! src/share/classes/java/security/spec/ECField.java ! src/share/classes/java/security/spec/ECFieldF2m.java ! src/share/classes/java/security/spec/ECFieldFp.java ! src/share/classes/java/security/spec/ECGenParameterSpec.java ! src/share/classes/java/security/spec/ECParameterSpec.java ! src/share/classes/java/security/spec/ECPoint.java ! src/share/classes/java/security/spec/ECPrivateKeySpec.java ! src/share/classes/java/security/spec/ECPublicKeySpec.java ! src/share/classes/java/security/spec/EllipticCurve.java ! src/share/classes/java/security/spec/EncodedKeySpec.java ! src/share/classes/java/security/spec/InvalidKeySpecException.java ! src/share/classes/java/security/spec/InvalidParameterSpecException.java ! src/share/classes/java/security/spec/KeySpec.java ! src/share/classes/java/security/spec/MGF1ParameterSpec.java ! src/share/classes/java/security/spec/PKCS8EncodedKeySpec.java ! src/share/classes/java/security/spec/PSSParameterSpec.java ! src/share/classes/java/security/spec/RSAKeyGenParameterSpec.java ! src/share/classes/java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java ! src/share/classes/java/security/spec/RSAOtherPrimeInfo.java ! src/share/classes/java/security/spec/RSAPrivateCrtKeySpec.java ! src/share/classes/java/security/spec/RSAPrivateKeySpec.java ! src/share/classes/java/security/spec/RSAPublicKeySpec.java ! src/share/classes/java/security/spec/X509EncodedKeySpec.java ! src/share/classes/java/security/spec/package.html ! src/share/classes/java/sql/Array.java ! src/share/classes/java/sql/BatchUpdateException.java ! src/share/classes/java/sql/Blob.java ! src/share/classes/java/sql/CallableStatement.java ! src/share/classes/java/sql/ClientInfoStatus.java ! src/share/classes/java/sql/Clob.java ! src/share/classes/java/sql/Connection.java ! src/share/classes/java/sql/DataTruncation.java ! src/share/classes/java/sql/DatabaseMetaData.java ! src/share/classes/java/sql/Date.java ! src/share/classes/java/sql/Driver.java ! src/share/classes/java/sql/DriverManager.java ! src/share/classes/java/sql/DriverPropertyInfo.java ! src/share/classes/java/sql/NClob.java ! src/share/classes/java/sql/ParameterMetaData.java ! src/share/classes/java/sql/PreparedStatement.java ! src/share/classes/java/sql/Ref.java ! src/share/classes/java/sql/ResultSet.java ! src/share/classes/java/sql/ResultSetMetaData.java ! src/share/classes/java/sql/RowId.java ! src/share/classes/java/sql/RowIdLifetime.java ! src/share/classes/java/sql/SQLClientInfoException.java ! src/share/classes/java/sql/SQLData.java ! src/share/classes/java/sql/SQLDataException.java ! src/share/classes/java/sql/SQLException.java ! src/share/classes/java/sql/SQLFeatureNotSupportedException.java ! src/share/classes/java/sql/SQLInput.java ! src/share/classes/java/sql/SQLIntegrityConstraintViolationException.java ! src/share/classes/java/sql/SQLInvalidAuthorizationSpecException.java ! src/share/classes/java/sql/SQLNonTransientConnectionException.java ! src/share/classes/java/sql/SQLNonTransientException.java ! src/share/classes/java/sql/SQLOutput.java ! src/share/classes/java/sql/SQLPermission.java ! src/share/classes/java/sql/SQLRecoverableException.java ! src/share/classes/java/sql/SQLSyntaxErrorException.java ! src/share/classes/java/sql/SQLTimeoutException.java ! src/share/classes/java/sql/SQLTransactionRollbackException.java ! src/share/classes/java/sql/SQLTransientConnectionException.java ! src/share/classes/java/sql/SQLTransientException.java ! src/share/classes/java/sql/SQLWarning.java ! src/share/classes/java/sql/SQLXML.java ! src/share/classes/java/sql/Savepoint.java ! src/share/classes/java/sql/Statement.java ! src/share/classes/java/sql/Struct.java ! src/share/classes/java/sql/Time.java ! src/share/classes/java/sql/Timestamp.java ! src/share/classes/java/sql/Types.java ! src/share/classes/java/sql/Wrapper.java ! src/share/classes/java/sql/package.html ! src/share/classes/java/text/Annotation.java ! src/share/classes/java/text/AttributedCharacterIterator.java ! src/share/classes/java/text/AttributedString.java ! src/share/classes/java/text/Bidi.java ! src/share/classes/java/text/BreakDictionary.java ! src/share/classes/java/text/BreakIterator.java ! src/share/classes/java/text/CharacterIterator.java ! src/share/classes/java/text/CharacterIteratorFieldDelegate.java ! src/share/classes/java/text/ChoiceFormat.java ! src/share/classes/java/text/CollationElementIterator.java ! src/share/classes/java/text/CollationKey.java ! src/share/classes/java/text/CollationRules.java ! src/share/classes/java/text/Collator.java ! src/share/classes/java/text/DateFormat.java ! src/share/classes/java/text/DateFormatSymbols.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/java/text/DecimalFormatSymbols.java ! src/share/classes/java/text/DictionaryBasedBreakIterator.java ! src/share/classes/java/text/DigitList.java ! src/share/classes/java/text/DontCareFieldPosition.java ! src/share/classes/java/text/EntryPair.java ! src/share/classes/java/text/FieldPosition.java ! src/share/classes/java/text/Format.java ! src/share/classes/java/text/MergeCollation.java ! src/share/classes/java/text/MessageFormat.java ! src/share/classes/java/text/Normalizer.java ! src/share/classes/java/text/NumberFormat.java ! src/share/classes/java/text/ParseException.java ! src/share/classes/java/text/ParsePosition.java ! src/share/classes/java/text/PatternEntry.java ! src/share/classes/java/text/RBCollationTables.java ! src/share/classes/java/text/RBTableBuilder.java ! src/share/classes/java/text/RuleBasedBreakIterator.java ! src/share/classes/java/text/RuleBasedCollationKey.java ! src/share/classes/java/text/RuleBasedCollator.java ! src/share/classes/java/text/SimpleDateFormat.java ! src/share/classes/java/text/StringCharacterIterator.java ! src/share/classes/java/text/package.html ! src/share/classes/java/text/spi/BreakIteratorProvider.java ! src/share/classes/java/text/spi/CollatorProvider.java ! src/share/classes/java/text/spi/DateFormatProvider.java ! src/share/classes/java/text/spi/DateFormatSymbolsProvider.java ! src/share/classes/java/text/spi/DecimalFormatSymbolsProvider.java ! src/share/classes/java/text/spi/NumberFormatProvider.java ! src/share/classes/java/text/spi/package.html ! src/share/classes/java/util/AbstractCollection.java ! src/share/classes/java/util/AbstractList.java ! src/share/classes/java/util/AbstractMap.java ! src/share/classes/java/util/AbstractQueue.java ! src/share/classes/java/util/AbstractSequentialList.java ! src/share/classes/java/util/AbstractSet.java ! src/share/classes/java/util/ArrayDeque.java ! src/share/classes/java/util/ArrayList.java ! src/share/classes/java/util/Arrays.java ! src/share/classes/java/util/BitSet.java ! src/share/classes/java/util/Calendar.java ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Collections.java ! src/share/classes/java/util/ComparableTimSort.java ! src/share/classes/java/util/Comparator.java ! src/share/classes/java/util/ConcurrentModificationException.java ! src/share/classes/java/util/Currency.java ! src/share/classes/java/util/CurrencyData.properties ! src/share/classes/java/util/Date.java ! src/share/classes/java/util/Deque.java ! src/share/classes/java/util/Dictionary.java ! src/share/classes/java/util/DualPivotQuicksort.java ! src/share/classes/java/util/DuplicateFormatFlagsException.java ! src/share/classes/java/util/EmptyStackException.java ! src/share/classes/java/util/EnumMap.java ! src/share/classes/java/util/EnumSet.java ! src/share/classes/java/util/Enumeration.java ! src/share/classes/java/util/EventListener.java ! src/share/classes/java/util/EventListenerProxy.java ! src/share/classes/java/util/EventObject.java ! src/share/classes/java/util/FormatFlagsConversionMismatchException.java ! src/share/classes/java/util/Formattable.java ! src/share/classes/java/util/FormattableFlags.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/java/util/FormatterClosedException.java ! src/share/classes/java/util/GregorianCalendar.java ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/HashSet.java ! src/share/classes/java/util/Hashtable.java ! src/share/classes/java/util/IdentityHashMap.java ! src/share/classes/java/util/IllegalFormatCodePointException.java ! src/share/classes/java/util/IllegalFormatConversionException.java ! src/share/classes/java/util/IllegalFormatException.java ! src/share/classes/java/util/IllegalFormatFlagsException.java ! src/share/classes/java/util/IllegalFormatPrecisionException.java ! src/share/classes/java/util/IllegalFormatWidthException.java ! src/share/classes/java/util/InputMismatchException.java ! src/share/classes/java/util/InvalidPropertiesFormatException.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/JapaneseImperialCalendar.java ! src/share/classes/java/util/JumboEnumSet.java ! src/share/classes/java/util/LinkedHashMap.java ! src/share/classes/java/util/LinkedHashSet.java ! src/share/classes/java/util/LinkedList.java ! src/share/classes/java/util/List.java ! src/share/classes/java/util/ListIterator.java ! src/share/classes/java/util/ListResourceBundle.java ! src/share/classes/java/util/Locale.java ! src/share/classes/java/util/LocaleISOData.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/MissingFormatArgumentException.java ! src/share/classes/java/util/MissingFormatWidthException.java ! src/share/classes/java/util/MissingResourceException.java ! src/share/classes/java/util/NavigableMap.java ! src/share/classes/java/util/NavigableSet.java ! src/share/classes/java/util/NoSuchElementException.java ! src/share/classes/java/util/Objects.java ! src/share/classes/java/util/Observable.java ! src/share/classes/java/util/Observer.java ! src/share/classes/java/util/PriorityQueue.java ! src/share/classes/java/util/Properties.java ! src/share/classes/java/util/PropertyPermission.java ! src/share/classes/java/util/PropertyResourceBundle.java ! src/share/classes/java/util/Queue.java ! src/share/classes/java/util/Random.java ! src/share/classes/java/util/RandomAccess.java ! src/share/classes/java/util/RegularEnumSet.java ! src/share/classes/java/util/ResourceBundle.java ! src/share/classes/java/util/Scanner.java ! src/share/classes/java/util/ServiceConfigurationError.java ! src/share/classes/java/util/ServiceLoader.java ! src/share/classes/java/util/Set.java ! src/share/classes/java/util/SimpleTimeZone.java ! src/share/classes/java/util/SortedMap.java ! src/share/classes/java/util/SortedSet.java ! src/share/classes/java/util/Stack.java ! src/share/classes/java/util/StringTokenizer.java ! src/share/classes/java/util/TimSort.java ! src/share/classes/java/util/TimeZone.java ! src/share/classes/java/util/Timer.java ! src/share/classes/java/util/TimerTask.java ! src/share/classes/java/util/TooManyListenersException.java ! src/share/classes/java/util/TreeMap.java ! src/share/classes/java/util/TreeSet.java ! src/share/classes/java/util/UUID.java ! src/share/classes/java/util/UnknownFormatConversionException.java ! src/share/classes/java/util/UnknownFormatFlagsException.java ! src/share/classes/java/util/Vector.java ! src/share/classes/java/util/WeakHashMap.java ! src/share/classes/java/util/XMLUtils.java ! src/share/classes/java/util/concurrent/AbstractExecutorService.java ! src/share/classes/java/util/concurrent/ArrayBlockingQueue.java ! src/share/classes/java/util/concurrent/BlockingDeque.java ! src/share/classes/java/util/concurrent/BlockingQueue.java ! src/share/classes/java/util/concurrent/BrokenBarrierException.java ! src/share/classes/java/util/concurrent/Callable.java ! src/share/classes/java/util/concurrent/CancellationException.java ! src/share/classes/java/util/concurrent/CompletionService.java ! src/share/classes/java/util/concurrent/ConcurrentHashMap.java ! src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java ! src/share/classes/java/util/concurrent/ConcurrentMap.java ! src/share/classes/java/util/concurrent/ConcurrentNavigableMap.java ! src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java ! src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java ! src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java ! src/share/classes/java/util/concurrent/CopyOnWriteArraySet.java ! src/share/classes/java/util/concurrent/CountDownLatch.java ! src/share/classes/java/util/concurrent/CyclicBarrier.java ! src/share/classes/java/util/concurrent/DelayQueue.java ! src/share/classes/java/util/concurrent/Delayed.java ! src/share/classes/java/util/concurrent/Exchanger.java ! src/share/classes/java/util/concurrent/ExecutionException.java ! src/share/classes/java/util/concurrent/Executor.java ! src/share/classes/java/util/concurrent/ExecutorCompletionService.java ! src/share/classes/java/util/concurrent/ExecutorService.java ! src/share/classes/java/util/concurrent/Executors.java ! src/share/classes/java/util/concurrent/ForkJoinPool.java ! src/share/classes/java/util/concurrent/ForkJoinTask.java ! src/share/classes/java/util/concurrent/ForkJoinWorkerThread.java ! src/share/classes/java/util/concurrent/Future.java ! src/share/classes/java/util/concurrent/FutureTask.java ! src/share/classes/java/util/concurrent/LinkedBlockingDeque.java ! src/share/classes/java/util/concurrent/LinkedBlockingQueue.java ! src/share/classes/java/util/concurrent/LinkedTransferQueue.java ! src/share/classes/java/util/concurrent/Phaser.java ! src/share/classes/java/util/concurrent/PriorityBlockingQueue.java ! src/share/classes/java/util/concurrent/RecursiveAction.java ! src/share/classes/java/util/concurrent/RecursiveTask.java ! src/share/classes/java/util/concurrent/RejectedExecutionException.java ! src/share/classes/java/util/concurrent/RejectedExecutionHandler.java ! src/share/classes/java/util/concurrent/RunnableFuture.java ! src/share/classes/java/util/concurrent/RunnableScheduledFuture.java ! src/share/classes/java/util/concurrent/ScheduledExecutorService.java ! src/share/classes/java/util/concurrent/ScheduledFuture.java ! src/share/classes/java/util/concurrent/ScheduledThreadPoolExecutor.java ! src/share/classes/java/util/concurrent/Semaphore.java ! src/share/classes/java/util/concurrent/SynchronousQueue.java ! src/share/classes/java/util/concurrent/ThreadFactory.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java ! src/share/classes/java/util/concurrent/ThreadPoolExecutor.java ! src/share/classes/java/util/concurrent/TimeUnit.java ! src/share/classes/java/util/concurrent/TimeoutException.java ! src/share/classes/java/util/concurrent/TransferQueue.java ! src/share/classes/java/util/concurrent/atomic/AtomicBoolean.java ! src/share/classes/java/util/concurrent/atomic/AtomicInteger.java ! src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java ! src/share/classes/java/util/concurrent/atomic/AtomicLong.java ! src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java ! src/share/classes/java/util/concurrent/atomic/AtomicMarkableReference.java ! src/share/classes/java/util/concurrent/atomic/AtomicReference.java ! src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java ! src/share/classes/java/util/concurrent/atomic/AtomicStampedReference.java ! src/share/classes/java/util/concurrent/atomic/package-info.java ! src/share/classes/java/util/concurrent/locks/AbstractOwnableSynchronizer.java ! src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ! src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java ! src/share/classes/java/util/concurrent/locks/Condition.java ! src/share/classes/java/util/concurrent/locks/Lock.java ! src/share/classes/java/util/concurrent/locks/LockSupport.java ! src/share/classes/java/util/concurrent/locks/ReadWriteLock.java ! src/share/classes/java/util/concurrent/locks/ReentrantLock.java ! src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java ! src/share/classes/java/util/concurrent/locks/package-info.java ! src/share/classes/java/util/concurrent/package-info.java ! src/share/classes/java/util/jar/Attributes.java ! src/share/classes/java/util/jar/JarEntry.java ! src/share/classes/java/util/jar/JarException.java ! src/share/classes/java/util/jar/JarFile.java ! src/share/classes/java/util/jar/JarInputStream.java ! src/share/classes/java/util/jar/JarOutputStream.java ! src/share/classes/java/util/jar/JarVerifier.java ! src/share/classes/java/util/jar/JavaUtilJarAccessImpl.java ! src/share/classes/java/util/jar/Manifest.java ! src/share/classes/java/util/jar/Pack200.java ! src/share/classes/java/util/jar/package.html ! src/share/classes/java/util/logging/ConsoleHandler.java ! src/share/classes/java/util/logging/ErrorManager.java ! src/share/classes/java/util/logging/FileHandler.java ! src/share/classes/java/util/logging/Filter.java ! src/share/classes/java/util/logging/Formatter.java ! src/share/classes/java/util/logging/Handler.java ! src/share/classes/java/util/logging/Level.java ! src/share/classes/java/util/logging/LogManager.java ! src/share/classes/java/util/logging/LogRecord.java ! src/share/classes/java/util/logging/Logger.java ! src/share/classes/java/util/logging/Logging.java ! src/share/classes/java/util/logging/LoggingMXBean.java ! src/share/classes/java/util/logging/LoggingPermission.java ! src/share/classes/java/util/logging/LoggingProxyImpl.java ! src/share/classes/java/util/logging/MemoryHandler.java ! src/share/classes/java/util/logging/PlatformLoggingMXBean.java ! src/share/classes/java/util/logging/SimpleFormatter.java ! src/share/classes/java/util/logging/SocketHandler.java ! src/share/classes/java/util/logging/StreamHandler.java ! src/share/classes/java/util/logging/XMLFormatter.java ! src/share/classes/java/util/logging/package.html ! src/share/classes/java/util/package.html ! src/share/classes/java/util/prefs/AbstractPreferences.java ! src/share/classes/java/util/prefs/BackingStoreException.java ! src/share/classes/java/util/prefs/Base64.java ! src/share/classes/java/util/prefs/InvalidPreferencesFormatException.java ! src/share/classes/java/util/prefs/NodeChangeEvent.java ! src/share/classes/java/util/prefs/NodeChangeListener.java ! src/share/classes/java/util/prefs/PreferenceChangeEvent.java ! src/share/classes/java/util/prefs/PreferenceChangeListener.java ! src/share/classes/java/util/prefs/Preferences.java ! src/share/classes/java/util/prefs/PreferencesFactory.java ! src/share/classes/java/util/prefs/XmlSupport.java ! src/share/classes/java/util/prefs/package.html ! src/share/classes/java/util/regex/ASCII.java ! src/share/classes/java/util/regex/MatchResult.java ! src/share/classes/java/util/regex/Matcher.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/regex/PatternSyntaxException.java ! src/share/classes/java/util/regex/package.html ! src/share/classes/java/util/spi/CurrencyNameProvider.java ! src/share/classes/java/util/spi/LocaleNameProvider.java ! src/share/classes/java/util/spi/LocaleServiceProvider.java ! src/share/classes/java/util/spi/TimeZoneNameProvider.java ! src/share/classes/java/util/spi/package.html ! src/share/classes/java/util/zip/Adler32.java ! src/share/classes/java/util/zip/CRC32.java ! src/share/classes/java/util/zip/CheckedInputStream.java ! src/share/classes/java/util/zip/CheckedOutputStream.java ! src/share/classes/java/util/zip/Checksum.java ! src/share/classes/java/util/zip/DataFormatException.java ! src/share/classes/java/util/zip/Deflater.java ! src/share/classes/java/util/zip/DeflaterInputStream.java ! src/share/classes/java/util/zip/DeflaterOutputStream.java ! src/share/classes/java/util/zip/GZIPInputStream.java ! src/share/classes/java/util/zip/GZIPOutputStream.java ! src/share/classes/java/util/zip/Inflater.java ! src/share/classes/java/util/zip/InflaterInputStream.java ! src/share/classes/java/util/zip/InflaterOutputStream.java ! src/share/classes/java/util/zip/ZStreamRef.java ! src/share/classes/java/util/zip/ZipCoder.java ! src/share/classes/java/util/zip/ZipConstants.java ! src/share/classes/java/util/zip/ZipConstants64.java ! src/share/classes/java/util/zip/ZipEntry.java ! src/share/classes/java/util/zip/ZipError.java ! src/share/classes/java/util/zip/ZipException.java ! src/share/classes/java/util/zip/ZipFile.java ! src/share/classes/java/util/zip/ZipInputStream.java ! src/share/classes/java/util/zip/ZipOutputStream.java ! src/share/classes/java/util/zip/package.html ! src/share/classes/javax/accessibility/Accessible.java ! src/share/classes/javax/accessibility/AccessibleAction.java ! src/share/classes/javax/accessibility/AccessibleAttributeSequence.java ! src/share/classes/javax/accessibility/AccessibleBundle.java ! src/share/classes/javax/accessibility/AccessibleComponent.java ! src/share/classes/javax/accessibility/AccessibleContext.java ! src/share/classes/javax/accessibility/AccessibleEditableText.java ! src/share/classes/javax/accessibility/AccessibleExtendedComponent.java ! src/share/classes/javax/accessibility/AccessibleExtendedTable.java ! src/share/classes/javax/accessibility/AccessibleExtendedText.java ! src/share/classes/javax/accessibility/AccessibleHyperlink.java ! src/share/classes/javax/accessibility/AccessibleHypertext.java ! src/share/classes/javax/accessibility/AccessibleIcon.java ! src/share/classes/javax/accessibility/AccessibleKeyBinding.java ! src/share/classes/javax/accessibility/AccessibleRelation.java ! src/share/classes/javax/accessibility/AccessibleRelationSet.java ! src/share/classes/javax/accessibility/AccessibleResourceBundle.java ! src/share/classes/javax/accessibility/AccessibleRole.java ! src/share/classes/javax/accessibility/AccessibleSelection.java ! src/share/classes/javax/accessibility/AccessibleState.java ! src/share/classes/javax/accessibility/AccessibleStateSet.java ! src/share/classes/javax/accessibility/AccessibleStreamable.java ! src/share/classes/javax/accessibility/AccessibleTable.java ! src/share/classes/javax/accessibility/AccessibleTableModelChange.java ! src/share/classes/javax/accessibility/AccessibleText.java ! src/share/classes/javax/accessibility/AccessibleTextSequence.java ! src/share/classes/javax/accessibility/AccessibleValue.java ! src/share/classes/javax/accessibility/package.html ! src/share/classes/javax/crypto/BadPaddingException.java ! src/share/classes/javax/crypto/Cipher.java ! src/share/classes/javax/crypto/CipherInputStream.java ! src/share/classes/javax/crypto/CipherOutputStream.java ! src/share/classes/javax/crypto/CipherSpi.java ! src/share/classes/javax/crypto/CryptoAllPermission.java ! src/share/classes/javax/crypto/CryptoPermission.java ! src/share/classes/javax/crypto/CryptoPermissions.java ! src/share/classes/javax/crypto/CryptoPolicyParser.java ! src/share/classes/javax/crypto/EncryptedPrivateKeyInfo.java ! src/share/classes/javax/crypto/ExemptionMechanism.java ! src/share/classes/javax/crypto/ExemptionMechanismException.java ! src/share/classes/javax/crypto/ExemptionMechanismSpi.java ! src/share/classes/javax/crypto/IllegalBlockSizeException.java ! src/share/classes/javax/crypto/JarVerifier.java ! src/share/classes/javax/crypto/JceSecurity.java ! src/share/classes/javax/crypto/JceSecurityManager.java ! src/share/classes/javax/crypto/KeyAgreement.java ! src/share/classes/javax/crypto/KeyAgreementSpi.java ! src/share/classes/javax/crypto/KeyGenerator.java ! src/share/classes/javax/crypto/KeyGeneratorSpi.java ! src/share/classes/javax/crypto/Mac.java ! src/share/classes/javax/crypto/MacSpi.java ! src/share/classes/javax/crypto/NoSuchPaddingException.java ! src/share/classes/javax/crypto/NullCipher.java ! src/share/classes/javax/crypto/NullCipherSpi.java ! src/share/classes/javax/crypto/SealedObject.java ! src/share/classes/javax/crypto/SecretKey.java ! src/share/classes/javax/crypto/SecretKeyFactory.java ! src/share/classes/javax/crypto/SecretKeyFactorySpi.java ! src/share/classes/javax/crypto/ShortBufferException.java ! src/share/classes/javax/crypto/interfaces/DHKey.java ! src/share/classes/javax/crypto/interfaces/DHPrivateKey.java ! src/share/classes/javax/crypto/interfaces/DHPublicKey.java ! src/share/classes/javax/crypto/interfaces/PBEKey.java ! src/share/classes/javax/crypto/interfaces/package.html ! src/share/classes/javax/crypto/package.html ! src/share/classes/javax/crypto/spec/DESKeySpec.java ! src/share/classes/javax/crypto/spec/DESedeKeySpec.java ! src/share/classes/javax/crypto/spec/DHGenParameterSpec.java ! src/share/classes/javax/crypto/spec/DHParameterSpec.java ! src/share/classes/javax/crypto/spec/DHPrivateKeySpec.java ! src/share/classes/javax/crypto/spec/DHPublicKeySpec.java ! src/share/classes/javax/crypto/spec/IvParameterSpec.java ! src/share/classes/javax/crypto/spec/OAEPParameterSpec.java ! src/share/classes/javax/crypto/spec/PBEKeySpec.java ! src/share/classes/javax/crypto/spec/PBEParameterSpec.java ! src/share/classes/javax/crypto/spec/PSource.java ! src/share/classes/javax/crypto/spec/RC2ParameterSpec.java ! src/share/classes/javax/crypto/spec/RC5ParameterSpec.java ! src/share/classes/javax/crypto/spec/SecretKeySpec.java ! src/share/classes/javax/crypto/spec/package.html ! src/share/classes/javax/imageio/IIOException.java ! src/share/classes/javax/imageio/IIOImage.java ! src/share/classes/javax/imageio/IIOParam.java ! src/share/classes/javax/imageio/IIOParamController.java ! src/share/classes/javax/imageio/ImageIO.java ! src/share/classes/javax/imageio/ImageReadParam.java ! src/share/classes/javax/imageio/ImageReader.java ! src/share/classes/javax/imageio/ImageTranscoder.java ! src/share/classes/javax/imageio/ImageTypeSpecifier.java ! src/share/classes/javax/imageio/ImageWriteParam.java ! src/share/classes/javax/imageio/ImageWriter.java ! src/share/classes/javax/imageio/event/IIOReadProgressListener.java ! src/share/classes/javax/imageio/event/IIOReadUpdateListener.java ! src/share/classes/javax/imageio/event/IIOReadWarningListener.java ! src/share/classes/javax/imageio/event/IIOWriteProgressListener.java ! src/share/classes/javax/imageio/event/IIOWriteWarningListener.java ! src/share/classes/javax/imageio/event/package.html ! src/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java ! src/share/classes/javax/imageio/metadata/IIOMetadata.java ! src/share/classes/javax/imageio/metadata/IIOMetadataController.java ! src/share/classes/javax/imageio/metadata/IIOMetadataFormat.java ! src/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java ! src/share/classes/javax/imageio/metadata/IIOMetadataNode.java ! src/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/png_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html ! src/share/classes/javax/imageio/metadata/package.html ! src/share/classes/javax/imageio/package.html ! src/share/classes/javax/imageio/plugins/bmp/BMPImageWriteParam.java ! src/share/classes/javax/imageio/plugins/bmp/package.html ! src/share/classes/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java ! src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java ! src/share/classes/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java ! src/share/classes/javax/imageio/plugins/jpeg/JPEGQTable.java ! src/share/classes/javax/imageio/plugins/jpeg/package.html ! src/share/classes/javax/imageio/spi/DigraphNode.java ! src/share/classes/javax/imageio/spi/IIORegistry.java ! src/share/classes/javax/imageio/spi/IIOServiceProvider.java ! src/share/classes/javax/imageio/spi/ImageInputStreamSpi.java ! src/share/classes/javax/imageio/spi/ImageOutputStreamSpi.java ! src/share/classes/javax/imageio/spi/ImageReaderSpi.java ! src/share/classes/javax/imageio/spi/ImageReaderWriterSpi.java ! src/share/classes/javax/imageio/spi/ImageTranscoderSpi.java ! src/share/classes/javax/imageio/spi/ImageWriterSpi.java ! src/share/classes/javax/imageio/spi/PartiallyOrderedSet.java ! src/share/classes/javax/imageio/spi/RegisterableService.java ! src/share/classes/javax/imageio/spi/ServiceRegistry.java ! src/share/classes/javax/imageio/spi/package.html ! src/share/classes/javax/imageio/stream/FileCacheImageInputStream.java ! src/share/classes/javax/imageio/stream/FileCacheImageOutputStream.java ! src/share/classes/javax/imageio/stream/FileImageInputStream.java ! src/share/classes/javax/imageio/stream/FileImageOutputStream.java ! src/share/classes/javax/imageio/stream/IIOByteBuffer.java ! src/share/classes/javax/imageio/stream/ImageInputStream.java ! src/share/classes/javax/imageio/stream/ImageInputStreamImpl.java ! src/share/classes/javax/imageio/stream/ImageOutputStream.java ! src/share/classes/javax/imageio/stream/ImageOutputStreamImpl.java ! src/share/classes/javax/imageio/stream/MemoryCache.java ! src/share/classes/javax/imageio/stream/MemoryCacheImageInputStream.java ! src/share/classes/javax/imageio/stream/MemoryCacheImageOutputStream.java ! src/share/classes/javax/imageio/stream/package.html ! src/share/classes/javax/management/AndQueryExp.java ! src/share/classes/javax/management/Attribute.java ! src/share/classes/javax/management/AttributeChangeNotification.java ! src/share/classes/javax/management/AttributeChangeNotificationFilter.java ! src/share/classes/javax/management/AttributeList.java ! src/share/classes/javax/management/AttributeNotFoundException.java ! src/share/classes/javax/management/AttributeValueExp.java ! src/share/classes/javax/management/BadAttributeValueExpException.java ! src/share/classes/javax/management/BadBinaryOpValueExpException.java ! src/share/classes/javax/management/BadStringOperationException.java ! src/share/classes/javax/management/BetweenQueryExp.java ! src/share/classes/javax/management/BinaryOpValueExp.java ! src/share/classes/javax/management/BinaryRelQueryExp.java ! src/share/classes/javax/management/BooleanValueExp.java ! src/share/classes/javax/management/ClassAttributeValueExp.java ! src/share/classes/javax/management/DefaultLoaderRepository.java ! src/share/classes/javax/management/Descriptor.java ! src/share/classes/javax/management/DescriptorAccess.java ! src/share/classes/javax/management/DescriptorKey.java ! src/share/classes/javax/management/DescriptorRead.java ! src/share/classes/javax/management/DynamicMBean.java ! src/share/classes/javax/management/ImmutableDescriptor.java ! src/share/classes/javax/management/InQueryExp.java ! src/share/classes/javax/management/InstanceAlreadyExistsException.java ! src/share/classes/javax/management/InstanceNotFoundException.java ! src/share/classes/javax/management/InstanceOfQueryExp.java ! src/share/classes/javax/management/IntrospectionException.java ! src/share/classes/javax/management/InvalidApplicationException.java ! src/share/classes/javax/management/InvalidAttributeValueException.java ! src/share/classes/javax/management/JMException.java ! src/share/classes/javax/management/JMRuntimeException.java ! src/share/classes/javax/management/JMX.java ! src/share/classes/javax/management/ListenerNotFoundException.java ! src/share/classes/javax/management/MBeanAttributeInfo.java ! src/share/classes/javax/management/MBeanConstructorInfo.java ! src/share/classes/javax/management/MBeanException.java ! src/share/classes/javax/management/MBeanFeatureInfo.java ! src/share/classes/javax/management/MBeanInfo.java ! src/share/classes/javax/management/MBeanNotificationInfo.java ! src/share/classes/javax/management/MBeanOperationInfo.java ! src/share/classes/javax/management/MBeanParameterInfo.java ! src/share/classes/javax/management/MBeanPermission.java ! src/share/classes/javax/management/MBeanRegistration.java ! src/share/classes/javax/management/MBeanRegistrationException.java ! src/share/classes/javax/management/MBeanServer.java ! src/share/classes/javax/management/MBeanServerBuilder.java ! src/share/classes/javax/management/MBeanServerConnection.java ! src/share/classes/javax/management/MBeanServerDelegate.java ! src/share/classes/javax/management/MBeanServerDelegateMBean.java ! src/share/classes/javax/management/MBeanServerFactory.java ! src/share/classes/javax/management/MBeanServerInvocationHandler.java ! src/share/classes/javax/management/MBeanServerNotification.java ! src/share/classes/javax/management/MBeanServerPermission.java ! src/share/classes/javax/management/MBeanTrustPermission.java ! src/share/classes/javax/management/MXBean.java ! src/share/classes/javax/management/MalformedObjectNameException.java ! src/share/classes/javax/management/MatchQueryExp.java ! src/share/classes/javax/management/NotCompliantMBeanException.java ! src/share/classes/javax/management/NotQueryExp.java ! src/share/classes/javax/management/Notification.java ! src/share/classes/javax/management/NotificationBroadcaster.java ! src/share/classes/javax/management/NotificationBroadcasterSupport.java ! src/share/classes/javax/management/NotificationEmitter.java ! src/share/classes/javax/management/NotificationFilter.java ! src/share/classes/javax/management/NotificationFilterSupport.java ! src/share/classes/javax/management/NotificationListener.java ! src/share/classes/javax/management/NumericValueExp.java ! src/share/classes/javax/management/ObjectInstance.java ! src/share/classes/javax/management/ObjectName.java ! src/share/classes/javax/management/OperationsException.java ! src/share/classes/javax/management/OrQueryExp.java ! src/share/classes/javax/management/PersistentMBean.java ! src/share/classes/javax/management/QualifiedAttributeValueExp.java ! src/share/classes/javax/management/Query.java ! src/share/classes/javax/management/QueryEval.java ! src/share/classes/javax/management/QueryExp.java ! src/share/classes/javax/management/ReflectionException.java ! src/share/classes/javax/management/RuntimeErrorException.java ! src/share/classes/javax/management/RuntimeMBeanException.java ! src/share/classes/javax/management/RuntimeOperationsException.java ! src/share/classes/javax/management/ServiceNotFoundException.java ! src/share/classes/javax/management/StandardEmitterMBean.java ! src/share/classes/javax/management/StandardMBean.java ! src/share/classes/javax/management/StringValueExp.java ! src/share/classes/javax/management/ValueExp.java ! src/share/classes/javax/management/build.xml ! src/share/classes/javax/management/loading/ClassLoaderRepository.java ! src/share/classes/javax/management/loading/DefaultLoaderRepository.java ! src/share/classes/javax/management/loading/MLet.java ! src/share/classes/javax/management/loading/MLetContent.java ! src/share/classes/javax/management/loading/MLetMBean.java ! src/share/classes/javax/management/loading/MLetObjectInputStream.java ! src/share/classes/javax/management/loading/MLetParser.java ! src/share/classes/javax/management/loading/PrivateClassLoader.java ! src/share/classes/javax/management/loading/PrivateMLet.java ! src/share/classes/javax/management/loading/package.html ! src/share/classes/javax/management/modelmbean/DescriptorSupport.java ! src/share/classes/javax/management/modelmbean/InvalidTargetObjectTypeException.java ! src/share/classes/javax/management/modelmbean/ModelMBean.java ! src/share/classes/javax/management/modelmbean/ModelMBeanAttributeInfo.java ! src/share/classes/javax/management/modelmbean/ModelMBeanConstructorInfo.java ! src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java ! src/share/classes/javax/management/modelmbean/ModelMBeanInfoSupport.java ! src/share/classes/javax/management/modelmbean/ModelMBeanNotificationBroadcaster.java ! src/share/classes/javax/management/modelmbean/ModelMBeanNotificationInfo.java ! src/share/classes/javax/management/modelmbean/ModelMBeanOperationInfo.java ! src/share/classes/javax/management/modelmbean/RequiredModelMBean.java ! src/share/classes/javax/management/modelmbean/XMLParseException.java ! src/share/classes/javax/management/modelmbean/package.html ! src/share/classes/javax/management/monitor/CounterMonitor.java ! src/share/classes/javax/management/monitor/CounterMonitorMBean.java ! src/share/classes/javax/management/monitor/GaugeMonitor.java ! src/share/classes/javax/management/monitor/GaugeMonitorMBean.java ! src/share/classes/javax/management/monitor/Monitor.java ! src/share/classes/javax/management/monitor/MonitorMBean.java ! src/share/classes/javax/management/monitor/MonitorNotification.java ! src/share/classes/javax/management/monitor/MonitorSettingException.java ! src/share/classes/javax/management/monitor/StringMonitor.java ! src/share/classes/javax/management/monitor/StringMonitorMBean.java ! src/share/classes/javax/management/monitor/package.html ! src/share/classes/javax/management/openmbean/ArrayType.java ! src/share/classes/javax/management/openmbean/CompositeData.java ! src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java ! src/share/classes/javax/management/openmbean/CompositeDataSupport.java ! src/share/classes/javax/management/openmbean/CompositeDataView.java ! src/share/classes/javax/management/openmbean/CompositeType.java ! src/share/classes/javax/management/openmbean/InvalidKeyException.java ! src/share/classes/javax/management/openmbean/InvalidOpenTypeException.java ! src/share/classes/javax/management/openmbean/KeyAlreadyExistsException.java ! src/share/classes/javax/management/openmbean/OpenDataException.java ! src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfo.java ! src/share/classes/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java ! src/share/classes/javax/management/openmbean/OpenMBeanConstructorInfo.java ! src/share/classes/javax/management/openmbean/OpenMBeanConstructorInfoSupport.java ! src/share/classes/javax/management/openmbean/OpenMBeanInfo.java ! src/share/classes/javax/management/openmbean/OpenMBeanInfoSupport.java ! src/share/classes/javax/management/openmbean/OpenMBeanOperationInfo.java ! src/share/classes/javax/management/openmbean/OpenMBeanOperationInfoSupport.java ! src/share/classes/javax/management/openmbean/OpenMBeanParameterInfo.java ! src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java ! src/share/classes/javax/management/openmbean/OpenType.java ! src/share/classes/javax/management/openmbean/SimpleType.java ! src/share/classes/javax/management/openmbean/TabularData.java ! src/share/classes/javax/management/openmbean/TabularDataSupport.java ! src/share/classes/javax/management/openmbean/TabularType.java ! src/share/classes/javax/management/openmbean/package.html ! src/share/classes/javax/management/package.html ! src/share/classes/javax/management/relation/InvalidRelationIdException.java ! src/share/classes/javax/management/relation/InvalidRelationServiceException.java ! src/share/classes/javax/management/relation/InvalidRelationTypeException.java ! src/share/classes/javax/management/relation/InvalidRoleInfoException.java ! src/share/classes/javax/management/relation/InvalidRoleValueException.java ! src/share/classes/javax/management/relation/MBeanServerNotificationFilter.java ! src/share/classes/javax/management/relation/Relation.java ! src/share/classes/javax/management/relation/RelationException.java ! src/share/classes/javax/management/relation/RelationNotFoundException.java ! src/share/classes/javax/management/relation/RelationNotification.java ! src/share/classes/javax/management/relation/RelationService.java ! src/share/classes/javax/management/relation/RelationServiceMBean.java ! src/share/classes/javax/management/relation/RelationServiceNotRegisteredException.java ! src/share/classes/javax/management/relation/RelationSupport.java ! src/share/classes/javax/management/relation/RelationSupportMBean.java ! src/share/classes/javax/management/relation/RelationType.java ! src/share/classes/javax/management/relation/RelationTypeNotFoundException.java ! src/share/classes/javax/management/relation/RelationTypeSupport.java ! src/share/classes/javax/management/relation/Role.java ! src/share/classes/javax/management/relation/RoleInfo.java ! src/share/classes/javax/management/relation/RoleInfoNotFoundException.java ! src/share/classes/javax/management/relation/RoleList.java ! src/share/classes/javax/management/relation/RoleNotFoundException.java ! src/share/classes/javax/management/relation/RoleResult.java ! src/share/classes/javax/management/relation/RoleStatus.java ! src/share/classes/javax/management/relation/RoleUnresolved.java ! src/share/classes/javax/management/relation/RoleUnresolvedList.java ! src/share/classes/javax/management/relation/package.html ! src/share/classes/javax/management/remote/JMXAddressable.java ! src/share/classes/javax/management/remote/JMXAuthenticator.java ! src/share/classes/javax/management/remote/JMXConnectionNotification.java ! src/share/classes/javax/management/remote/JMXConnector.java ! src/share/classes/javax/management/remote/JMXConnectorFactory.java ! src/share/classes/javax/management/remote/JMXConnectorProvider.java ! src/share/classes/javax/management/remote/JMXConnectorServer.java ! src/share/classes/javax/management/remote/JMXConnectorServerFactory.java ! src/share/classes/javax/management/remote/JMXConnectorServerMBean.java ! src/share/classes/javax/management/remote/JMXConnectorServerProvider.java ! src/share/classes/javax/management/remote/JMXPrincipal.java ! src/share/classes/javax/management/remote/JMXProviderException.java ! src/share/classes/javax/management/remote/JMXServerErrorException.java ! src/share/classes/javax/management/remote/JMXServiceURL.java ! src/share/classes/javax/management/remote/MBeanServerForwarder.java ! src/share/classes/javax/management/remote/NotificationResult.java ! src/share/classes/javax/management/remote/SubjectDelegationPermission.java ! src/share/classes/javax/management/remote/TargetedNotification.java ! src/share/classes/javax/management/remote/package.html ! src/share/classes/javax/management/remote/rmi/NoCallStackClassLoader.java ! src/share/classes/javax/management/remote/rmi/RMIConnection.java ! src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java ! src/share/classes/javax/management/remote/rmi/RMIConnector.java ! src/share/classes/javax/management/remote/rmi/RMIConnectorServer.java ! src/share/classes/javax/management/remote/rmi/RMIIIOPServerImpl.java ! src/share/classes/javax/management/remote/rmi/RMIJRMPServerImpl.java ! src/share/classes/javax/management/remote/rmi/RMIServer.java ! src/share/classes/javax/management/remote/rmi/RMIServerImpl.java ! src/share/classes/javax/management/remote/rmi/package.html ! src/share/classes/javax/management/timer/Timer.java ! src/share/classes/javax/management/timer/TimerAlarmClockNotification.java ! src/share/classes/javax/management/timer/TimerMBean.java ! src/share/classes/javax/management/timer/TimerNotification.java ! src/share/classes/javax/management/timer/package.html ! src/share/classes/javax/naming/AuthenticationException.java ! src/share/classes/javax/naming/AuthenticationNotSupportedException.java ! src/share/classes/javax/naming/BinaryRefAddr.java ! src/share/classes/javax/naming/Binding.java ! src/share/classes/javax/naming/CannotProceedException.java ! src/share/classes/javax/naming/CommunicationException.java ! src/share/classes/javax/naming/CompositeName.java ! src/share/classes/javax/naming/CompoundName.java ! src/share/classes/javax/naming/ConfigurationException.java ! src/share/classes/javax/naming/Context.java ! src/share/classes/javax/naming/ContextNotEmptyException.java ! src/share/classes/javax/naming/InitialContext.java ! src/share/classes/javax/naming/InsufficientResourcesException.java ! src/share/classes/javax/naming/InterruptedNamingException.java ! src/share/classes/javax/naming/InvalidNameException.java ! src/share/classes/javax/naming/LimitExceededException.java ! src/share/classes/javax/naming/LinkException.java ! src/share/classes/javax/naming/LinkLoopException.java ! src/share/classes/javax/naming/LinkRef.java ! src/share/classes/javax/naming/MalformedLinkException.java ! src/share/classes/javax/naming/Name.java ! src/share/classes/javax/naming/NameAlreadyBoundException.java ! src/share/classes/javax/naming/NameClassPair.java ! src/share/classes/javax/naming/NameImpl.java ! src/share/classes/javax/naming/NameNotFoundException.java ! src/share/classes/javax/naming/NameParser.java ! src/share/classes/javax/naming/NamingEnumeration.java ! src/share/classes/javax/naming/NamingException.java ! src/share/classes/javax/naming/NamingSecurityException.java ! src/share/classes/javax/naming/NoInitialContextException.java ! src/share/classes/javax/naming/NoPermissionException.java ! src/share/classes/javax/naming/NotContextException.java ! src/share/classes/javax/naming/OperationNotSupportedException.java ! src/share/classes/javax/naming/PartialResultException.java ! src/share/classes/javax/naming/RefAddr.java ! src/share/classes/javax/naming/Reference.java ! src/share/classes/javax/naming/Referenceable.java ! src/share/classes/javax/naming/ReferralException.java ! src/share/classes/javax/naming/ServiceUnavailableException.java ! src/share/classes/javax/naming/SizeLimitExceededException.java ! src/share/classes/javax/naming/StringRefAddr.java ! src/share/classes/javax/naming/TimeLimitExceededException.java ! src/share/classes/javax/naming/directory/Attribute.java ! src/share/classes/javax/naming/directory/AttributeInUseException.java ! src/share/classes/javax/naming/directory/AttributeModificationException.java ! src/share/classes/javax/naming/directory/Attributes.java ! src/share/classes/javax/naming/directory/BasicAttribute.java ! src/share/classes/javax/naming/directory/BasicAttributes.java ! src/share/classes/javax/naming/directory/DirContext.java ! src/share/classes/javax/naming/directory/InitialDirContext.java ! src/share/classes/javax/naming/directory/InvalidAttributeIdentifierException.java ! src/share/classes/javax/naming/directory/InvalidAttributeValueException.java ! src/share/classes/javax/naming/directory/InvalidAttributesException.java ! src/share/classes/javax/naming/directory/InvalidSearchControlsException.java ! src/share/classes/javax/naming/directory/InvalidSearchFilterException.java ! src/share/classes/javax/naming/directory/ModificationItem.java ! src/share/classes/javax/naming/directory/NoSuchAttributeException.java ! src/share/classes/javax/naming/directory/SchemaViolationException.java ! src/share/classes/javax/naming/directory/SearchControls.java ! src/share/classes/javax/naming/directory/SearchResult.java ! src/share/classes/javax/naming/directory/package.html ! src/share/classes/javax/naming/event/EventContext.java ! src/share/classes/javax/naming/event/EventDirContext.java ! src/share/classes/javax/naming/event/NamespaceChangeListener.java ! src/share/classes/javax/naming/event/NamingEvent.java ! src/share/classes/javax/naming/event/NamingExceptionEvent.java ! src/share/classes/javax/naming/event/NamingListener.java ! src/share/classes/javax/naming/event/ObjectChangeListener.java ! src/share/classes/javax/naming/event/package.html ! src/share/classes/javax/naming/ldap/BasicControl.java ! src/share/classes/javax/naming/ldap/Control.java ! src/share/classes/javax/naming/ldap/ControlFactory.java ! src/share/classes/javax/naming/ldap/ExtendedRequest.java ! src/share/classes/javax/naming/ldap/ExtendedResponse.java ! src/share/classes/javax/naming/ldap/HasControls.java ! src/share/classes/javax/naming/ldap/InitialLdapContext.java ! src/share/classes/javax/naming/ldap/LdapContext.java ! src/share/classes/javax/naming/ldap/LdapName.java ! src/share/classes/javax/naming/ldap/LdapReferralException.java ! src/share/classes/javax/naming/ldap/ManageReferralControl.java ! src/share/classes/javax/naming/ldap/PagedResultsControl.java ! src/share/classes/javax/naming/ldap/PagedResultsResponseControl.java ! src/share/classes/javax/naming/ldap/Rdn.java ! src/share/classes/javax/naming/ldap/Rfc2253Parser.java ! src/share/classes/javax/naming/ldap/SortControl.java ! src/share/classes/javax/naming/ldap/SortKey.java ! src/share/classes/javax/naming/ldap/SortResponseControl.java ! src/share/classes/javax/naming/ldap/StartTlsRequest.java ! src/share/classes/javax/naming/ldap/StartTlsResponse.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotification.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotificationEvent.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotificationListener.java ! src/share/classes/javax/naming/ldap/package.html ! src/share/classes/javax/naming/package.html ! src/share/classes/javax/naming/spi/ContinuationContext.java ! src/share/classes/javax/naming/spi/ContinuationDirContext.java ! src/share/classes/javax/naming/spi/DirObjectFactory.java ! src/share/classes/javax/naming/spi/DirStateFactory.java ! src/share/classes/javax/naming/spi/DirectoryManager.java ! src/share/classes/javax/naming/spi/InitialContextFactory.java ! src/share/classes/javax/naming/spi/InitialContextFactoryBuilder.java ! src/share/classes/javax/naming/spi/NamingManager.java ! src/share/classes/javax/naming/spi/ObjectFactory.java ! src/share/classes/javax/naming/spi/ObjectFactoryBuilder.java ! src/share/classes/javax/naming/spi/ResolveResult.java ! src/share/classes/javax/naming/spi/Resolver.java ! src/share/classes/javax/naming/spi/StateFactory.java ! src/share/classes/javax/naming/spi/package.html ! src/share/classes/javax/net/ServerSocketFactory.java ! src/share/classes/javax/net/SocketFactory.java ! src/share/classes/javax/net/package.html ! src/share/classes/javax/net/ssl/CertPathTrustManagerParameters.java ! src/share/classes/javax/net/ssl/HandshakeCompletedEvent.java ! src/share/classes/javax/net/ssl/HandshakeCompletedListener.java ! src/share/classes/javax/net/ssl/HostnameVerifier.java ! src/share/classes/javax/net/ssl/HttpsURLConnection.java ! src/share/classes/javax/net/ssl/KeyManager.java ! src/share/classes/javax/net/ssl/KeyManagerFactory.java ! src/share/classes/javax/net/ssl/KeyManagerFactorySpi.java ! src/share/classes/javax/net/ssl/KeyStoreBuilderParameters.java ! src/share/classes/javax/net/ssl/ManagerFactoryParameters.java ! src/share/classes/javax/net/ssl/SSLContext.java ! src/share/classes/javax/net/ssl/SSLContextSpi.java ! src/share/classes/javax/net/ssl/SSLEngine.java ! src/share/classes/javax/net/ssl/SSLEngineResult.java ! src/share/classes/javax/net/ssl/SSLException.java ! src/share/classes/javax/net/ssl/SSLHandshakeException.java ! src/share/classes/javax/net/ssl/SSLKeyException.java ! src/share/classes/javax/net/ssl/SSLParameters.java ! src/share/classes/javax/net/ssl/SSLPeerUnverifiedException.java ! src/share/classes/javax/net/ssl/SSLPermission.java ! src/share/classes/javax/net/ssl/SSLProtocolException.java ! src/share/classes/javax/net/ssl/SSLServerSocket.java ! src/share/classes/javax/net/ssl/SSLServerSocketFactory.java ! src/share/classes/javax/net/ssl/SSLSession.java ! src/share/classes/javax/net/ssl/SSLSessionBindingEvent.java ! src/share/classes/javax/net/ssl/SSLSessionBindingListener.java ! src/share/classes/javax/net/ssl/SSLSessionContext.java ! src/share/classes/javax/net/ssl/SSLSocket.java ! src/share/classes/javax/net/ssl/SSLSocketFactory.java ! src/share/classes/javax/net/ssl/TrustManager.java ! src/share/classes/javax/net/ssl/TrustManagerFactory.java ! src/share/classes/javax/net/ssl/TrustManagerFactorySpi.java ! src/share/classes/javax/net/ssl/X509ExtendedKeyManager.java ! src/share/classes/javax/net/ssl/X509KeyManager.java ! src/share/classes/javax/net/ssl/X509TrustManager.java ! src/share/classes/javax/net/ssl/package.html ! src/share/classes/javax/print/AttributeException.java ! src/share/classes/javax/print/CancelablePrintJob.java ! src/share/classes/javax/print/Doc.java ! src/share/classes/javax/print/DocFlavor.java ! src/share/classes/javax/print/DocPrintJob.java ! src/share/classes/javax/print/FlavorException.java ! src/share/classes/javax/print/MimeType.java ! src/share/classes/javax/print/MultiDoc.java ! src/share/classes/javax/print/MultiDocPrintJob.java ! src/share/classes/javax/print/MultiDocPrintService.java ! src/share/classes/javax/print/PrintException.java ! src/share/classes/javax/print/PrintService.java ! src/share/classes/javax/print/PrintServiceLookup.java ! src/share/classes/javax/print/ServiceUI.java ! src/share/classes/javax/print/ServiceUIFactory.java ! src/share/classes/javax/print/SimpleDoc.java ! src/share/classes/javax/print/StreamPrintService.java ! src/share/classes/javax/print/StreamPrintServiceFactory.java ! src/share/classes/javax/print/URIException.java ! src/share/classes/javax/print/attribute/Attribute.java ! src/share/classes/javax/print/attribute/AttributeSet.java ! src/share/classes/javax/print/attribute/AttributeSetUtilities.java ! src/share/classes/javax/print/attribute/DateTimeSyntax.java ! src/share/classes/javax/print/attribute/DocAttribute.java ! src/share/classes/javax/print/attribute/DocAttributeSet.java ! src/share/classes/javax/print/attribute/EnumSyntax.java ! src/share/classes/javax/print/attribute/HashAttributeSet.java ! src/share/classes/javax/print/attribute/HashDocAttributeSet.java ! src/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java ! src/share/classes/javax/print/attribute/HashPrintRequestAttributeSet.java ! src/share/classes/javax/print/attribute/HashPrintServiceAttributeSet.java ! src/share/classes/javax/print/attribute/IntegerSyntax.java ! src/share/classes/javax/print/attribute/PrintJobAttribute.java ! src/share/classes/javax/print/attribute/PrintJobAttributeSet.java ! src/share/classes/javax/print/attribute/PrintRequestAttribute.java ! src/share/classes/javax/print/attribute/PrintRequestAttributeSet.java ! src/share/classes/javax/print/attribute/PrintServiceAttribute.java ! src/share/classes/javax/print/attribute/PrintServiceAttributeSet.java ! src/share/classes/javax/print/attribute/ResolutionSyntax.java ! src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java ! src/share/classes/javax/print/attribute/Size2DSyntax.java ! src/share/classes/javax/print/attribute/SupportedValuesAttribute.java ! src/share/classes/javax/print/attribute/TextSyntax.java ! src/share/classes/javax/print/attribute/URISyntax.java ! src/share/classes/javax/print/attribute/UnmodifiableSetException.java ! src/share/classes/javax/print/attribute/package.html ! src/share/classes/javax/print/attribute/standard/Chromaticity.java ! src/share/classes/javax/print/attribute/standard/ColorSupported.java ! src/share/classes/javax/print/attribute/standard/Compression.java ! src/share/classes/javax/print/attribute/standard/Copies.java ! src/share/classes/javax/print/attribute/standard/CopiesSupported.java ! src/share/classes/javax/print/attribute/standard/DateTimeAtCompleted.java ! src/share/classes/javax/print/attribute/standard/DateTimeAtCreation.java ! src/share/classes/javax/print/attribute/standard/DateTimeAtProcessing.java ! src/share/classes/javax/print/attribute/standard/Destination.java ! src/share/classes/javax/print/attribute/standard/DialogTypeSelection.java ! src/share/classes/javax/print/attribute/standard/DocumentName.java ! src/share/classes/javax/print/attribute/standard/Fidelity.java ! src/share/classes/javax/print/attribute/standard/Finishings.java ! src/share/classes/javax/print/attribute/standard/JobHoldUntil.java ! src/share/classes/javax/print/attribute/standard/JobImpressions.java ! src/share/classes/javax/print/attribute/standard/JobImpressionsCompleted.java ! src/share/classes/javax/print/attribute/standard/JobImpressionsSupported.java ! src/share/classes/javax/print/attribute/standard/JobKOctets.java ! src/share/classes/javax/print/attribute/standard/JobKOctetsProcessed.java ! src/share/classes/javax/print/attribute/standard/JobKOctetsSupported.java ! src/share/classes/javax/print/attribute/standard/JobMediaSheets.java ! src/share/classes/javax/print/attribute/standard/JobMediaSheetsCompleted.java ! src/share/classes/javax/print/attribute/standard/JobMediaSheetsSupported.java ! src/share/classes/javax/print/attribute/standard/JobMessageFromOperator.java ! src/share/classes/javax/print/attribute/standard/JobName.java ! src/share/classes/javax/print/attribute/standard/JobOriginatingUserName.java ! src/share/classes/javax/print/attribute/standard/JobPriority.java ! src/share/classes/javax/print/attribute/standard/JobPrioritySupported.java ! src/share/classes/javax/print/attribute/standard/JobSheets.java ! src/share/classes/javax/print/attribute/standard/JobState.java ! src/share/classes/javax/print/attribute/standard/JobStateReason.java ! src/share/classes/javax/print/attribute/standard/JobStateReasons.java ! src/share/classes/javax/print/attribute/standard/Media.java ! src/share/classes/javax/print/attribute/standard/MediaName.java ! src/share/classes/javax/print/attribute/standard/MediaPrintableArea.java ! src/share/classes/javax/print/attribute/standard/MediaSize.java ! src/share/classes/javax/print/attribute/standard/MediaSizeName.java ! src/share/classes/javax/print/attribute/standard/MediaTray.java ! src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java ! src/share/classes/javax/print/attribute/standard/NumberOfDocuments.java ! src/share/classes/javax/print/attribute/standard/NumberOfInterveningJobs.java ! src/share/classes/javax/print/attribute/standard/NumberUp.java ! src/share/classes/javax/print/attribute/standard/NumberUpSupported.java ! src/share/classes/javax/print/attribute/standard/OrientationRequested.java ! src/share/classes/javax/print/attribute/standard/OutputDeviceAssigned.java ! src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java ! src/share/classes/javax/print/attribute/standard/PageRanges.java ! src/share/classes/javax/print/attribute/standard/PagesPerMinute.java ! src/share/classes/javax/print/attribute/standard/PagesPerMinuteColor.java ! src/share/classes/javax/print/attribute/standard/PresentationDirection.java ! src/share/classes/javax/print/attribute/standard/PrintQuality.java ! src/share/classes/javax/print/attribute/standard/PrinterInfo.java ! src/share/classes/javax/print/attribute/standard/PrinterIsAcceptingJobs.java ! src/share/classes/javax/print/attribute/standard/PrinterLocation.java ! src/share/classes/javax/print/attribute/standard/PrinterMakeAndModel.java ! src/share/classes/javax/print/attribute/standard/PrinterMessageFromOperator.java ! src/share/classes/javax/print/attribute/standard/PrinterMoreInfo.java ! src/share/classes/javax/print/attribute/standard/PrinterMoreInfoManufacturer.java ! src/share/classes/javax/print/attribute/standard/PrinterName.java ! src/share/classes/javax/print/attribute/standard/PrinterResolution.java ! src/share/classes/javax/print/attribute/standard/PrinterState.java ! src/share/classes/javax/print/attribute/standard/PrinterStateReason.java ! src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java ! src/share/classes/javax/print/attribute/standard/PrinterURI.java ! src/share/classes/javax/print/attribute/standard/QueuedJobCount.java ! src/share/classes/javax/print/attribute/standard/ReferenceUriSchemesSupported.java ! src/share/classes/javax/print/attribute/standard/RequestingUserName.java ! src/share/classes/javax/print/attribute/standard/Severity.java ! src/share/classes/javax/print/attribute/standard/SheetCollate.java ! src/share/classes/javax/print/attribute/standard/Sides.java ! src/share/classes/javax/print/attribute/standard/package.html ! src/share/classes/javax/print/event/PrintEvent.java ! src/share/classes/javax/print/event/PrintJobAdapter.java ! src/share/classes/javax/print/event/PrintJobAttributeEvent.java ! src/share/classes/javax/print/event/PrintJobAttributeListener.java ! src/share/classes/javax/print/event/PrintJobEvent.java ! src/share/classes/javax/print/event/PrintJobListener.java ! src/share/classes/javax/print/event/PrintServiceAttributeEvent.java ! src/share/classes/javax/print/event/PrintServiceAttributeListener.java ! src/share/classes/javax/print/event/package.html ! src/share/classes/javax/print/package.html ! src/share/classes/javax/rmi/ssl/SslRMIClientSocketFactory.java ! src/share/classes/javax/rmi/ssl/SslRMIServerSocketFactory.java ! src/share/classes/javax/rmi/ssl/package.html ! src/share/classes/javax/script/AbstractScriptEngine.java ! src/share/classes/javax/script/Bindings.java ! src/share/classes/javax/script/Compilable.java ! src/share/classes/javax/script/CompiledScript.java ! src/share/classes/javax/script/Invocable.java ! src/share/classes/javax/script/ScriptContext.java ! src/share/classes/javax/script/ScriptEngine.java ! src/share/classes/javax/script/ScriptEngineFactory.java ! src/share/classes/javax/script/ScriptEngineManager.java ! src/share/classes/javax/script/ScriptException.java ! src/share/classes/javax/script/SimpleBindings.java ! src/share/classes/javax/script/SimpleScriptContext.java ! src/share/classes/javax/script/package.html ! src/share/classes/javax/security/auth/AuthPermission.java ! src/share/classes/javax/security/auth/DestroyFailedException.java ! src/share/classes/javax/security/auth/Destroyable.java ! src/share/classes/javax/security/auth/Policy.java ! src/share/classes/javax/security/auth/PrivateCredentialPermission.java ! src/share/classes/javax/security/auth/RefreshFailedException.java ! src/share/classes/javax/security/auth/Refreshable.java ! src/share/classes/javax/security/auth/Subject.java ! src/share/classes/javax/security/auth/SubjectDomainCombiner.java ! src/share/classes/javax/security/auth/callback/Callback.java ! src/share/classes/javax/security/auth/callback/CallbackHandler.java ! src/share/classes/javax/security/auth/callback/ChoiceCallback.java ! src/share/classes/javax/security/auth/callback/ConfirmationCallback.java ! src/share/classes/javax/security/auth/callback/LanguageCallback.java ! src/share/classes/javax/security/auth/callback/NameCallback.java ! src/share/classes/javax/security/auth/callback/PasswordCallback.java ! src/share/classes/javax/security/auth/callback/TextInputCallback.java ! src/share/classes/javax/security/auth/callback/TextOutputCallback.java ! src/share/classes/javax/security/auth/callback/UnsupportedCallbackException.java ! src/share/classes/javax/security/auth/callback/package.html ! src/share/classes/javax/security/auth/kerberos/DelegationPermission.java ! src/share/classes/javax/security/auth/kerberos/KerberosKey.java ! src/share/classes/javax/security/auth/kerberos/KerberosPrincipal.java ! src/share/classes/javax/security/auth/kerberos/KerberosTicket.java ! src/share/classes/javax/security/auth/kerberos/KeyImpl.java ! src/share/classes/javax/security/auth/kerberos/ServicePermission.java ! src/share/classes/javax/security/auth/kerberos/package.html ! src/share/classes/javax/security/auth/login/AccountException.java ! src/share/classes/javax/security/auth/login/AccountExpiredException.java ! src/share/classes/javax/security/auth/login/AccountLockedException.java ! src/share/classes/javax/security/auth/login/AccountNotFoundException.java ! src/share/classes/javax/security/auth/login/AppConfigurationEntry.java ! src/share/classes/javax/security/auth/login/Configuration.java ! src/share/classes/javax/security/auth/login/ConfigurationSpi.java ! src/share/classes/javax/security/auth/login/CredentialException.java ! src/share/classes/javax/security/auth/login/CredentialExpiredException.java ! src/share/classes/javax/security/auth/login/CredentialNotFoundException.java ! src/share/classes/javax/security/auth/login/FailedLoginException.java ! src/share/classes/javax/security/auth/login/LoginContext.java ! src/share/classes/javax/security/auth/login/LoginException.java ! src/share/classes/javax/security/auth/login/package.html ! src/share/classes/javax/security/auth/package.html ! src/share/classes/javax/security/auth/spi/LoginModule.java ! src/share/classes/javax/security/auth/spi/package.html ! src/share/classes/javax/security/auth/x500/X500Principal.java ! src/share/classes/javax/security/auth/x500/X500PrivateCredential.java ! src/share/classes/javax/security/auth/x500/package.html ! src/share/classes/javax/security/cert/Certificate.java ! src/share/classes/javax/security/cert/CertificateEncodingException.java ! src/share/classes/javax/security/cert/CertificateException.java ! src/share/classes/javax/security/cert/CertificateExpiredException.java ! src/share/classes/javax/security/cert/CertificateNotYetValidException.java ! src/share/classes/javax/security/cert/CertificateParsingException.java ! src/share/classes/javax/security/cert/X509Certificate.java ! src/share/classes/javax/security/cert/package.html ! src/share/classes/javax/security/sasl/AuthenticationException.java ! src/share/classes/javax/security/sasl/AuthorizeCallback.java ! src/share/classes/javax/security/sasl/RealmCallback.java ! src/share/classes/javax/security/sasl/RealmChoiceCallback.java ! src/share/classes/javax/security/sasl/Sasl.java ! src/share/classes/javax/security/sasl/SaslClient.java ! src/share/classes/javax/security/sasl/SaslClientFactory.java ! src/share/classes/javax/security/sasl/SaslException.java ! src/share/classes/javax/security/sasl/SaslServer.java ! src/share/classes/javax/security/sasl/SaslServerFactory.java ! src/share/classes/javax/security/sasl/package.html ! src/share/classes/javax/smartcardio/ATR.java ! src/share/classes/javax/smartcardio/Card.java ! src/share/classes/javax/smartcardio/CardChannel.java ! src/share/classes/javax/smartcardio/CardException.java ! src/share/classes/javax/smartcardio/CardNotPresentException.java ! src/share/classes/javax/smartcardio/CardPermission.java ! src/share/classes/javax/smartcardio/CardTerminal.java ! src/share/classes/javax/smartcardio/CardTerminals.java ! src/share/classes/javax/smartcardio/CommandAPDU.java ! src/share/classes/javax/smartcardio/ResponseAPDU.java ! src/share/classes/javax/smartcardio/TerminalFactory.java ! src/share/classes/javax/smartcardio/TerminalFactorySpi.java ! src/share/classes/javax/smartcardio/package.html ! src/share/classes/javax/sound/midi/ControllerEventListener.java ! src/share/classes/javax/sound/midi/Instrument.java ! src/share/classes/javax/sound/midi/InvalidMidiDataException.java ! src/share/classes/javax/sound/midi/MetaEventListener.java ! src/share/classes/javax/sound/midi/MetaMessage.java ! src/share/classes/javax/sound/midi/MidiChannel.java ! src/share/classes/javax/sound/midi/MidiDevice.java ! src/share/classes/javax/sound/midi/MidiEvent.java ! src/share/classes/javax/sound/midi/MidiFileFormat.java ! src/share/classes/javax/sound/midi/MidiMessage.java ! src/share/classes/javax/sound/midi/MidiSystem.java ! src/share/classes/javax/sound/midi/MidiUnavailableException.java ! src/share/classes/javax/sound/midi/Patch.java ! src/share/classes/javax/sound/midi/Receiver.java ! src/share/classes/javax/sound/midi/Sequence.java ! src/share/classes/javax/sound/midi/Sequencer.java ! src/share/classes/javax/sound/midi/ShortMessage.java ! src/share/classes/javax/sound/midi/Soundbank.java ! src/share/classes/javax/sound/midi/SoundbankResource.java ! src/share/classes/javax/sound/midi/Synthesizer.java ! src/share/classes/javax/sound/midi/SysexMessage.java ! src/share/classes/javax/sound/midi/Track.java ! src/share/classes/javax/sound/midi/Transmitter.java ! src/share/classes/javax/sound/midi/VoiceStatus.java ! src/share/classes/javax/sound/midi/package.html ! src/share/classes/javax/sound/midi/spi/MidiDeviceProvider.java ! src/share/classes/javax/sound/midi/spi/MidiFileReader.java ! src/share/classes/javax/sound/midi/spi/MidiFileWriter.java ! src/share/classes/javax/sound/midi/spi/SoundbankReader.java ! src/share/classes/javax/sound/midi/spi/package.html ! src/share/classes/javax/sound/sampled/AudioFileFormat.java ! src/share/classes/javax/sound/sampled/AudioFormat.java ! src/share/classes/javax/sound/sampled/AudioInputStream.java ! src/share/classes/javax/sound/sampled/AudioPermission.java ! src/share/classes/javax/sound/sampled/AudioSystem.java ! src/share/classes/javax/sound/sampled/BooleanControl.java ! src/share/classes/javax/sound/sampled/Clip.java ! src/share/classes/javax/sound/sampled/CompoundControl.java ! src/share/classes/javax/sound/sampled/Control.java ! src/share/classes/javax/sound/sampled/DataLine.java ! src/share/classes/javax/sound/sampled/EnumControl.java ! src/share/classes/javax/sound/sampled/FloatControl.java ! src/share/classes/javax/sound/sampled/Line.java ! src/share/classes/javax/sound/sampled/LineEvent.java ! src/share/classes/javax/sound/sampled/LineListener.java ! src/share/classes/javax/sound/sampled/LineUnavailableException.java ! src/share/classes/javax/sound/sampled/Mixer.java ! src/share/classes/javax/sound/sampled/Port.java ! src/share/classes/javax/sound/sampled/ReverbType.java ! src/share/classes/javax/sound/sampled/SourceDataLine.java ! src/share/classes/javax/sound/sampled/TargetDataLine.java ! src/share/classes/javax/sound/sampled/UnsupportedAudioFileException.java ! src/share/classes/javax/sound/sampled/package.html ! src/share/classes/javax/sound/sampled/spi/AudioFileReader.java ! src/share/classes/javax/sound/sampled/spi/AudioFileWriter.java ! src/share/classes/javax/sound/sampled/spi/FormatConversionProvider.java ! src/share/classes/javax/sound/sampled/spi/MixerProvider.java ! src/share/classes/javax/sound/sampled/spi/package.html ! src/share/classes/javax/sql/CommonDataSource.java ! src/share/classes/javax/sql/ConnectionEvent.java ! src/share/classes/javax/sql/ConnectionEventListener.java ! src/share/classes/javax/sql/ConnectionPoolDataSource.java ! src/share/classes/javax/sql/DataSource.java ! src/share/classes/javax/sql/PooledConnection.java ! src/share/classes/javax/sql/RowSet.java ! src/share/classes/javax/sql/RowSetEvent.java ! src/share/classes/javax/sql/RowSetInternal.java ! src/share/classes/javax/sql/RowSetListener.java ! src/share/classes/javax/sql/RowSetMetaData.java ! src/share/classes/javax/sql/RowSetReader.java ! src/share/classes/javax/sql/RowSetWriter.java ! src/share/classes/javax/sql/StatementEvent.java ! src/share/classes/javax/sql/StatementEventListener.java ! src/share/classes/javax/sql/XAConnection.java ! src/share/classes/javax/sql/XADataSource.java ! src/share/classes/javax/sql/package.html ! src/share/classes/javax/sql/rowset/BaseRowSet.java ! src/share/classes/javax/sql/rowset/CachedRowSet.java ! src/share/classes/javax/sql/rowset/FilteredRowSet.java ! src/share/classes/javax/sql/rowset/JdbcRowSet.java ! src/share/classes/javax/sql/rowset/JoinRowSet.java ! src/share/classes/javax/sql/rowset/Joinable.java ! src/share/classes/javax/sql/rowset/Predicate.java ! src/share/classes/javax/sql/rowset/RowSetMetaDataImpl.java ! src/share/classes/javax/sql/rowset/RowSetWarning.java ! src/share/classes/javax/sql/rowset/WebRowSet.java ! src/share/classes/javax/sql/rowset/package.html ! src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java ! src/share/classes/javax/sql/rowset/serial/SQLOutputImpl.java ! src/share/classes/javax/sql/rowset/serial/SerialArray.java ! src/share/classes/javax/sql/rowset/serial/SerialBlob.java ! src/share/classes/javax/sql/rowset/serial/SerialClob.java ! src/share/classes/javax/sql/rowset/serial/SerialDatalink.java ! src/share/classes/javax/sql/rowset/serial/SerialException.java ! src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java ! src/share/classes/javax/sql/rowset/serial/SerialRef.java ! src/share/classes/javax/sql/rowset/serial/SerialStruct.java ! src/share/classes/javax/sql/rowset/serial/package.html ! src/share/classes/javax/sql/rowset/spi/SyncFactory.java ! src/share/classes/javax/sql/rowset/spi/SyncFactoryException.java ! src/share/classes/javax/sql/rowset/spi/SyncProvider.java ! src/share/classes/javax/sql/rowset/spi/SyncProviderException.java ! src/share/classes/javax/sql/rowset/spi/SyncResolver.java ! src/share/classes/javax/sql/rowset/spi/TransactionalWriter.java ! src/share/classes/javax/sql/rowset/spi/XmlReader.java ! src/share/classes/javax/sql/rowset/spi/XmlWriter.java ! src/share/classes/javax/sql/rowset/spi/package.html ! src/share/classes/javax/sql/rowset/sqlxml.xsd ! src/share/classes/javax/sql/rowset/webrowset.xsd ! src/share/classes/javax/swing/AbstractAction.java ! src/share/classes/javax/swing/AbstractButton.java ! src/share/classes/javax/swing/AbstractCellEditor.java ! src/share/classes/javax/swing/AbstractListModel.java ! src/share/classes/javax/swing/AbstractSpinnerModel.java ! src/share/classes/javax/swing/Action.java ! src/share/classes/javax/swing/ActionMap.java ! src/share/classes/javax/swing/ActionPropertyChangeListener.java ! src/share/classes/javax/swing/AncestorNotifier.java ! src/share/classes/javax/swing/ArrayTable.java ! src/share/classes/javax/swing/Autoscroller.java ! src/share/classes/javax/swing/BorderFactory.java ! src/share/classes/javax/swing/BoundedRangeModel.java ! src/share/classes/javax/swing/Box.java ! src/share/classes/javax/swing/BoxLayout.java ! src/share/classes/javax/swing/BufferStrategyPaintManager.java ! src/share/classes/javax/swing/ButtonGroup.java ! src/share/classes/javax/swing/ButtonModel.java ! src/share/classes/javax/swing/CellEditor.java ! src/share/classes/javax/swing/CellRendererPane.java ! src/share/classes/javax/swing/ClientPropertyKey.java ! src/share/classes/javax/swing/ComboBoxEditor.java ! src/share/classes/javax/swing/ComboBoxModel.java ! src/share/classes/javax/swing/ComponentInputMap.java ! src/share/classes/javax/swing/DebugGraphics.java ! src/share/classes/javax/swing/DebugGraphicsFilter.java ! src/share/classes/javax/swing/DebugGraphicsInfo.java ! src/share/classes/javax/swing/DebugGraphicsObserver.java ! src/share/classes/javax/swing/DefaultBoundedRangeModel.java ! src/share/classes/javax/swing/DefaultButtonModel.java ! src/share/classes/javax/swing/DefaultCellEditor.java ! src/share/classes/javax/swing/DefaultComboBoxModel.java ! src/share/classes/javax/swing/DefaultDesktopManager.java ! src/share/classes/javax/swing/DefaultFocusManager.java ! src/share/classes/javax/swing/DefaultListCellRenderer.java ! src/share/classes/javax/swing/DefaultListModel.java ! src/share/classes/javax/swing/DefaultListSelectionModel.java ! src/share/classes/javax/swing/DefaultRowSorter.java ! src/share/classes/javax/swing/DefaultSingleSelectionModel.java ! src/share/classes/javax/swing/DelegatingDefaultFocusManager.java ! src/share/classes/javax/swing/DesktopManager.java ! src/share/classes/javax/swing/DropMode.java ! src/share/classes/javax/swing/FocusManager.java ! src/share/classes/javax/swing/GraphicsWrapper.java ! src/share/classes/javax/swing/GrayFilter.java ! src/share/classes/javax/swing/GroupLayout.java ! src/share/classes/javax/swing/Icon.java ! src/share/classes/javax/swing/ImageIcon.java ! src/share/classes/javax/swing/InputMap.java ! src/share/classes/javax/swing/InputVerifier.java ! src/share/classes/javax/swing/InternalFrameFocusTraversalPolicy.java ! src/share/classes/javax/swing/JApplet.java ! src/share/classes/javax/swing/JButton.java ! src/share/classes/javax/swing/JCheckBox.java ! src/share/classes/javax/swing/JCheckBoxMenuItem.java ! src/share/classes/javax/swing/JColorChooser.java ! src/share/classes/javax/swing/JComboBox.java ! src/share/classes/javax/swing/JComponent.java ! src/share/classes/javax/swing/JDesktopPane.java ! src/share/classes/javax/swing/JDialog.java ! src/share/classes/javax/swing/JEditorPane.java ! src/share/classes/javax/swing/JFileChooser.java ! src/share/classes/javax/swing/JFormattedTextField.java ! src/share/classes/javax/swing/JFrame.java ! src/share/classes/javax/swing/JInternalFrame.java ! src/share/classes/javax/swing/JLabel.java ! src/share/classes/javax/swing/JLayer.java ! src/share/classes/javax/swing/JLayeredPane.java ! src/share/classes/javax/swing/JList.java ! src/share/classes/javax/swing/JMenu.java ! src/share/classes/javax/swing/JMenuBar.java ! src/share/classes/javax/swing/JMenuItem.java ! src/share/classes/javax/swing/JOptionPane.java ! src/share/classes/javax/swing/JPanel.java ! src/share/classes/javax/swing/JPasswordField.java ! src/share/classes/javax/swing/JPopupMenu.java ! src/share/classes/javax/swing/JProgressBar.java ! src/share/classes/javax/swing/JRadioButton.java ! src/share/classes/javax/swing/JRadioButtonMenuItem.java ! src/share/classes/javax/swing/JRootPane.java ! src/share/classes/javax/swing/JScrollBar.java ! src/share/classes/javax/swing/JScrollPane.java ! src/share/classes/javax/swing/JSeparator.java ! src/share/classes/javax/swing/JSlider.java ! src/share/classes/javax/swing/JSpinner.java ! src/share/classes/javax/swing/JSplitPane.java ! src/share/classes/javax/swing/JTabbedPane.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/JTextArea.java ! src/share/classes/javax/swing/JTextField.java ! src/share/classes/javax/swing/JTextPane.java ! src/share/classes/javax/swing/JToggleButton.java ! src/share/classes/javax/swing/JToolBar.java ! src/share/classes/javax/swing/JToolTip.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/JViewport.java ! src/share/classes/javax/swing/JWindow.java ! src/share/classes/javax/swing/KeyStroke.java ! src/share/classes/javax/swing/KeyboardManager.java ! src/share/classes/javax/swing/LayoutComparator.java ! src/share/classes/javax/swing/LayoutFocusTraversalPolicy.java ! src/share/classes/javax/swing/LayoutStyle.java ! src/share/classes/javax/swing/LegacyGlueFocusTraversalPolicy.java ! src/share/classes/javax/swing/ListCellRenderer.java ! src/share/classes/javax/swing/ListModel.java ! src/share/classes/javax/swing/ListSelectionModel.java ! src/share/classes/javax/swing/LookAndFeel.java ! src/share/classes/javax/swing/MenuElement.java ! src/share/classes/javax/swing/MenuSelectionManager.java ! src/share/classes/javax/swing/MultiUIDefaults.java ! src/share/classes/javax/swing/MutableComboBoxModel.java ! src/share/classes/javax/swing/OverlayLayout.java ! src/share/classes/javax/swing/Painter.java ! src/share/classes/javax/swing/Popup.java ! src/share/classes/javax/swing/PopupFactory.java ! src/share/classes/javax/swing/ProgressMonitor.java ! src/share/classes/javax/swing/ProgressMonitorInputStream.java ! src/share/classes/javax/swing/Renderer.java ! src/share/classes/javax/swing/RepaintManager.java ! src/share/classes/javax/swing/RootPaneContainer.java ! src/share/classes/javax/swing/RowFilter.java ! src/share/classes/javax/swing/RowSorter.java ! src/share/classes/javax/swing/ScrollPaneConstants.java ! src/share/classes/javax/swing/ScrollPaneLayout.java ! src/share/classes/javax/swing/Scrollable.java ! src/share/classes/javax/swing/SingleSelectionModel.java ! src/share/classes/javax/swing/SizeRequirements.java ! src/share/classes/javax/swing/SizeSequence.java ! src/share/classes/javax/swing/SortOrder.java ! src/share/classes/javax/swing/SortingFocusTraversalPolicy.java ! src/share/classes/javax/swing/SpinnerDateModel.java ! src/share/classes/javax/swing/SpinnerListModel.java ! src/share/classes/javax/swing/SpinnerModel.java ! src/share/classes/javax/swing/SpinnerNumberModel.java ! src/share/classes/javax/swing/Spring.java ! src/share/classes/javax/swing/SpringLayout.java ! src/share/classes/javax/swing/SwingConstants.java ! src/share/classes/javax/swing/SwingHeavyWeight.java ! src/share/classes/javax/swing/SwingPaintEventDispatcher.java ! src/share/classes/javax/swing/SwingUtilities.java ! src/share/classes/javax/swing/SwingWorker.java ! src/share/classes/javax/swing/TablePrintable.java ! src/share/classes/javax/swing/Timer.java ! src/share/classes/javax/swing/TimerQueue.java ! src/share/classes/javax/swing/ToolTipManager.java ! src/share/classes/javax/swing/TransferHandler.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/javax/swing/UIManager.java ! src/share/classes/javax/swing/UnsupportedLookAndFeelException.java ! src/share/classes/javax/swing/ViewportLayout.java ! src/share/classes/javax/swing/WindowConstants.java ! src/share/classes/javax/swing/border/AbstractBorder.java ! src/share/classes/javax/swing/border/BevelBorder.java ! src/share/classes/javax/swing/border/Border.java ! src/share/classes/javax/swing/border/CompoundBorder.java ! src/share/classes/javax/swing/border/EmptyBorder.java ! src/share/classes/javax/swing/border/EtchedBorder.java ! src/share/classes/javax/swing/border/LineBorder.java ! src/share/classes/javax/swing/border/MatteBorder.java ! src/share/classes/javax/swing/border/SoftBevelBorder.java ! src/share/classes/javax/swing/border/TitledBorder.java ! src/share/classes/javax/swing/border/package.html ! src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java ! src/share/classes/javax/swing/colorchooser/CenterLayout.java ! src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java ! src/share/classes/javax/swing/colorchooser/ColorChooserPanel.java ! src/share/classes/javax/swing/colorchooser/ColorModel.java ! src/share/classes/javax/swing/colorchooser/ColorModelCMYK.java ! src/share/classes/javax/swing/colorchooser/ColorModelHSL.java ! src/share/classes/javax/swing/colorchooser/ColorModelHSV.java ! src/share/classes/javax/swing/colorchooser/ColorPanel.java ! src/share/classes/javax/swing/colorchooser/ColorSelectionModel.java ! src/share/classes/javax/swing/colorchooser/DefaultColorSelectionModel.java ! src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java ! src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java ! src/share/classes/javax/swing/colorchooser/DiagramComponent.java ! src/share/classes/javax/swing/colorchooser/SlidingSpinner.java ! src/share/classes/javax/swing/colorchooser/SmartGridLayout.java ! src/share/classes/javax/swing/colorchooser/ValueFormatter.java ! src/share/classes/javax/swing/colorchooser/package.html ! src/share/classes/javax/swing/event/AncestorEvent.java ! src/share/classes/javax/swing/event/AncestorListener.java ! src/share/classes/javax/swing/event/CaretEvent.java ! src/share/classes/javax/swing/event/CaretListener.java ! src/share/classes/javax/swing/event/CellEditorListener.java ! src/share/classes/javax/swing/event/ChangeEvent.java ! src/share/classes/javax/swing/event/ChangeListener.java ! src/share/classes/javax/swing/event/DocumentEvent.java ! src/share/classes/javax/swing/event/DocumentListener.java ! src/share/classes/javax/swing/event/EventListenerList.java ! src/share/classes/javax/swing/event/HyperlinkEvent.java ! src/share/classes/javax/swing/event/HyperlinkListener.java ! src/share/classes/javax/swing/event/InternalFrameAdapter.java ! src/share/classes/javax/swing/event/InternalFrameEvent.java ! src/share/classes/javax/swing/event/InternalFrameListener.java ! src/share/classes/javax/swing/event/ListDataEvent.java ! src/share/classes/javax/swing/event/ListDataListener.java ! src/share/classes/javax/swing/event/ListSelectionEvent.java ! src/share/classes/javax/swing/event/ListSelectionListener.java ! src/share/classes/javax/swing/event/MenuDragMouseEvent.java ! src/share/classes/javax/swing/event/MenuDragMouseListener.java ! src/share/classes/javax/swing/event/MenuEvent.java ! src/share/classes/javax/swing/event/MenuKeyEvent.java ! src/share/classes/javax/swing/event/MenuKeyListener.java ! src/share/classes/javax/swing/event/MenuListener.java ! src/share/classes/javax/swing/event/MouseInputAdapter.java ! src/share/classes/javax/swing/event/MouseInputListener.java ! src/share/classes/javax/swing/event/PopupMenuEvent.java ! src/share/classes/javax/swing/event/PopupMenuListener.java ! src/share/classes/javax/swing/event/RowSorterEvent.java ! src/share/classes/javax/swing/event/RowSorterListener.java ! src/share/classes/javax/swing/event/SwingPropertyChangeSupport.java ! src/share/classes/javax/swing/event/TableColumnModelEvent.java ! src/share/classes/javax/swing/event/TableColumnModelListener.java ! src/share/classes/javax/swing/event/TableModelEvent.java ! src/share/classes/javax/swing/event/TableModelListener.java ! src/share/classes/javax/swing/event/TreeExpansionEvent.java ! src/share/classes/javax/swing/event/TreeExpansionListener.java ! src/share/classes/javax/swing/event/TreeModelEvent.java ! src/share/classes/javax/swing/event/TreeModelListener.java ! src/share/classes/javax/swing/event/TreeSelectionEvent.java ! src/share/classes/javax/swing/event/TreeSelectionListener.java ! src/share/classes/javax/swing/event/TreeWillExpandListener.java ! src/share/classes/javax/swing/event/UndoableEditEvent.java ! src/share/classes/javax/swing/event/UndoableEditListener.java ! src/share/classes/javax/swing/event/package.html ! src/share/classes/javax/swing/filechooser/FileFilter.java ! src/share/classes/javax/swing/filechooser/FileNameExtensionFilter.java ! src/share/classes/javax/swing/filechooser/FileSystemView.java ! src/share/classes/javax/swing/filechooser/FileView.java ! src/share/classes/javax/swing/filechooser/package.html ! src/share/classes/javax/swing/package.html ! src/share/classes/javax/swing/plaf/ActionMapUIResource.java ! src/share/classes/javax/swing/plaf/BorderUIResource.java ! src/share/classes/javax/swing/plaf/ButtonUI.java ! src/share/classes/javax/swing/plaf/ColorChooserUI.java ! src/share/classes/javax/swing/plaf/ColorUIResource.java ! src/share/classes/javax/swing/plaf/ComboBoxUI.java ! src/share/classes/javax/swing/plaf/ComponentInputMapUIResource.java ! src/share/classes/javax/swing/plaf/ComponentUI.java ! src/share/classes/javax/swing/plaf/DesktopIconUI.java ! src/share/classes/javax/swing/plaf/DesktopPaneUI.java ! src/share/classes/javax/swing/plaf/DimensionUIResource.java ! src/share/classes/javax/swing/plaf/FileChooserUI.java ! src/share/classes/javax/swing/plaf/FontUIResource.java ! src/share/classes/javax/swing/plaf/IconUIResource.java ! src/share/classes/javax/swing/plaf/InputMapUIResource.java ! src/share/classes/javax/swing/plaf/InsetsUIResource.java ! src/share/classes/javax/swing/plaf/InternalFrameUI.java ! src/share/classes/javax/swing/plaf/LabelUI.java ! src/share/classes/javax/swing/plaf/LayerUI.java ! src/share/classes/javax/swing/plaf/ListUI.java ! src/share/classes/javax/swing/plaf/MenuBarUI.java ! src/share/classes/javax/swing/plaf/MenuItemUI.java ! src/share/classes/javax/swing/plaf/OptionPaneUI.java ! src/share/classes/javax/swing/plaf/PanelUI.java ! src/share/classes/javax/swing/plaf/PopupMenuUI.java ! src/share/classes/javax/swing/plaf/ProgressBarUI.java ! src/share/classes/javax/swing/plaf/RootPaneUI.java ! src/share/classes/javax/swing/plaf/ScrollBarUI.java ! src/share/classes/javax/swing/plaf/ScrollPaneUI.java ! src/share/classes/javax/swing/plaf/SeparatorUI.java ! src/share/classes/javax/swing/plaf/SliderUI.java ! src/share/classes/javax/swing/plaf/SpinnerUI.java ! src/share/classes/javax/swing/plaf/SplitPaneUI.java ! src/share/classes/javax/swing/plaf/TabbedPaneUI.java ! src/share/classes/javax/swing/plaf/TableHeaderUI.java ! src/share/classes/javax/swing/plaf/TableUI.java ! src/share/classes/javax/swing/plaf/TextUI.java ! src/share/classes/javax/swing/plaf/ToolBarUI.java ! src/share/classes/javax/swing/plaf/ToolTipUI.java ! src/share/classes/javax/swing/plaf/TreeUI.java ! src/share/classes/javax/swing/plaf/UIResource.java ! src/share/classes/javax/swing/plaf/ViewportUI.java ! src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java ! src/share/classes/javax/swing/plaf/basic/BasicBorders.java ! src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java ! src/share/classes/javax/swing/plaf/basic/BasicButtonUI.java ! src/share/classes/javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java ! src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java ! src/share/classes/javax/swing/plaf/basic/BasicColorChooserUI.java ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java ! src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java ! src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java ! src/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java ! src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java ! src/share/classes/javax/swing/plaf/basic/BasicFormattedTextFieldUI.java ! src/share/classes/javax/swing/plaf/basic/BasicGraphicsUtils.java ! src/share/classes/javax/swing/plaf/basic/BasicHTML.java ! src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java ! src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java ! src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java ! src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java ! src/share/classes/javax/swing/plaf/basic/BasicListUI.java ! src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java ! src/share/classes/javax/swing/plaf/basic/BasicMenuBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java ! src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicPanelUI.java ! src/share/classes/javax/swing/plaf/basic/BasicPasswordFieldUI.java ! src/share/classes/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java ! src/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java ! src/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java ! src/share/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java ! src/share/classes/javax/swing/plaf/basic/BasicRootPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSeparatorUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSpinnerUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java ! src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTableUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToggleButtonUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToolBarSeparatorUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToolTipUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTransferable.java ! src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java ! src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java ! src/share/classes/javax/swing/plaf/basic/CenterLayout.java ! src/share/classes/javax/swing/plaf/basic/ComboPopup.java ! src/share/classes/javax/swing/plaf/basic/DefaultMenuLayout.java ! src/share/classes/javax/swing/plaf/basic/DragRecognitionSupport.java ! src/share/classes/javax/swing/plaf/basic/LazyActionMap.java ! src/share/classes/javax/swing/plaf/basic/package.html ! src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java ! src/share/classes/javax/swing/plaf/metal/MetalBorders.java ! src/share/classes/javax/swing/plaf/metal/MetalBumps.java ! src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java ! src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java ! src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxIcon.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java ! src/share/classes/javax/swing/plaf/metal/MetalDesktopIconUI.java ! src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/share/classes/javax/swing/plaf/metal/MetalFontDesktopProperty.java ! src/share/classes/javax/swing/plaf/metal/MetalHighContrastTheme.java ! src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java ! src/share/classes/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java ! src/share/classes/javax/swing/plaf/metal/MetalInternalFrameUI.java ! src/share/classes/javax/swing/plaf/metal/MetalLabelUI.java ! src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java ! src/share/classes/javax/swing/plaf/metal/MetalMenuBarUI.java ! src/share/classes/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java ! src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java ! src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java ! src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollBarUI.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java ! src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTheme.java ! src/share/classes/javax/swing/plaf/metal/MetalTitlePane.java ! src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java ! src/share/classes/javax/swing/plaf/metal/MetalToolBarUI.java ! src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTreeUI.java ! src/share/classes/javax/swing/plaf/metal/MetalUtils.java ! src/share/classes/javax/swing/plaf/metal/OceanTheme.java ! src/share/classes/javax/swing/plaf/metal/package.html ! src/share/classes/javax/swing/plaf/multi/MultiButtonUI.java ! src/share/classes/javax/swing/plaf/multi/MultiColorChooserUI.java ! src/share/classes/javax/swing/plaf/multi/MultiComboBoxUI.java ! src/share/classes/javax/swing/plaf/multi/MultiDesktopIconUI.java ! src/share/classes/javax/swing/plaf/multi/MultiDesktopPaneUI.java ! src/share/classes/javax/swing/plaf/multi/MultiFileChooserUI.java ! src/share/classes/javax/swing/plaf/multi/MultiInternalFrameUI.java ! src/share/classes/javax/swing/plaf/multi/MultiLabelUI.java ! src/share/classes/javax/swing/plaf/multi/MultiListUI.java ! src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java ! src/share/classes/javax/swing/plaf/multi/MultiMenuBarUI.java ! src/share/classes/javax/swing/plaf/multi/MultiMenuItemUI.java ! src/share/classes/javax/swing/plaf/multi/MultiOptionPaneUI.java ! src/share/classes/javax/swing/plaf/multi/MultiPanelUI.java ! src/share/classes/javax/swing/plaf/multi/MultiPopupMenuUI.java ! src/share/classes/javax/swing/plaf/multi/MultiProgressBarUI.java ! src/share/classes/javax/swing/plaf/multi/MultiRootPaneUI.java ! src/share/classes/javax/swing/plaf/multi/MultiScrollBarUI.java ! src/share/classes/javax/swing/plaf/multi/MultiScrollPaneUI.java ! src/share/classes/javax/swing/plaf/multi/MultiSeparatorUI.java ! src/share/classes/javax/swing/plaf/multi/MultiSliderUI.java ! src/share/classes/javax/swing/plaf/multi/MultiSpinnerUI.java ! src/share/classes/javax/swing/plaf/multi/MultiSplitPaneUI.java ! src/share/classes/javax/swing/plaf/multi/MultiTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/multi/MultiTableHeaderUI.java ! src/share/classes/javax/swing/plaf/multi/MultiTableUI.java ! src/share/classes/javax/swing/plaf/multi/MultiTextUI.java ! src/share/classes/javax/swing/plaf/multi/MultiToolBarUI.java ! src/share/classes/javax/swing/plaf/multi/MultiToolTipUI.java ! src/share/classes/javax/swing/plaf/multi/MultiTreeUI.java ! src/share/classes/javax/swing/plaf/multi/MultiViewportUI.java ! src/share/classes/javax/swing/plaf/multi/package.html ! src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java ! src/share/classes/javax/swing/plaf/nimbus/Defaults.template ! src/share/classes/javax/swing/plaf/nimbus/DerivedColor.java ! src/share/classes/javax/swing/plaf/nimbus/DropShadowEffect.java ! src/share/classes/javax/swing/plaf/nimbus/Effect.java ! src/share/classes/javax/swing/plaf/nimbus/EffectUtils.java ! src/share/classes/javax/swing/plaf/nimbus/ImageCache.java ! src/share/classes/javax/swing/plaf/nimbus/ImageScalingHelper.java ! src/share/classes/javax/swing/plaf/nimbus/InnerGlowEffect.java ! src/share/classes/javax/swing/plaf/nimbus/InnerShadowEffect.java ! src/share/classes/javax/swing/plaf/nimbus/LoweredBorder.java ! src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java ! src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java ! src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java ! src/share/classes/javax/swing/plaf/nimbus/OuterGlowEffect.java ! src/share/classes/javax/swing/plaf/nimbus/PainterImpl.template ! src/share/classes/javax/swing/plaf/nimbus/ShadowEffect.java ! src/share/classes/javax/swing/plaf/nimbus/State.java ! src/share/classes/javax/swing/plaf/nimbus/StateImpl.template ! src/share/classes/javax/swing/plaf/nimbus/SynthPainterImpl.java ! src/share/classes/javax/swing/plaf/nimbus/TableScrollPaneCorner.java ! src/share/classes/javax/swing/plaf/nimbus/ToolBarSeparatorPainter.java ! src/share/classes/javax/swing/plaf/nimbus/package.html ! src/share/classes/javax/swing/plaf/nimbus/skin.laf ! src/share/classes/javax/swing/plaf/package.html ! src/share/classes/javax/swing/plaf/synth/ColorType.java ! src/share/classes/javax/swing/plaf/synth/DefaultSynthStyleFactory.java ! src/share/classes/javax/swing/plaf/synth/ImagePainter.java ! src/share/classes/javax/swing/plaf/synth/ParsedSynthStyle.java ! src/share/classes/javax/swing/plaf/synth/Region.java ! src/share/classes/javax/swing/plaf/synth/SynthArrowButton.java ! src/share/classes/javax/swing/plaf/synth/SynthBorder.java ! src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java ! src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java ! src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java ! src/share/classes/javax/swing/plaf/synth/SynthComboPopup.java ! src/share/classes/javax/swing/plaf/synth/SynthConstants.java ! src/share/classes/javax/swing/plaf/synth/SynthContext.java ! src/share/classes/javax/swing/plaf/synth/SynthDefaultLookup.java ! src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java ! src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthFormattedTextFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthGraphicsUtils.java ! src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java ! src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthListUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuItemLayoutHelper.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuLayout.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java ! src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthPainter.java ! src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthParser.java ! src/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java ! src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRadioButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSplitPaneDivider.java ! src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthStyle.java ! src/share/classes/javax/swing/plaf/synth/SynthStyleFactory.java ! src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java ! src/share/classes/javax/swing/plaf/synth/SynthUI.java ! src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java ! src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html ! src/share/classes/javax/swing/plaf/synth/doc-files/synth.dtd ! src/share/classes/javax/swing/plaf/synth/package.html ! src/share/classes/javax/swing/table/AbstractTableModel.java ! src/share/classes/javax/swing/table/DefaultTableCellRenderer.java ! src/share/classes/javax/swing/table/DefaultTableColumnModel.java ! src/share/classes/javax/swing/table/DefaultTableModel.java ! src/share/classes/javax/swing/table/JTableHeader.java ! src/share/classes/javax/swing/table/TableCellEditor.java ! src/share/classes/javax/swing/table/TableCellRenderer.java ! src/share/classes/javax/swing/table/TableColumn.java ! src/share/classes/javax/swing/table/TableColumnModel.java ! src/share/classes/javax/swing/table/TableModel.java ! src/share/classes/javax/swing/table/TableRowSorter.java ! src/share/classes/javax/swing/table/TableStringConverter.java ! src/share/classes/javax/swing/table/package.html ! src/share/classes/javax/swing/text/AbstractDocument.java ! src/share/classes/javax/swing/text/AbstractWriter.java ! src/share/classes/javax/swing/text/AsyncBoxView.java ! src/share/classes/javax/swing/text/AttributeSet.java ! src/share/classes/javax/swing/text/BadLocationException.java ! src/share/classes/javax/swing/text/BoxView.java ! src/share/classes/javax/swing/text/Caret.java ! src/share/classes/javax/swing/text/ChangedCharSetException.java ! src/share/classes/javax/swing/text/ComponentView.java ! src/share/classes/javax/swing/text/CompositeView.java ! src/share/classes/javax/swing/text/DateFormatter.java ! src/share/classes/javax/swing/text/DefaultCaret.java ! src/share/classes/javax/swing/text/DefaultEditorKit.java ! src/share/classes/javax/swing/text/DefaultFormatter.java ! src/share/classes/javax/swing/text/DefaultFormatterFactory.java ! src/share/classes/javax/swing/text/DefaultHighlighter.java ! src/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/share/classes/javax/swing/text/DefaultTextUI.java ! src/share/classes/javax/swing/text/Document.java ! src/share/classes/javax/swing/text/DocumentFilter.java ! src/share/classes/javax/swing/text/EditorKit.java ! src/share/classes/javax/swing/text/Element.java ! src/share/classes/javax/swing/text/ElementIterator.java ! src/share/classes/javax/swing/text/FieldView.java ! src/share/classes/javax/swing/text/FlowView.java ! src/share/classes/javax/swing/text/GapContent.java ! src/share/classes/javax/swing/text/GapVector.java ! src/share/classes/javax/swing/text/GlyphPainter1.java ! src/share/classes/javax/swing/text/GlyphPainter2.java ! src/share/classes/javax/swing/text/GlyphView.java ! src/share/classes/javax/swing/text/Highlighter.java ! src/share/classes/javax/swing/text/IconView.java ! src/share/classes/javax/swing/text/InternationalFormatter.java ! src/share/classes/javax/swing/text/JTextComponent.java ! src/share/classes/javax/swing/text/Keymap.java ! src/share/classes/javax/swing/text/LabelView.java ! src/share/classes/javax/swing/text/LayeredHighlighter.java ! src/share/classes/javax/swing/text/LayoutQueue.java ! src/share/classes/javax/swing/text/MaskFormatter.java ! src/share/classes/javax/swing/text/MutableAttributeSet.java ! src/share/classes/javax/swing/text/NavigationFilter.java ! src/share/classes/javax/swing/text/NumberFormatter.java ! src/share/classes/javax/swing/text/ParagraphView.java ! src/share/classes/javax/swing/text/PasswordView.java ! src/share/classes/javax/swing/text/PlainDocument.java ! src/share/classes/javax/swing/text/PlainView.java ! src/share/classes/javax/swing/text/Position.java ! src/share/classes/javax/swing/text/Segment.java ! src/share/classes/javax/swing/text/SegmentCache.java ! src/share/classes/javax/swing/text/SimpleAttributeSet.java ! src/share/classes/javax/swing/text/StateInvariantError.java ! src/share/classes/javax/swing/text/StringContent.java ! src/share/classes/javax/swing/text/Style.java ! src/share/classes/javax/swing/text/StyleConstants.java ! src/share/classes/javax/swing/text/StyleContext.java ! src/share/classes/javax/swing/text/StyledDocument.java ! src/share/classes/javax/swing/text/StyledEditorKit.java ! src/share/classes/javax/swing/text/TabExpander.java ! src/share/classes/javax/swing/text/TabSet.java ! src/share/classes/javax/swing/text/TabStop.java ! src/share/classes/javax/swing/text/TabableView.java ! src/share/classes/javax/swing/text/TableView.java ! src/share/classes/javax/swing/text/TextAction.java ! src/share/classes/javax/swing/text/TextLayoutStrategy.java ! src/share/classes/javax/swing/text/Utilities.java ! src/share/classes/javax/swing/text/View.java ! src/share/classes/javax/swing/text/ViewFactory.java ! src/share/classes/javax/swing/text/WhitespaceBasedBreakIterator.java ! src/share/classes/javax/swing/text/WrappedPlainView.java ! src/share/classes/javax/swing/text/ZoneView.java ! src/share/classes/javax/swing/text/html/AccessibleHTML.java ! src/share/classes/javax/swing/text/html/BRView.java ! src/share/classes/javax/swing/text/html/BlockView.java ! src/share/classes/javax/swing/text/html/CSS.java ! src/share/classes/javax/swing/text/html/CSSBorder.java ! src/share/classes/javax/swing/text/html/CSSParser.java ! src/share/classes/javax/swing/text/html/CommentView.java ! src/share/classes/javax/swing/text/html/EditableView.java ! src/share/classes/javax/swing/text/html/FormSubmitEvent.java ! src/share/classes/javax/swing/text/html/FormView.java ! src/share/classes/javax/swing/text/html/FrameSetView.java ! src/share/classes/javax/swing/text/html/FrameView.java ! src/share/classes/javax/swing/text/html/HRuleView.java ! src/share/classes/javax/swing/text/html/HTML.java ! src/share/classes/javax/swing/text/html/HTMLDocument.java ! src/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/share/classes/javax/swing/text/html/HTMLFrameHyperlinkEvent.java ! src/share/classes/javax/swing/text/html/HTMLWriter.java ! src/share/classes/javax/swing/text/html/HiddenTagView.java ! src/share/classes/javax/swing/text/html/ImageView.java ! src/share/classes/javax/swing/text/html/InlineView.java ! src/share/classes/javax/swing/text/html/IsindexView.java ! src/share/classes/javax/swing/text/html/LineView.java ! src/share/classes/javax/swing/text/html/ListView.java ! src/share/classes/javax/swing/text/html/Map.java ! src/share/classes/javax/swing/text/html/MinimalHTMLWriter.java ! src/share/classes/javax/swing/text/html/MuxingAttributeSet.java ! src/share/classes/javax/swing/text/html/NoFramesView.java ! src/share/classes/javax/swing/text/html/ObjectView.java ! src/share/classes/javax/swing/text/html/Option.java ! src/share/classes/javax/swing/text/html/OptionComboBoxModel.java ! src/share/classes/javax/swing/text/html/OptionListModel.java ! src/share/classes/javax/swing/text/html/ParagraphView.java ! src/share/classes/javax/swing/text/html/ResourceLoader.java ! src/share/classes/javax/swing/text/html/StyleSheet.java ! src/share/classes/javax/swing/text/html/TableView.java ! src/share/classes/javax/swing/text/html/TextAreaDocument.java ! src/share/classes/javax/swing/text/html/default.css ! src/share/classes/javax/swing/text/html/package.html ! src/share/classes/javax/swing/text/html/parser/AttributeList.java ! src/share/classes/javax/swing/text/html/parser/ContentModel.java ! src/share/classes/javax/swing/text/html/parser/ContentModelState.java ! src/share/classes/javax/swing/text/html/parser/DTD.java ! src/share/classes/javax/swing/text/html/parser/DTDConstants.java ! src/share/classes/javax/swing/text/html/parser/DocumentParser.java ! src/share/classes/javax/swing/text/html/parser/Element.java ! src/share/classes/javax/swing/text/html/parser/Entity.java ! src/share/classes/javax/swing/text/html/parser/Parser.java ! src/share/classes/javax/swing/text/html/parser/ParserDelegator.java ! src/share/classes/javax/swing/text/html/parser/ResourceLoader.java ! src/share/classes/javax/swing/text/html/parser/TagElement.java ! src/share/classes/javax/swing/text/html/parser/TagStack.java ! src/share/classes/javax/swing/text/html/parser/package.html ! src/share/classes/javax/swing/text/package.html ! src/share/classes/javax/swing/text/rtf/AbstractFilter.java ! src/share/classes/javax/swing/text/rtf/Constants.java ! src/share/classes/javax/swing/text/rtf/MockAttributeSet.java ! src/share/classes/javax/swing/text/rtf/RTFAttribute.java ! src/share/classes/javax/swing/text/rtf/RTFAttributes.java ! src/share/classes/javax/swing/text/rtf/RTFEditorKit.java ! src/share/classes/javax/swing/text/rtf/RTFGenerator.java ! src/share/classes/javax/swing/text/rtf/RTFParser.java ! src/share/classes/javax/swing/text/rtf/RTFReader.java ! src/share/classes/javax/swing/text/rtf/package.html ! src/share/classes/javax/swing/tree/AbstractLayoutCache.java ! src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java ! src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java ! src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java ! src/share/classes/javax/swing/tree/DefaultTreeModel.java ! src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java ! src/share/classes/javax/swing/tree/ExpandVetoException.java ! src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java ! src/share/classes/javax/swing/tree/MutableTreeNode.java ! src/share/classes/javax/swing/tree/RowMapper.java ! src/share/classes/javax/swing/tree/TreeCellEditor.java ! src/share/classes/javax/swing/tree/TreeCellRenderer.java ! src/share/classes/javax/swing/tree/TreeModel.java ! src/share/classes/javax/swing/tree/TreeNode.java ! src/share/classes/javax/swing/tree/TreePath.java ! src/share/classes/javax/swing/tree/TreeSelectionModel.java ! src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java ! src/share/classes/javax/swing/tree/package.html ! src/share/classes/javax/swing/undo/AbstractUndoableEdit.java ! src/share/classes/javax/swing/undo/CannotRedoException.java ! src/share/classes/javax/swing/undo/CannotUndoException.java ! src/share/classes/javax/swing/undo/CompoundEdit.java ! src/share/classes/javax/swing/undo/StateEdit.java ! src/share/classes/javax/swing/undo/StateEditable.java ! src/share/classes/javax/swing/undo/UndoManager.java ! src/share/classes/javax/swing/undo/UndoableEdit.java ! src/share/classes/javax/swing/undo/UndoableEditSupport.java ! src/share/classes/javax/swing/undo/package.html ! src/share/classes/javax/xml/crypto/AlgorithmMethod.java ! src/share/classes/javax/xml/crypto/Data.java ! src/share/classes/javax/xml/crypto/KeySelector.java ! src/share/classes/javax/xml/crypto/KeySelectorException.java ! src/share/classes/javax/xml/crypto/KeySelectorResult.java ! src/share/classes/javax/xml/crypto/MarshalException.java ! src/share/classes/javax/xml/crypto/NoSuchMechanismException.java ! src/share/classes/javax/xml/crypto/NodeSetData.java ! src/share/classes/javax/xml/crypto/OctetStreamData.java ! src/share/classes/javax/xml/crypto/URIDereferencer.java ! src/share/classes/javax/xml/crypto/URIReference.java ! src/share/classes/javax/xml/crypto/URIReferenceException.java ! src/share/classes/javax/xml/crypto/XMLCryptoContext.java ! src/share/classes/javax/xml/crypto/XMLStructure.java ! src/share/classes/javax/xml/crypto/dom/DOMCryptoContext.java ! src/share/classes/javax/xml/crypto/dom/DOMStructure.java ! src/share/classes/javax/xml/crypto/dom/DOMURIReference.java ! src/share/classes/javax/xml/crypto/dom/package.html ! src/share/classes/javax/xml/crypto/dsig/CanonicalizationMethod.java ! src/share/classes/javax/xml/crypto/dsig/DigestMethod.java ! src/share/classes/javax/xml/crypto/dsig/Manifest.java ! src/share/classes/javax/xml/crypto/dsig/Reference.java ! src/share/classes/javax/xml/crypto/dsig/SignatureMethod.java ! src/share/classes/javax/xml/crypto/dsig/SignatureProperties.java ! src/share/classes/javax/xml/crypto/dsig/SignatureProperty.java ! src/share/classes/javax/xml/crypto/dsig/SignedInfo.java ! src/share/classes/javax/xml/crypto/dsig/Transform.java ! src/share/classes/javax/xml/crypto/dsig/TransformException.java ! src/share/classes/javax/xml/crypto/dsig/TransformService.java ! src/share/classes/javax/xml/crypto/dsig/XMLObject.java ! src/share/classes/javax/xml/crypto/dsig/XMLSignContext.java ! src/share/classes/javax/xml/crypto/dsig/XMLSignature.java ! src/share/classes/javax/xml/crypto/dsig/XMLSignatureException.java ! src/share/classes/javax/xml/crypto/dsig/XMLSignatureFactory.java ! src/share/classes/javax/xml/crypto/dsig/XMLValidateContext.java ! src/share/classes/javax/xml/crypto/dsig/dom/DOMSignContext.java ! src/share/classes/javax/xml/crypto/dsig/dom/DOMValidateContext.java ! src/share/classes/javax/xml/crypto/dsig/dom/package.html ! src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyInfo.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyInfoFactory.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyName.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/KeyValue.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/PGPData.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/RetrievalMethod.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/X509Data.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/X509IssuerSerial.java ! src/share/classes/javax/xml/crypto/dsig/keyinfo/package.html ! src/share/classes/javax/xml/crypto/dsig/package.html ! src/share/classes/javax/xml/crypto/dsig/spec/C14NMethodParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/DigestMethodParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/ExcC14NParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/HMACParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/SignatureMethodParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/TransformParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/XPathFilter2ParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/XPathFilterParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/XPathType.java ! src/share/classes/javax/xml/crypto/dsig/spec/XSLTTransformParameterSpec.java ! src/share/classes/javax/xml/crypto/dsig/spec/package.html ! src/share/classes/javax/xml/crypto/package.html ! src/share/classes/org/ietf/jgss/ChannelBinding.java ! src/share/classes/org/ietf/jgss/GSSContext.java ! src/share/classes/org/ietf/jgss/GSSCredential.java ! src/share/classes/org/ietf/jgss/GSSException.java ! src/share/classes/org/ietf/jgss/GSSManager.java ! src/share/classes/org/ietf/jgss/GSSName.java ! src/share/classes/org/ietf/jgss/MessageProp.java ! src/share/classes/org/ietf/jgss/Oid.java ! src/share/classes/org/ietf/jgss/package.html ! src/share/classes/org/jcp/xml/dsig/internal/DigesterOutputStream.java ! src/share/classes/org/jcp/xml/dsig/internal/SignerOutputStream.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheData.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheOctetStreamData.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheTransform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14N11Method.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyName.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMStructure.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMUtils.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathFilter2Transform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathTransform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXSLTTransform.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java ! src/share/classes/org/relaxng/datatype/Datatype.java ! src/share/classes/org/relaxng/datatype/DatatypeBuilder.java ! src/share/classes/org/relaxng/datatype/DatatypeException.java ! src/share/classes/org/relaxng/datatype/DatatypeLibrary.java ! src/share/classes/org/relaxng/datatype/DatatypeLibraryFactory.java ! src/share/classes/org/relaxng/datatype/DatatypeStreamingValidator.java ! src/share/classes/org/relaxng/datatype/ValidationContext.java ! src/share/classes/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java ! src/share/classes/org/relaxng/datatype/helpers/StreamingValidatorImpl.java ! src/share/classes/overview-bundled.html ! src/share/classes/overview-core.html ! src/share/classes/sun/applet/AppletAudioClip.java ! src/share/classes/sun/applet/AppletClassLoader.java ! src/share/classes/sun/applet/AppletEvent.java ! src/share/classes/sun/applet/AppletEventMulticaster.java ! src/share/classes/sun/applet/AppletIOException.java ! src/share/classes/sun/applet/AppletIllegalArgumentException.java ! src/share/classes/sun/applet/AppletImageRef.java ! src/share/classes/sun/applet/AppletListener.java ! src/share/classes/sun/applet/AppletMessageHandler.java ! src/share/classes/sun/applet/AppletObjectInputStream.java ! src/share/classes/sun/applet/AppletPanel.java ! src/share/classes/sun/applet/AppletProps.java ! src/share/classes/sun/applet/AppletResourceLoader.java ! src/share/classes/sun/applet/AppletSecurity.java ! src/share/classes/sun/applet/AppletSecurityException.java ! src/share/classes/sun/applet/AppletThreadGroup.java ! src/share/classes/sun/applet/AppletViewer.java ! src/share/classes/sun/applet/AppletViewerFactory.java ! src/share/classes/sun/applet/AppletViewerPanel.java ! src/share/classes/sun/applet/Main.java ! src/share/classes/sun/applet/resources/MsgAppletViewer.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_de.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_es.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_fr.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_it.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_ja.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_ko.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_zh_CN.java ! src/share/classes/sun/applet/resources/MsgAppletViewer_zh_TW.java ! src/share/classes/sun/audio/AudioData.java ! src/share/classes/sun/audio/AudioDataStream.java ! src/share/classes/sun/audio/AudioDevice.java ! src/share/classes/sun/audio/AudioPlayer.java ! src/share/classes/sun/audio/AudioSecurityAction.java ! src/share/classes/sun/audio/AudioSecurityExceptionAction.java ! src/share/classes/sun/audio/AudioStream.java ! src/share/classes/sun/audio/AudioStreamSequence.java ! src/share/classes/sun/audio/AudioTranslatorStream.java ! src/share/classes/sun/audio/ContinuousAudioDataStream.java ! src/share/classes/sun/audio/InvalidAudioFormatException.java ! src/share/classes/sun/audio/NativeAudioStream.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/AWTAutoShutdown.java ! src/share/classes/sun/awt/AWTCharset.java ! src/share/classes/sun/awt/AWTPermissionFactory.java ! src/share/classes/sun/awt/AWTSecurityManager.java ! src/share/classes/sun/awt/AppContext.java ! src/share/classes/sun/awt/CausedFocusEvent.java ! src/share/classes/sun/awt/CharsetString.java ! src/share/classes/sun/awt/ComponentFactory.java ! src/share/classes/sun/awt/ConstrainableGraphics.java ! src/share/classes/sun/awt/CustomCursor.java ! src/share/classes/sun/awt/DebugSettings.java ! src/share/classes/sun/awt/DefaultMouseInfoPeer.java ! src/share/classes/sun/awt/DesktopBrowse.java ! src/share/classes/sun/awt/DisplayChangedListener.java ! src/share/classes/sun/awt/EmbeddedFrame.java ! src/share/classes/sun/awt/EventListenerAggregate.java ! src/share/classes/sun/awt/EventQueueDelegate.java ! src/share/classes/sun/awt/EventQueueItem.java ! src/share/classes/sun/awt/FocusingTextField.java ! src/share/classes/sun/awt/FontConfiguration.java ! src/share/classes/sun/awt/FontDescriptor.java ! src/share/classes/sun/awt/GlobalCursorManager.java ! src/share/classes/sun/awt/Graphics2Delegate.java ! src/share/classes/sun/awt/HKSCS.java ! src/share/classes/sun/awt/HeadlessToolkit.java ! src/share/classes/sun/awt/HorizBagLayout.java ! src/share/classes/sun/awt/InputMethodSupport.java ! src/share/classes/sun/awt/KeyboardFocusManagerPeerImpl.java ! src/share/classes/sun/awt/KeyboardFocusManagerPeerProvider.java ! src/share/classes/sun/awt/ModalExclude.java ! src/share/classes/sun/awt/ModalityEvent.java ! src/share/classes/sun/awt/ModalityListener.java ! src/share/classes/sun/awt/Mutex.java ! src/share/classes/sun/awt/NativeLibLoader.java ! src/share/classes/sun/awt/NullComponentPeer.java ! src/share/classes/sun/awt/OSInfo.java ! src/share/classes/sun/awt/OrientableFlowLayout.java ! src/share/classes/sun/awt/PaintEventDispatcher.java ! src/share/classes/sun/awt/PeerEvent.java ! src/share/classes/sun/awt/PlatformFont.java ! src/share/classes/sun/awt/RepaintArea.java ! src/share/classes/sun/awt/RequestFocusController.java ! src/share/classes/sun/awt/ScrollPaneWheelScroller.java ! src/share/classes/sun/awt/SubRegionShowable.java ! src/share/classes/sun/awt/SunDisplayChanger.java ! src/share/classes/sun/awt/SunGraphicsCallback.java ! src/share/classes/sun/awt/SunHints.java ! src/share/classes/sun/awt/SunToolkit.java ! src/share/classes/sun/awt/Symbol.java ! src/share/classes/sun/awt/TracedEventQueue.java ! src/share/classes/sun/awt/UngrabEvent.java ! src/share/classes/sun/awt/VariableGridLayout.java ! src/share/classes/sun/awt/VerticalBagLayout.java ! src/share/classes/sun/awt/WindowClosingListener.java ! src/share/classes/sun/awt/WindowClosingSupport.java ! src/share/classes/sun/awt/WindowIDProvider.java ! src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java ! src/share/classes/sun/awt/datatransfer/DataTransferer.java ! src/share/classes/sun/awt/datatransfer/SunClipboard.java ! src/share/classes/sun/awt/datatransfer/ToolkitThreadBlockedHandler.java ! src/share/classes/sun/awt/datatransfer/TransferableProxy.java ! src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java ! src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java ! src/share/classes/sun/awt/dnd/SunDropTargetEvent.java ! src/share/classes/sun/awt/event/IgnorePaintEvent.java ! src/share/classes/sun/awt/geom/AreaOp.java ! src/share/classes/sun/awt/geom/ChainEnd.java ! src/share/classes/sun/awt/geom/Crossings.java ! src/share/classes/sun/awt/geom/Curve.java ! src/share/classes/sun/awt/geom/CurveLink.java ! src/share/classes/sun/awt/geom/Edge.java ! src/share/classes/sun/awt/geom/Order0.java ! src/share/classes/sun/awt/geom/Order1.java ! src/share/classes/sun/awt/geom/Order2.java ! src/share/classes/sun/awt/geom/Order3.java ! src/share/classes/sun/awt/geom/PathConsumer2D.java ! src/share/classes/sun/awt/im/CompositionArea.java ! src/share/classes/sun/awt/im/CompositionAreaHandler.java ! src/share/classes/sun/awt/im/InputContext.java ! src/share/classes/sun/awt/im/InputMethodAdapter.java ! src/share/classes/sun/awt/im/InputMethodContext.java ! src/share/classes/sun/awt/im/InputMethodJFrame.java ! src/share/classes/sun/awt/im/InputMethodLocator.java ! src/share/classes/sun/awt/im/InputMethodManager.java ! src/share/classes/sun/awt/im/InputMethodPopupMenu.java ! src/share/classes/sun/awt/im/InputMethodWindow.java ! src/share/classes/sun/awt/im/SimpleInputMethodWindow.java ! src/share/classes/sun/awt/image/BadDepthException.java ! src/share/classes/sun/awt/image/BufImgSurfaceData.java ! src/share/classes/sun/awt/image/BufImgSurfaceManager.java ! src/share/classes/sun/awt/image/BufImgVolatileSurfaceManager.java ! src/share/classes/sun/awt/image/BufferedImageDevice.java ! src/share/classes/sun/awt/image/BufferedImageGraphicsConfig.java ! src/share/classes/sun/awt/image/ByteArrayImageSource.java ! src/share/classes/sun/awt/image/ByteBandedRaster.java ! src/share/classes/sun/awt/image/ByteComponentRaster.java ! src/share/classes/sun/awt/image/ByteInterleavedRaster.java ! src/share/classes/sun/awt/image/BytePackedRaster.java ! src/share/classes/sun/awt/image/DataBufferNative.java ! src/share/classes/sun/awt/image/FileImageSource.java ! src/share/classes/sun/awt/image/GifImageDecoder.java ! src/share/classes/sun/awt/image/ImageAccessException.java ! src/share/classes/sun/awt/image/ImageConsumerQueue.java ! src/share/classes/sun/awt/image/ImageDecoder.java ! src/share/classes/sun/awt/image/ImageFetchable.java ! src/share/classes/sun/awt/image/ImageFetcher.java ! src/share/classes/sun/awt/image/ImageFormatException.java ! src/share/classes/sun/awt/image/ImageRepresentation.java ! src/share/classes/sun/awt/image/ImageWatched.java ! src/share/classes/sun/awt/image/ImagingLib.java ! src/share/classes/sun/awt/image/InputStreamImageSource.java ! src/share/classes/sun/awt/image/IntegerComponentRaster.java ! src/share/classes/sun/awt/image/IntegerInterleavedRaster.java ! src/share/classes/sun/awt/image/JPEGImageDecoder.java ! src/share/classes/sun/awt/image/NativeLibLoader.java ! src/share/classes/sun/awt/image/OffScreenImage.java ! src/share/classes/sun/awt/image/OffScreenImageSource.java ! src/share/classes/sun/awt/image/PNGImageDecoder.java ! src/share/classes/sun/awt/image/PixelConverter.java ! src/share/classes/sun/awt/image/ShortBandedRaster.java ! src/share/classes/sun/awt/image/ShortComponentRaster.java ! src/share/classes/sun/awt/image/ShortInterleavedRaster.java ! src/share/classes/sun/awt/image/SunVolatileImage.java ! src/share/classes/sun/awt/image/SunWritableRaster.java ! src/share/classes/sun/awt/image/SurfaceManager.java ! src/share/classes/sun/awt/image/ToolkitImage.java ! src/share/classes/sun/awt/image/URLImageSource.java ! src/share/classes/sun/awt/image/VSyncedBSManager.java ! src/share/classes/sun/awt/image/VolatileSurfaceManager.java ! src/share/classes/sun/awt/image/WritableRasterNative.java ! src/share/classes/sun/awt/image/XbmImageDecoder.java ! src/share/classes/sun/awt/shell/DefaultShellFolder.java ! src/share/classes/sun/awt/shell/ShellFolder.java ! src/share/classes/sun/awt/shell/ShellFolderColumnInfo.java ! src/share/classes/sun/awt/shell/ShellFolderManager.java ! src/share/classes/sun/awt/util/IdentityArrayList.java ! src/share/classes/sun/awt/util/IdentityLinkedList.java ! src/share/classes/sun/beans/editors/BooleanEditor.java ! src/share/classes/sun/beans/editors/ByteEditor.java ! src/share/classes/sun/beans/editors/ColorEditor.java ! src/share/classes/sun/beans/editors/DoubleEditor.java ! src/share/classes/sun/beans/editors/EnumEditor.java ! src/share/classes/sun/beans/editors/FloatEditor.java ! src/share/classes/sun/beans/editors/FontEditor.java ! src/share/classes/sun/beans/editors/IntegerEditor.java ! src/share/classes/sun/beans/editors/LongEditor.java ! src/share/classes/sun/beans/editors/NumberEditor.java ! src/share/classes/sun/beans/editors/ShortEditor.java ! src/share/classes/sun/beans/editors/StringEditor.java ! src/share/classes/sun/beans/infos/ComponentBeanInfo.java ! src/share/classes/sun/dc/DuctusRenderingEngine.java ! src/share/classes/sun/dyn/Access.java ! src/share/classes/sun/dyn/AdapterMethodHandle.java ! src/share/classes/sun/dyn/BoundMethodHandle.java ! src/share/classes/sun/dyn/CallSiteImpl.java ! src/share/classes/sun/dyn/DirectMethodHandle.java ! src/share/classes/sun/dyn/FilterGeneric.java ! src/share/classes/sun/dyn/FilterOneArgument.java ! src/share/classes/sun/dyn/FromGeneric.java ! src/share/classes/sun/dyn/Invokers.java ! src/share/classes/sun/dyn/MemberName.java ! src/share/classes/sun/dyn/MethodHandleImpl.java ! src/share/classes/sun/dyn/MethodHandleNatives.java ! src/share/classes/sun/dyn/MethodTypeImpl.java ! src/share/classes/sun/dyn/SpreadGeneric.java ! src/share/classes/sun/dyn/ToGeneric.java ! src/share/classes/sun/dyn/anon/AnonymousClassLoader.java ! src/share/classes/sun/dyn/anon/ConstantPoolParser.java ! src/share/classes/sun/dyn/anon/ConstantPoolPatch.java ! src/share/classes/sun/dyn/anon/ConstantPoolVisitor.java ! src/share/classes/sun/dyn/anon/InvalidConstantPoolFormatException.java ! src/share/classes/sun/dyn/empty/Empty.java ! src/share/classes/sun/dyn/package-info.java ! src/share/classes/sun/dyn/util/BytecodeDescriptor.java ! src/share/classes/sun/dyn/util/BytecodeName.java ! src/share/classes/sun/dyn/util/ValueConversions.java ! src/share/classes/sun/dyn/util/VerifyAccess.java ! src/share/classes/sun/dyn/util/VerifyType.java ! src/share/classes/sun/dyn/util/Wrapper.java ! src/share/classes/sun/dyn/util/package-info.java ! src/share/classes/sun/font/AttributeMap.java ! src/share/classes/sun/font/AttributeValues.java ! src/share/classes/sun/font/BidiUtils.java ! src/share/classes/sun/font/CMap.java ! src/share/classes/sun/font/CharToGlyphMapper.java ! src/share/classes/sun/font/CompositeFont.java ! src/share/classes/sun/font/CompositeFontDescriptor.java ! src/share/classes/sun/font/CompositeGlyphMapper.java ! src/share/classes/sun/font/CompositeStrike.java ! src/share/classes/sun/font/CoreMetrics.java ! src/share/classes/sun/font/CreatedFontTracker.java ! src/share/classes/sun/font/Decoration.java ! src/share/classes/sun/font/DelegatingShape.java ! src/share/classes/sun/font/EAttribute.java ! src/share/classes/sun/font/ExtendedTextLabel.java ! src/share/classes/sun/font/ExtendedTextSourceLabel.java ! src/share/classes/sun/font/FileFont.java ! src/share/classes/sun/font/FileFontStrike.java ! src/share/classes/sun/font/Font2D.java ! src/share/classes/sun/font/Font2DHandle.java ! src/share/classes/sun/font/FontAccess.java ! src/share/classes/sun/font/FontDesignMetrics.java ! src/share/classes/sun/font/FontFamily.java ! src/share/classes/sun/font/FontLineMetrics.java ! src/share/classes/sun/font/FontManager.java ! src/share/classes/sun/font/FontManagerFactory.java ! src/share/classes/sun/font/FontManagerForSGE.java ! src/share/classes/sun/font/FontManagerNativeLibrary.java ! src/share/classes/sun/font/FontResolver.java ! src/share/classes/sun/font/FontRunIterator.java ! src/share/classes/sun/font/FontScaler.java ! src/share/classes/sun/font/FontScalerException.java ! src/share/classes/sun/font/FontStrike.java ! src/share/classes/sun/font/FontStrikeDesc.java ! src/share/classes/sun/font/FontStrikeDisposer.java ! src/share/classes/sun/font/FontUtilities.java ! src/share/classes/sun/font/FreetypeFontScaler.java ! src/share/classes/sun/font/GlyphLayout.java ! src/share/classes/sun/font/GlyphList.java ! src/share/classes/sun/font/GraphicComponent.java ! src/share/classes/sun/font/LayoutPathImpl.java ! src/share/classes/sun/font/NullFontScaler.java ! src/share/classes/sun/font/PhysicalFont.java ! src/share/classes/sun/font/PhysicalStrike.java ! src/share/classes/sun/font/Script.java ! src/share/classes/sun/font/ScriptRun.java ! src/share/classes/sun/font/ScriptRunData.java ! src/share/classes/sun/font/StandardGlyphVector.java ! src/share/classes/sun/font/StandardTextSource.java ! src/share/classes/sun/font/StrikeCache.java ! src/share/classes/sun/font/StrikeMetrics.java ! src/share/classes/sun/font/SunFontManager.java ! src/share/classes/sun/font/SunLayoutEngine.java ! src/share/classes/sun/font/TextLabel.java ! src/share/classes/sun/font/TextLabelFactory.java ! src/share/classes/sun/font/TextLineComponent.java ! src/share/classes/sun/font/TextRecord.java ! src/share/classes/sun/font/TextSource.java ! src/share/classes/sun/font/TextSourceLabel.java ! src/share/classes/sun/font/TrueTypeFont.java ! src/share/classes/sun/font/TrueTypeGlyphMapper.java ! src/share/classes/sun/font/Type1Font.java ! src/share/classes/sun/font/Type1GlyphMapper.java ! src/share/classes/sun/font/Underline.java ! src/share/classes/sun/instrument/InstrumentationImpl.java ! src/share/classes/sun/instrument/TransformerManager.java ! src/share/classes/sun/io/ByteToCharASCII.java ! src/share/classes/sun/io/ByteToCharBig5.java ! src/share/classes/sun/io/ByteToCharBig5_HKSCS.java ! src/share/classes/sun/io/ByteToCharBig5_Solaris.java ! src/share/classes/sun/io/ByteToCharConverter.java ! src/share/classes/sun/io/ByteToCharCp037.java ! src/share/classes/sun/io/ByteToCharCp1006.java ! src/share/classes/sun/io/ByteToCharCp1025.java ! src/share/classes/sun/io/ByteToCharCp1026.java ! src/share/classes/sun/io/ByteToCharCp1046.java ! src/share/classes/sun/io/ByteToCharCp1047.java ! src/share/classes/sun/io/ByteToCharCp1097.java ! src/share/classes/sun/io/ByteToCharCp1098.java ! src/share/classes/sun/io/ByteToCharCp1112.java ! src/share/classes/sun/io/ByteToCharCp1122.java ! src/share/classes/sun/io/ByteToCharCp1123.java ! src/share/classes/sun/io/ByteToCharCp1124.java ! src/share/classes/sun/io/ByteToCharCp1140.java ! src/share/classes/sun/io/ByteToCharCp1141.java ! src/share/classes/sun/io/ByteToCharCp1142.java ! src/share/classes/sun/io/ByteToCharCp1143.java ! src/share/classes/sun/io/ByteToCharCp1144.java ! src/share/classes/sun/io/ByteToCharCp1145.java ! src/share/classes/sun/io/ByteToCharCp1146.java ! src/share/classes/sun/io/ByteToCharCp1147.java ! src/share/classes/sun/io/ByteToCharCp1148.java ! src/share/classes/sun/io/ByteToCharCp1149.java ! src/share/classes/sun/io/ByteToCharCp1250.java ! src/share/classes/sun/io/ByteToCharCp1251.java ! src/share/classes/sun/io/ByteToCharCp1252.java ! src/share/classes/sun/io/ByteToCharCp1253.java ! src/share/classes/sun/io/ByteToCharCp1254.java ! src/share/classes/sun/io/ByteToCharCp1255.java ! src/share/classes/sun/io/ByteToCharCp1256.java ! src/share/classes/sun/io/ByteToCharCp1257.java ! src/share/classes/sun/io/ByteToCharCp1258.java ! src/share/classes/sun/io/ByteToCharCp1381.java ! src/share/classes/sun/io/ByteToCharCp1383.java ! src/share/classes/sun/io/ByteToCharCp273.java ! src/share/classes/sun/io/ByteToCharCp277.java ! src/share/classes/sun/io/ByteToCharCp278.java ! src/share/classes/sun/io/ByteToCharCp280.java ! src/share/classes/sun/io/ByteToCharCp284.java ! src/share/classes/sun/io/ByteToCharCp285.java ! src/share/classes/sun/io/ByteToCharCp297.java ! src/share/classes/sun/io/ByteToCharCp33722.java ! src/share/classes/sun/io/ByteToCharCp420.java ! src/share/classes/sun/io/ByteToCharCp424.java ! src/share/classes/sun/io/ByteToCharCp437.java ! src/share/classes/sun/io/ByteToCharCp500.java ! src/share/classes/sun/io/ByteToCharCp737.java ! src/share/classes/sun/io/ByteToCharCp775.java ! src/share/classes/sun/io/ByteToCharCp834.java ! src/share/classes/sun/io/ByteToCharCp838.java ! src/share/classes/sun/io/ByteToCharCp850.java ! src/share/classes/sun/io/ByteToCharCp852.java ! src/share/classes/sun/io/ByteToCharCp855.java ! src/share/classes/sun/io/ByteToCharCp856.java ! src/share/classes/sun/io/ByteToCharCp857.java ! src/share/classes/sun/io/ByteToCharCp858.java ! src/share/classes/sun/io/ByteToCharCp860.java ! src/share/classes/sun/io/ByteToCharCp861.java ! src/share/classes/sun/io/ByteToCharCp862.java ! src/share/classes/sun/io/ByteToCharCp863.java ! src/share/classes/sun/io/ByteToCharCp864.java ! src/share/classes/sun/io/ByteToCharCp865.java ! src/share/classes/sun/io/ByteToCharCp866.java ! src/share/classes/sun/io/ByteToCharCp868.java ! src/share/classes/sun/io/ByteToCharCp869.java ! src/share/classes/sun/io/ByteToCharCp870.java ! src/share/classes/sun/io/ByteToCharCp871.java ! src/share/classes/sun/io/ByteToCharCp874.java ! src/share/classes/sun/io/ByteToCharCp875.java ! src/share/classes/sun/io/ByteToCharCp918.java ! src/share/classes/sun/io/ByteToCharCp921.java ! src/share/classes/sun/io/ByteToCharCp922.java ! src/share/classes/sun/io/ByteToCharCp930.java ! src/share/classes/sun/io/ByteToCharCp933.java ! src/share/classes/sun/io/ByteToCharCp935.java ! src/share/classes/sun/io/ByteToCharCp937.java ! src/share/classes/sun/io/ByteToCharCp939.java ! src/share/classes/sun/io/ByteToCharCp942.java ! src/share/classes/sun/io/ByteToCharCp942C.java ! src/share/classes/sun/io/ByteToCharCp943.java ! src/share/classes/sun/io/ByteToCharCp943C.java ! src/share/classes/sun/io/ByteToCharCp948.java ! src/share/classes/sun/io/ByteToCharCp949.java ! src/share/classes/sun/io/ByteToCharCp949C.java ! src/share/classes/sun/io/ByteToCharCp950.java ! src/share/classes/sun/io/ByteToCharCp964.java ! src/share/classes/sun/io/ByteToCharCp970.java ! src/share/classes/sun/io/ByteToCharDBCS_ASCII.java ! src/share/classes/sun/io/ByteToCharDBCS_EBCDIC.java ! src/share/classes/sun/io/ByteToCharDoubleByte.java ! src/share/classes/sun/io/ByteToCharEUC.java ! src/share/classes/sun/io/ByteToCharEUC2.java ! src/share/classes/sun/io/ByteToCharEUC_CN.java ! src/share/classes/sun/io/ByteToCharEUC_JP.java ! src/share/classes/sun/io/ByteToCharEUC_JP_LINUX.java ! src/share/classes/sun/io/ByteToCharEUC_JP_Solaris.java ! src/share/classes/sun/io/ByteToCharEUC_KR.java ! src/share/classes/sun/io/ByteToCharEUC_TW.java ! src/share/classes/sun/io/ByteToCharGB18030.java ! src/share/classes/sun/io/ByteToCharGB18030DB.java ! src/share/classes/sun/io/ByteToCharGBK.java ! src/share/classes/sun/io/ByteToCharISCII91.java ! src/share/classes/sun/io/ByteToCharISO2022.java ! src/share/classes/sun/io/ByteToCharISO2022CN.java ! src/share/classes/sun/io/ByteToCharISO2022JP.java ! src/share/classes/sun/io/ByteToCharISO2022KR.java ! src/share/classes/sun/io/ByteToCharISO8859_1.java ! src/share/classes/sun/io/ByteToCharISO8859_13.java ! src/share/classes/sun/io/ByteToCharISO8859_15.java ! src/share/classes/sun/io/ByteToCharISO8859_2.java ! src/share/classes/sun/io/ByteToCharISO8859_3.java ! src/share/classes/sun/io/ByteToCharISO8859_4.java ! src/share/classes/sun/io/ByteToCharISO8859_5.java ! src/share/classes/sun/io/ByteToCharISO8859_6.java ! src/share/classes/sun/io/ByteToCharISO8859_7.java ! src/share/classes/sun/io/ByteToCharISO8859_8.java ! src/share/classes/sun/io/ByteToCharISO8859_9.java ! src/share/classes/sun/io/ByteToCharJIS0201.java ! src/share/classes/sun/io/ByteToCharJIS0208.java ! src/share/classes/sun/io/ByteToCharJIS0208_Solaris.java ! src/share/classes/sun/io/ByteToCharJIS0212.java ! src/share/classes/sun/io/ByteToCharJIS0212_Solaris.java ! src/share/classes/sun/io/ByteToCharJISAutoDetect.java ! src/share/classes/sun/io/ByteToCharJohab.java ! src/share/classes/sun/io/ByteToCharKOI8_R.java ! src/share/classes/sun/io/ByteToCharMS874.java ! src/share/classes/sun/io/ByteToCharMS932.java ! src/share/classes/sun/io/ByteToCharMS936.java ! src/share/classes/sun/io/ByteToCharMS949.java ! src/share/classes/sun/io/ByteToCharMS950.java ! src/share/classes/sun/io/ByteToCharMS950_HKSCS.java ! src/share/classes/sun/io/ByteToCharMacArabic.java ! src/share/classes/sun/io/ByteToCharMacCentralEurope.java ! src/share/classes/sun/io/ByteToCharMacCroatian.java ! src/share/classes/sun/io/ByteToCharMacCyrillic.java ! src/share/classes/sun/io/ByteToCharMacDingbat.java ! src/share/classes/sun/io/ByteToCharMacGreek.java ! src/share/classes/sun/io/ByteToCharMacHebrew.java ! src/share/classes/sun/io/ByteToCharMacIceland.java ! src/share/classes/sun/io/ByteToCharMacRoman.java ! src/share/classes/sun/io/ByteToCharMacRomania.java ! src/share/classes/sun/io/ByteToCharMacSymbol.java ! src/share/classes/sun/io/ByteToCharMacThai.java ! src/share/classes/sun/io/ByteToCharMacTurkish.java ! src/share/classes/sun/io/ByteToCharMacUkraine.java ! src/share/classes/sun/io/ByteToCharPCK.java ! src/share/classes/sun/io/ByteToCharSJIS.java ! src/share/classes/sun/io/ByteToCharSingleByte.java ! src/share/classes/sun/io/ByteToCharTIS620.java ! src/share/classes/sun/io/ByteToCharUTF16.java ! src/share/classes/sun/io/ByteToCharUTF8.java ! src/share/classes/sun/io/ByteToCharUnicode.java ! src/share/classes/sun/io/ByteToCharUnicodeBig.java ! src/share/classes/sun/io/ByteToCharUnicodeBigUnmarked.java ! src/share/classes/sun/io/ByteToCharUnicodeLittle.java ! src/share/classes/sun/io/ByteToCharUnicodeLittleUnmarked.java ! src/share/classes/sun/io/CharToByteASCII.java ! src/share/classes/sun/io/CharToByteBig5.java ! src/share/classes/sun/io/CharToByteBig5_HKSCS.java ! src/share/classes/sun/io/CharToByteBig5_Solaris.java ! src/share/classes/sun/io/CharToByteConverter.java ! src/share/classes/sun/io/CharToByteCp037.java ! src/share/classes/sun/io/CharToByteCp1006.java ! src/share/classes/sun/io/CharToByteCp1025.java ! src/share/classes/sun/io/CharToByteCp1026.java ! src/share/classes/sun/io/CharToByteCp1046.java ! src/share/classes/sun/io/CharToByteCp1047.java ! src/share/classes/sun/io/CharToByteCp1097.java ! src/share/classes/sun/io/CharToByteCp1098.java ! src/share/classes/sun/io/CharToByteCp1112.java ! src/share/classes/sun/io/CharToByteCp1122.java ! src/share/classes/sun/io/CharToByteCp1123.java ! src/share/classes/sun/io/CharToByteCp1124.java ! src/share/classes/sun/io/CharToByteCp1140.java ! src/share/classes/sun/io/CharToByteCp1141.java ! src/share/classes/sun/io/CharToByteCp1142.java ! src/share/classes/sun/io/CharToByteCp1143.java ! src/share/classes/sun/io/CharToByteCp1144.java ! src/share/classes/sun/io/CharToByteCp1145.java ! src/share/classes/sun/io/CharToByteCp1146.java ! src/share/classes/sun/io/CharToByteCp1147.java ! src/share/classes/sun/io/CharToByteCp1148.java ! src/share/classes/sun/io/CharToByteCp1149.java ! src/share/classes/sun/io/CharToByteCp1250.java ! src/share/classes/sun/io/CharToByteCp1251.java ! src/share/classes/sun/io/CharToByteCp1252.java ! src/share/classes/sun/io/CharToByteCp1253.java ! src/share/classes/sun/io/CharToByteCp1254.java ! src/share/classes/sun/io/CharToByteCp1255.java ! src/share/classes/sun/io/CharToByteCp1256.java ! src/share/classes/sun/io/CharToByteCp1257.java ! src/share/classes/sun/io/CharToByteCp1258.java ! src/share/classes/sun/io/CharToByteCp1381.java ! src/share/classes/sun/io/CharToByteCp1383.java ! src/share/classes/sun/io/CharToByteCp273.java ! src/share/classes/sun/io/CharToByteCp277.java ! src/share/classes/sun/io/CharToByteCp278.java ! src/share/classes/sun/io/CharToByteCp280.java ! src/share/classes/sun/io/CharToByteCp284.java ! src/share/classes/sun/io/CharToByteCp285.java ! src/share/classes/sun/io/CharToByteCp297.java ! src/share/classes/sun/io/CharToByteCp33722.java ! src/share/classes/sun/io/CharToByteCp420.java ! src/share/classes/sun/io/CharToByteCp424.java ! src/share/classes/sun/io/CharToByteCp437.java ! src/share/classes/sun/io/CharToByteCp500.java ! src/share/classes/sun/io/CharToByteCp737.java ! src/share/classes/sun/io/CharToByteCp775.java ! src/share/classes/sun/io/CharToByteCp834.java ! src/share/classes/sun/io/CharToByteCp838.java ! src/share/classes/sun/io/CharToByteCp850.java ! src/share/classes/sun/io/CharToByteCp852.java ! src/share/classes/sun/io/CharToByteCp855.java ! src/share/classes/sun/io/CharToByteCp856.java ! src/share/classes/sun/io/CharToByteCp857.java ! src/share/classes/sun/io/CharToByteCp858.java ! src/share/classes/sun/io/CharToByteCp860.java ! src/share/classes/sun/io/CharToByteCp861.java ! src/share/classes/sun/io/CharToByteCp862.java ! src/share/classes/sun/io/CharToByteCp863.java ! src/share/classes/sun/io/CharToByteCp864.java ! src/share/classes/sun/io/CharToByteCp865.java ! src/share/classes/sun/io/CharToByteCp866.java ! src/share/classes/sun/io/CharToByteCp868.java ! src/share/classes/sun/io/CharToByteCp869.java ! src/share/classes/sun/io/CharToByteCp870.java ! src/share/classes/sun/io/CharToByteCp871.java ! src/share/classes/sun/io/CharToByteCp874.java ! src/share/classes/sun/io/CharToByteCp875.java ! src/share/classes/sun/io/CharToByteCp918.java ! src/share/classes/sun/io/CharToByteCp921.java ! src/share/classes/sun/io/CharToByteCp922.java ! src/share/classes/sun/io/CharToByteCp930.java ! src/share/classes/sun/io/CharToByteCp933.java ! src/share/classes/sun/io/CharToByteCp935.java ! src/share/classes/sun/io/CharToByteCp937.java ! src/share/classes/sun/io/CharToByteCp939.java ! src/share/classes/sun/io/CharToByteCp942.java ! src/share/classes/sun/io/CharToByteCp942C.java ! src/share/classes/sun/io/CharToByteCp943.java ! src/share/classes/sun/io/CharToByteCp943C.java ! src/share/classes/sun/io/CharToByteCp948.java ! src/share/classes/sun/io/CharToByteCp949.java ! src/share/classes/sun/io/CharToByteCp949C.java ! src/share/classes/sun/io/CharToByteCp950.java ! src/share/classes/sun/io/CharToByteCp964.java ! src/share/classes/sun/io/CharToByteCp970.java ! src/share/classes/sun/io/CharToByteDBCS_ASCII.java ! src/share/classes/sun/io/CharToByteDBCS_EBCDIC.java ! src/share/classes/sun/io/CharToByteDoubleByte.java ! src/share/classes/sun/io/CharToByteEUC.java ! src/share/classes/sun/io/CharToByteEUC_CN.java ! src/share/classes/sun/io/CharToByteEUC_JP.java ! src/share/classes/sun/io/CharToByteEUC_JP_LINUX.java ! src/share/classes/sun/io/CharToByteEUC_JP_Solaris.java ! src/share/classes/sun/io/CharToByteEUC_KR.java ! src/share/classes/sun/io/CharToByteEUC_TW.java ! src/share/classes/sun/io/CharToByteGB18030.java ! src/share/classes/sun/io/CharToByteGBK.java ! src/share/classes/sun/io/CharToByteISCII91.java ! src/share/classes/sun/io/CharToByteISO2022.java ! src/share/classes/sun/io/CharToByteISO2022CN_CNS.java ! src/share/classes/sun/io/CharToByteISO2022CN_GB.java ! src/share/classes/sun/io/CharToByteISO2022JP.java ! src/share/classes/sun/io/CharToByteISO2022KR.java ! src/share/classes/sun/io/CharToByteISO8859_1.java ! src/share/classes/sun/io/CharToByteISO8859_13.java ! src/share/classes/sun/io/CharToByteISO8859_15.java ! src/share/classes/sun/io/CharToByteISO8859_2.java ! src/share/classes/sun/io/CharToByteISO8859_3.java ! src/share/classes/sun/io/CharToByteISO8859_4.java ! src/share/classes/sun/io/CharToByteISO8859_5.java ! src/share/classes/sun/io/CharToByteISO8859_6.java ! src/share/classes/sun/io/CharToByteISO8859_7.java ! src/share/classes/sun/io/CharToByteISO8859_8.java ! src/share/classes/sun/io/CharToByteISO8859_9.java ! src/share/classes/sun/io/CharToByteJIS0201.java ! src/share/classes/sun/io/CharToByteJIS0208.java ! src/share/classes/sun/io/CharToByteJIS0208_Solaris.java ! src/share/classes/sun/io/CharToByteJIS0212.java ! src/share/classes/sun/io/CharToByteJIS0212_Solaris.java ! src/share/classes/sun/io/CharToByteJohab.java ! src/share/classes/sun/io/CharToByteKOI8_R.java ! src/share/classes/sun/io/CharToByteMS874.java ! src/share/classes/sun/io/CharToByteMS932.java ! src/share/classes/sun/io/CharToByteMS936.java ! src/share/classes/sun/io/CharToByteMS949.java ! src/share/classes/sun/io/CharToByteMS950.java ! src/share/classes/sun/io/CharToByteMS950_HKSCS.java ! src/share/classes/sun/io/CharToByteMacArabic.java ! src/share/classes/sun/io/CharToByteMacCentralEurope.java ! src/share/classes/sun/io/CharToByteMacCroatian.java ! src/share/classes/sun/io/CharToByteMacCyrillic.java ! src/share/classes/sun/io/CharToByteMacDingbat.java ! src/share/classes/sun/io/CharToByteMacGreek.java ! src/share/classes/sun/io/CharToByteMacHebrew.java ! src/share/classes/sun/io/CharToByteMacIceland.java ! src/share/classes/sun/io/CharToByteMacRoman.java ! src/share/classes/sun/io/CharToByteMacRomania.java ! src/share/classes/sun/io/CharToByteMacSymbol.java ! src/share/classes/sun/io/CharToByteMacThai.java ! src/share/classes/sun/io/CharToByteMacTurkish.java ! src/share/classes/sun/io/CharToByteMacUkraine.java ! src/share/classes/sun/io/CharToBytePCK.java ! src/share/classes/sun/io/CharToByteSJIS.java ! src/share/classes/sun/io/CharToByteSingleByte.java ! src/share/classes/sun/io/CharToByteTIS620.java ! src/share/classes/sun/io/CharToByteUTF16.java ! src/share/classes/sun/io/CharToByteUTF8.java ! src/share/classes/sun/io/CharToByteUnicode.java ! src/share/classes/sun/io/CharToByteUnicodeBig.java ! src/share/classes/sun/io/CharToByteUnicodeBigUnmarked.java ! src/share/classes/sun/io/CharToByteUnicodeLittle.java ! src/share/classes/sun/io/CharToByteUnicodeLittleUnmarked.java ! src/share/classes/sun/io/CharacterEncoding.java ! src/share/classes/sun/io/ConversionBufferFullException.java ! src/share/classes/sun/io/Converters.java ! src/share/classes/sun/io/MalformedInputException.java ! src/share/classes/sun/io/UnknownCharacterException.java ! src/share/classes/sun/java2d/DefaultDisposerRecord.java ! src/share/classes/sun/java2d/DestSurfaceProvider.java ! src/share/classes/sun/java2d/Disposer.java ! src/share/classes/sun/java2d/DisposerRecord.java ! src/share/classes/sun/java2d/DisposerTarget.java ! src/share/classes/sun/java2d/FontSupport.java ! src/share/classes/sun/java2d/HeadlessGraphicsEnvironment.java ! src/share/classes/sun/java2d/InvalidPipeException.java ! src/share/classes/sun/java2d/NullSurfaceData.java ! src/share/classes/sun/java2d/Spans.java ! src/share/classes/sun/java2d/StateTrackable.java ! src/share/classes/sun/java2d/StateTrackableDelegate.java ! src/share/classes/sun/java2d/StateTracker.java ! src/share/classes/sun/java2d/SunCompositeContext.java ! src/share/classes/sun/java2d/SunGraphics2D.java ! src/share/classes/sun/java2d/SunGraphicsEnvironment.java ! src/share/classes/sun/java2d/Surface.java ! src/share/classes/sun/java2d/SurfaceData.java ! src/share/classes/sun/java2d/SurfaceDataProxy.java ! src/share/classes/sun/java2d/SurfaceManagerFactory.java ! src/share/classes/sun/java2d/cmm/CMSManager.java ! src/share/classes/sun/java2d/cmm/ColorTransform.java ! src/share/classes/sun/java2d/cmm/PCMM.java ! src/share/classes/sun/java2d/cmm/ProfileActivator.java ! src/share/classes/sun/java2d/cmm/ProfileDeferralInfo.java ! src/share/classes/sun/java2d/cmm/ProfileDeferralMgr.java ! src/share/classes/sun/java2d/cmm/lcms/LCMS.java ! src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java ! src/share/classes/sun/java2d/cmm/lcms/LCMSTransform.java ! src/share/classes/sun/java2d/loops/Blit.java ! src/share/classes/sun/java2d/loops/BlitBg.java ! src/share/classes/sun/java2d/loops/CompositeType.java ! src/share/classes/sun/java2d/loops/CustomComponent.java ! src/share/classes/sun/java2d/loops/DrawGlyphList.java ! src/share/classes/sun/java2d/loops/DrawGlyphListAA.java ! src/share/classes/sun/java2d/loops/DrawGlyphListLCD.java ! src/share/classes/sun/java2d/loops/DrawLine.java ! src/share/classes/sun/java2d/loops/DrawPath.java ! src/share/classes/sun/java2d/loops/DrawPolygons.java ! src/share/classes/sun/java2d/loops/DrawRect.java ! src/share/classes/sun/java2d/loops/FillPath.java ! src/share/classes/sun/java2d/loops/FillRect.java ! src/share/classes/sun/java2d/loops/FillSpans.java ! src/share/classes/sun/java2d/loops/FontInfo.java ! src/share/classes/sun/java2d/loops/GeneralRenderer.java ! src/share/classes/sun/java2d/loops/GraphicsPrimitive.java ! src/share/classes/sun/java2d/loops/GraphicsPrimitiveMgr.java ! src/share/classes/sun/java2d/loops/GraphicsPrimitiveProxy.java ! src/share/classes/sun/java2d/loops/MaskBlit.java ! src/share/classes/sun/java2d/loops/MaskFill.java ! src/share/classes/sun/java2d/loops/ProcessPath.java ! src/share/classes/sun/java2d/loops/RenderCache.java ! src/share/classes/sun/java2d/loops/RenderLoops.java ! src/share/classes/sun/java2d/loops/ScaledBlit.java ! src/share/classes/sun/java2d/loops/SurfaceType.java ! src/share/classes/sun/java2d/loops/TransformBlit.java ! src/share/classes/sun/java2d/loops/TransformHelper.java ! src/share/classes/sun/java2d/loops/XORComposite.java ! src/share/classes/sun/java2d/opengl/OGLBlitLoops.java ! src/share/classes/sun/java2d/opengl/OGLBufImgOps.java ! src/share/classes/sun/java2d/opengl/OGLContext.java ! src/share/classes/sun/java2d/opengl/OGLDrawImage.java ! src/share/classes/sun/java2d/opengl/OGLGraphicsConfig.java ! src/share/classes/sun/java2d/opengl/OGLMaskBlit.java ! src/share/classes/sun/java2d/opengl/OGLMaskFill.java ! src/share/classes/sun/java2d/opengl/OGLPaints.java ! src/share/classes/sun/java2d/opengl/OGLRenderQueue.java ! src/share/classes/sun/java2d/opengl/OGLRenderer.java ! src/share/classes/sun/java2d/opengl/OGLSurfaceData.java ! src/share/classes/sun/java2d/opengl/OGLSurfaceDataProxy.java ! src/share/classes/sun/java2d/opengl/OGLTextRenderer.java ! src/share/classes/sun/java2d/opengl/OGLUtilities.java ! src/share/classes/sun/java2d/pipe/AAShapePipe.java ! src/share/classes/sun/java2d/pipe/AATextRenderer.java ! src/share/classes/sun/java2d/pipe/AATileGenerator.java ! src/share/classes/sun/java2d/pipe/AlphaColorPipe.java ! src/share/classes/sun/java2d/pipe/AlphaPaintPipe.java ! src/share/classes/sun/java2d/pipe/BufferedBufImgOps.java ! src/share/classes/sun/java2d/pipe/BufferedContext.java ! src/share/classes/sun/java2d/pipe/BufferedMaskBlit.java ! src/share/classes/sun/java2d/pipe/BufferedMaskFill.java ! src/share/classes/sun/java2d/pipe/BufferedOpCodes.java ! src/share/classes/sun/java2d/pipe/BufferedPaints.java ! src/share/classes/sun/java2d/pipe/BufferedRenderPipe.java ! src/share/classes/sun/java2d/pipe/BufferedTextPipe.java ! src/share/classes/sun/java2d/pipe/CompositePipe.java ! src/share/classes/sun/java2d/pipe/DrawImage.java ! src/share/classes/sun/java2d/pipe/DrawImagePipe.java ! src/share/classes/sun/java2d/pipe/GeneralCompositePipe.java ! src/share/classes/sun/java2d/pipe/GlyphListLoopPipe.java ! src/share/classes/sun/java2d/pipe/GlyphListPipe.java ! src/share/classes/sun/java2d/pipe/LCDTextRenderer.java ! src/share/classes/sun/java2d/pipe/LoopBasedPipe.java ! src/share/classes/sun/java2d/pipe/LoopPipe.java ! src/share/classes/sun/java2d/pipe/NullPipe.java ! src/share/classes/sun/java2d/pipe/OutlineTextRenderer.java ! src/share/classes/sun/java2d/pipe/ParallelogramPipe.java ! src/share/classes/sun/java2d/pipe/PixelDrawPipe.java ! src/share/classes/sun/java2d/pipe/PixelFillPipe.java ! src/share/classes/sun/java2d/pipe/PixelToParallelogramConverter.java ! src/share/classes/sun/java2d/pipe/PixelToShapeConverter.java ! src/share/classes/sun/java2d/pipe/Region.java ! src/share/classes/sun/java2d/pipe/RegionClipSpanIterator.java ! src/share/classes/sun/java2d/pipe/RegionIterator.java ! src/share/classes/sun/java2d/pipe/RegionSpanIterator.java ! src/share/classes/sun/java2d/pipe/RenderBuffer.java ! src/share/classes/sun/java2d/pipe/RenderQueue.java ! src/share/classes/sun/java2d/pipe/RenderingEngine.java ! src/share/classes/sun/java2d/pipe/ShapeDrawPipe.java ! src/share/classes/sun/java2d/pipe/ShapeSpanIterator.java ! src/share/classes/sun/java2d/pipe/SolidTextRenderer.java ! src/share/classes/sun/java2d/pipe/SpanClipRenderer.java ! src/share/classes/sun/java2d/pipe/SpanIterator.java ! src/share/classes/sun/java2d/pipe/SpanShapeRenderer.java ! src/share/classes/sun/java2d/pipe/TextPipe.java ! src/share/classes/sun/java2d/pipe/TextRenderer.java ! src/share/classes/sun/java2d/pipe/ValidatePipe.java ! src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventListener.java ! src/share/classes/sun/java2d/pipe/hw/AccelDeviceEventNotifier.java ! src/share/classes/sun/java2d/pipe/hw/AccelGraphicsConfig.java ! src/share/classes/sun/java2d/pipe/hw/AccelSurface.java ! src/share/classes/sun/java2d/pipe/hw/AccelTypedVolatileImage.java ! src/share/classes/sun/java2d/pipe/hw/BufferedContextProvider.java ! src/share/classes/sun/java2d/pipe/hw/ContextCapabilities.java ! src/share/classes/sun/java2d/pipe/hw/ExtendedBufferCapabilities.java ! src/share/classes/sun/java2d/pisces/Dasher.java ! src/share/classes/sun/java2d/pisces/LineSink.java ! src/share/classes/sun/java2d/pisces/PiscesCache.java ! src/share/classes/sun/java2d/pisces/PiscesMath.java ! src/share/classes/sun/java2d/pisces/PiscesRenderingEngine.java ! src/share/classes/sun/java2d/pisces/PiscesTileGenerator.java ! src/share/classes/sun/java2d/pisces/Renderer.java ! src/share/classes/sun/java2d/pisces/Stroker.java ! src/share/classes/sun/java2d/pisces/Transform4.java ! src/share/classes/sun/jkernel/BackgroundDownloader.java ! src/share/classes/sun/jkernel/Bundle.java ! src/share/classes/sun/jkernel/BundleCheck.java ! src/share/classes/sun/jkernel/ByteArrayToFromHexDigits.java ! src/share/classes/sun/jkernel/DigestOutputStream.java ! src/share/classes/sun/jkernel/DownloadManager.java ! src/share/classes/sun/jkernel/KernelError.java ! src/share/classes/sun/jkernel/Mutex.java ! src/share/classes/sun/jkernel/StandaloneByteArrayAccess.java ! src/share/classes/sun/jkernel/StandaloneMessageDigest.java ! src/share/classes/sun/jkernel/StandaloneSHA.java ! src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java ! src/share/classes/sun/jvmstat/monitor/ByteArrayMonitor.java ! src/share/classes/sun/jvmstat/monitor/HostIdentifier.java ! src/share/classes/sun/jvmstat/monitor/IntegerMonitor.java ! src/share/classes/sun/jvmstat/monitor/LongMonitor.java ! src/share/classes/sun/jvmstat/monitor/Monitor.java ! src/share/classes/sun/jvmstat/monitor/MonitorException.java ! src/share/classes/sun/jvmstat/monitor/MonitoredHost.java ! src/share/classes/sun/jvmstat/monitor/MonitoredVm.java ! src/share/classes/sun/jvmstat/monitor/MonitoredVmUtil.java ! src/share/classes/sun/jvmstat/monitor/StringMonitor.java ! src/share/classes/sun/jvmstat/monitor/VmIdentifier.java ! src/share/classes/sun/jvmstat/monitor/event/HostEvent.java ! src/share/classes/sun/jvmstat/monitor/event/HostListener.java ! src/share/classes/sun/jvmstat/monitor/event/MonitorStatusChangeEvent.java ! src/share/classes/sun/jvmstat/monitor/event/VmEvent.java ! src/share/classes/sun/jvmstat/monitor/event/VmListener.java ! src/share/classes/sun/jvmstat/monitor/event/VmStatusChangeEvent.java ! src/share/classes/sun/jvmstat/monitor/event/package.html ! src/share/classes/sun/jvmstat/monitor/package.html ! src/share/classes/sun/jvmstat/monitor/remote/BufferedMonitoredVm.java ! src/share/classes/sun/jvmstat/monitor/remote/RemoteHost.java ! src/share/classes/sun/jvmstat/monitor/remote/RemoteVm.java ! src/share/classes/sun/jvmstat/monitor/remote/package.html ! src/share/classes/sun/jvmstat/perfdata/monitor/AbstractMonitoredVm.java ! src/share/classes/sun/jvmstat/perfdata/monitor/AbstractPerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/AbstractPerfDataBufferPrologue.java ! src/share/classes/sun/jvmstat/perfdata/monitor/AliasFileParser.java ! src/share/classes/sun/jvmstat/perfdata/monitor/CountedTimerTask.java ! src/share/classes/sun/jvmstat/perfdata/monitor/CountedTimerTaskUtils.java ! src/share/classes/sun/jvmstat/perfdata/monitor/MonitorDataException.java ! src/share/classes/sun/jvmstat/perfdata/monitor/MonitorStatus.java ! src/share/classes/sun/jvmstat/perfdata/monitor/MonitorStructureException.java ! src/share/classes/sun/jvmstat/perfdata/monitor/MonitorTypeException.java ! src/share/classes/sun/jvmstat/perfdata/monitor/MonitorVersionException.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfDataBufferImpl.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfIntegerMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfLongMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringConstantMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringVariableMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/SyntaxException.java ! src/share/classes/sun/jvmstat/perfdata/monitor/package.html ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/FileMonitoredVm.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/MonitoredHostProvider.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/file/package.html ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalEventTimer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalVmManager.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/MonitoredHostProvider.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/package.html ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/MonitoredHostProvider.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/RemoteMonitoredVm.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/RemoteVmManager.java ! src/share/classes/sun/jvmstat/perfdata/monitor/protocol/rmi/package.html ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/BasicType.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBufferPrologue.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBufferPrologue.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/TypeCode.java ! src/share/classes/sun/jvmstat/perfdata/resources/aliasmap ! src/share/classes/sun/launcher/LauncherHelper.java ! src/share/classes/sun/launcher/resources/launcher.properties ! src/share/classes/sun/launcher/resources/launcher_de.properties ! src/share/classes/sun/launcher/resources/launcher_es.properties ! src/share/classes/sun/launcher/resources/launcher_fr.properties ! src/share/classes/sun/launcher/resources/launcher_it.properties ! src/share/classes/sun/launcher/resources/launcher_ja.properties ! src/share/classes/sun/launcher/resources/launcher_ko.properties ! src/share/classes/sun/launcher/resources/launcher_sv.properties ! src/share/classes/sun/launcher/resources/launcher_zh_CN.properties ! src/share/classes/sun/launcher/resources/launcher_zh_TW.properties ! src/share/classes/sun/management/Agent.java ! src/share/classes/sun/management/AgentConfigurationError.java ! src/share/classes/sun/management/ClassLoadingImpl.java ! src/share/classes/sun/management/CompilationImpl.java ! src/share/classes/sun/management/CompilerThreadStat.java ! src/share/classes/sun/management/ConnectorAddressLink.java ! src/share/classes/sun/management/FileSystem.java ! src/share/classes/sun/management/Flag.java ! src/share/classes/sun/management/GarbageCollectorImpl.java ! src/share/classes/sun/management/GcInfoBuilder.java ! src/share/classes/sun/management/GcInfoCompositeData.java ! src/share/classes/sun/management/HotSpotDiagnostic.java ! src/share/classes/sun/management/HotspotClassLoading.java ! src/share/classes/sun/management/HotspotClassLoadingMBean.java ! src/share/classes/sun/management/HotspotCompilation.java ! src/share/classes/sun/management/HotspotCompilationMBean.java ! src/share/classes/sun/management/HotspotInternal.java ! src/share/classes/sun/management/HotspotInternalMBean.java ! src/share/classes/sun/management/HotspotMemory.java ! src/share/classes/sun/management/HotspotMemoryMBean.java ! src/share/classes/sun/management/HotspotRuntime.java ! src/share/classes/sun/management/HotspotRuntimeMBean.java ! src/share/classes/sun/management/HotspotThread.java ! src/share/classes/sun/management/HotspotThreadMBean.java ! src/share/classes/sun/management/LazyCompositeData.java ! src/share/classes/sun/management/LockDataConverter.java ! src/share/classes/sun/management/LockDataConverterMXBean.java ! src/share/classes/sun/management/ManagementFactory.java ! src/share/classes/sun/management/ManagementFactoryHelper.java ! src/share/classes/sun/management/MappedMXBeanType.java ! src/share/classes/sun/management/MemoryImpl.java ! src/share/classes/sun/management/MemoryManagerImpl.java ! src/share/classes/sun/management/MemoryNotifInfoCompositeData.java ! src/share/classes/sun/management/MemoryPoolImpl.java ! src/share/classes/sun/management/MemoryUsageCompositeData.java ! src/share/classes/sun/management/MethodInfo.java ! src/share/classes/sun/management/MonitorInfoCompositeData.java ! src/share/classes/sun/management/NotificationEmitterSupport.java ! src/share/classes/sun/management/OperatingSystemImpl.java ! src/share/classes/sun/management/RuntimeImpl.java ! src/share/classes/sun/management/Sensor.java ! src/share/classes/sun/management/StackTraceElementCompositeData.java ! src/share/classes/sun/management/ThreadImpl.java ! src/share/classes/sun/management/ThreadInfoCompositeData.java ! src/share/classes/sun/management/Util.java ! src/share/classes/sun/management/VMManagement.java ! src/share/classes/sun/management/VMManagementImpl.java ! src/share/classes/sun/management/VMOptionCompositeData.java ! src/share/classes/sun/management/counter/AbstractCounter.java ! src/share/classes/sun/management/counter/ByteArrayCounter.java ! src/share/classes/sun/management/counter/Counter.java ! src/share/classes/sun/management/counter/LongArrayCounter.java ! src/share/classes/sun/management/counter/LongCounter.java ! src/share/classes/sun/management/counter/StringCounter.java ! src/share/classes/sun/management/counter/Units.java ! src/share/classes/sun/management/counter/Variability.java ! src/share/classes/sun/management/counter/perf/ByteArrayCounterSnapshot.java ! src/share/classes/sun/management/counter/perf/InstrumentationException.java ! src/share/classes/sun/management/counter/perf/LongArrayCounterSnapshot.java ! src/share/classes/sun/management/counter/perf/LongCounterSnapshot.java ! src/share/classes/sun/management/counter/perf/PerfByteArrayCounter.java ! src/share/classes/sun/management/counter/perf/PerfDataEntry.java ! src/share/classes/sun/management/counter/perf/PerfDataType.java ! src/share/classes/sun/management/counter/perf/PerfInstrumentation.java ! src/share/classes/sun/management/counter/perf/PerfLongArrayCounter.java ! src/share/classes/sun/management/counter/perf/PerfLongCounter.java ! src/share/classes/sun/management/counter/perf/PerfStringCounter.java ! src/share/classes/sun/management/counter/perf/Prologue.java ! src/share/classes/sun/management/counter/perf/StringCounterSnapshot.java ! src/share/classes/sun/management/jmxremote/ConnectorBootstrap.java ! src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java ! src/share/classes/sun/management/jmxremote/SingleEntryRegistry.java ! src/share/classes/sun/management/jmxremote/package.html ! src/share/classes/sun/management/resources/agent.properties ! src/share/classes/sun/management/resources/agent_de.properties ! src/share/classes/sun/management/resources/agent_es.properties ! src/share/classes/sun/management/resources/agent_fr.properties ! src/share/classes/sun/management/resources/agent_it.properties ! src/share/classes/sun/management/resources/agent_ja.properties ! src/share/classes/sun/management/resources/agent_ko.properties ! src/share/classes/sun/management/resources/agent_sv.properties ! src/share/classes/sun/management/resources/agent_zh_CN.properties ! src/share/classes/sun/management/resources/agent_zh_TW.properties ! src/share/classes/sun/management/snmp/AdaptorBootstrap.java ! src/share/classes/sun/management/snmp/jvminstr/JVM_MANAGEMENT_MIB_IMPL.java ! src/share/classes/sun/management/snmp/jvminstr/JvmClassLoadingImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmCompilationImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemGCEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemGCTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemManagerEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemManagerTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemMgrPoolRelEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemMgrPoolRelTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemPoolTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemoryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmMemoryMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmOSImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTBootClassPathEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTBootClassPathTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTClassPathEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTClassPathTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTInputArgsEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTInputArgsTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTLibraryPathEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRTLibraryPathTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRuntimeImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmRuntimeMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceTableMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmThreadingImpl.java ! src/share/classes/sun/management/snmp/jvminstr/JvmThreadingMetaImpl.java ! src/share/classes/sun/management/snmp/jvminstr/NotificationTarget.java ! src/share/classes/sun/management/snmp/jvminstr/NotificationTargetImpl.java ! src/share/classes/sun/management/snmp/jvminstr/package.html ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmClassesVerboseLevel.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmJITCompilerTimeMonitoring.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemManagerState.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolCollectThreshdSupport.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolState.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolThreshdSupport.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemPoolType.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemoryGCCall.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmMemoryGCVerboseLevel.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmRTBootClassPathSupport.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmThreadContentionMonitoring.java ! src/share/classes/sun/management/snmp/jvmmib/EnumJvmThreadCpuTimeMonitoring.java ! src/share/classes/sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIB.java ! src/share/classes/sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIBOidTable.java ! src/share/classes/sun/management/snmp/jvmmib/JvmClassLoadingMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmClassLoadingMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmCompilationMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmCompilationMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemGCEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemGCEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemGCTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemManagerEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemManagerEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemManagerTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemMgrPoolRelEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemMgrPoolRelEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemMgrPoolRelTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemPoolTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemoryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmMemoryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmOSMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmOSMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTBootClassPathEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTBootClassPathEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTBootClassPathTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTClassPathTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTInputArgsTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRTLibraryPathTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRuntimeMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmRuntimeMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceEntryMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceEntryMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmThreadInstanceTableMeta.java ! src/share/classes/sun/management/snmp/jvmmib/JvmThreadingMBean.java ! src/share/classes/sun/management/snmp/jvmmib/JvmThreadingMeta.java ! src/share/classes/sun/management/snmp/jvmmib/package.html ! src/share/classes/sun/management/snmp/package.html ! src/share/classes/sun/management/snmp/util/JvmContextFactory.java ! src/share/classes/sun/management/snmp/util/MibLogger.java ! src/share/classes/sun/management/snmp/util/SnmpCachedData.java ! src/share/classes/sun/management/snmp/util/SnmpListTableCache.java ! src/share/classes/sun/management/snmp/util/SnmpLoadedClassData.java ! src/share/classes/sun/management/snmp/util/SnmpNamedListTableCache.java ! src/share/classes/sun/management/snmp/util/SnmpTableCache.java ! src/share/classes/sun/management/snmp/util/SnmpTableHandler.java ! src/share/classes/sun/management/snmp/util/package.html ! src/share/classes/sun/misc/ASCIICaseInsensitiveComparator.java ! src/share/classes/sun/misc/BASE64Decoder.java ! src/share/classes/sun/misc/BASE64Encoder.java ! src/share/classes/sun/misc/BootClassLoaderHook.java ! src/share/classes/sun/misc/CEFormatException.java ! src/share/classes/sun/misc/CEStreamExhausted.java ! src/share/classes/sun/misc/CRC16.java ! src/share/classes/sun/misc/Cache.java ! src/share/classes/sun/misc/CharacterDecoder.java ! src/share/classes/sun/misc/CharacterEncoder.java ! src/share/classes/sun/misc/ClassFileTransformer.java ! src/share/classes/sun/misc/ClassLoaderUtil.java ! src/share/classes/sun/misc/Cleaner.java ! src/share/classes/sun/misc/Compare.java ! src/share/classes/sun/misc/CompoundEnumeration.java ! src/share/classes/sun/misc/ConditionLock.java ! src/share/classes/sun/misc/DoubleConsts.java ! src/share/classes/sun/misc/ExtensionDependency.java ! src/share/classes/sun/misc/ExtensionInfo.java ! src/share/classes/sun/misc/ExtensionInstallationException.java ! src/share/classes/sun/misc/ExtensionInstallationProvider.java ! src/share/classes/sun/misc/FloatConsts.java ! src/share/classes/sun/misc/FloatingDecimal.java ! src/share/classes/sun/misc/FormattedFloatingDecimal.java ! src/share/classes/sun/misc/FpUtils.java ! src/share/classes/sun/misc/GC.java ! src/share/classes/sun/misc/HexDumpEncoder.java ! src/share/classes/sun/misc/IOUtils.java ! src/share/classes/sun/misc/InvalidJarIndexException.java ! src/share/classes/sun/misc/JarFilter.java ! src/share/classes/sun/misc/JarIndex.java ! src/share/classes/sun/misc/JavaIOAccess.java ! src/share/classes/sun/misc/JavaIOFileDescriptorAccess.java ! src/share/classes/sun/misc/JavaLangAccess.java ! src/share/classes/sun/misc/JavaNetAccess.java ! src/share/classes/sun/misc/JavaNioAccess.java ! src/share/classes/sun/misc/JavaSecurityCodeSignerAccess.java ! src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java ! src/share/classes/sun/misc/JavaUtilJarAccess.java ! src/share/classes/sun/misc/LRUCache.java ! src/share/classes/sun/misc/Launcher.java ! src/share/classes/sun/misc/Lock.java ! src/share/classes/sun/misc/MessageUtils.java ! src/share/classes/sun/misc/MetaIndex.java ! src/share/classes/sun/misc/NativeSignalHandler.java ! src/share/classes/sun/misc/Perf.java ! src/share/classes/sun/misc/PerfCounter.java ! src/share/classes/sun/misc/PerformanceLogger.java ! src/share/classes/sun/misc/ProxyGenerator.java ! src/share/classes/sun/misc/Queue.java ! src/share/classes/sun/misc/REException.java ! src/share/classes/sun/misc/Ref.java ! src/share/classes/sun/misc/Regexp.java ! src/share/classes/sun/misc/RegexpPool.java ! src/share/classes/sun/misc/RegexpTarget.java ! src/share/classes/sun/misc/Request.java ! src/share/classes/sun/misc/RequestProcessor.java ! src/share/classes/sun/misc/Resource.java ! src/share/classes/sun/misc/Service.java ! src/share/classes/sun/misc/ServiceConfigurationError.java ! src/share/classes/sun/misc/SharedSecrets.java ! src/share/classes/sun/misc/Signal.java ! src/share/classes/sun/misc/SignalHandler.java ! src/share/classes/sun/misc/SoftCache.java ! src/share/classes/sun/misc/Sort.java ! src/share/classes/sun/misc/Timeable.java ! src/share/classes/sun/misc/Timer.java ! src/share/classes/sun/misc/UCDecoder.java ! src/share/classes/sun/misc/UCEncoder.java ! src/share/classes/sun/misc/URLClassPath.java ! src/share/classes/sun/misc/UUDecoder.java ! src/share/classes/sun/misc/UUEncoder.java ! src/share/classes/sun/misc/Unsafe.java ! src/share/classes/sun/misc/VM.java ! src/share/classes/sun/misc/VMNotification.java ! src/share/classes/sun/misc/VMSupport.java ! src/share/classes/sun/misc/Version.java.template ! src/share/classes/sun/misc/resources/Messages.java ! src/share/classes/sun/misc/resources/Messages_de.java ! src/share/classes/sun/misc/resources/Messages_es.java ! src/share/classes/sun/misc/resources/Messages_fr.java ! src/share/classes/sun/misc/resources/Messages_it.java ! src/share/classes/sun/misc/resources/Messages_ja.java ! src/share/classes/sun/misc/resources/Messages_ko.java ! src/share/classes/sun/misc/resources/Messages_sv.java ! src/share/classes/sun/misc/resources/Messages_zh_CN.java ! src/share/classes/sun/misc/resources/Messages_zh_TW.java ! src/share/classes/sun/net/ApplicationProxy.java ! src/share/classes/sun/net/ConnectionResetException.java ! src/share/classes/sun/net/InetAddressCachePolicy.java ! src/share/classes/sun/net/NetProperties.java ! src/share/classes/sun/net/NetworkClient.java ! src/share/classes/sun/net/NetworkServer.java ! src/share/classes/sun/net/ProgressEvent.java ! src/share/classes/sun/net/ProgressListener.java ! src/share/classes/sun/net/ProgressMeteringPolicy.java ! src/share/classes/sun/net/ProgressMonitor.java ! src/share/classes/sun/net/ProgressSource.java ! src/share/classes/sun/net/TelnetInputStream.java ! src/share/classes/sun/net/TelnetOutputStream.java ! src/share/classes/sun/net/TelnetProtocolException.java ! src/share/classes/sun/net/TransferProtocolClient.java ! src/share/classes/sun/net/URLCanonicalizer.java ! src/share/classes/sun/net/dns/ResolverConfiguration.java ! src/share/classes/sun/net/ftp/FtpClient.java ! src/share/classes/sun/net/ftp/FtpClientProvider.java ! src/share/classes/sun/net/ftp/FtpDirEntry.java ! src/share/classes/sun/net/ftp/FtpDirParser.java ! src/share/classes/sun/net/ftp/FtpLoginException.java ! src/share/classes/sun/net/ftp/FtpProtocolException.java ! src/share/classes/sun/net/ftp/FtpReplyCode.java ! src/share/classes/sun/net/ftp/impl/DefaultFtpClientProvider.java ! src/share/classes/sun/net/ftp/impl/FtpClient.java ! src/share/classes/sun/net/httpserver/AuthFilter.java ! src/share/classes/sun/net/httpserver/ChunkedInputStream.java ! src/share/classes/sun/net/httpserver/ChunkedOutputStream.java ! src/share/classes/sun/net/httpserver/Code.java ! src/share/classes/sun/net/httpserver/ContextList.java ! src/share/classes/sun/net/httpserver/DefaultHttpServerProvider.java ! src/share/classes/sun/net/httpserver/Event.java ! src/share/classes/sun/net/httpserver/ExchangeImpl.java ! src/share/classes/sun/net/httpserver/FixedLengthInputStream.java ! src/share/classes/sun/net/httpserver/FixedLengthOutputStream.java ! src/share/classes/sun/net/httpserver/HttpConnection.java ! src/share/classes/sun/net/httpserver/HttpContextImpl.java ! src/share/classes/sun/net/httpserver/HttpError.java ! src/share/classes/sun/net/httpserver/HttpExchangeImpl.java ! src/share/classes/sun/net/httpserver/HttpServerImpl.java ! src/share/classes/sun/net/httpserver/HttpsExchangeImpl.java ! src/share/classes/sun/net/httpserver/HttpsServerImpl.java ! src/share/classes/sun/net/httpserver/LeftOverInputStream.java ! src/share/classes/sun/net/httpserver/Request.java ! src/share/classes/sun/net/httpserver/SSLStreams.java ! src/share/classes/sun/net/httpserver/SelectorCache.java ! src/share/classes/sun/net/httpserver/ServerConfig.java ! src/share/classes/sun/net/httpserver/ServerImpl.java ! src/share/classes/sun/net/httpserver/StreamClosedException.java ! src/share/classes/sun/net/httpserver/TimeSource.java ! src/share/classes/sun/net/httpserver/UndefLengthOutputStream.java ! src/share/classes/sun/net/httpserver/UnmodifiableHeaders.java ! src/share/classes/sun/net/idn/Punycode.java ! src/share/classes/sun/net/idn/StringPrep.java ! src/share/classes/sun/net/idn/StringPrepDataReader.java ! src/share/classes/sun/net/idn/UCharacterDirection.java ! src/share/classes/sun/net/idn/UCharacterEnums.java ! src/share/classes/sun/net/smtp/SmtpClient.java ! src/share/classes/sun/net/smtp/SmtpProtocolException.java ! src/share/classes/sun/net/spi/DefaultProxySelector.java ! src/share/classes/sun/net/spi/nameservice/NameService.java ! src/share/classes/sun/net/spi/nameservice/NameServiceDescriptor.java ! src/share/classes/sun/net/spi/nameservice/dns/DNSNameService.java ! src/share/classes/sun/net/spi/nameservice/dns/DNSNameServiceDescriptor.java ! src/share/classes/sun/net/util/IPAddressUtil.java ! src/share/classes/sun/net/util/URLUtil.java ! src/share/classes/sun/net/www/ApplicationLaunchException.java ! src/share/classes/sun/net/www/HeaderParser.java ! src/share/classes/sun/net/www/MessageHeader.java ! src/share/classes/sun/net/www/MeteredStream.java ! src/share/classes/sun/net/www/MimeEntry.java ! src/share/classes/sun/net/www/MimeLauncher.java ! src/share/classes/sun/net/www/MimeTable.java ! src/share/classes/sun/net/www/ParseUtil.java ! src/share/classes/sun/net/www/URLConnection.java ! src/share/classes/sun/net/www/content/audio/aiff.java ! src/share/classes/sun/net/www/content/audio/basic.java ! src/share/classes/sun/net/www/content/audio/wav.java ! src/share/classes/sun/net/www/content/audio/x_aiff.java ! src/share/classes/sun/net/www/content/audio/x_wav.java ! src/share/classes/sun/net/www/content/image/gif.java ! src/share/classes/sun/net/www/content/image/jpeg.java ! src/share/classes/sun/net/www/content/image/png.java ! src/share/classes/sun/net/www/content/image/x_xbitmap.java ! src/share/classes/sun/net/www/content/image/x_xpixmap.java ! src/share/classes/sun/net/www/content/text/Generic.java ! src/share/classes/sun/net/www/content/text/PlainTextInputStream.java ! src/share/classes/sun/net/www/content/text/plain.java ! src/share/classes/sun/net/www/http/ChunkedInputStream.java ! src/share/classes/sun/net/www/http/ChunkedOutputStream.java ! src/share/classes/sun/net/www/http/HttpCapture.java ! src/share/classes/sun/net/www/http/HttpCaptureInputStream.java ! src/share/classes/sun/net/www/http/HttpCaptureOutputStream.java ! src/share/classes/sun/net/www/http/HttpClient.java ! src/share/classes/sun/net/www/http/Hurryable.java ! src/share/classes/sun/net/www/http/KeepAliveCache.java ! src/share/classes/sun/net/www/http/KeepAliveStream.java ! src/share/classes/sun/net/www/http/KeepAliveStreamCleaner.java ! src/share/classes/sun/net/www/http/PosterOutputStream.java ! src/share/classes/sun/net/www/protocol/file/FileURLConnection.java ! src/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java ! src/share/classes/sun/net/www/protocol/ftp/Handler.java ! src/share/classes/sun/net/www/protocol/gopher/GopherClient.java ! src/share/classes/sun/net/www/protocol/gopher/Handler.java ! src/share/classes/sun/net/www/protocol/http/AuthCache.java ! src/share/classes/sun/net/www/protocol/http/AuthCacheImpl.java ! src/share/classes/sun/net/www/protocol/http/AuthCacheValue.java ! src/share/classes/sun/net/www/protocol/http/AuthScheme.java ! src/share/classes/sun/net/www/protocol/http/AuthenticationHeader.java ! src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java ! src/share/classes/sun/net/www/protocol/http/BasicAuthentication.java ! src/share/classes/sun/net/www/protocol/http/DigestAuthentication.java ! src/share/classes/sun/net/www/protocol/http/Handler.java ! src/share/classes/sun/net/www/protocol/http/HttpAuthenticator.java ! src/share/classes/sun/net/www/protocol/http/HttpCallerInfo.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/share/classes/sun/net/www/protocol/http/NTLMAuthenticationProxy.java ! src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java ! src/share/classes/sun/net/www/protocol/http/Negotiator.java ! src/share/classes/sun/net/www/protocol/http/logging/HttpLogFormatter.java ! src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java ! src/share/classes/sun/net/www/protocol/http/spnego/NegotiatorImpl.java ! src/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java ! src/share/classes/sun/net/www/protocol/https/DefaultHostnameVerifier.java ! src/share/classes/sun/net/www/protocol/https/DelegateHttpsURLConnection.java ! src/share/classes/sun/net/www/protocol/https/Handler.java ! src/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java ! src/share/classes/sun/net/www/protocol/jar/Handler.java ! src/share/classes/sun/net/www/protocol/jar/JarURLConnection.java ! src/share/classes/sun/net/www/protocol/jar/URLJarFile.java ! src/share/classes/sun/net/www/protocol/jar/URLJarFileCallBack.java ! src/share/classes/sun/net/www/protocol/mailto/Handler.java ! src/share/classes/sun/net/www/protocol/mailto/MailToURLConnection.java ! src/share/classes/sun/net/www/protocol/netdoc/Handler.java ! src/share/classes/sun/nio/ByteBuffered.java ! src/share/classes/sun/nio/ch/AbstractPollArrayWrapper.java ! src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java ! src/share/classes/sun/nio/ch/AllocatedNativeObject.java ! src/share/classes/sun/nio/ch/AsynchronousChannelGroupImpl.java ! src/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java ! src/share/classes/sun/nio/ch/AsynchronousServerSocketChannelImpl.java ! src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java ! src/share/classes/sun/nio/ch/Cancellable.java ! src/share/classes/sun/nio/ch/ChannelInputStream.java ! src/share/classes/sun/nio/ch/CompletedFuture.java ! src/share/classes/sun/nio/ch/DatagramChannelImpl.java ! src/share/classes/sun/nio/ch/DatagramSocketAdaptor.java ! src/share/classes/sun/nio/ch/DevPollSelectorProvider.java ! src/share/classes/sun/nio/ch/DirectBuffer.java ! src/share/classes/sun/nio/ch/ExtendedSocketOption.java ! src/share/classes/sun/nio/ch/FileChannelImpl.java ! src/share/classes/sun/nio/ch/FileDispatcher.java ! src/share/classes/sun/nio/ch/FileLockImpl.java ! src/share/classes/sun/nio/ch/FileLockTable.java ! src/share/classes/sun/nio/ch/Groupable.java ! src/share/classes/sun/nio/ch/IOStatus.java ! src/share/classes/sun/nio/ch/IOUtil.java ! src/share/classes/sun/nio/ch/IOVecWrapper.java ! src/share/classes/sun/nio/ch/Interruptible.java ! src/share/classes/sun/nio/ch/Invoker.java ! src/share/classes/sun/nio/ch/MembershipKeyImpl.java ! src/share/classes/sun/nio/ch/MembershipRegistry.java ! src/share/classes/sun/nio/ch/NativeDispatcher.java ! src/share/classes/sun/nio/ch/NativeObject.java ! src/share/classes/sun/nio/ch/NativeThreadSet.java ! src/share/classes/sun/nio/ch/Net.java ! src/share/classes/sun/nio/ch/OptionKey.java ! src/share/classes/sun/nio/ch/PendingFuture.java ! src/share/classes/sun/nio/ch/PollSelectorProvider.java ! src/share/classes/sun/nio/ch/Reflect.java ! src/share/classes/sun/nio/ch/SctpMessageInfoImpl.java ! src/share/classes/sun/nio/ch/SctpStdSocketOption.java ! src/share/classes/sun/nio/ch/SelChImpl.java ! src/share/classes/sun/nio/ch/SelectionKeyImpl.java ! src/share/classes/sun/nio/ch/SelectorImpl.java ! src/share/classes/sun/nio/ch/SelectorProviderImpl.java ! src/share/classes/sun/nio/ch/ServerSocketAdaptor.java ! src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java ! src/share/classes/sun/nio/ch/SimpleAsynchronousDatagramChannelImpl.java ! src/share/classes/sun/nio/ch/SimpleAsynchronousFileChannelImpl.java ! src/share/classes/sun/nio/ch/SocketAdaptor.java ! src/share/classes/sun/nio/ch/SocketChannelImpl.java ! src/share/classes/sun/nio/ch/ThreadPool.java ! src/share/classes/sun/nio/ch/Util.java ! src/share/classes/sun/nio/cs/AbstractCharsetProvider.java ! src/share/classes/sun/nio/cs/ArrayDecoder.java ! src/share/classes/sun/nio/cs/ArrayEncoder.java ! src/share/classes/sun/nio/cs/CharsetMapping.java ! src/share/classes/sun/nio/cs/FastCharsetProvider.java ! src/share/classes/sun/nio/cs/HistoricallyNamedCharset.java ! src/share/classes/sun/nio/cs/ISO_8859_1.java ! src/share/classes/sun/nio/cs/SingleByte.java ! src/share/classes/sun/nio/cs/SingleByteDecoder.java ! src/share/classes/sun/nio/cs/SingleByteEncoder.java ! src/share/classes/sun/nio/cs/StreamDecoder.java ! src/share/classes/sun/nio/cs/StreamEncoder.java ! src/share/classes/sun/nio/cs/Surrogate.java ! src/share/classes/sun/nio/cs/ThreadLocalCoders.java ! src/share/classes/sun/nio/cs/US_ASCII.java ! src/share/classes/sun/nio/cs/UTF_16.java ! src/share/classes/sun/nio/cs/UTF_16BE.java ! src/share/classes/sun/nio/cs/UTF_16LE.java ! src/share/classes/sun/nio/cs/UTF_16LE_BOM.java ! src/share/classes/sun/nio/cs/UTF_32.java ! src/share/classes/sun/nio/cs/UTF_32BE.java ! src/share/classes/sun/nio/cs/UTF_32BE_BOM.java ! src/share/classes/sun/nio/cs/UTF_32Coder.java ! src/share/classes/sun/nio/cs/UTF_32LE.java ! src/share/classes/sun/nio/cs/UTF_32LE_BOM.java ! src/share/classes/sun/nio/cs/UTF_8.java ! src/share/classes/sun/nio/cs/Unicode.java ! src/share/classes/sun/nio/cs/UnicodeDecoder.java ! src/share/classes/sun/nio/cs/UnicodeEncoder.java ! src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java ! src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java ! src/share/classes/sun/nio/cs/ext/Big5_Solaris.java ! src/share/classes/sun/nio/cs/ext/DelegatableDecoder.java ! src/share/classes/sun/nio/cs/ext/DoubleByte.java ! src/share/classes/sun/nio/cs/ext/DoubleByteDecoder.java ! src/share/classes/sun/nio/cs/ext/DoubleByteEncoder.java ! src/share/classes/sun/nio/cs/ext/EUC_JP.java ! src/share/classes/sun/nio/cs/ext/EUC_JP_LINUX.java ! src/share/classes/sun/nio/cs/ext/EUC_JP_Open.java ! src/share/classes/sun/nio/cs/ext/EUC_TW.java ! src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java ! src/share/classes/sun/nio/cs/ext/GB18030.java ! src/share/classes/sun/nio/cs/ext/HKSCS.java ! src/share/classes/sun/nio/cs/ext/IBM33722.java ! src/share/classes/sun/nio/cs/ext/IBM834.java ! src/share/classes/sun/nio/cs/ext/IBM942C.java ! src/share/classes/sun/nio/cs/ext/IBM943C.java ! src/share/classes/sun/nio/cs/ext/IBM949C.java ! src/share/classes/sun/nio/cs/ext/IBM964.java ! src/share/classes/sun/nio/cs/ext/ISCII91.java ! src/share/classes/sun/nio/cs/ext/ISO2022.java ! src/share/classes/sun/nio/cs/ext/ISO2022_CN.java ! src/share/classes/sun/nio/cs/ext/ISO2022_CN_CNS.java ! src/share/classes/sun/nio/cs/ext/ISO2022_CN_GB.java ! src/share/classes/sun/nio/cs/ext/ISO2022_JP.java ! src/share/classes/sun/nio/cs/ext/ISO2022_JP_2.java ! src/share/classes/sun/nio/cs/ext/ISO2022_KR.java ! src/share/classes/sun/nio/cs/ext/JISAutoDetect.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0201.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_Encoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS5022X_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS5022X_Encoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS932_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_MS932_Encoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0208_Solaris_Encoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212_Encoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212_MS5022X_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212_MS5022X_Encoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Decoder.java ! src/share/classes/sun/nio/cs/ext/JIS_X_0212_Solaris_Encoder.java ! src/share/classes/sun/nio/cs/ext/MS50220.java ! src/share/classes/sun/nio/cs/ext/MS50221.java ! src/share/classes/sun/nio/cs/ext/MS932_0213.java ! src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java ! src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java ! src/share/classes/sun/nio/cs/ext/MSISO2022JP.java ! src/share/classes/sun/nio/cs/ext/PCK.java ! src/share/classes/sun/nio/cs/ext/SJIS.java ! src/share/classes/sun/nio/cs/ext/SJIS_0213.java ! src/share/classes/sun/nio/cs/ext/SimpleEUCEncoder.java ! src/share/classes/sun/nio/cs/standard-charsets ! src/share/classes/sun/nio/fs/AbstractAclFileAttributeView.java ! src/share/classes/sun/nio/fs/AbstractBasicFileAttributeView.java ! src/share/classes/sun/nio/fs/AbstractFileTypeDetector.java ! src/share/classes/sun/nio/fs/AbstractPath.java ! src/share/classes/sun/nio/fs/AbstractPoller.java ! src/share/classes/sun/nio/fs/AbstractUserDefinedFileAttributeView.java ! src/share/classes/sun/nio/fs/AbstractWatchKey.java ! src/share/classes/sun/nio/fs/AbstractWatchService.java ! src/share/classes/sun/nio/fs/BasicFileAttributesHolder.java ! src/share/classes/sun/nio/fs/Cancellable.java ! src/share/classes/sun/nio/fs/DynamicFileAttributeView.java ! src/share/classes/sun/nio/fs/FileOwnerAttributeViewImpl.java ! src/share/classes/sun/nio/fs/Globs.java ! src/share/classes/sun/nio/fs/NativeBuffer.java ! src/share/classes/sun/nio/fs/NativeBuffers.java ! src/share/classes/sun/nio/fs/PollingWatchService.java ! src/share/classes/sun/nio/fs/Reflect.java ! src/share/classes/sun/nio/fs/Util.java ! src/share/classes/sun/print/AttributeUpdater.java ! src/share/classes/sun/print/BackgroundLookupListener.java ! src/share/classes/sun/print/BackgroundServiceLookup.java ! src/share/classes/sun/print/CustomMediaSizeName.java ! src/share/classes/sun/print/CustomMediaTray.java ! src/share/classes/sun/print/DialogOwner.java ! src/share/classes/sun/print/ImagePrinter.java ! src/share/classes/sun/print/OpenBook.java ! src/share/classes/sun/print/PSPathGraphics.java ! src/share/classes/sun/print/PSPrinterJob.java ! src/share/classes/sun/print/PSStreamPrintJob.java ! src/share/classes/sun/print/PSStreamPrintService.java ! src/share/classes/sun/print/PSStreamPrinterFactory.java ! src/share/classes/sun/print/PageableDoc.java ! src/share/classes/sun/print/PathGraphics.java ! src/share/classes/sun/print/PeekGraphics.java ! src/share/classes/sun/print/PeekMetrics.java ! src/share/classes/sun/print/PrintJob2D.java ! src/share/classes/sun/print/PrintJobAttributeException.java ! src/share/classes/sun/print/PrintJobFlavorException.java ! src/share/classes/sun/print/PrinterGraphicsConfig.java ! src/share/classes/sun/print/PrinterGraphicsDevice.java ! src/share/classes/sun/print/ProxyGraphics.java ! src/share/classes/sun/print/ProxyGraphics2D.java ! src/share/classes/sun/print/ProxyPrintGraphics.java ! src/share/classes/sun/print/RasterPrinterJob.java ! src/share/classes/sun/print/ServiceDialog.java ! src/share/classes/sun/print/ServiceNotifier.java ! src/share/classes/sun/print/SunAlternateMedia.java ! src/share/classes/sun/print/SunMinMaxPage.java ! src/share/classes/sun/print/SunPageSelection.java ! src/share/classes/sun/print/SunPrinterJobService.java ! src/share/classes/sun/print/psfont.properties.ja ! src/share/classes/sun/print/psfontj2d.properties ! src/share/classes/sun/reflect/AccessorGenerator.java ! src/share/classes/sun/reflect/BootstrapConstructorAccessorImpl.java ! src/share/classes/sun/reflect/ByteVector.java ! src/share/classes/sun/reflect/ByteVectorFactory.java ! src/share/classes/sun/reflect/ByteVectorImpl.java ! src/share/classes/sun/reflect/ClassDefiner.java ! src/share/classes/sun/reflect/ClassFileAssembler.java ! src/share/classes/sun/reflect/ClassFileConstants.java ! src/share/classes/sun/reflect/ConstantPool.java ! src/share/classes/sun/reflect/ConstructorAccessor.java ! src/share/classes/sun/reflect/ConstructorAccessorImpl.java ! src/share/classes/sun/reflect/DelegatingConstructorAccessorImpl.java ! src/share/classes/sun/reflect/DelegatingMethodAccessorImpl.java ! src/share/classes/sun/reflect/FieldAccessor.java ! src/share/classes/sun/reflect/FieldAccessorImpl.java ! src/share/classes/sun/reflect/FieldInfo.java ! src/share/classes/sun/reflect/InstantiationExceptionConstructorAccessorImpl.java ! src/share/classes/sun/reflect/Label.java ! src/share/classes/sun/reflect/LangReflectAccess.java ! src/share/classes/sun/reflect/MagicAccessorImpl.java ! src/share/classes/sun/reflect/MethodAccessor.java ! src/share/classes/sun/reflect/MethodAccessorGenerator.java ! src/share/classes/sun/reflect/MethodAccessorImpl.java ! src/share/classes/sun/reflect/NativeConstructorAccessorImpl.java ! src/share/classes/sun/reflect/NativeMethodAccessorImpl.java ! src/share/classes/sun/reflect/Reflection.java ! src/share/classes/sun/reflect/ReflectionFactory.java ! src/share/classes/sun/reflect/SerializationConstructorAccessorImpl.java ! src/share/classes/sun/reflect/SignatureIterator.java ! src/share/classes/sun/reflect/UTF8.java ! src/share/classes/sun/reflect/UnsafeBooleanFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeByteFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeCharacterFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeDoubleFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeFieldAccessorFactory.java ! src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeFloatFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeIntegerFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeLongFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeObjectFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedBooleanFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedByteFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedCharacterFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedDoubleFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedFloatFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedIntegerFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedLongFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedObjectFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedShortFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticBooleanFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticByteFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticCharacterFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticDoubleFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticFloatFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticIntegerFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticLongFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeQualifiedStaticShortFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeShortFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticBooleanFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticByteFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticCharacterFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticDoubleFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticFloatFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticIntegerFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticLongFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticObjectFieldAccessorImpl.java ! src/share/classes/sun/reflect/UnsafeStaticShortFieldAccessorImpl.java ! src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java ! src/share/classes/sun/reflect/annotation/AnnotationParser.java ! src/share/classes/sun/reflect/annotation/AnnotationType.java ! src/share/classes/sun/reflect/annotation/AnnotationTypeMismatchExceptionProxy.java ! src/share/classes/sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java ! src/share/classes/sun/reflect/annotation/ExceptionProxy.java ! src/share/classes/sun/reflect/annotation/TypeNotPresentExceptionProxy.java ! src/share/classes/sun/reflect/generics/factory/CoreReflectionFactory.java ! src/share/classes/sun/reflect/generics/factory/GenericsFactory.java ! src/share/classes/sun/reflect/generics/parser/SignatureParser.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/GenericArrayTypeImpl.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/LazyReflectiveObjectGenerator.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/NotImplementedException.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/WildcardTypeImpl.java ! src/share/classes/sun/reflect/generics/repository/AbstractRepository.java ! src/share/classes/sun/reflect/generics/repository/ClassRepository.java ! src/share/classes/sun/reflect/generics/repository/ConstructorRepository.java ! src/share/classes/sun/reflect/generics/repository/FieldRepository.java ! src/share/classes/sun/reflect/generics/repository/GenericDeclRepository.java ! src/share/classes/sun/reflect/generics/repository/MethodRepository.java ! src/share/classes/sun/reflect/generics/scope/AbstractScope.java ! src/share/classes/sun/reflect/generics/scope/ClassScope.java ! src/share/classes/sun/reflect/generics/scope/ConstructorScope.java ! src/share/classes/sun/reflect/generics/scope/DummyScope.java ! src/share/classes/sun/reflect/generics/scope/MethodScope.java ! src/share/classes/sun/reflect/generics/scope/Scope.java ! src/share/classes/sun/reflect/generics/tree/ArrayTypeSignature.java ! src/share/classes/sun/reflect/generics/tree/BaseType.java ! src/share/classes/sun/reflect/generics/tree/BooleanSignature.java ! src/share/classes/sun/reflect/generics/tree/BottomSignature.java ! src/share/classes/sun/reflect/generics/tree/ByteSignature.java ! src/share/classes/sun/reflect/generics/tree/CharSignature.java ! src/share/classes/sun/reflect/generics/tree/ClassSignature.java ! src/share/classes/sun/reflect/generics/tree/ClassTypeSignature.java ! src/share/classes/sun/reflect/generics/tree/DoubleSignature.java ! src/share/classes/sun/reflect/generics/tree/FieldTypeSignature.java ! src/share/classes/sun/reflect/generics/tree/FloatSignature.java ! src/share/classes/sun/reflect/generics/tree/FormalTypeParameter.java ! src/share/classes/sun/reflect/generics/tree/IntSignature.java ! src/share/classes/sun/reflect/generics/tree/LongSignature.java ! src/share/classes/sun/reflect/generics/tree/MethodTypeSignature.java ! src/share/classes/sun/reflect/generics/tree/ReturnType.java ! src/share/classes/sun/reflect/generics/tree/ShortSignature.java ! src/share/classes/sun/reflect/generics/tree/Signature.java ! src/share/classes/sun/reflect/generics/tree/SimpleClassTypeSignature.java ! src/share/classes/sun/reflect/generics/tree/Tree.java ! src/share/classes/sun/reflect/generics/tree/TypeArgument.java ! src/share/classes/sun/reflect/generics/tree/TypeSignature.java ! src/share/classes/sun/reflect/generics/tree/TypeTree.java ! src/share/classes/sun/reflect/generics/tree/TypeVariableSignature.java ! src/share/classes/sun/reflect/generics/tree/VoidDescriptor.java ! src/share/classes/sun/reflect/generics/tree/Wildcard.java ! src/share/classes/sun/reflect/generics/visitor/Reifier.java ! src/share/classes/sun/reflect/generics/visitor/TypeTreeVisitor.java ! src/share/classes/sun/reflect/generics/visitor/Visitor.java ! src/share/classes/sun/reflect/misc/ConstructorUtil.java ! src/share/classes/sun/reflect/misc/FieldUtil.java ! src/share/classes/sun/reflect/misc/MethodUtil.java ! src/share/classes/sun/reflect/misc/ReflectUtil.java ! src/share/classes/sun/reflect/package.html ! src/share/classes/sun/rmi/log/LogHandler.java ! src/share/classes/sun/rmi/log/LogInputStream.java ! src/share/classes/sun/rmi/log/LogOutputStream.java ! src/share/classes/sun/rmi/log/ReliableLog.java ! src/share/classes/sun/rmi/registry/RegistryImpl.java ! src/share/classes/sun/rmi/registry/resources/rmiregistry.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_de.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_es.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_fr.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_it.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_ja.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_ko.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_sv.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_zh_CN.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_zh_TW.properties ! src/share/classes/sun/rmi/rmic/BatchEnvironment.java ! src/share/classes/sun/rmi/rmic/Constants.java ! src/share/classes/sun/rmi/rmic/Generator.java ! src/share/classes/sun/rmi/rmic/IndentingWriter.java ! src/share/classes/sun/rmi/rmic/Main.java ! src/share/classes/sun/rmi/rmic/Names.java ! src/share/classes/sun/rmi/rmic/RMIConstants.java ! src/share/classes/sun/rmi/rmic/RMIGenerator.java ! src/share/classes/sun/rmi/rmic/RemoteClass.java ! src/share/classes/sun/rmi/rmic/Util.java ! src/share/classes/sun/rmi/rmic/newrmic/BatchEnvironment.java ! src/share/classes/sun/rmi/rmic/newrmic/Constants.java ! src/share/classes/sun/rmi/rmic/newrmic/Generator.java ! src/share/classes/sun/rmi/rmic/newrmic/IndentingWriter.java ! src/share/classes/sun/rmi/rmic/newrmic/Main.java ! src/share/classes/sun/rmi/rmic/newrmic/Resources.java ! src/share/classes/sun/rmi/rmic/newrmic/jrmp/Constants.java ! src/share/classes/sun/rmi/rmic/newrmic/jrmp/JrmpGenerator.java ! src/share/classes/sun/rmi/rmic/newrmic/jrmp/RemoteClass.java ! src/share/classes/sun/rmi/rmic/newrmic/jrmp/StubSkeletonWriter.java ! src/share/classes/sun/rmi/rmic/newrmic/jrmp/Util.java ! src/share/classes/sun/rmi/rmic/resources/rmic.properties ! src/share/classes/sun/rmi/rmic/resources/rmic_ja.properties ! src/share/classes/sun/rmi/rmic/resources/rmic_zh_CN.properties ! src/share/classes/sun/rmi/runtime/Log.java ! src/share/classes/sun/rmi/runtime/NewThreadAction.java ! src/share/classes/sun/rmi/runtime/RuntimeUtil.java ! src/share/classes/sun/rmi/server/ActivatableRef.java ! src/share/classes/sun/rmi/server/ActivatableServerRef.java ! src/share/classes/sun/rmi/server/Activation.java ! src/share/classes/sun/rmi/server/ActivationGroupImpl.java ! src/share/classes/sun/rmi/server/ActivationGroupInit.java ! src/share/classes/sun/rmi/server/Dispatcher.java ! src/share/classes/sun/rmi/server/InactiveGroupException.java ! src/share/classes/sun/rmi/server/LoaderHandler.java ! src/share/classes/sun/rmi/server/MarshalInputStream.java ! src/share/classes/sun/rmi/server/MarshalOutputStream.java ! src/share/classes/sun/rmi/server/UnicastRef.java ! src/share/classes/sun/rmi/server/UnicastRef2.java ! src/share/classes/sun/rmi/server/UnicastServerRef.java ! src/share/classes/sun/rmi/server/UnicastServerRef2.java ! src/share/classes/sun/rmi/server/Util.java ! src/share/classes/sun/rmi/server/WeakClassHashMap.java ! src/share/classes/sun/rmi/server/resources/rmid.properties ! src/share/classes/sun/rmi/server/resources/rmid_de.properties ! src/share/classes/sun/rmi/server/resources/rmid_es.properties ! src/share/classes/sun/rmi/server/resources/rmid_fr.properties ! src/share/classes/sun/rmi/server/resources/rmid_it.properties ! src/share/classes/sun/rmi/server/resources/rmid_ja.properties ! src/share/classes/sun/rmi/server/resources/rmid_ko.properties ! src/share/classes/sun/rmi/server/resources/rmid_sv.properties ! src/share/classes/sun/rmi/server/resources/rmid_zh_CN.properties ! src/share/classes/sun/rmi/server/resources/rmid_zh_TW.properties ! src/share/classes/sun/rmi/transport/Channel.java ! src/share/classes/sun/rmi/transport/Connection.java ! src/share/classes/sun/rmi/transport/ConnectionInputStream.java ! src/share/classes/sun/rmi/transport/ConnectionOutputStream.java ! src/share/classes/sun/rmi/transport/DGCAckHandler.java ! src/share/classes/sun/rmi/transport/DGCClient.java ! src/share/classes/sun/rmi/transport/DGCImpl.java ! src/share/classes/sun/rmi/transport/Endpoint.java ! src/share/classes/sun/rmi/transport/LiveRef.java ! src/share/classes/sun/rmi/transport/ObjectEndpoint.java ! src/share/classes/sun/rmi/transport/ObjectTable.java ! src/share/classes/sun/rmi/transport/StreamRemoteCall.java ! src/share/classes/sun/rmi/transport/Target.java ! src/share/classes/sun/rmi/transport/Transport.java ! src/share/classes/sun/rmi/transport/TransportConstants.java ! src/share/classes/sun/rmi/transport/WeakRef.java ! src/share/classes/sun/rmi/transport/proxy/CGIHandler.java ! src/share/classes/sun/rmi/transport/proxy/HttpAwareServerSocket.java ! src/share/classes/sun/rmi/transport/proxy/HttpInputStream.java ! src/share/classes/sun/rmi/transport/proxy/HttpOutputStream.java ! src/share/classes/sun/rmi/transport/proxy/HttpReceiveSocket.java ! src/share/classes/sun/rmi/transport/proxy/HttpSendInputStream.java ! src/share/classes/sun/rmi/transport/proxy/HttpSendOutputStream.java ! src/share/classes/sun/rmi/transport/proxy/HttpSendSocket.java ! src/share/classes/sun/rmi/transport/proxy/RMIDirectSocketFactory.java ! src/share/classes/sun/rmi/transport/proxy/RMIHttpToCGISocketFactory.java ! src/share/classes/sun/rmi/transport/proxy/RMIHttpToPortSocketFactory.java ! src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java ! src/share/classes/sun/rmi/transport/proxy/RMISocketInfo.java ! src/share/classes/sun/rmi/transport/proxy/WrappedSocket.java ! src/share/classes/sun/rmi/transport/tcp/ConnectionMultiplexer.java ! src/share/classes/sun/rmi/transport/tcp/MultiplexConnectionInfo.java ! src/share/classes/sun/rmi/transport/tcp/MultiplexInputStream.java ! src/share/classes/sun/rmi/transport/tcp/MultiplexOutputStream.java ! src/share/classes/sun/rmi/transport/tcp/TCPChannel.java ! src/share/classes/sun/rmi/transport/tcp/TCPConnection.java ! src/share/classes/sun/rmi/transport/tcp/TCPEndpoint.java ! src/share/classes/sun/rmi/transport/tcp/TCPTransport.java ! src/share/classes/sun/security/acl/AclEntryImpl.java ! src/share/classes/sun/security/acl/AclImpl.java ! src/share/classes/sun/security/acl/AllPermissionsImpl.java ! src/share/classes/sun/security/acl/GroupImpl.java ! src/share/classes/sun/security/acl/OwnerImpl.java ! src/share/classes/sun/security/acl/PermissionImpl.java ! src/share/classes/sun/security/acl/PrincipalImpl.java ! src/share/classes/sun/security/acl/WorldGroupImpl.java ! src/share/classes/sun/security/action/GetBooleanAction.java ! src/share/classes/sun/security/action/GetBooleanSecurityPropertyAction.java ! src/share/classes/sun/security/action/GetIntegerAction.java ! src/share/classes/sun/security/action/GetLongAction.java ! src/share/classes/sun/security/action/GetPropertyAction.java ! src/share/classes/sun/security/action/LoadLibraryAction.java ! src/share/classes/sun/security/action/OpenFileInputStreamAction.java ! src/share/classes/sun/security/action/PutAllAction.java ! src/share/classes/sun/security/ec/ECDHKeyAgreement.java ! src/share/classes/sun/security/ec/ECDSASignature.java ! src/share/classes/sun/security/ec/ECKeyFactory.java ! src/share/classes/sun/security/ec/ECKeyPairGenerator.java ! src/share/classes/sun/security/ec/ECParameters.java ! src/share/classes/sun/security/ec/ECPrivateKeyImpl.java ! src/share/classes/sun/security/ec/ECPublicKeyImpl.java ! src/share/classes/sun/security/ec/NamedCurve.java ! src/share/classes/sun/security/ec/SunEC.java ! src/share/classes/sun/security/ec/SunECEntries.java ! src/share/classes/sun/security/internal/interfaces/TlsMasterSecret.java ! src/share/classes/sun/security/internal/spec/TlsKeyMaterialParameterSpec.java ! src/share/classes/sun/security/internal/spec/TlsKeyMaterialSpec.java ! src/share/classes/sun/security/internal/spec/TlsMasterSecretParameterSpec.java ! src/share/classes/sun/security/internal/spec/TlsPrfParameterSpec.java ! src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java ! src/share/classes/sun/security/jca/GetInstance.java ! src/share/classes/sun/security/jca/JCAUtil.java ! src/share/classes/sun/security/jca/ProviderConfig.java ! src/share/classes/sun/security/jca/ProviderList.java ! src/share/classes/sun/security/jca/Providers.java ! src/share/classes/sun/security/jca/ServiceId.java ! src/share/classes/sun/security/jgss/GSSCaller.java ! src/share/classes/sun/security/jgss/GSSContextImpl.java ! src/share/classes/sun/security/jgss/GSSCredentialImpl.java ! src/share/classes/sun/security/jgss/GSSExceptionImpl.java ! src/share/classes/sun/security/jgss/GSSHeader.java ! src/share/classes/sun/security/jgss/GSSManagerImpl.java ! src/share/classes/sun/security/jgss/GSSNameImpl.java ! src/share/classes/sun/security/jgss/GSSToken.java ! src/share/classes/sun/security/jgss/GSSUtil.java ! src/share/classes/sun/security/jgss/HttpCaller.java ! src/share/classes/sun/security/jgss/LoginConfigImpl.java ! src/share/classes/sun/security/jgss/ProviderList.java ! src/share/classes/sun/security/jgss/SunProvider.java ! src/share/classes/sun/security/jgss/TokenTracker.java ! src/share/classes/sun/security/jgss/krb5/AcceptSecContextToken.java ! src/share/classes/sun/security/jgss/krb5/CipherHelper.java ! src/share/classes/sun/security/jgss/krb5/InitSecContextToken.java ! src/share/classes/sun/security/jgss/krb5/InitialToken.java ! src/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java ! src/share/classes/sun/security/jgss/krb5/Krb5Context.java ! src/share/classes/sun/security/jgss/krb5/Krb5CredElement.java ! src/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java ! src/share/classes/sun/security/jgss/krb5/Krb5MechFactory.java ! src/share/classes/sun/security/jgss/krb5/Krb5NameElement.java ! src/share/classes/sun/security/jgss/krb5/Krb5Token.java ! src/share/classes/sun/security/jgss/krb5/Krb5Util.java ! src/share/classes/sun/security/jgss/krb5/MessageToken.java ! src/share/classes/sun/security/jgss/krb5/MessageToken_v2.java ! src/share/classes/sun/security/jgss/krb5/MicToken.java ! src/share/classes/sun/security/jgss/krb5/MicToken_v2.java ! src/share/classes/sun/security/jgss/krb5/SubjectComber.java ! src/share/classes/sun/security/jgss/krb5/WrapToken.java ! src/share/classes/sun/security/jgss/krb5/WrapToken_v2.java ! src/share/classes/sun/security/jgss/spi/GSSContextSpi.java ! src/share/classes/sun/security/jgss/spi/GSSCredentialSpi.java ! src/share/classes/sun/security/jgss/spi/GSSNameSpi.java ! src/share/classes/sun/security/jgss/spi/MechanismFactory.java ! src/share/classes/sun/security/jgss/spnego/NegTokenInit.java ! src/share/classes/sun/security/jgss/spnego/NegTokenTarg.java ! src/share/classes/sun/security/jgss/spnego/SpNegoContext.java ! src/share/classes/sun/security/jgss/spnego/SpNegoCredElement.java ! src/share/classes/sun/security/jgss/spnego/SpNegoMechFactory.java ! src/share/classes/sun/security/jgss/spnego/SpNegoToken.java ! src/share/classes/sun/security/jgss/wrapper/GSSCredElement.java ! src/share/classes/sun/security/jgss/wrapper/GSSLibStub.java ! src/share/classes/sun/security/jgss/wrapper/GSSNameElement.java ! src/share/classes/sun/security/jgss/wrapper/Krb5Util.java ! src/share/classes/sun/security/jgss/wrapper/NativeGSSContext.java ! src/share/classes/sun/security/jgss/wrapper/NativeGSSFactory.java ! src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java ! src/share/classes/sun/security/krb5/Asn1Exception.java ! src/share/classes/sun/security/krb5/Checksum.java ! src/share/classes/sun/security/krb5/Config.java ! src/share/classes/sun/security/krb5/Confounder.java ! src/share/classes/sun/security/krb5/Credentials.java ! src/share/classes/sun/security/krb5/EncryptedData.java ! src/share/classes/sun/security/krb5/EncryptionKey.java ! src/share/classes/sun/security/krb5/KrbApRep.java ! src/share/classes/sun/security/krb5/KrbApReq.java ! src/share/classes/sun/security/krb5/KrbAppMessage.java ! src/share/classes/sun/security/krb5/KrbAsRep.java ! src/share/classes/sun/security/krb5/KrbAsReq.java ! src/share/classes/sun/security/krb5/KrbCred.java ! src/share/classes/sun/security/krb5/KrbCryptoException.java ! src/share/classes/sun/security/krb5/KrbException.java ! src/share/classes/sun/security/krb5/KrbKdcRep.java ! src/share/classes/sun/security/krb5/KrbKdcReq.java ! src/share/classes/sun/security/krb5/KrbPriv.java ! src/share/classes/sun/security/krb5/KrbSafe.java ! src/share/classes/sun/security/krb5/KrbServiceLocator.java ! src/share/classes/sun/security/krb5/KrbTgsRep.java ! src/share/classes/sun/security/krb5/KrbTgsReq.java ! src/share/classes/sun/security/krb5/PrincipalName.java ! src/share/classes/sun/security/krb5/Realm.java ! src/share/classes/sun/security/krb5/RealmException.java ! src/share/classes/sun/security/krb5/ServiceName.java ! src/share/classes/sun/security/krb5/internal/APOptions.java ! src/share/classes/sun/security/krb5/internal/APRep.java ! src/share/classes/sun/security/krb5/internal/APReq.java ! src/share/classes/sun/security/krb5/internal/ASRep.java ! src/share/classes/sun/security/krb5/internal/ASReq.java ! src/share/classes/sun/security/krb5/internal/AuthContext.java ! src/share/classes/sun/security/krb5/internal/Authenticator.java ! src/share/classes/sun/security/krb5/internal/AuthorizationData.java ! src/share/classes/sun/security/krb5/internal/AuthorizationDataEntry.java ! src/share/classes/sun/security/krb5/internal/CredentialsUtil.java ! src/share/classes/sun/security/krb5/internal/ETypeInfo.java ! src/share/classes/sun/security/krb5/internal/ETypeInfo2.java ! src/share/classes/sun/security/krb5/internal/EncAPRepPart.java ! src/share/classes/sun/security/krb5/internal/EncASRepPart.java ! src/share/classes/sun/security/krb5/internal/EncKDCRepPart.java ! src/share/classes/sun/security/krb5/internal/EncKrbCredPart.java ! src/share/classes/sun/security/krb5/internal/EncKrbPrivPart.java ! src/share/classes/sun/security/krb5/internal/EncTGSRepPart.java ! src/share/classes/sun/security/krb5/internal/EncTicketPart.java ! src/share/classes/sun/security/krb5/internal/HostAddress.java ! src/share/classes/sun/security/krb5/internal/HostAddresses.java ! src/share/classes/sun/security/krb5/internal/KDCOptions.java ! src/share/classes/sun/security/krb5/internal/KDCRep.java ! src/share/classes/sun/security/krb5/internal/KDCReq.java ! src/share/classes/sun/security/krb5/internal/KDCReqBody.java ! src/share/classes/sun/security/krb5/internal/KRBCred.java ! src/share/classes/sun/security/krb5/internal/KRBError.java ! src/share/classes/sun/security/krb5/internal/KRBPriv.java ! src/share/classes/sun/security/krb5/internal/KRBSafe.java ! src/share/classes/sun/security/krb5/internal/KRBSafeBody.java ! src/share/classes/sun/security/krb5/internal/KdcErrException.java ! src/share/classes/sun/security/krb5/internal/KerberosTime.java ! src/share/classes/sun/security/krb5/internal/Krb5.java ! src/share/classes/sun/security/krb5/internal/KrbApErrException.java ! src/share/classes/sun/security/krb5/internal/KrbCredInfo.java ! src/share/classes/sun/security/krb5/internal/KrbErrException.java ! src/share/classes/sun/security/krb5/internal/LastReq.java ! src/share/classes/sun/security/krb5/internal/LastReqEntry.java ! src/share/classes/sun/security/krb5/internal/LocalSeqNumber.java ! src/share/classes/sun/security/krb5/internal/LoginOptions.java ! src/share/classes/sun/security/krb5/internal/MethodData.java ! src/share/classes/sun/security/krb5/internal/PAData.java ! src/share/classes/sun/security/krb5/internal/PAEncTSEnc.java ! src/share/classes/sun/security/krb5/internal/SeqNumber.java ! src/share/classes/sun/security/krb5/internal/TCPClient.java ! src/share/classes/sun/security/krb5/internal/TGSRep.java ! src/share/classes/sun/security/krb5/internal/TGSReq.java ! src/share/classes/sun/security/krb5/internal/Ticket.java ! src/share/classes/sun/security/krb5/internal/TicketFlags.java ! src/share/classes/sun/security/krb5/internal/TransitedEncoding.java ! src/share/classes/sun/security/krb5/internal/UDPClient.java ! src/share/classes/sun/security/krb5/internal/ccache/CCacheInputStream.java ! src/share/classes/sun/security/krb5/internal/ccache/CCacheOutputStream.java ! src/share/classes/sun/security/krb5/internal/ccache/Credentials.java ! src/share/classes/sun/security/krb5/internal/ccache/CredentialsCache.java ! src/share/classes/sun/security/krb5/internal/ccache/FileCCacheConstants.java ! src/share/classes/sun/security/krb5/internal/ccache/FileCredentialsCache.java ! src/share/classes/sun/security/krb5/internal/ccache/MemoryCredentialsCache.java ! src/share/classes/sun/security/krb5/internal/ccache/Tag.java ! src/share/classes/sun/security/krb5/internal/crypto/Aes128.java ! src/share/classes/sun/security/krb5/internal/crypto/Aes128CtsHmacSha1EType.java ! src/share/classes/sun/security/krb5/internal/crypto/Aes256.java ! src/share/classes/sun/security/krb5/internal/crypto/Aes256CtsHmacSha1EType.java ! src/share/classes/sun/security/krb5/internal/crypto/ArcFourHmac.java ! src/share/classes/sun/security/krb5/internal/crypto/ArcFourHmacEType.java ! src/share/classes/sun/security/krb5/internal/crypto/CksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/Crc32CksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/Des.java ! src/share/classes/sun/security/krb5/internal/crypto/Des3.java ! src/share/classes/sun/security/krb5/internal/crypto/Des3CbcHmacSha1KdEType.java ! src/share/classes/sun/security/krb5/internal/crypto/DesCbcCrcEType.java ! src/share/classes/sun/security/krb5/internal/crypto/DesCbcEType.java ! src/share/classes/sun/security/krb5/internal/crypto/DesCbcMd5EType.java ! src/share/classes/sun/security/krb5/internal/crypto/DesMacCksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/DesMacKCksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/EType.java ! src/share/classes/sun/security/krb5/internal/crypto/HmacMd5ArcFourCksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes128CksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Aes256CksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/HmacSha1Des3KdCksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/KeyUsage.java ! src/share/classes/sun/security/krb5/internal/crypto/Nonce.java ! src/share/classes/sun/security/krb5/internal/crypto/NullEType.java ! src/share/classes/sun/security/krb5/internal/crypto/RsaMd5CksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/RsaMd5DesCksumType.java ! src/share/classes/sun/security/krb5/internal/crypto/crc32.java ! src/share/classes/sun/security/krb5/internal/crypto/dk/AesDkCrypto.java ! src/share/classes/sun/security/krb5/internal/crypto/dk/ArcFourCrypto.java ! src/share/classes/sun/security/krb5/internal/crypto/dk/Des3DkCrypto.java ! src/share/classes/sun/security/krb5/internal/crypto/dk/DkCrypto.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTabConstants.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTabEntry.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTabInputStream.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTabOutputStream.java ! src/share/classes/sun/security/krb5/internal/rcache/AuthTime.java ! src/share/classes/sun/security/krb5/internal/rcache/CacheTable.java ! src/share/classes/sun/security/krb5/internal/rcache/ReplayCache.java ! src/share/classes/sun/security/krb5/internal/util/KerberosFlags.java ! src/share/classes/sun/security/krb5/internal/util/KerberosString.java ! src/share/classes/sun/security/krb5/internal/util/KrbDataInputStream.java ! src/share/classes/sun/security/krb5/internal/util/KrbDataOutputStream.java ! src/share/classes/sun/security/pkcs/ContentInfo.java ! src/share/classes/sun/security/pkcs/EncodingException.java ! src/share/classes/sun/security/pkcs/EncryptedPrivateKeyInfo.java ! src/share/classes/sun/security/pkcs/PKCS10.java ! src/share/classes/sun/security/pkcs/PKCS10Attribute.java ! src/share/classes/sun/security/pkcs/PKCS10Attributes.java ! src/share/classes/sun/security/pkcs/PKCS7.java ! src/share/classes/sun/security/pkcs/PKCS8Key.java ! src/share/classes/sun/security/pkcs/PKCS9Attribute.java ! src/share/classes/sun/security/pkcs/PKCS9Attributes.java ! src/share/classes/sun/security/pkcs/ParsingException.java ! src/share/classes/sun/security/pkcs/SignerInfo.java ! src/share/classes/sun/security/pkcs/SigningCertificateInfo.java ! src/share/classes/sun/security/pkcs11/Config.java ! src/share/classes/sun/security/pkcs11/KeyCache.java ! src/share/classes/sun/security/pkcs11/P11Cipher.java ! src/share/classes/sun/security/pkcs11/P11DHKeyFactory.java ! src/share/classes/sun/security/pkcs11/P11DSAKeyFactory.java ! src/share/classes/sun/security/pkcs11/P11Digest.java ! src/share/classes/sun/security/pkcs11/P11ECDHKeyAgreement.java ! src/share/classes/sun/security/pkcs11/P11ECKeyFactory.java ! src/share/classes/sun/security/pkcs11/P11Key.java ! src/share/classes/sun/security/pkcs11/P11KeyAgreement.java ! src/share/classes/sun/security/pkcs11/P11KeyFactory.java ! src/share/classes/sun/security/pkcs11/P11KeyGenerator.java ! src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java ! src/share/classes/sun/security/pkcs11/P11KeyStore.java ! src/share/classes/sun/security/pkcs11/P11Mac.java ! src/share/classes/sun/security/pkcs11/P11RSACipher.java ! src/share/classes/sun/security/pkcs11/P11RSAKeyFactory.java ! src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java ! src/share/classes/sun/security/pkcs11/P11SecureRandom.java ! src/share/classes/sun/security/pkcs11/P11Signature.java ! src/share/classes/sun/security/pkcs11/P11TlsKeyMaterialGenerator.java ! src/share/classes/sun/security/pkcs11/P11TlsMasterSecretGenerator.java ! src/share/classes/sun/security/pkcs11/P11TlsPrfGenerator.java ! src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java ! src/share/classes/sun/security/pkcs11/P11Util.java ! src/share/classes/sun/security/pkcs11/Secmod.java ! src/share/classes/sun/security/pkcs11/Session.java ! src/share/classes/sun/security/pkcs11/SessionManager.java ! src/share/classes/sun/security/pkcs11/SunPKCS11.java ! src/share/classes/sun/security/pkcs11/TemplateManager.java ! src/share/classes/sun/security/pkcs11/Token.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_ATTRIBUTE.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_ECDH1_DERIVE_PARAMS.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_MECHANISM.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_KEY_MAT_PARAMS.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_MASTER_KEY_DERIVE_PARAMS.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_SSL3_RANDOM_DATA.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_TLS_PRF_PARAMS.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_TOKEN_INFO.java ! src/share/classes/sun/security/pkcs11/wrapper/CK_VERSION.java ! src/share/classes/sun/security/pkcs11/wrapper/Functions.java ! src/share/classes/sun/security/pkcs11/wrapper/PKCS11.java ! src/share/classes/sun/security/pkcs11/wrapper/PKCS11Constants.java ! src/share/classes/sun/security/pkcs11/wrapper/PKCS11Exception.java ! src/share/classes/sun/security/pkcs12/MacData.java ! src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! src/share/classes/sun/security/provider/ByteArrayAccess.java ! src/share/classes/sun/security/provider/ConfigSpiFile.java ! src/share/classes/sun/security/provider/DSA.java ! src/share/classes/sun/security/provider/DSAKeyFactory.java ! src/share/classes/sun/security/provider/DSAKeyPairGenerator.java ! src/share/classes/sun/security/provider/DSAParameterGenerator.java ! src/share/classes/sun/security/provider/DSAParameters.java ! src/share/classes/sun/security/provider/DSAPrivateKey.java ! src/share/classes/sun/security/provider/DSAPublicKey.java ! src/share/classes/sun/security/provider/DSAPublicKeyImpl.java ! src/share/classes/sun/security/provider/DigestBase.java ! src/share/classes/sun/security/provider/JavaKeyStore.java ! src/share/classes/sun/security/provider/KeyProtector.java ! src/share/classes/sun/security/provider/MD2.java ! src/share/classes/sun/security/provider/MD4.java ! src/share/classes/sun/security/provider/MD5.java ! src/share/classes/sun/security/provider/ParameterCache.java ! src/share/classes/sun/security/provider/PolicyFile.java ! src/share/classes/sun/security/provider/PolicyParser.java ! src/share/classes/sun/security/provider/PolicySpiFile.java ! src/share/classes/sun/security/provider/SHA.java ! src/share/classes/sun/security/provider/SHA2.java ! src/share/classes/sun/security/provider/SHA5.java ! src/share/classes/sun/security/provider/SecureRandom.java ! src/share/classes/sun/security/provider/SeedGenerator.java ! src/share/classes/sun/security/provider/Sun.java ! src/share/classes/sun/security/provider/SunEntries.java ! src/share/classes/sun/security/provider/VerificationProvider.java ! src/share/classes/sun/security/provider/X509Factory.java ! src/share/classes/sun/security/provider/certpath/AdjacencyList.java ! src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java ! src/share/classes/sun/security/provider/certpath/BasicChecker.java ! src/share/classes/sun/security/provider/certpath/BuildStep.java ! src/share/classes/sun/security/provider/certpath/Builder.java ! src/share/classes/sun/security/provider/certpath/CertId.java ! src/share/classes/sun/security/provider/certpath/CertPathHelper.java ! src/share/classes/sun/security/provider/certpath/CertStoreHelper.java ! src/share/classes/sun/security/provider/certpath/CollectionCertStore.java ! src/share/classes/sun/security/provider/certpath/ConstraintsChecker.java ! src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java ! src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java ! src/share/classes/sun/security/provider/certpath/ForwardBuilder.java ! src/share/classes/sun/security/provider/certpath/ForwardState.java ! src/share/classes/sun/security/provider/certpath/IndexedCollectionCertStore.java ! src/share/classes/sun/security/provider/certpath/KeyChecker.java ! src/share/classes/sun/security/provider/certpath/OCSP.java ! src/share/classes/sun/security/provider/certpath/OCSPChecker.java ! src/share/classes/sun/security/provider/certpath/OCSPRequest.java ! src/share/classes/sun/security/provider/certpath/OCSPResponse.java ! src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java ! src/share/classes/sun/security/provider/certpath/PKIXMasterCertPathValidator.java ! src/share/classes/sun/security/provider/certpath/PolicyChecker.java ! src/share/classes/sun/security/provider/certpath/PolicyNodeImpl.java ! src/share/classes/sun/security/provider/certpath/ReverseBuilder.java ! src/share/classes/sun/security/provider/certpath/ReverseState.java ! src/share/classes/sun/security/provider/certpath/State.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilderException.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilderParameters.java ! src/share/classes/sun/security/provider/certpath/SunCertPathBuilderResult.java ! src/share/classes/sun/security/provider/certpath/URICertStore.java ! src/share/classes/sun/security/provider/certpath/Vertex.java ! src/share/classes/sun/security/provider/certpath/X509CertPath.java ! src/share/classes/sun/security/provider/certpath/X509CertificatePair.java ! src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java ! src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStoreHelper.java ! src/share/classes/sun/security/rsa/RSACore.java ! src/share/classes/sun/security/rsa/RSAKeyFactory.java ! src/share/classes/sun/security/rsa/RSAKeyPairGenerator.java ! src/share/classes/sun/security/rsa/RSAPadding.java ! src/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java ! src/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java ! src/share/classes/sun/security/rsa/RSAPublicKeyImpl.java ! src/share/classes/sun/security/rsa/RSASignature.java ! src/share/classes/sun/security/rsa/SunRsaSign.java ! src/share/classes/sun/security/rsa/SunRsaSignEntries.java ! src/share/classes/sun/security/smartcardio/CardImpl.java ! src/share/classes/sun/security/smartcardio/ChannelImpl.java ! src/share/classes/sun/security/smartcardio/PCSC.java ! src/share/classes/sun/security/smartcardio/PCSCException.java ! src/share/classes/sun/security/smartcardio/PCSCTerminals.java ! src/share/classes/sun/security/smartcardio/SunPCSC.java ! src/share/classes/sun/security/smartcardio/TerminalImpl.java ! src/share/classes/sun/security/ssl/Alerts.java ! src/share/classes/sun/security/ssl/AppInputStream.java ! src/share/classes/sun/security/ssl/AppOutputStream.java ! src/share/classes/sun/security/ssl/BaseSSLSocketImpl.java ! src/share/classes/sun/security/ssl/ByteBufferInputStream.java ! src/share/classes/sun/security/ssl/CipherBox.java ! src/share/classes/sun/security/ssl/CipherSuite.java ! src/share/classes/sun/security/ssl/CipherSuiteList.java ! src/share/classes/sun/security/ssl/ClientHandshaker.java ! src/share/classes/sun/security/ssl/DHClientKeyExchange.java ! src/share/classes/sun/security/ssl/DHCrypt.java ! src/share/classes/sun/security/ssl/Debug.java ! src/share/classes/sun/security/ssl/DefaultSSLContextImpl.java ! src/share/classes/sun/security/ssl/ECDHClientKeyExchange.java ! src/share/classes/sun/security/ssl/ECDHCrypt.java ! src/share/classes/sun/security/ssl/EngineArgs.java ! src/share/classes/sun/security/ssl/EngineInputRecord.java ! src/share/classes/sun/security/ssl/EngineOutputRecord.java ! src/share/classes/sun/security/ssl/EngineWriter.java ! src/share/classes/sun/security/ssl/EphemeralKeyManager.java ! src/share/classes/sun/security/ssl/HandshakeHash.java ! src/share/classes/sun/security/ssl/HandshakeInStream.java ! src/share/classes/sun/security/ssl/HandshakeMessage.java ! src/share/classes/sun/security/ssl/HandshakeOutStream.java ! src/share/classes/sun/security/ssl/Handshaker.java ! src/share/classes/sun/security/ssl/HelloExtensions.java ! src/share/classes/sun/security/ssl/InputRecord.java ! src/share/classes/sun/security/ssl/JsseJce.java ! src/share/classes/sun/security/ssl/KerberosClientKeyExchange.java ! src/share/classes/sun/security/ssl/KeyManagerFactoryImpl.java ! src/share/classes/sun/security/ssl/Krb5Helper.java ! src/share/classes/sun/security/ssl/Krb5Proxy.java ! src/share/classes/sun/security/ssl/MAC.java ! src/share/classes/sun/security/ssl/OutputRecord.java ! src/share/classes/sun/security/ssl/ProtocolList.java ! src/share/classes/sun/security/ssl/ProtocolVersion.java ! src/share/classes/sun/security/ssl/RSAClientKeyExchange.java ! src/share/classes/sun/security/ssl/RSASignature.java ! src/share/classes/sun/security/ssl/RandomCookie.java ! src/share/classes/sun/security/ssl/Record.java ! src/share/classes/sun/security/ssl/SSLContextImpl.java ! src/share/classes/sun/security/ssl/SSLEngineImpl.java ! src/share/classes/sun/security/ssl/SSLServerSocketFactoryImpl.java ! src/share/classes/sun/security/ssl/SSLServerSocketImpl.java ! src/share/classes/sun/security/ssl/SSLSessionContextImpl.java ! src/share/classes/sun/security/ssl/SSLSessionImpl.java ! src/share/classes/sun/security/ssl/SSLSocketFactoryImpl.java ! src/share/classes/sun/security/ssl/SSLSocketImpl.java ! src/share/classes/sun/security/ssl/ServerHandshaker.java ! src/share/classes/sun/security/ssl/SessionId.java ! src/share/classes/sun/security/ssl/SunJSSE.java ! src/share/classes/sun/security/ssl/SunX509KeyManagerImpl.java ! src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java ! src/share/classes/sun/security/ssl/X509KeyManagerImpl.java ! src/share/classes/sun/security/ssl/X509TrustManagerImpl.java ! src/share/classes/sun/security/ssl/krb5/KerberosClientKeyExchangeImpl.java ! src/share/classes/sun/security/ssl/krb5/KerberosPreMasterSecret.java ! src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java ! src/share/classes/sun/security/timestamp/HttpTimestamper.java ! src/share/classes/sun/security/timestamp/TSRequest.java ! src/share/classes/sun/security/timestamp/TSResponse.java ! src/share/classes/sun/security/timestamp/TimestampToken.java ! src/share/classes/sun/security/timestamp/Timestamper.java ! src/share/classes/sun/security/tools/JarSigner.java ! src/share/classes/sun/security/tools/JarSignerResources.java ! src/share/classes/sun/security/tools/JarSignerResources_ja.java ! src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java ! src/share/classes/sun/security/tools/KeyStoreUtil.java ! src/share/classes/sun/security/tools/KeyTool.java ! src/share/classes/sun/security/tools/PolicyTool.java ! src/share/classes/sun/security/tools/TimestampedSigner.java ! src/share/classes/sun/security/util/AuthResources.java ! src/share/classes/sun/security/util/AuthResources_de.java ! src/share/classes/sun/security/util/AuthResources_es.java ! src/share/classes/sun/security/util/AuthResources_fr.java ! src/share/classes/sun/security/util/AuthResources_it.java ! src/share/classes/sun/security/util/AuthResources_ja.java ! src/share/classes/sun/security/util/AuthResources_ko.java ! src/share/classes/sun/security/util/AuthResources_sv.java ! src/share/classes/sun/security/util/AuthResources_zh_CN.java ! src/share/classes/sun/security/util/AuthResources_zh_TW.java ! src/share/classes/sun/security/util/BigInt.java ! src/share/classes/sun/security/util/BitArray.java ! src/share/classes/sun/security/util/ByteArrayLexOrder.java ! src/share/classes/sun/security/util/ByteArrayTagOrder.java ! src/share/classes/sun/security/util/Cache.java ! src/share/classes/sun/security/util/Debug.java ! src/share/classes/sun/security/util/DerEncoder.java ! src/share/classes/sun/security/util/DerIndefLenConverter.java ! src/share/classes/sun/security/util/DerInputBuffer.java ! src/share/classes/sun/security/util/DerInputStream.java ! src/share/classes/sun/security/util/DerOutputStream.java ! src/share/classes/sun/security/util/DerValue.java ! src/share/classes/sun/security/util/HostnameChecker.java ! src/share/classes/sun/security/util/ManifestDigester.java ! src/share/classes/sun/security/util/ManifestEntryVerifier.java ! src/share/classes/sun/security/util/ObjectIdentifier.java ! src/share/classes/sun/security/util/Password.java ! src/share/classes/sun/security/util/PathList.java ! src/share/classes/sun/security/util/PendingException.java ! src/share/classes/sun/security/util/PermissionFactory.java ! src/share/classes/sun/security/util/PolicyUtil.java ! src/share/classes/sun/security/util/PropertyExpander.java ! src/share/classes/sun/security/util/Resources.java ! src/share/classes/sun/security/util/ResourcesMgr.java ! src/share/classes/sun/security/util/Resources_de.java ! src/share/classes/sun/security/util/Resources_es.java ! src/share/classes/sun/security/util/Resources_fr.java ! src/share/classes/sun/security/util/Resources_it.java ! src/share/classes/sun/security/util/Resources_ja.java ! src/share/classes/sun/security/util/Resources_ko.java ! src/share/classes/sun/security/util/Resources_sv.java ! src/share/classes/sun/security/util/Resources_zh_CN.java ! src/share/classes/sun/security/util/Resources_zh_TW.java ! src/share/classes/sun/security/util/SecurityConstants.java ! src/share/classes/sun/security/util/SignatureFileVerifier.java ! src/share/classes/sun/security/validator/EndEntityChecker.java ! src/share/classes/sun/security/validator/KeyStores.java ! src/share/classes/sun/security/validator/PKIXValidator.java ! src/share/classes/sun/security/validator/SimpleValidator.java ! src/share/classes/sun/security/validator/Validator.java ! src/share/classes/sun/security/validator/ValidatorException.java ! src/share/classes/sun/security/x509/AVA.java ! src/share/classes/sun/security/x509/AccessDescription.java ! src/share/classes/sun/security/x509/AlgIdDSA.java ! src/share/classes/sun/security/x509/AlgorithmId.java ! src/share/classes/sun/security/x509/AttributeNameEnumeration.java ! src/share/classes/sun/security/x509/AuthorityInfoAccessExtension.java ! src/share/classes/sun/security/x509/AuthorityKeyIdentifierExtension.java ! src/share/classes/sun/security/x509/BasicConstraintsExtension.java ! src/share/classes/sun/security/x509/CRLDistributionPointsExtension.java ! src/share/classes/sun/security/x509/CRLExtensions.java ! src/share/classes/sun/security/x509/CRLNumberExtension.java ! src/share/classes/sun/security/x509/CRLReasonCodeExtension.java ! src/share/classes/sun/security/x509/CertAndKeyGen.java ! src/share/classes/sun/security/x509/CertAttrSet.java ! src/share/classes/sun/security/x509/CertException.java ! src/share/classes/sun/security/x509/CertParseError.java ! src/share/classes/sun/security/x509/CertificateAlgorithmId.java ! src/share/classes/sun/security/x509/CertificateExtensions.java ! src/share/classes/sun/security/x509/CertificateIssuerExtension.java ! src/share/classes/sun/security/x509/CertificateIssuerName.java ! src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java ! src/share/classes/sun/security/x509/CertificatePoliciesExtension.java ! src/share/classes/sun/security/x509/CertificatePolicyId.java ! src/share/classes/sun/security/x509/CertificatePolicyMap.java ! src/share/classes/sun/security/x509/CertificatePolicySet.java ! src/share/classes/sun/security/x509/CertificateSerialNumber.java ! src/share/classes/sun/security/x509/CertificateSubjectName.java ! src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java ! src/share/classes/sun/security/x509/CertificateValidity.java ! src/share/classes/sun/security/x509/CertificateVersion.java ! src/share/classes/sun/security/x509/CertificateX509Key.java ! src/share/classes/sun/security/x509/DNSName.java ! src/share/classes/sun/security/x509/DeltaCRLIndicatorExtension.java ! src/share/classes/sun/security/x509/DistributionPoint.java ! src/share/classes/sun/security/x509/DistributionPointName.java ! src/share/classes/sun/security/x509/EDIPartyName.java ! src/share/classes/sun/security/x509/ExtendedKeyUsageExtension.java ! src/share/classes/sun/security/x509/Extension.java ! src/share/classes/sun/security/x509/FreshestCRLExtension.java ! src/share/classes/sun/security/x509/GeneralName.java ! src/share/classes/sun/security/x509/GeneralNameInterface.java ! src/share/classes/sun/security/x509/GeneralNames.java ! src/share/classes/sun/security/x509/GeneralSubtree.java ! src/share/classes/sun/security/x509/GeneralSubtrees.java ! src/share/classes/sun/security/x509/IPAddressName.java ! src/share/classes/sun/security/x509/InhibitAnyPolicyExtension.java ! src/share/classes/sun/security/x509/InvalidityDateExtension.java ! src/share/classes/sun/security/x509/IssuerAlternativeNameExtension.java ! src/share/classes/sun/security/x509/IssuingDistributionPointExtension.java ! src/share/classes/sun/security/x509/KeyIdentifier.java ! src/share/classes/sun/security/x509/KeyUsageExtension.java ! src/share/classes/sun/security/x509/NameConstraintsExtension.java ! src/share/classes/sun/security/x509/NetscapeCertTypeExtension.java ! src/share/classes/sun/security/x509/OCSPNoCheckExtension.java ! src/share/classes/sun/security/x509/OIDMap.java ! src/share/classes/sun/security/x509/OIDName.java ! src/share/classes/sun/security/x509/OtherName.java ! src/share/classes/sun/security/x509/PKIXExtensions.java ! src/share/classes/sun/security/x509/PolicyConstraintsExtension.java ! src/share/classes/sun/security/x509/PolicyInformation.java ! src/share/classes/sun/security/x509/PolicyMappingsExtension.java ! src/share/classes/sun/security/x509/PrivateKeyUsageExtension.java ! src/share/classes/sun/security/x509/RDN.java ! src/share/classes/sun/security/x509/RFC822Name.java ! src/share/classes/sun/security/x509/ReasonFlags.java ! src/share/classes/sun/security/x509/SerialNumber.java ! src/share/classes/sun/security/x509/SubjectAlternativeNameExtension.java ! src/share/classes/sun/security/x509/SubjectInfoAccessExtension.java ! src/share/classes/sun/security/x509/SubjectKeyIdentifierExtension.java ! src/share/classes/sun/security/x509/URIName.java ! src/share/classes/sun/security/x509/UniqueIdentity.java ! src/share/classes/sun/security/x509/X400Address.java ! src/share/classes/sun/security/x509/X500Name.java ! src/share/classes/sun/security/x509/X509AttributeName.java ! src/share/classes/sun/security/x509/X509CRLEntryImpl.java ! src/share/classes/sun/security/x509/X509CRLImpl.java ! src/share/classes/sun/security/x509/X509CertImpl.java ! src/share/classes/sun/security/x509/X509CertInfo.java ! src/share/classes/sun/security/x509/X509Key.java ! src/share/classes/sun/swing/AccumulativeRunnable.java ! src/share/classes/sun/swing/BakedArrayList.java ! src/share/classes/sun/swing/CachedPainter.java ! src/share/classes/sun/swing/DefaultLayoutStyle.java ! src/share/classes/sun/swing/DefaultLookup.java ! src/share/classes/sun/swing/FilePane.java ! src/share/classes/sun/swing/ImageCache.java ! src/share/classes/sun/swing/ImageIconUIResource.java ! src/share/classes/sun/swing/MenuItemCheckIconFactory.java ! src/share/classes/sun/swing/MenuItemLayoutHelper.java ! src/share/classes/sun/swing/PrintColorUIResource.java ! src/share/classes/sun/swing/PrintingStatus.java ! src/share/classes/sun/swing/StringUIClientPropertyKey.java ! src/share/classes/sun/swing/SwingAccessor.java ! src/share/classes/sun/swing/SwingLazyValue.java ! src/share/classes/sun/swing/SwingUtilities2.java ! src/share/classes/sun/swing/UIAction.java ! src/share/classes/sun/swing/UIClientPropertyKey.java ! src/share/classes/sun/swing/WindowsPlacesBar.java ! src/share/classes/sun/swing/icon/SortArrowIcon.java ! src/share/classes/sun/swing/plaf/GTKKeybindings.java ! src/share/classes/sun/swing/plaf/WindowsKeybindings.java ! src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java ! src/share/classes/sun/swing/plaf/synth/Paint9Painter.java ! src/share/classes/sun/swing/plaf/synth/StyleAssociation.java ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java ! src/share/classes/sun/swing/plaf/synth/SynthIcon.java ! src/share/classes/sun/swing/plaf/windows/ClassicSortArrowIcon.java ! src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java ! src/share/classes/sun/swing/text/CompoundPrintable.java ! src/share/classes/sun/swing/text/CountingPrintable.java ! src/share/classes/sun/swing/text/TextComponentPrintable.java ! src/share/classes/sun/swing/text/html/FrameEditorPaneTag.java ! src/share/classes/sun/text/CodePointIterator.java ! src/share/classes/sun/text/CollatorUtilities.java ! src/share/classes/sun/text/CompactByteArray.java ! src/share/classes/sun/text/ComposedCharIter.java ! src/share/classes/sun/text/IntHashtable.java ! src/share/classes/sun/text/Normalizer.java ! src/share/classes/sun/text/SupplementaryCharacterData.java ! src/share/classes/sun/text/UCompactIntArray.java ! src/share/classes/sun/text/bidi/BidiBase.java ! src/share/classes/sun/text/bidi/BidiLine.java ! src/share/classes/sun/text/bidi/BidiRun.java ! src/share/classes/sun/text/normalizer/CharTrie.java ! src/share/classes/sun/text/normalizer/CharacterIteratorWrapper.java ! src/share/classes/sun/text/normalizer/ICUBinary.java ! src/share/classes/sun/text/normalizer/ICUData.java ! src/share/classes/sun/text/normalizer/IntTrie.java ! src/share/classes/sun/text/normalizer/NormalizerBase.java ! src/share/classes/sun/text/normalizer/NormalizerDataReader.java ! src/share/classes/sun/text/normalizer/NormalizerImpl.java ! src/share/classes/sun/text/normalizer/RangeValueIterator.java ! src/share/classes/sun/text/normalizer/Replaceable.java ! src/share/classes/sun/text/normalizer/ReplaceableString.java ! src/share/classes/sun/text/normalizer/ReplaceableUCharacterIterator.java ! src/share/classes/sun/text/normalizer/RuleCharacterIterator.java ! src/share/classes/sun/text/normalizer/SymbolTable.java ! src/share/classes/sun/text/normalizer/Trie.java ! src/share/classes/sun/text/normalizer/TrieIterator.java ! src/share/classes/sun/text/normalizer/UBiDiProps.java ! src/share/classes/sun/text/normalizer/UCharacter.java ! src/share/classes/sun/text/normalizer/UCharacterIterator.java ! src/share/classes/sun/text/normalizer/UCharacterProperty.java ! src/share/classes/sun/text/normalizer/UCharacterPropertyReader.java ! src/share/classes/sun/text/normalizer/UTF16.java ! src/share/classes/sun/text/normalizer/UnicodeMatcher.java ! src/share/classes/sun/text/normalizer/UnicodeSet.java ! src/share/classes/sun/text/normalizer/UnicodeSetIterator.java ! src/share/classes/sun/text/normalizer/Utility.java ! src/share/classes/sun/text/normalizer/VersionInfo.java ! src/share/classes/sun/text/resources/BreakIteratorInfo.java ! src/share/classes/sun/text/resources/BreakIteratorInfo_th.java ! src/share/classes/sun/text/resources/BreakIteratorRules.java ! src/share/classes/sun/text/resources/BreakIteratorRules_th.java ! src/share/classes/sun/text/resources/CollationData.java ! src/share/classes/sun/text/resources/CollationData_ar.java ! src/share/classes/sun/text/resources/CollationData_be.java ! src/share/classes/sun/text/resources/CollationData_bg.java ! src/share/classes/sun/text/resources/CollationData_ca.java ! src/share/classes/sun/text/resources/CollationData_cs.java ! src/share/classes/sun/text/resources/CollationData_da.java ! src/share/classes/sun/text/resources/CollationData_de.java ! src/share/classes/sun/text/resources/CollationData_el.java ! src/share/classes/sun/text/resources/CollationData_en.java ! src/share/classes/sun/text/resources/CollationData_es.java ! src/share/classes/sun/text/resources/CollationData_et.java ! src/share/classes/sun/text/resources/CollationData_fi.java ! src/share/classes/sun/text/resources/CollationData_fr.java ! src/share/classes/sun/text/resources/CollationData_hi.java ! src/share/classes/sun/text/resources/CollationData_hr.java ! src/share/classes/sun/text/resources/CollationData_hu.java ! src/share/classes/sun/text/resources/CollationData_is.java ! src/share/classes/sun/text/resources/CollationData_it.java ! src/share/classes/sun/text/resources/CollationData_iw.java ! src/share/classes/sun/text/resources/CollationData_ja.java ! src/share/classes/sun/text/resources/CollationData_ko.java ! src/share/classes/sun/text/resources/CollationData_lt.java ! src/share/classes/sun/text/resources/CollationData_lv.java ! src/share/classes/sun/text/resources/CollationData_mk.java ! src/share/classes/sun/text/resources/CollationData_nl.java ! src/share/classes/sun/text/resources/CollationData_no.java ! src/share/classes/sun/text/resources/CollationData_pl.java ! src/share/classes/sun/text/resources/CollationData_pt.java ! src/share/classes/sun/text/resources/CollationData_ro.java ! src/share/classes/sun/text/resources/CollationData_ru.java ! src/share/classes/sun/text/resources/CollationData_sk.java ! src/share/classes/sun/text/resources/CollationData_sl.java ! src/share/classes/sun/text/resources/CollationData_sq.java ! src/share/classes/sun/text/resources/CollationData_sr.java ! src/share/classes/sun/text/resources/CollationData_sv.java ! src/share/classes/sun/text/resources/CollationData_th.java ! src/share/classes/sun/text/resources/CollationData_tr.java ! src/share/classes/sun/text/resources/CollationData_uk.java ! src/share/classes/sun/text/resources/CollationData_vi.java ! src/share/classes/sun/text/resources/CollationData_zh.java ! src/share/classes/sun/text/resources/CollationData_zh_HK.java ! src/share/classes/sun/text/resources/CollationData_zh_TW.java ! src/share/classes/sun/text/resources/FormatData.java ! src/share/classes/sun/text/resources/FormatData_ar.java ! src/share/classes/sun/text/resources/FormatData_ar_AE.java ! src/share/classes/sun/text/resources/FormatData_ar_BH.java ! src/share/classes/sun/text/resources/FormatData_ar_DZ.java ! src/share/classes/sun/text/resources/FormatData_ar_EG.java ! src/share/classes/sun/text/resources/FormatData_ar_IQ.java ! src/share/classes/sun/text/resources/FormatData_ar_JO.java ! src/share/classes/sun/text/resources/FormatData_ar_KW.java ! src/share/classes/sun/text/resources/FormatData_ar_LB.java ! src/share/classes/sun/text/resources/FormatData_ar_LY.java ! src/share/classes/sun/text/resources/FormatData_ar_MA.java ! src/share/classes/sun/text/resources/FormatData_ar_OM.java ! src/share/classes/sun/text/resources/FormatData_ar_QA.java ! src/share/classes/sun/text/resources/FormatData_ar_SA.java ! src/share/classes/sun/text/resources/FormatData_ar_SD.java ! src/share/classes/sun/text/resources/FormatData_ar_SY.java ! src/share/classes/sun/text/resources/FormatData_ar_TN.java ! src/share/classes/sun/text/resources/FormatData_ar_YE.java ! src/share/classes/sun/text/resources/FormatData_be.java ! src/share/classes/sun/text/resources/FormatData_be_BY.java ! src/share/classes/sun/text/resources/FormatData_bg.java ! src/share/classes/sun/text/resources/FormatData_bg_BG.java ! src/share/classes/sun/text/resources/FormatData_ca.java ! src/share/classes/sun/text/resources/FormatData_ca_ES.java ! src/share/classes/sun/text/resources/FormatData_cs.java ! src/share/classes/sun/text/resources/FormatData_cs_CZ.java ! src/share/classes/sun/text/resources/FormatData_da.java ! src/share/classes/sun/text/resources/FormatData_da_DK.java ! src/share/classes/sun/text/resources/FormatData_de.java ! src/share/classes/sun/text/resources/FormatData_de_AT.java ! src/share/classes/sun/text/resources/FormatData_de_CH.java ! src/share/classes/sun/text/resources/FormatData_de_DE.java ! src/share/classes/sun/text/resources/FormatData_de_LU.java ! src/share/classes/sun/text/resources/FormatData_el.java ! src/share/classes/sun/text/resources/FormatData_el_CY.java ! src/share/classes/sun/text/resources/FormatData_el_GR.java ! src/share/classes/sun/text/resources/FormatData_en.java ! src/share/classes/sun/text/resources/FormatData_en_AU.java ! src/share/classes/sun/text/resources/FormatData_en_CA.java ! src/share/classes/sun/text/resources/FormatData_en_GB.java ! src/share/classes/sun/text/resources/FormatData_en_IE.java ! src/share/classes/sun/text/resources/FormatData_en_IN.java ! src/share/classes/sun/text/resources/FormatData_en_MT.java ! src/share/classes/sun/text/resources/FormatData_en_NZ.java ! src/share/classes/sun/text/resources/FormatData_en_PH.java ! src/share/classes/sun/text/resources/FormatData_en_SG.java ! src/share/classes/sun/text/resources/FormatData_en_US.java ! src/share/classes/sun/text/resources/FormatData_en_ZA.java ! src/share/classes/sun/text/resources/FormatData_es.java ! src/share/classes/sun/text/resources/FormatData_es_AR.java ! src/share/classes/sun/text/resources/FormatData_es_BO.java ! src/share/classes/sun/text/resources/FormatData_es_CL.java ! src/share/classes/sun/text/resources/FormatData_es_CO.java ! src/share/classes/sun/text/resources/FormatData_es_CR.java ! src/share/classes/sun/text/resources/FormatData_es_DO.java ! src/share/classes/sun/text/resources/FormatData_es_EC.java ! src/share/classes/sun/text/resources/FormatData_es_ES.java ! src/share/classes/sun/text/resources/FormatData_es_GT.java ! src/share/classes/sun/text/resources/FormatData_es_HN.java ! src/share/classes/sun/text/resources/FormatData_es_MX.java ! src/share/classes/sun/text/resources/FormatData_es_NI.java ! src/share/classes/sun/text/resources/FormatData_es_PA.java ! src/share/classes/sun/text/resources/FormatData_es_PE.java ! src/share/classes/sun/text/resources/FormatData_es_PR.java ! src/share/classes/sun/text/resources/FormatData_es_PY.java ! src/share/classes/sun/text/resources/FormatData_es_SV.java ! src/share/classes/sun/text/resources/FormatData_es_US.java ! src/share/classes/sun/text/resources/FormatData_es_UY.java ! src/share/classes/sun/text/resources/FormatData_es_VE.java ! src/share/classes/sun/text/resources/FormatData_et.java ! src/share/classes/sun/text/resources/FormatData_et_EE.java ! src/share/classes/sun/text/resources/FormatData_fi.java ! src/share/classes/sun/text/resources/FormatData_fi_FI.java ! src/share/classes/sun/text/resources/FormatData_fr.java ! src/share/classes/sun/text/resources/FormatData_fr_BE.java ! src/share/classes/sun/text/resources/FormatData_fr_CA.java ! src/share/classes/sun/text/resources/FormatData_fr_CH.java ! src/share/classes/sun/text/resources/FormatData_fr_FR.java ! src/share/classes/sun/text/resources/FormatData_fr_LU.java ! src/share/classes/sun/text/resources/FormatData_ga.java ! src/share/classes/sun/text/resources/FormatData_ga_IE.java ! src/share/classes/sun/text/resources/FormatData_hi_IN.java ! src/share/classes/sun/text/resources/FormatData_hr.java ! src/share/classes/sun/text/resources/FormatData_hr_HR.java ! src/share/classes/sun/text/resources/FormatData_hu.java ! src/share/classes/sun/text/resources/FormatData_hu_HU.java ! src/share/classes/sun/text/resources/FormatData_in.java ! src/share/classes/sun/text/resources/FormatData_in_ID.java ! src/share/classes/sun/text/resources/FormatData_is.java ! src/share/classes/sun/text/resources/FormatData_is_IS.java ! src/share/classes/sun/text/resources/FormatData_it.java ! src/share/classes/sun/text/resources/FormatData_it_CH.java ! src/share/classes/sun/text/resources/FormatData_it_IT.java ! src/share/classes/sun/text/resources/FormatData_iw.java ! src/share/classes/sun/text/resources/FormatData_iw_IL.java ! src/share/classes/sun/text/resources/FormatData_ja.java ! src/share/classes/sun/text/resources/FormatData_ja_JP.java ! src/share/classes/sun/text/resources/FormatData_ja_JP_JP.java ! src/share/classes/sun/text/resources/FormatData_ko.java ! src/share/classes/sun/text/resources/FormatData_ko_KR.java ! src/share/classes/sun/text/resources/FormatData_lt.java ! src/share/classes/sun/text/resources/FormatData_lt_LT.java ! src/share/classes/sun/text/resources/FormatData_lv.java ! src/share/classes/sun/text/resources/FormatData_lv_LV.java ! src/share/classes/sun/text/resources/FormatData_mk.java ! src/share/classes/sun/text/resources/FormatData_mk_MK.java ! src/share/classes/sun/text/resources/FormatData_ms.java ! src/share/classes/sun/text/resources/FormatData_ms_MY.java ! src/share/classes/sun/text/resources/FormatData_mt.java ! src/share/classes/sun/text/resources/FormatData_mt_MT.java ! src/share/classes/sun/text/resources/FormatData_nl.java ! src/share/classes/sun/text/resources/FormatData_nl_BE.java ! src/share/classes/sun/text/resources/FormatData_nl_NL.java ! src/share/classes/sun/text/resources/FormatData_no.java ! src/share/classes/sun/text/resources/FormatData_no_NO.java ! src/share/classes/sun/text/resources/FormatData_no_NO_NY.java ! src/share/classes/sun/text/resources/FormatData_pl.java ! src/share/classes/sun/text/resources/FormatData_pl_PL.java ! src/share/classes/sun/text/resources/FormatData_pt.java ! src/share/classes/sun/text/resources/FormatData_pt_BR.java ! src/share/classes/sun/text/resources/FormatData_pt_PT.java ! src/share/classes/sun/text/resources/FormatData_ro.java ! src/share/classes/sun/text/resources/FormatData_ro_RO.java ! src/share/classes/sun/text/resources/FormatData_ru.java ! src/share/classes/sun/text/resources/FormatData_ru_RU.java ! src/share/classes/sun/text/resources/FormatData_sk.java ! src/share/classes/sun/text/resources/FormatData_sk_SK.java ! src/share/classes/sun/text/resources/FormatData_sl.java ! src/share/classes/sun/text/resources/FormatData_sl_SI.java ! src/share/classes/sun/text/resources/FormatData_sq.java ! src/share/classes/sun/text/resources/FormatData_sq_AL.java ! src/share/classes/sun/text/resources/FormatData_sr.java ! src/share/classes/sun/text/resources/FormatData_sr_BA.java ! src/share/classes/sun/text/resources/FormatData_sr_CS.java ! src/share/classes/sun/text/resources/FormatData_sr_ME.java ! src/share/classes/sun/text/resources/FormatData_sr_RS.java ! src/share/classes/sun/text/resources/FormatData_sv.java ! src/share/classes/sun/text/resources/FormatData_sv_SE.java ! src/share/classes/sun/text/resources/FormatData_th.java ! src/share/classes/sun/text/resources/FormatData_th_TH.java ! src/share/classes/sun/text/resources/FormatData_th_TH_TH.java ! src/share/classes/sun/text/resources/FormatData_tr.java ! src/share/classes/sun/text/resources/FormatData_tr_TR.java ! src/share/classes/sun/text/resources/FormatData_uk.java ! src/share/classes/sun/text/resources/FormatData_uk_UA.java ! src/share/classes/sun/text/resources/FormatData_vi.java ! src/share/classes/sun/text/resources/FormatData_vi_VN.java ! src/share/classes/sun/text/resources/FormatData_zh.java ! src/share/classes/sun/text/resources/FormatData_zh_CN.java ! src/share/classes/sun/text/resources/FormatData_zh_HK.java ! src/share/classes/sun/text/resources/FormatData_zh_SG.java ! src/share/classes/sun/text/resources/FormatData_zh_TW.java ! src/share/classes/sun/tools/asm/ArrayData.java ! src/share/classes/sun/tools/asm/Assembler.java ! src/share/classes/sun/tools/asm/CatchData.java ! src/share/classes/sun/tools/asm/ClassConstantData.java ! src/share/classes/sun/tools/asm/ConstantPool.java ! src/share/classes/sun/tools/asm/ConstantPoolData.java ! src/share/classes/sun/tools/asm/Cover.java ! src/share/classes/sun/tools/asm/FieldConstantData.java ! src/share/classes/sun/tools/asm/Instruction.java ! src/share/classes/sun/tools/asm/Label.java ! src/share/classes/sun/tools/asm/LocalVariable.java ! src/share/classes/sun/tools/asm/LocalVariableTable.java ! src/share/classes/sun/tools/asm/NameAndTypeConstantData.java ! src/share/classes/sun/tools/asm/NameAndTypeData.java ! src/share/classes/sun/tools/asm/NumberConstantData.java ! src/share/classes/sun/tools/asm/StringConstantData.java ! src/share/classes/sun/tools/asm/StringExpressionConstantData.java ! src/share/classes/sun/tools/asm/SwitchData.java ! src/share/classes/sun/tools/asm/TryData.java ! src/share/classes/sun/tools/attach/HotSpotAttachProvider.java ! src/share/classes/sun/tools/attach/HotSpotVirtualMachine.java ! src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider ! src/share/classes/sun/tools/jar/CommandLine.java ! src/share/classes/sun/tools/jar/JarException.java ! src/share/classes/sun/tools/jar/JarImageSource.java ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/jar/Manifest.java ! src/share/classes/sun/tools/jar/SignatureFile.java ! src/share/classes/sun/tools/jar/resources/jar.properties ! src/share/classes/sun/tools/jar/resources/jar_de.properties ! src/share/classes/sun/tools/jar/resources/jar_es.properties ! src/share/classes/sun/tools/jar/resources/jar_fr.properties ! src/share/classes/sun/tools/jar/resources/jar_it.properties ! src/share/classes/sun/tools/jar/resources/jar_ja.properties ! src/share/classes/sun/tools/jar/resources/jar_ko.properties ! src/share/classes/sun/tools/jar/resources/jar_sv.properties ! src/share/classes/sun/tools/jar/resources/jar_zh_CN.properties ! src/share/classes/sun/tools/jar/resources/jar_zh_TW.properties ! src/share/classes/sun/tools/java/AmbiguousClass.java ! src/share/classes/sun/tools/java/AmbiguousMember.java ! src/share/classes/sun/tools/java/ArrayType.java ! src/share/classes/sun/tools/java/BinaryAttribute.java ! src/share/classes/sun/tools/java/BinaryClass.java ! src/share/classes/sun/tools/java/BinaryCode.java ! src/share/classes/sun/tools/java/BinaryConstantPool.java ! src/share/classes/sun/tools/java/BinaryExceptionHandler.java ! src/share/classes/sun/tools/java/BinaryMember.java ! src/share/classes/sun/tools/java/ClassDeclaration.java ! src/share/classes/sun/tools/java/ClassDefinition.java ! src/share/classes/sun/tools/java/ClassFile.java ! src/share/classes/sun/tools/java/ClassNotFound.java ! src/share/classes/sun/tools/java/ClassPath.java ! src/share/classes/sun/tools/java/ClassType.java ! src/share/classes/sun/tools/java/CompilerError.java ! src/share/classes/sun/tools/java/Constants.java ! src/share/classes/sun/tools/java/Environment.java ! src/share/classes/sun/tools/java/Identifier.java ! src/share/classes/sun/tools/java/IdentifierToken.java ! src/share/classes/sun/tools/java/Imports.java ! src/share/classes/sun/tools/java/MemberDefinition.java ! src/share/classes/sun/tools/java/MethodSet.java ! src/share/classes/sun/tools/java/MethodType.java ! src/share/classes/sun/tools/java/Package.java ! src/share/classes/sun/tools/java/Parser.java ! src/share/classes/sun/tools/java/ParserActions.java ! src/share/classes/sun/tools/java/RuntimeConstants.java ! src/share/classes/sun/tools/java/Scanner.java ! src/share/classes/sun/tools/java/ScannerInputReader.java ! src/share/classes/sun/tools/java/SyntaxError.java ! src/share/classes/sun/tools/java/Type.java ! src/share/classes/sun/tools/javac/BatchEnvironment.java ! src/share/classes/sun/tools/javac/BatchParser.java ! src/share/classes/sun/tools/javac/CompilerMember.java ! src/share/classes/sun/tools/javac/ErrorConsumer.java ! src/share/classes/sun/tools/javac/ErrorMessage.java ! src/share/classes/sun/tools/javac/Main.java ! src/share/classes/sun/tools/javac/SourceClass.java ! src/share/classes/sun/tools/javac/SourceMember.java ! src/share/classes/sun/tools/javac/resources/javac.properties ! src/share/classes/sun/tools/javac/resources/javac_ja.properties ! src/share/classes/sun/tools/javac/resources/javac_zh_CN.properties ! src/share/classes/sun/tools/jconsole/AboutDialog.java ! src/share/classes/sun/tools/jconsole/BorderedComponent.java ! src/share/classes/sun/tools/jconsole/ClassTab.java ! src/share/classes/sun/tools/jconsole/ConnectDialog.java ! src/share/classes/sun/tools/jconsole/CreateMBeanDialog.java ! src/share/classes/sun/tools/jconsole/Formatter.java ! src/share/classes/sun/tools/jconsole/HTMLPane.java ! src/share/classes/sun/tools/jconsole/InternalDialog.java ! src/share/classes/sun/tools/jconsole/JConsole.java ! src/share/classes/sun/tools/jconsole/LabeledComponent.java ! src/share/classes/sun/tools/jconsole/LocalVirtualMachine.java ! src/share/classes/sun/tools/jconsole/MBeansTab.java ! src/share/classes/sun/tools/jconsole/MaximizableInternalFrame.java ! src/share/classes/sun/tools/jconsole/MemoryPoolProxy.java ! src/share/classes/sun/tools/jconsole/MemoryPoolStat.java ! src/share/classes/sun/tools/jconsole/MemoryTab.java ! src/share/classes/sun/tools/jconsole/OutputViewer.java ! src/share/classes/sun/tools/jconsole/OverviewPanel.java ! src/share/classes/sun/tools/jconsole/OverviewTab.java ! src/share/classes/sun/tools/jconsole/Plotter.java ! src/share/classes/sun/tools/jconsole/PlotterPanel.java ! src/share/classes/sun/tools/jconsole/ProxyClient.java ! src/share/classes/sun/tools/jconsole/Resources.java ! src/share/classes/sun/tools/jconsole/SheetDialog.java ! src/share/classes/sun/tools/jconsole/SummaryTab.java ! src/share/classes/sun/tools/jconsole/Tab.java ! src/share/classes/sun/tools/jconsole/ThreadTab.java ! src/share/classes/sun/tools/jconsole/TimeComboBox.java ! src/share/classes/sun/tools/jconsole/Utilities.java ! src/share/classes/sun/tools/jconsole/VMInternalFrame.java ! src/share/classes/sun/tools/jconsole/VMPanel.java ! src/share/classes/sun/tools/jconsole/VariableGridLayout.java ! src/share/classes/sun/tools/jconsole/Version.java.template ! src/share/classes/sun/tools/jconsole/Worker.java ! src/share/classes/sun/tools/jconsole/inspector/IconManager.java ! src/share/classes/sun/tools/jconsole/inspector/OperationEntry.java ! src/share/classes/sun/tools/jconsole/inspector/TableSorter.java ! src/share/classes/sun/tools/jconsole/inspector/ThreadDialog.java ! src/share/classes/sun/tools/jconsole/inspector/Utils.java ! src/share/classes/sun/tools/jconsole/inspector/XArrayDataViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XDataViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XMBean.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanInfo.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanNotifications.java ! src/share/classes/sun/tools/jconsole/inspector/XMBeanOperations.java ! src/share/classes/sun/tools/jconsole/inspector/XNodeInfo.java ! src/share/classes/sun/tools/jconsole/inspector/XObject.java ! src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XOperations.java ! src/share/classes/sun/tools/jconsole/inspector/XPlotter.java ! src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java ! src/share/classes/sun/tools/jconsole/inspector/XSheet.java ! src/share/classes/sun/tools/jconsole/inspector/XTable.java ! src/share/classes/sun/tools/jconsole/inspector/XTextField.java ! src/share/classes/sun/tools/jconsole/inspector/XTextFieldEditor.java ! src/share/classes/sun/tools/jconsole/inspector/XTree.java ! src/share/classes/sun/tools/jconsole/inspector/XTreeRenderer.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java ! src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java ! src/share/classes/sun/tools/jinfo/JInfo.java ! src/share/classes/sun/tools/jmap/JMap.java ! src/share/classes/sun/tools/jps/Arguments.java ! src/share/classes/sun/tools/jps/Jps.java ! src/share/classes/sun/tools/jstack/JStack.java ! src/share/classes/sun/tools/jstat/Alignment.java ! src/share/classes/sun/tools/jstat/Arguments.java ! src/share/classes/sun/tools/jstat/AscendingMonitorComparator.java ! src/share/classes/sun/tools/jstat/Closure.java ! src/share/classes/sun/tools/jstat/ColumnFormat.java ! src/share/classes/sun/tools/jstat/DescendingMonitorComparator.java ! src/share/classes/sun/tools/jstat/Expression.java ! src/share/classes/sun/tools/jstat/ExpressionEvaluator.java ! src/share/classes/sun/tools/jstat/ExpressionExecuter.java ! src/share/classes/sun/tools/jstat/ExpressionResolver.java ! src/share/classes/sun/tools/jstat/HeaderClosure.java ! src/share/classes/sun/tools/jstat/Identifier.java ! src/share/classes/sun/tools/jstat/JStatLogger.java ! src/share/classes/sun/tools/jstat/Jstat.java ! src/share/classes/sun/tools/jstat/Literal.java ! src/share/classes/sun/tools/jstat/Operator.java ! src/share/classes/sun/tools/jstat/OptionFinder.java ! src/share/classes/sun/tools/jstat/OptionFormat.java ! src/share/classes/sun/tools/jstat/OptionLister.java ! src/share/classes/sun/tools/jstat/OptionOutputFormatter.java ! src/share/classes/sun/tools/jstat/OutputFormatter.java ! src/share/classes/sun/tools/jstat/Parser.java ! src/share/classes/sun/tools/jstat/ParserException.java ! src/share/classes/sun/tools/jstat/RawOutputFormatter.java ! src/share/classes/sun/tools/jstat/RowClosure.java ! src/share/classes/sun/tools/jstat/Scale.java ! src/share/classes/sun/tools/jstat/SymbolResolutionClosure.java ! src/share/classes/sun/tools/jstat/SyntaxException.java ! src/share/classes/sun/tools/jstat/Token.java ! src/share/classes/sun/tools/jstat/resources/jstat_options ! src/share/classes/sun/tools/jstatd/Jstatd.java ! src/share/classes/sun/tools/jstatd/RemoteHostImpl.java ! src/share/classes/sun/tools/jstatd/RemoteVmImpl.java ! src/share/classes/sun/tools/native2ascii/A2NFilter.java ! src/share/classes/sun/tools/native2ascii/Main.java ! src/share/classes/sun/tools/native2ascii/N2AFilter.java ! src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii.java ! src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii_ja.java ! src/share/classes/sun/tools/native2ascii/resources/MsgNative2ascii_zh_CN.java ! src/share/classes/sun/tools/serialver/SerialVer.java ! src/share/classes/sun/tools/tree/AddExpression.java ! src/share/classes/sun/tools/tree/AndExpression.java ! src/share/classes/sun/tools/tree/ArrayAccessExpression.java ! src/share/classes/sun/tools/tree/ArrayExpression.java ! src/share/classes/sun/tools/tree/AssignAddExpression.java ! src/share/classes/sun/tools/tree/AssignBitAndExpression.java ! src/share/classes/sun/tools/tree/AssignBitOrExpression.java ! src/share/classes/sun/tools/tree/AssignBitXorExpression.java ! src/share/classes/sun/tools/tree/AssignDivideExpression.java ! src/share/classes/sun/tools/tree/AssignExpression.java ! src/share/classes/sun/tools/tree/AssignMultiplyExpression.java ! src/share/classes/sun/tools/tree/AssignOpExpression.java ! src/share/classes/sun/tools/tree/AssignRemainderExpression.java ! src/share/classes/sun/tools/tree/AssignShiftLeftExpression.java ! src/share/classes/sun/tools/tree/AssignShiftRightExpression.java ! src/share/classes/sun/tools/tree/AssignSubtractExpression.java ! src/share/classes/sun/tools/tree/AssignUnsignedShiftRightExpression.java ! src/share/classes/sun/tools/tree/BinaryArithmeticExpression.java ! src/share/classes/sun/tools/tree/BinaryAssignExpression.java ! src/share/classes/sun/tools/tree/BinaryBitExpression.java ! src/share/classes/sun/tools/tree/BinaryCompareExpression.java ! src/share/classes/sun/tools/tree/BinaryEqualityExpression.java ! src/share/classes/sun/tools/tree/BinaryExpression.java ! src/share/classes/sun/tools/tree/BinaryLogicalExpression.java ! src/share/classes/sun/tools/tree/BinaryShiftExpression.java ! src/share/classes/sun/tools/tree/BitAndExpression.java ! src/share/classes/sun/tools/tree/BitNotExpression.java ! src/share/classes/sun/tools/tree/BitOrExpression.java ! src/share/classes/sun/tools/tree/BitXorExpression.java ! src/share/classes/sun/tools/tree/BooleanExpression.java ! src/share/classes/sun/tools/tree/BreakStatement.java ! src/share/classes/sun/tools/tree/ByteExpression.java ! src/share/classes/sun/tools/tree/CaseStatement.java ! src/share/classes/sun/tools/tree/CastExpression.java ! src/share/classes/sun/tools/tree/CatchStatement.java ! src/share/classes/sun/tools/tree/CharExpression.java ! src/share/classes/sun/tools/tree/CheckContext.java ! src/share/classes/sun/tools/tree/CodeContext.java ! src/share/classes/sun/tools/tree/CommaExpression.java ! src/share/classes/sun/tools/tree/CompoundStatement.java ! src/share/classes/sun/tools/tree/ConditionVars.java ! src/share/classes/sun/tools/tree/ConditionalExpression.java ! src/share/classes/sun/tools/tree/ConstantExpression.java ! src/share/classes/sun/tools/tree/Context.java ! src/share/classes/sun/tools/tree/ContinueStatement.java ! src/share/classes/sun/tools/tree/ConvertExpression.java ! src/share/classes/sun/tools/tree/DeclarationStatement.java ! src/share/classes/sun/tools/tree/DivRemExpression.java ! src/share/classes/sun/tools/tree/DivideExpression.java ! src/share/classes/sun/tools/tree/DoStatement.java ! src/share/classes/sun/tools/tree/DoubleExpression.java ! src/share/classes/sun/tools/tree/EqualExpression.java ! src/share/classes/sun/tools/tree/ExprExpression.java ! src/share/classes/sun/tools/tree/Expression.java ! src/share/classes/sun/tools/tree/ExpressionStatement.java ! src/share/classes/sun/tools/tree/FieldExpression.java ! src/share/classes/sun/tools/tree/FieldUpdater.java ! src/share/classes/sun/tools/tree/FinallyStatement.java ! src/share/classes/sun/tools/tree/FloatExpression.java ! src/share/classes/sun/tools/tree/ForStatement.java ! src/share/classes/sun/tools/tree/GreaterExpression.java ! src/share/classes/sun/tools/tree/GreaterOrEqualExpression.java ! src/share/classes/sun/tools/tree/IdentifierExpression.java ! src/share/classes/sun/tools/tree/IfStatement.java ! src/share/classes/sun/tools/tree/IncDecExpression.java ! src/share/classes/sun/tools/tree/InlineMethodExpression.java ! src/share/classes/sun/tools/tree/InlineNewInstanceExpression.java ! src/share/classes/sun/tools/tree/InlineReturnStatement.java ! src/share/classes/sun/tools/tree/InstanceOfExpression.java ! src/share/classes/sun/tools/tree/IntExpression.java ! src/share/classes/sun/tools/tree/IntegerExpression.java ! src/share/classes/sun/tools/tree/LengthExpression.java ! src/share/classes/sun/tools/tree/LessExpression.java ! src/share/classes/sun/tools/tree/LessOrEqualExpression.java ! src/share/classes/sun/tools/tree/LocalMember.java ! src/share/classes/sun/tools/tree/LongExpression.java ! src/share/classes/sun/tools/tree/MethodExpression.java ! src/share/classes/sun/tools/tree/MultiplyExpression.java ! src/share/classes/sun/tools/tree/NaryExpression.java ! src/share/classes/sun/tools/tree/NegativeExpression.java ! src/share/classes/sun/tools/tree/NewArrayExpression.java ! src/share/classes/sun/tools/tree/NewInstanceExpression.java ! src/share/classes/sun/tools/tree/Node.java ! src/share/classes/sun/tools/tree/NotEqualExpression.java ! src/share/classes/sun/tools/tree/NotExpression.java ! src/share/classes/sun/tools/tree/NullExpression.java ! src/share/classes/sun/tools/tree/OrExpression.java ! src/share/classes/sun/tools/tree/PositiveExpression.java ! src/share/classes/sun/tools/tree/PostDecExpression.java ! src/share/classes/sun/tools/tree/PostIncExpression.java ! src/share/classes/sun/tools/tree/PreDecExpression.java ! src/share/classes/sun/tools/tree/PreIncExpression.java ! src/share/classes/sun/tools/tree/RemainderExpression.java ! src/share/classes/sun/tools/tree/ReturnStatement.java ! src/share/classes/sun/tools/tree/ShiftLeftExpression.java ! src/share/classes/sun/tools/tree/ShiftRightExpression.java ! src/share/classes/sun/tools/tree/ShortExpression.java ! src/share/classes/sun/tools/tree/Statement.java ! src/share/classes/sun/tools/tree/StringExpression.java ! src/share/classes/sun/tools/tree/SubtractExpression.java ! src/share/classes/sun/tools/tree/SuperExpression.java ! src/share/classes/sun/tools/tree/SwitchStatement.java ! src/share/classes/sun/tools/tree/SynchronizedStatement.java ! src/share/classes/sun/tools/tree/ThisExpression.java ! src/share/classes/sun/tools/tree/ThrowStatement.java ! src/share/classes/sun/tools/tree/TryStatement.java ! src/share/classes/sun/tools/tree/TypeExpression.java ! src/share/classes/sun/tools/tree/UnaryExpression.java ! src/share/classes/sun/tools/tree/UnsignedShiftRightExpression.java ! src/share/classes/sun/tools/tree/UplevelReference.java ! src/share/classes/sun/tools/tree/VarDeclarationStatement.java ! src/share/classes/sun/tools/tree/Vset.java ! src/share/classes/sun/tools/tree/WhileStatement.java ! src/share/classes/sun/tools/util/CommandLine.java ! src/share/classes/sun/tools/util/ModifierFilter.java ! src/share/classes/sun/tracing/MultiplexProviderFactory.java ! src/share/classes/sun/tracing/NullProviderFactory.java ! src/share/classes/sun/tracing/PrintStreamProviderFactory.java ! src/share/classes/sun/tracing/ProbeSkeleton.java ! src/share/classes/sun/tracing/ProviderSkeleton.java ! src/share/classes/sun/tracing/dtrace/Activation.java ! src/share/classes/sun/tracing/dtrace/DTraceProbe.java ! src/share/classes/sun/tracing/dtrace/DTraceProvider.java ! src/share/classes/sun/tracing/dtrace/DTraceProviderFactory.java ! src/share/classes/sun/tracing/dtrace/JVM.java ! src/share/classes/sun/tracing/package-info.java ! src/share/classes/sun/util/BuddhistCalendar.java ! src/share/classes/sun/util/CoreResourceBundleControl-XLocales.java.template ! src/share/classes/sun/util/EmptyListResourceBundle.java ! src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template ! src/share/classes/sun/util/LocaleServiceProviderPool.java ! src/share/classes/sun/util/PreHashedMap.java ! src/share/classes/sun/util/ResourceBundleEnumeration.java ! src/share/classes/sun/util/TimeZoneNameUtility.java ! src/share/classes/sun/util/calendar/AbstractCalendar.java ! src/share/classes/sun/util/calendar/BaseCalendar.java ! src/share/classes/sun/util/calendar/CalendarDate.java ! src/share/classes/sun/util/calendar/CalendarSystem.java ! src/share/classes/sun/util/calendar/CalendarUtils.java ! src/share/classes/sun/util/calendar/Era.java ! src/share/classes/sun/util/calendar/Gregorian.java ! src/share/classes/sun/util/calendar/ImmutableGregorianDate.java ! src/share/classes/sun/util/calendar/JulianCalendar.java ! src/share/classes/sun/util/calendar/LocalGregorianCalendar.java ! src/share/classes/sun/util/calendar/TzIDOldMapping.java ! src/share/classes/sun/util/calendar/ZoneInfo.java ! src/share/classes/sun/util/calendar/ZoneInfoFile.java ! src/share/classes/sun/util/logging/LoggingProxy.java ! src/share/classes/sun/util/logging/LoggingSupport.java ! src/share/classes/sun/util/logging/PlatformLogger.java ! src/share/classes/sun/util/logging/resources/logging.properties ! src/share/classes/sun/util/logging/resources/logging_de.properties ! src/share/classes/sun/util/logging/resources/logging_es.properties ! src/share/classes/sun/util/logging/resources/logging_fr.properties ! src/share/classes/sun/util/logging/resources/logging_it.properties ! src/share/classes/sun/util/logging/resources/logging_ja.properties ! src/share/classes/sun/util/logging/resources/logging_ko.properties ! src/share/classes/sun/util/logging/resources/logging_sv.properties ! src/share/classes/sun/util/logging/resources/logging_zh_CN.properties ! src/share/classes/sun/util/logging/resources/logging_zh_TW.properties ! src/share/classes/sun/util/resources/CalendarData.properties ! src/share/classes/sun/util/resources/CalendarData_ar.properties ! src/share/classes/sun/util/resources/CalendarData_be.properties ! src/share/classes/sun/util/resources/CalendarData_bg.properties ! src/share/classes/sun/util/resources/CalendarData_ca.properties ! src/share/classes/sun/util/resources/CalendarData_cs.properties ! src/share/classes/sun/util/resources/CalendarData_da.properties ! src/share/classes/sun/util/resources/CalendarData_de.properties ! src/share/classes/sun/util/resources/CalendarData_el.properties ! src/share/classes/sun/util/resources/CalendarData_el_CY.properties ! src/share/classes/sun/util/resources/CalendarData_en.properties ! src/share/classes/sun/util/resources/CalendarData_en_GB.properties ! src/share/classes/sun/util/resources/CalendarData_en_IE.properties ! src/share/classes/sun/util/resources/CalendarData_en_MT.properties ! src/share/classes/sun/util/resources/CalendarData_es.properties ! src/share/classes/sun/util/resources/CalendarData_es_ES.properties ! src/share/classes/sun/util/resources/CalendarData_es_US.properties ! src/share/classes/sun/util/resources/CalendarData_et.properties ! src/share/classes/sun/util/resources/CalendarData_fi.properties ! src/share/classes/sun/util/resources/CalendarData_fr.properties ! src/share/classes/sun/util/resources/CalendarData_fr_CA.properties ! src/share/classes/sun/util/resources/CalendarData_hi.properties ! src/share/classes/sun/util/resources/CalendarData_hr.properties ! src/share/classes/sun/util/resources/CalendarData_hu.properties ! src/share/classes/sun/util/resources/CalendarData_in_ID.properties ! src/share/classes/sun/util/resources/CalendarData_is.properties ! src/share/classes/sun/util/resources/CalendarData_it.properties ! src/share/classes/sun/util/resources/CalendarData_iw.properties ! src/share/classes/sun/util/resources/CalendarData_ja.properties ! src/share/classes/sun/util/resources/CalendarData_ko.properties ! src/share/classes/sun/util/resources/CalendarData_lt.properties ! src/share/classes/sun/util/resources/CalendarData_lv.properties ! src/share/classes/sun/util/resources/CalendarData_mk.properties ! src/share/classes/sun/util/resources/CalendarData_ms_MY.properties ! src/share/classes/sun/util/resources/CalendarData_mt.properties ! src/share/classes/sun/util/resources/CalendarData_mt_MT.properties ! src/share/classes/sun/util/resources/CalendarData_nl.properties ! src/share/classes/sun/util/resources/CalendarData_no.properties ! src/share/classes/sun/util/resources/CalendarData_pl.properties ! src/share/classes/sun/util/resources/CalendarData_pt.properties ! src/share/classes/sun/util/resources/CalendarData_pt_PT.properties ! src/share/classes/sun/util/resources/CalendarData_ro.properties ! src/share/classes/sun/util/resources/CalendarData_ru.properties ! src/share/classes/sun/util/resources/CalendarData_sk.properties ! src/share/classes/sun/util/resources/CalendarData_sl.properties ! src/share/classes/sun/util/resources/CalendarData_sq.properties ! src/share/classes/sun/util/resources/CalendarData_sr.properties ! src/share/classes/sun/util/resources/CalendarData_sv.properties ! src/share/classes/sun/util/resources/CalendarData_th.properties ! src/share/classes/sun/util/resources/CalendarData_tr.properties ! src/share/classes/sun/util/resources/CalendarData_uk.properties ! src/share/classes/sun/util/resources/CalendarData_vi.properties ! src/share/classes/sun/util/resources/CalendarData_zh.properties ! src/share/classes/sun/util/resources/CurrencyNames.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_AE.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_BH.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_DZ.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_EG.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_IQ.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_JO.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_KW.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_LB.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_LY.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_MA.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_OM.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_QA.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_SA.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_SD.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_SY.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_TN.properties ! src/share/classes/sun/util/resources/CurrencyNames_ar_YE.properties ! src/share/classes/sun/util/resources/CurrencyNames_be_BY.properties ! src/share/classes/sun/util/resources/CurrencyNames_bg_BG.properties ! src/share/classes/sun/util/resources/CurrencyNames_ca_ES.properties ! src/share/classes/sun/util/resources/CurrencyNames_cs_CZ.properties ! src/share/classes/sun/util/resources/CurrencyNames_da_DK.properties ! src/share/classes/sun/util/resources/CurrencyNames_de.properties ! src/share/classes/sun/util/resources/CurrencyNames_de_AT.properties ! src/share/classes/sun/util/resources/CurrencyNames_de_CH.properties ! src/share/classes/sun/util/resources/CurrencyNames_de_DE.properties ! src/share/classes/sun/util/resources/CurrencyNames_de_GR.properties ! src/share/classes/sun/util/resources/CurrencyNames_de_LU.properties ! src/share/classes/sun/util/resources/CurrencyNames_el_CY.properties ! src/share/classes/sun/util/resources/CurrencyNames_el_GR.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_AU.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_CA.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_GB.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_IE.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_IN.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_MT.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_NZ.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_PH.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_SG.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_US.properties ! src/share/classes/sun/util/resources/CurrencyNames_en_ZA.properties ! src/share/classes/sun/util/resources/CurrencyNames_es.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_AR.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_BO.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_CL.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_CO.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_CR.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_DO.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_EC.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_ES.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_GT.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_HN.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_MX.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_NI.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_PA.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_PE.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_PR.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_PY.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_SV.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_US.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_UY.properties ! src/share/classes/sun/util/resources/CurrencyNames_es_VE.properties ! src/share/classes/sun/util/resources/CurrencyNames_et_EE.properties ! src/share/classes/sun/util/resources/CurrencyNames_fi_FI.properties ! src/share/classes/sun/util/resources/CurrencyNames_fr.properties ! src/share/classes/sun/util/resources/CurrencyNames_fr_BE.properties ! src/share/classes/sun/util/resources/CurrencyNames_fr_CA.properties ! src/share/classes/sun/util/resources/CurrencyNames_fr_CH.properties ! src/share/classes/sun/util/resources/CurrencyNames_fr_FR.properties ! src/share/classes/sun/util/resources/CurrencyNames_fr_LU.properties ! src/share/classes/sun/util/resources/CurrencyNames_ga_IE.properties ! src/share/classes/sun/util/resources/CurrencyNames_hi_IN.properties ! src/share/classes/sun/util/resources/CurrencyNames_hr_HR.properties ! src/share/classes/sun/util/resources/CurrencyNames_hu_HU.properties ! src/share/classes/sun/util/resources/CurrencyNames_in_ID.properties ! src/share/classes/sun/util/resources/CurrencyNames_is_IS.properties ! src/share/classes/sun/util/resources/CurrencyNames_it.properties ! src/share/classes/sun/util/resources/CurrencyNames_it_CH.properties ! src/share/classes/sun/util/resources/CurrencyNames_it_IT.properties ! src/share/classes/sun/util/resources/CurrencyNames_iw_IL.properties ! src/share/classes/sun/util/resources/CurrencyNames_ja.properties ! src/share/classes/sun/util/resources/CurrencyNames_ja_JP.properties ! src/share/classes/sun/util/resources/CurrencyNames_ko.properties ! src/share/classes/sun/util/resources/CurrencyNames_ko_KR.properties ! src/share/classes/sun/util/resources/CurrencyNames_lt_LT.properties ! src/share/classes/sun/util/resources/CurrencyNames_lv_LV.properties ! src/share/classes/sun/util/resources/CurrencyNames_mk_MK.properties ! src/share/classes/sun/util/resources/CurrencyNames_ms_MY.properties ! src/share/classes/sun/util/resources/CurrencyNames_mt_MT.properties ! src/share/classes/sun/util/resources/CurrencyNames_nl_BE.properties ! src/share/classes/sun/util/resources/CurrencyNames_nl_NL.properties ! src/share/classes/sun/util/resources/CurrencyNames_no_NO.properties ! src/share/classes/sun/util/resources/CurrencyNames_pl_PL.properties ! src/share/classes/sun/util/resources/CurrencyNames_pt_BR.properties ! src/share/classes/sun/util/resources/CurrencyNames_pt_PT.properties ! src/share/classes/sun/util/resources/CurrencyNames_ro_RO.properties ! src/share/classes/sun/util/resources/CurrencyNames_ru_RU.properties ! src/share/classes/sun/util/resources/CurrencyNames_sk_SK.properties ! src/share/classes/sun/util/resources/CurrencyNames_sl_SI.properties ! src/share/classes/sun/util/resources/CurrencyNames_sq_AL.properties ! src/share/classes/sun/util/resources/CurrencyNames_sr_BA.properties ! src/share/classes/sun/util/resources/CurrencyNames_sr_CS.properties ! src/share/classes/sun/util/resources/CurrencyNames_sr_ME.properties ! src/share/classes/sun/util/resources/CurrencyNames_sv.properties ! src/share/classes/sun/util/resources/CurrencyNames_sv_SE.properties ! src/share/classes/sun/util/resources/CurrencyNames_th_TH.properties ! src/share/classes/sun/util/resources/CurrencyNames_tr_TR.properties ! src/share/classes/sun/util/resources/CurrencyNames_uk_UA.properties ! src/share/classes/sun/util/resources/CurrencyNames_vi_VN.properties ! src/share/classes/sun/util/resources/CurrencyNames_zh_CN.properties ! src/share/classes/sun/util/resources/CurrencyNames_zh_HK.java ! src/share/classes/sun/util/resources/CurrencyNames_zh_SG.java ! src/share/classes/sun/util/resources/CurrencyNames_zh_TW.properties ! src/share/classes/sun/util/resources/LocaleData.java ! src/share/classes/sun/util/resources/LocaleNames.properties ! src/share/classes/sun/util/resources/LocaleNamesBundle.java ! src/share/classes/sun/util/resources/LocaleNames_ar.properties ! src/share/classes/sun/util/resources/LocaleNames_be.properties ! src/share/classes/sun/util/resources/LocaleNames_bg.properties ! src/share/classes/sun/util/resources/LocaleNames_ca.properties ! src/share/classes/sun/util/resources/LocaleNames_cs.properties ! src/share/classes/sun/util/resources/LocaleNames_da.properties ! src/share/classes/sun/util/resources/LocaleNames_de.properties ! src/share/classes/sun/util/resources/LocaleNames_el.properties ! src/share/classes/sun/util/resources/LocaleNames_el_CY.properties ! src/share/classes/sun/util/resources/LocaleNames_en.properties ! src/share/classes/sun/util/resources/LocaleNames_en_MT.properties ! src/share/classes/sun/util/resources/LocaleNames_en_PH.properties ! src/share/classes/sun/util/resources/LocaleNames_en_SG.properties ! src/share/classes/sun/util/resources/LocaleNames_es.properties ! src/share/classes/sun/util/resources/LocaleNames_es_US.properties ! src/share/classes/sun/util/resources/LocaleNames_et.properties ! src/share/classes/sun/util/resources/LocaleNames_fi.properties ! src/share/classes/sun/util/resources/LocaleNames_fr.properties ! src/share/classes/sun/util/resources/LocaleNames_ga.properties ! src/share/classes/sun/util/resources/LocaleNames_hi.properties ! src/share/classes/sun/util/resources/LocaleNames_hr.properties ! src/share/classes/sun/util/resources/LocaleNames_hu.properties ! src/share/classes/sun/util/resources/LocaleNames_in.properties ! src/share/classes/sun/util/resources/LocaleNames_is.properties ! src/share/classes/sun/util/resources/LocaleNames_it.properties ! src/share/classes/sun/util/resources/LocaleNames_iw.properties ! src/share/classes/sun/util/resources/LocaleNames_ja.properties ! src/share/classes/sun/util/resources/LocaleNames_ko.properties ! src/share/classes/sun/util/resources/LocaleNames_lt.properties ! src/share/classes/sun/util/resources/LocaleNames_lv.properties ! src/share/classes/sun/util/resources/LocaleNames_mk.properties ! src/share/classes/sun/util/resources/LocaleNames_ms.properties ! src/share/classes/sun/util/resources/LocaleNames_mt.properties ! src/share/classes/sun/util/resources/LocaleNames_nl.properties ! src/share/classes/sun/util/resources/LocaleNames_no.properties ! src/share/classes/sun/util/resources/LocaleNames_no_NO_NY.properties ! src/share/classes/sun/util/resources/LocaleNames_pl.properties ! src/share/classes/sun/util/resources/LocaleNames_pt.properties ! src/share/classes/sun/util/resources/LocaleNames_pt_BR.properties ! src/share/classes/sun/util/resources/LocaleNames_pt_PT.properties ! src/share/classes/sun/util/resources/LocaleNames_ro.properties ! src/share/classes/sun/util/resources/LocaleNames_ru.properties ! src/share/classes/sun/util/resources/LocaleNames_sk.properties ! src/share/classes/sun/util/resources/LocaleNames_sl.properties ! src/share/classes/sun/util/resources/LocaleNames_sq.properties ! src/share/classes/sun/util/resources/LocaleNames_sr.properties ! src/share/classes/sun/util/resources/LocaleNames_sv.properties ! src/share/classes/sun/util/resources/LocaleNames_th.properties ! src/share/classes/sun/util/resources/LocaleNames_tr.properties ! src/share/classes/sun/util/resources/LocaleNames_uk.properties ! src/share/classes/sun/util/resources/LocaleNames_vi.properties ! src/share/classes/sun/util/resources/LocaleNames_zh.properties ! src/share/classes/sun/util/resources/LocaleNames_zh_HK.java ! src/share/classes/sun/util/resources/LocaleNames_zh_SG.properties ! src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties ! src/share/classes/sun/util/resources/OpenListResourceBundle.java ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/TimeZoneNamesBundle.java ! src/share/classes/sun/util/resources/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/TimeZoneNames_en.java ! src/share/classes/sun/util/resources/TimeZoneNames_en_CA.java ! src/share/classes/sun/util/resources/TimeZoneNames_en_GB.java ! src/share/classes/sun/util/resources/TimeZoneNames_en_IE.java ! src/share/classes/sun/util/resources/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/TimeZoneNames_hi.java ! src/share/classes/sun/util/resources/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_HK.java ! src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java ! src/share/classes/sunw/io/Serializable.java ! src/share/classes/sunw/util/EventListener.java ! src/share/classes/sunw/util/EventObject.java ! src/share/demo/applets.html ! src/share/demo/applets/ArcTest/ArcTest.java ! src/share/demo/applets/BarChart/BarChart.java ! src/share/demo/applets/Blink/Blink.java ! src/share/demo/applets/CardTest/CardTest.java ! src/share/demo/applets/Clock/Clock.java ! src/share/demo/applets/DitherTest/DitherTest.java ! src/share/demo/applets/DrawTest/DrawTest.java ! src/share/demo/applets/Fractal/CLSFractal.java ! src/share/demo/applets/GraphicsTest/AppletFrame.java ! src/share/demo/applets/GraphicsTest/GraphicsTest.java ! src/share/demo/applets/MoleculeViewer/Matrix3D.java ! src/share/demo/applets/MoleculeViewer/XYZApp.java ! src/share/demo/applets/NervousText/NervousText.java ! src/share/demo/applets/SimpleGraph/GraphApplet.java ! src/share/demo/applets/SortDemo/BidirBubbleSortAlgorithm.java ! src/share/demo/applets/SortDemo/BubbleSortAlgorithm.java ! src/share/demo/applets/SortDemo/QSortAlgorithm.java ! src/share/demo/applets/SortDemo/SortAlgorithm.java ! src/share/demo/applets/SortDemo/SortItem.java ! src/share/demo/applets/SpreadSheet/SpreadSheet.java ! src/share/demo/applets/WireFrame/Matrix3D.java ! src/share/demo/applets/WireFrame/ThreeD.java ! src/share/demo/java2d/J2DBench/Makefile ! src/share/demo/java2d/J2DBench/build.xml ! src/share/demo/java2d/J2DBench/nbproject/project.xml ! src/share/demo/java2d/J2DBench/src/j2dbench/Destinations.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Group.java ! src/share/demo/java2d/J2DBench/src/j2dbench/J2DBench.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Modifier.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Node.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Option.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Result.java ! src/share/demo/java2d/J2DBench/src/j2dbench/ResultSet.java ! src/share/demo/java2d/J2DBench/src/j2dbench/Test.java ! src/share/demo/java2d/J2DBench/src/j2dbench/TestEnvironment.java ! src/share/demo/java2d/J2DBench/src/j2dbench/report/HTMLSeriesReporter.java ! src/share/demo/java2d/J2DBench/src/j2dbench/report/IIOComparator.java ! src/share/demo/java2d/J2DBench/src/j2dbench/report/J2DAnalyzer.java ! src/share/demo/java2d/J2DBench/src/j2dbench/report/XMLHTMLReporter.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/GraphicsTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/ImageTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/MiscTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/PixelTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/RenderTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/IIOTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputImageTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputStreamTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/InputTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputImageTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputStreamTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/iio/OutputTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextConstructionTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextMeasureTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextRenderTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/tests/text/TextTests.java ! src/share/demo/java2d/J2DBench/src/j2dbench/ui/CompactLayout.java ! src/share/demo/java2d/J2DBench/src/j2dbench/ui/EnableButton.java ! src/share/demo/jfc/CodePointIM/CodePointIM.java ! src/share/demo/jfc/CodePointIM/CodePointInputMethod.java ! src/share/demo/jfc/CodePointIM/CodePointInputMethodDescriptor.java ! src/share/demo/jfc/FileChooserDemo/ExampleFileSystemView.java ! src/share/demo/jfc/FileChooserDemo/ExampleFileView.java ! src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java ! src/share/demo/jfc/Font2DTest/Font2DTest.java ! src/share/demo/jfc/Font2DTest/Font2DTestApplet.java ! src/share/demo/jfc/Font2DTest/FontPanel.java ! src/share/demo/jfc/Font2DTest/RangeMenu.java ! src/share/demo/jfc/Metalworks/AquaMetalTheme.java ! src/share/demo/jfc/Metalworks/BigContrastMetalTheme.java ! src/share/demo/jfc/Metalworks/ContrastMetalTheme.java ! src/share/demo/jfc/Metalworks/DemoMetalTheme.java ! src/share/demo/jfc/Metalworks/GreenMetalTheme.java ! src/share/demo/jfc/Metalworks/KhakiMetalTheme.java ! src/share/demo/jfc/Metalworks/MetalThemeMenu.java ! src/share/demo/jfc/Metalworks/Metalworks.java ! src/share/demo/jfc/Metalworks/MetalworksDocumentFrame.java ! src/share/demo/jfc/Metalworks/MetalworksFrame.java ! src/share/demo/jfc/Metalworks/MetalworksHelp.java ! src/share/demo/jfc/Metalworks/MetalworksInBox.java ! src/share/demo/jfc/Metalworks/MetalworksPrefs.java ! src/share/demo/jfc/Metalworks/PropertiesMetalTheme.java ! src/share/demo/jfc/Metalworks/UISwitchListener.java ! src/share/demo/jfc/Notepad/ElementTreePanel.java ! src/share/demo/jfc/Notepad/Notepad.java ! src/share/demo/jfc/SampleTree/DynamicTreeNode.java ! src/share/demo/jfc/SampleTree/SampleData.java ! src/share/demo/jfc/SampleTree/SampleTree.java ! src/share/demo/jfc/SampleTree/SampleTreeCellRenderer.java ! src/share/demo/jfc/SampleTree/SampleTreeModel.java ! src/share/demo/jfc/SwingApplet/SwingApplet.java ! src/share/demo/jfc/TableExample/JDBCAdapter.java ! src/share/demo/jfc/TableExample/OldJTable.java ! src/share/demo/jfc/TableExample/TableExample.java ! src/share/demo/jfc/TableExample/TableExample2.java ! src/share/demo/jfc/TableExample/TableExample3.java ! src/share/demo/jfc/TableExample/TableExample4.java ! src/share/demo/jfc/TableExample/TableMap.java ! src/share/demo/jfc/TableExample/TableSorter.java ! src/share/demo/jvmti/agent_util/README.txt ! src/share/demo/jvmti/agent_util/agent_util.c ! src/share/demo/jvmti/agent_util/agent_util.h ! src/share/demo/jvmti/compiledMethodLoad/README.txt ! src/share/demo/jvmti/compiledMethodLoad/compiledMethodLoad.c ! src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt ! src/share/demo/jvmti/gctest/README.txt ! src/share/demo/jvmti/gctest/gctest.c ! src/share/demo/jvmti/gctest/sample.makefile.txt ! src/share/demo/jvmti/heapTracker/HeapTracker.java ! src/share/demo/jvmti/heapTracker/README.txt ! src/share/demo/jvmti/heapTracker/heapTracker.c ! src/share/demo/jvmti/heapTracker/heapTracker.h ! src/share/demo/jvmti/heapTracker/sample.makefile.txt ! src/share/demo/jvmti/heapViewer/README.txt ! src/share/demo/jvmti/heapViewer/heapViewer.c ! src/share/demo/jvmti/heapViewer/sample.makefile.txt ! src/share/demo/jvmti/hprof/README.txt ! src/share/demo/jvmti/hprof/debug_malloc.c ! src/share/demo/jvmti/hprof/debug_malloc.h ! src/share/demo/jvmti/hprof/hprof.h ! src/share/demo/jvmti/hprof/hprof_b_spec.h ! src/share/demo/jvmti/hprof/hprof_blocks.c ! src/share/demo/jvmti/hprof/hprof_blocks.h ! src/share/demo/jvmti/hprof/hprof_check.c ! src/share/demo/jvmti/hprof/hprof_check.h ! src/share/demo/jvmti/hprof/hprof_class.c ! src/share/demo/jvmti/hprof/hprof_class.h ! src/share/demo/jvmti/hprof/hprof_cpu.c ! src/share/demo/jvmti/hprof/hprof_cpu.h ! src/share/demo/jvmti/hprof/hprof_error.c ! src/share/demo/jvmti/hprof/hprof_error.h ! src/share/demo/jvmti/hprof/hprof_event.c ! src/share/demo/jvmti/hprof/hprof_event.h ! src/share/demo/jvmti/hprof/hprof_frame.c ! src/share/demo/jvmti/hprof/hprof_frame.h ! src/share/demo/jvmti/hprof/hprof_init.c ! src/share/demo/jvmti/hprof/hprof_init.h ! src/share/demo/jvmti/hprof/hprof_io.c ! src/share/demo/jvmti/hprof/hprof_io.h ! src/share/demo/jvmti/hprof/hprof_ioname.c ! src/share/demo/jvmti/hprof/hprof_ioname.h ! src/share/demo/jvmti/hprof/hprof_listener.c ! src/share/demo/jvmti/hprof/hprof_listener.h ! src/share/demo/jvmti/hprof/hprof_loader.c ! src/share/demo/jvmti/hprof/hprof_loader.h ! src/share/demo/jvmti/hprof/hprof_md.h ! src/share/demo/jvmti/hprof/hprof_monitor.c ! src/share/demo/jvmti/hprof/hprof_monitor.h ! src/share/demo/jvmti/hprof/hprof_object.c ! src/share/demo/jvmti/hprof/hprof_object.h ! src/share/demo/jvmti/hprof/hprof_reference.c ! src/share/demo/jvmti/hprof/hprof_reference.h ! src/share/demo/jvmti/hprof/hprof_site.c ! src/share/demo/jvmti/hprof/hprof_site.h ! src/share/demo/jvmti/hprof/hprof_stack.c ! src/share/demo/jvmti/hprof/hprof_stack.h ! src/share/demo/jvmti/hprof/hprof_string.c ! src/share/demo/jvmti/hprof/hprof_string.h ! src/share/demo/jvmti/hprof/hprof_table.c ! src/share/demo/jvmti/hprof/hprof_table.h ! src/share/demo/jvmti/hprof/hprof_tag.c ! src/share/demo/jvmti/hprof/hprof_tag.h ! src/share/demo/jvmti/hprof/hprof_tls.c ! src/share/demo/jvmti/hprof/hprof_tls.h ! src/share/demo/jvmti/hprof/hprof_trace.c ! src/share/demo/jvmti/hprof/hprof_trace.h ! src/share/demo/jvmti/hprof/hprof_tracker.c ! src/share/demo/jvmti/hprof/hprof_tracker.h ! src/share/demo/jvmti/hprof/hprof_util.c ! src/share/demo/jvmti/hprof/hprof_util.h ! src/share/demo/jvmti/hprof/jvm.hprof.txt ! src/share/demo/jvmti/hprof/sample.makefile.txt ! src/share/demo/jvmti/java_crw_demo/README.txt ! src/share/demo/jvmti/java_crw_demo/java_crw_demo.c ! src/share/demo/jvmti/java_crw_demo/java_crw_demo.h ! src/share/demo/jvmti/java_crw_demo/sample.makefile.txt ! src/share/demo/jvmti/minst/Minst.java ! src/share/demo/jvmti/minst/README.txt ! src/share/demo/jvmti/minst/minst.c ! src/share/demo/jvmti/minst/minst.h ! src/share/demo/jvmti/minst/sample.makefile.txt ! src/share/demo/jvmti/mtrace/Mtrace.java ! src/share/demo/jvmti/mtrace/README.txt ! src/share/demo/jvmti/mtrace/mtrace.c ! src/share/demo/jvmti/mtrace/mtrace.h ! src/share/demo/jvmti/mtrace/sample.makefile.txt ! src/share/demo/jvmti/versionCheck/README.txt ! src/share/demo/jvmti/versionCheck/sample.makefile.txt ! src/share/demo/jvmti/versionCheck/versionCheck.c ! src/share/demo/jvmti/waiters/Agent.cpp ! src/share/demo/jvmti/waiters/Agent.hpp ! src/share/demo/jvmti/waiters/Monitor.cpp ! src/share/demo/jvmti/waiters/Monitor.hpp ! src/share/demo/jvmti/waiters/README.txt ! src/share/demo/jvmti/waiters/Thread.cpp ! src/share/demo/jvmti/waiters/Thread.hpp ! src/share/demo/jvmti/waiters/sample.makefile.txt ! src/share/demo/jvmti/waiters/waiters.cpp ! src/share/demo/management/FullThreadDump/Deadlock.java ! src/share/demo/management/FullThreadDump/FullThreadDump.java ! src/share/demo/management/FullThreadDump/ThreadMonitor.java ! src/share/demo/management/JTop/JTop.java ! src/share/demo/management/JTop/JTopPlugin.java ! src/share/demo/management/MemoryMonitor/MemoryMonitor.java ! src/share/demo/management/MemoryMonitor/README.txt ! src/share/demo/management/VerboseGC/PrintGCStat.java ! src/share/demo/management/VerboseGC/VerboseGC.java ! src/share/demo/nbproject/jfc/FileChooserDemo/build.xml ! src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/FileChooserDemo/nbproject/project.xml ! src/share/demo/nbproject/jfc/Font2DTest/build.xml ! src/share/demo/nbproject/jfc/Font2DTest/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/Font2DTest/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/Font2DTest/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/Font2DTest/nbproject/project.xml ! src/share/demo/nbproject/jfc/Metalworks/build.xml ! src/share/demo/nbproject/jfc/Metalworks/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/Metalworks/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/Metalworks/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/Metalworks/nbproject/project.xml ! src/share/demo/nbproject/jfc/Notepad/build.xml ! src/share/demo/nbproject/jfc/Notepad/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/Notepad/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/Notepad/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/Notepad/nbproject/project.xml ! src/share/demo/nbproject/jfc/SampleTree/build.xml ! src/share/demo/nbproject/jfc/SampleTree/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/SampleTree/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/SampleTree/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/SampleTree/nbproject/project.xml ! src/share/demo/nbproject/jfc/SwingApplet/build.xml ! src/share/demo/nbproject/jfc/SwingApplet/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/SwingApplet/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/SwingApplet/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/SwingApplet/nbproject/project.xml ! src/share/demo/nbproject/jfc/TableExample/build.xml ! src/share/demo/nbproject/jfc/TableExample/nbproject/file-targets.xml ! src/share/demo/nbproject/jfc/TableExample/nbproject/jdk.xml ! src/share/demo/nbproject/jfc/TableExample/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/jfc/TableExample/nbproject/project.xml ! src/share/demo/nbproject/management/FullThreadDump/build.xml ! src/share/demo/nbproject/management/FullThreadDump/nbproject/file-targets.xml ! src/share/demo/nbproject/management/FullThreadDump/nbproject/jdk.xml ! src/share/demo/nbproject/management/FullThreadDump/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/management/FullThreadDump/nbproject/project.xml ! src/share/demo/nbproject/management/JTop/build.xml ! src/share/demo/nbproject/management/JTop/nbproject/file-targets.xml ! src/share/demo/nbproject/management/JTop/nbproject/jdk.xml ! src/share/demo/nbproject/management/JTop/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/management/JTop/nbproject/project.xml ! src/share/demo/nbproject/management/MemoryMonitor/build.xml ! src/share/demo/nbproject/management/MemoryMonitor/nbproject/file-targets.xml ! src/share/demo/nbproject/management/MemoryMonitor/nbproject/jdk.xml ! src/share/demo/nbproject/management/MemoryMonitor/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/management/MemoryMonitor/nbproject/project.xml ! src/share/demo/nbproject/management/VerboseGC/build.xml ! src/share/demo/nbproject/management/VerboseGC/nbproject/file-targets.xml ! src/share/demo/nbproject/management/VerboseGC/nbproject/jdk.xml ! src/share/demo/nbproject/management/VerboseGC/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/management/VerboseGC/nbproject/project.xml ! src/share/demo/nbproject/project.xml ! src/share/demo/nbproject/scripting/jconsole-plugin/build.xml ! src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/file-targets.xml ! src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/jdk.xml ! src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/netbeans-targets.xml ! src/share/demo/nbproject/scripting/jconsole-plugin/nbproject/project.xml ! src/share/demo/scripting/jconsole-plugin/build.xml ! src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java ! src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java ! src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java ! src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/heapdump.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/hello.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/invoke.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/jstack.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/jtop.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/sysprops.js ! src/share/demo/scripting/jconsole-plugin/src/scripts/verbose.js ! src/share/doc/stub/java/rmi/activation/ActivationGroup_Stub.java ! src/share/hpi/export/bool.h ! src/share/hpi/export/dll.h ! src/share/hpi/export/hpi.h ! src/share/hpi/include/hpi_impl.h ! src/share/hpi/include/vm_calls.h ! src/share/hpi/src/hpi.c ! src/share/instrument/EncodingSupport.c ! src/share/instrument/EncodingSupport.h ! src/share/instrument/FileSystemSupport.h ! src/share/instrument/InstrumentationImplNativeMethods.c ! src/share/instrument/InvocationAdapter.c ! src/share/instrument/JPLISAgent.c ! src/share/instrument/JPLISAgent.h ! src/share/instrument/JPLISAssert.c ! src/share/instrument/JPLISAssert.h ! src/share/instrument/JarFacade.c ! src/share/instrument/JarFacade.h ! src/share/instrument/JavaExceptions.c ! src/share/instrument/JavaExceptions.h ! src/share/instrument/PathCharsValidator.c ! src/share/instrument/PathCharsValidator.h ! src/share/instrument/Reentrancy.c ! src/share/instrument/Reentrancy.h ! src/share/instrument/Utilities.c ! src/share/instrument/Utilities.h ! src/share/javavm/export/classfile_constants.h ! src/share/javavm/export/jawt.h ! src/share/javavm/export/jdwpTransport.h ! src/share/javavm/export/jmm.h ! src/share/javavm/export/jni.h ! src/share/javavm/export/jvm.h ! src/share/javavm/export/jvmti.h ! src/share/javavm/export/jvmticmlr.h ! src/share/lib/calendars.properties ! src/share/native/com/sun/java/util/jar/pack/bands.cpp ! src/share/native/com/sun/java/util/jar/pack/bands.h ! src/share/native/com/sun/java/util/jar/pack/bytes.cpp ! src/share/native/com/sun/java/util/jar/pack/bytes.h ! src/share/native/com/sun/java/util/jar/pack/coding.cpp ! src/share/native/com/sun/java/util/jar/pack/coding.h ! src/share/native/com/sun/java/util/jar/pack/constants.h ! src/share/native/com/sun/java/util/jar/pack/defines.h ! src/share/native/com/sun/java/util/jar/pack/jni.cpp ! src/share/native/com/sun/java/util/jar/pack/main.cpp ! src/share/native/com/sun/java/util/jar/pack/unpack.cpp ! src/share/native/com/sun/java/util/jar/pack/unpack.h ! src/share/native/com/sun/java/util/jar/pack/utils.cpp ! src/share/native/com/sun/java/util/jar/pack/utils.h ! src/share/native/com/sun/java/util/jar/pack/zip.cpp ! src/share/native/com/sun/java/util/jar/pack/zip.h ! src/share/native/com/sun/media/sound/Configure.h ! src/share/native/com/sun/media/sound/DirectAudio.h ! src/share/native/com/sun/media/sound/DirectAudioDevice.c ! src/share/native/com/sun/media/sound/DirectAudioDeviceProvider.c ! src/share/native/com/sun/media/sound/MidiInDevice.c ! src/share/native/com/sun/media/sound/MidiInDeviceProvider.c ! src/share/native/com/sun/media/sound/MidiOutDevice.c ! src/share/native/com/sun/media/sound/MidiOutDeviceProvider.c ! src/share/native/com/sun/media/sound/Platform.c ! src/share/native/com/sun/media/sound/PlatformMidi.c ! src/share/native/com/sun/media/sound/PlatformMidi.h ! src/share/native/com/sun/media/sound/PortMixer.c ! src/share/native/com/sun/media/sound/PortMixerProvider.c ! src/share/native/com/sun/media/sound/Ports.h ! src/share/native/com/sun/media/sound/SoundDefs.h ! src/share/native/com/sun/media/sound/Utilities.c ! src/share/native/com/sun/media/sound/Utilities.h ! src/share/native/com/sun/tools/jdi/SharedMemory.h ! src/share/native/com/sun/tools/jdi/SharedMemoryConnection.c ! src/share/native/com/sun/tools/jdi/SharedMemoryTransport.c ! src/share/native/common/check_code.c ! src/share/native/common/check_format.c ! src/share/native/common/check_version.c ! src/share/native/common/gdefs.h ! src/share/native/common/jdk_util.c ! src/share/native/common/jdk_util.h ! src/share/native/common/jio.c ! src/share/native/common/jlong.h ! src/share/native/common/jni_util.c ! src/share/native/common/jni_util.h ! src/share/native/common/opcodes.in_out ! src/share/native/common/verify_stub.c ! src/share/native/java/io/FileInputStream.c ! src/share/native/java/io/ObjectInputStream.c ! src/share/native/java/io/ObjectOutputStream.c ! src/share/native/java/io/ObjectStreamClass.c ! src/share/native/java/io/RandomAccessFile.c ! src/share/native/java/io/io_util.c ! src/share/native/java/io/io_util.h ! src/share/native/java/lang/Class.c ! src/share/native/java/lang/ClassLoader.c ! src/share/native/java/lang/Compiler.c ! src/share/native/java/lang/Double.c ! src/share/native/java/lang/Float.c ! src/share/native/java/lang/Object.c ! src/share/native/java/lang/Package.c ! src/share/native/java/lang/ResourceBundle.c ! src/share/native/java/lang/Runtime.c ! src/share/native/java/lang/SecurityManager.c ! src/share/native/java/lang/Shutdown.c ! src/share/native/java/lang/StrictMath.c ! src/share/native/java/lang/String.c ! src/share/native/java/lang/System.c ! src/share/native/java/lang/Thread.c ! src/share/native/java/lang/Throwable.c ! src/share/native/java/lang/fdlibm/include/fdlibm.h ! src/share/native/java/lang/fdlibm/include/jfdlibm.h ! src/share/native/java/lang/fdlibm/src/e_acos.c ! src/share/native/java/lang/fdlibm/src/e_acosh.c ! src/share/native/java/lang/fdlibm/src/e_asin.c ! src/share/native/java/lang/fdlibm/src/e_atan2.c ! src/share/native/java/lang/fdlibm/src/e_atanh.c ! src/share/native/java/lang/fdlibm/src/e_cosh.c ! src/share/native/java/lang/fdlibm/src/e_exp.c ! src/share/native/java/lang/fdlibm/src/e_fmod.c ! src/share/native/java/lang/fdlibm/src/e_gamma.c ! src/share/native/java/lang/fdlibm/src/e_gamma_r.c ! src/share/native/java/lang/fdlibm/src/e_hypot.c ! src/share/native/java/lang/fdlibm/src/e_j0.c ! src/share/native/java/lang/fdlibm/src/e_j1.c ! src/share/native/java/lang/fdlibm/src/e_jn.c ! src/share/native/java/lang/fdlibm/src/e_lgamma.c ! src/share/native/java/lang/fdlibm/src/e_lgamma_r.c ! src/share/native/java/lang/fdlibm/src/e_log.c ! src/share/native/java/lang/fdlibm/src/e_log10.c ! src/share/native/java/lang/fdlibm/src/e_pow.c ! src/share/native/java/lang/fdlibm/src/e_rem_pio2.c ! src/share/native/java/lang/fdlibm/src/e_remainder.c ! src/share/native/java/lang/fdlibm/src/e_scalb.c ! src/share/native/java/lang/fdlibm/src/e_sinh.c ! src/share/native/java/lang/fdlibm/src/e_sqrt.c ! src/share/native/java/lang/fdlibm/src/k_cos.c ! src/share/native/java/lang/fdlibm/src/k_rem_pio2.c ! src/share/native/java/lang/fdlibm/src/k_sin.c ! src/share/native/java/lang/fdlibm/src/k_standard.c ! src/share/native/java/lang/fdlibm/src/k_tan.c ! src/share/native/java/lang/fdlibm/src/s_asinh.c ! src/share/native/java/lang/fdlibm/src/s_atan.c ! src/share/native/java/lang/fdlibm/src/s_cbrt.c ! src/share/native/java/lang/fdlibm/src/s_ceil.c ! src/share/native/java/lang/fdlibm/src/s_copysign.c ! src/share/native/java/lang/fdlibm/src/s_cos.c ! src/share/native/java/lang/fdlibm/src/s_erf.c ! src/share/native/java/lang/fdlibm/src/s_expm1.c ! src/share/native/java/lang/fdlibm/src/s_fabs.c ! src/share/native/java/lang/fdlibm/src/s_finite.c ! src/share/native/java/lang/fdlibm/src/s_floor.c ! src/share/native/java/lang/fdlibm/src/s_frexp.c ! src/share/native/java/lang/fdlibm/src/s_ilogb.c ! src/share/native/java/lang/fdlibm/src/s_isnan.c ! src/share/native/java/lang/fdlibm/src/s_ldexp.c ! src/share/native/java/lang/fdlibm/src/s_lib_version.c ! src/share/native/java/lang/fdlibm/src/s_log1p.c ! src/share/native/java/lang/fdlibm/src/s_logb.c ! src/share/native/java/lang/fdlibm/src/s_matherr.c ! src/share/native/java/lang/fdlibm/src/s_modf.c ! src/share/native/java/lang/fdlibm/src/s_nextafter.c ! src/share/native/java/lang/fdlibm/src/s_rint.c ! src/share/native/java/lang/fdlibm/src/s_scalbn.c ! src/share/native/java/lang/fdlibm/src/s_signgam.c ! src/share/native/java/lang/fdlibm/src/s_significand.c ! src/share/native/java/lang/fdlibm/src/s_sin.c ! src/share/native/java/lang/fdlibm/src/s_tan.c ! src/share/native/java/lang/fdlibm/src/s_tanh.c ! src/share/native/java/lang/fdlibm/src/w_acos.c ! src/share/native/java/lang/fdlibm/src/w_acosh.c ! src/share/native/java/lang/fdlibm/src/w_asin.c ! src/share/native/java/lang/fdlibm/src/w_atan2.c ! src/share/native/java/lang/fdlibm/src/w_atanh.c ! src/share/native/java/lang/fdlibm/src/w_cosh.c ! src/share/native/java/lang/fdlibm/src/w_exp.c ! src/share/native/java/lang/fdlibm/src/w_fmod.c ! src/share/native/java/lang/fdlibm/src/w_gamma.c ! src/share/native/java/lang/fdlibm/src/w_gamma_r.c ! src/share/native/java/lang/fdlibm/src/w_hypot.c ! src/share/native/java/lang/fdlibm/src/w_j0.c ! src/share/native/java/lang/fdlibm/src/w_j1.c ! src/share/native/java/lang/fdlibm/src/w_jn.c ! src/share/native/java/lang/fdlibm/src/w_lgamma.c ! src/share/native/java/lang/fdlibm/src/w_lgamma_r.c ! src/share/native/java/lang/fdlibm/src/w_log.c ! src/share/native/java/lang/fdlibm/src/w_log10.c ! src/share/native/java/lang/fdlibm/src/w_pow.c ! src/share/native/java/lang/fdlibm/src/w_remainder.c ! src/share/native/java/lang/fdlibm/src/w_scalb.c ! src/share/native/java/lang/fdlibm/src/w_sinh.c ! src/share/native/java/lang/fdlibm/src/w_sqrt.c ! src/share/native/java/lang/java_props.h ! src/share/native/java/lang/ref/Finalizer.c ! src/share/native/java/lang/reflect/Array.c ! src/share/native/java/lang/reflect/Proxy.c ! src/share/native/java/net/DatagramPacket.c ! src/share/native/java/net/Inet4Address.c ! src/share/native/java/net/Inet6Address.c ! src/share/native/java/net/InetAddress.c ! src/share/native/java/net/net_util.c ! src/share/native/java/net/net_util.h ! src/share/native/java/nio/Bits.c ! src/share/native/java/security/AccessController.c ! src/share/native/java/sql/DriverManager.c ! src/share/native/java/util/TimeZone.c ! src/share/native/java/util/concurrent/atomic/AtomicLong.c ! src/share/native/java/util/zip/Adler32.c ! src/share/native/java/util/zip/CRC32.c ! src/share/native/java/util/zip/Deflater.c ! src/share/native/java/util/zip/Inflater.c ! src/share/native/java/util/zip/ZipFile.c ! src/share/native/java/util/zip/zip_util.c ! src/share/native/java/util/zip/zip_util.h ! src/share/native/java/util/zip/zlib-1.2.3/compress.c ! src/share/native/java/util/zip/zlib-1.2.3/crc32.h ! src/share/native/java/util/zip/zlib-1.2.3/deflate.c ! src/share/native/java/util/zip/zlib-1.2.3/deflate.h ! src/share/native/java/util/zip/zlib-1.2.3/gzio.c ! src/share/native/java/util/zip/zlib-1.2.3/infback.c ! src/share/native/java/util/zip/zlib-1.2.3/inffast.c ! src/share/native/java/util/zip/zlib-1.2.3/inffast.h ! src/share/native/java/util/zip/zlib-1.2.3/inffixed.h ! src/share/native/java/util/zip/zlib-1.2.3/inflate.c ! src/share/native/java/util/zip/zlib-1.2.3/inflate.h ! src/share/native/java/util/zip/zlib-1.2.3/inftrees.c ! src/share/native/java/util/zip/zlib-1.2.3/inftrees.h ! src/share/native/java/util/zip/zlib-1.2.3/trees.c ! src/share/native/java/util/zip/zlib-1.2.3/trees.h ! src/share/native/java/util/zip/zlib-1.2.3/uncompr.c ! src/share/native/java/util/zip/zlib-1.2.3/zadler32.c ! src/share/native/java/util/zip/zlib-1.2.3/zconf.h ! src/share/native/java/util/zip/zlib-1.2.3/zcrc32.c ! src/share/native/java/util/zip/zlib-1.2.3/zlib.h ! src/share/native/java/util/zip/zlib-1.2.3/zutil.c ! src/share/native/java/util/zip/zlib-1.2.3/zutil.h ! src/share/native/sun/awt/debug/debug_assert.c ! src/share/native/sun/awt/debug/debug_assert.h ! src/share/native/sun/awt/debug/debug_mem.c ! src/share/native/sun/awt/debug/debug_mem.h ! src/share/native/sun/awt/debug/debug_trace.c ! src/share/native/sun/awt/debug/debug_trace.h ! src/share/native/sun/awt/debug/debug_util.c ! src/share/native/sun/awt/debug/debug_util.h ! src/share/native/sun/awt/giflib/dgif_lib.c ! src/share/native/sun/awt/giflib/gif_err.c ! src/share/native/sun/awt/giflib/gif_lib.h ! src/share/native/sun/awt/giflib/gif_lib_private.h ! src/share/native/sun/awt/giflib/gifalloc.c ! src/share/native/sun/awt/image/BufImgSurfaceData.c ! src/share/native/sun/awt/image/BufImgSurfaceData.h ! src/share/native/sun/awt/image/DataBufferNative.c ! src/share/native/sun/awt/image/awt_ImageRep.c ! src/share/native/sun/awt/image/awt_parseImage.c ! src/share/native/sun/awt/image/awt_parseImage.h ! src/share/native/sun/awt/image/cvutils/README ! src/share/native/sun/awt/image/cvutils/img_alpha.h ! src/share/native/sun/awt/image/cvutils/img_anycm.h ! src/share/native/sun/awt/image/cvutils/img_colors.c ! src/share/native/sun/awt/image/cvutils/img_colors.h ! src/share/native/sun/awt/image/cvutils/img_dcm.h ! src/share/native/sun/awt/image/cvutils/img_dcm8.h ! src/share/native/sun/awt/image/cvutils/img_dir8dither.h ! src/share/native/sun/awt/image/cvutils/img_dirdither.h ! src/share/native/sun/awt/image/cvutils/img_fscolor.h ! src/share/native/sun/awt/image/cvutils/img_fsdither.h ! src/share/native/sun/awt/image/cvutils/img_fsgray.h ! src/share/native/sun/awt/image/cvutils/img_fsutil.h ! src/share/native/sun/awt/image/cvutils/img_globals.c ! src/share/native/sun/awt/image/cvutils/img_globals.h ! src/share/native/sun/awt/image/cvutils/img_icm.h ! src/share/native/sun/awt/image/cvutils/img_input32.h ! src/share/native/sun/awt/image/cvutils/img_input8.h ! src/share/native/sun/awt/image/cvutils/img_input8_32.h ! src/share/native/sun/awt/image/cvutils/img_nodither.h ! src/share/native/sun/awt/image/cvutils/img_noscale.h ! src/share/native/sun/awt/image/cvutils/img_opaque.h ! src/share/native/sun/awt/image/cvutils/img_ordclrsgn.h ! src/share/native/sun/awt/image/cvutils/img_ordclruns.h ! src/share/native/sun/awt/image/cvutils/img_orddither.h ! src/share/native/sun/awt/image/cvutils/img_ordgray.h ! src/share/native/sun/awt/image/cvutils/img_output16.h ! src/share/native/sun/awt/image/cvutils/img_output16_32.h ! src/share/native/sun/awt/image/cvutils/img_output24.h ! src/share/native/sun/awt/image/cvutils/img_output32.h ! src/share/native/sun/awt/image/cvutils/img_output8.h ! src/share/native/sun/awt/image/cvutils/img_output8_16_24.h ! src/share/native/sun/awt/image/cvutils/img_output8_16_32.h ! src/share/native/sun/awt/image/cvutils/img_output8_32.h ! src/share/native/sun/awt/image/cvutils/img_replscale.h ! src/share/native/sun/awt/image/cvutils/img_scaleloop.h ! src/share/native/sun/awt/image/cvutils/img_util.h ! src/share/native/sun/awt/image/dither.c ! src/share/native/sun/awt/image/dither.h ! src/share/native/sun/awt/image/gif/gifdecoder.c ! src/share/native/sun/awt/image/imageInitIDs.c ! src/share/native/sun/awt/image/imageInitIDs.h ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c ! src/share/native/sun/awt/image/jpeg/jpegdecoder.c ! src/share/native/sun/awt/libpng/CHANGES ! src/share/native/sun/awt/libpng/png.c ! src/share/native/sun/awt/libpng/png.h ! src/share/native/sun/awt/libpng/pngconf.h ! src/share/native/sun/awt/libpng/pngerror.c ! src/share/native/sun/awt/libpng/pnggccrd.c ! src/share/native/sun/awt/libpng/pngget.c ! src/share/native/sun/awt/libpng/pngmem.c ! src/share/native/sun/awt/libpng/pngpread.c ! src/share/native/sun/awt/libpng/pngread.c ! src/share/native/sun/awt/libpng/pngrio.c ! src/share/native/sun/awt/libpng/pngrtran.c ! src/share/native/sun/awt/libpng/pngrutil.c ! src/share/native/sun/awt/libpng/pngset.c ! src/share/native/sun/awt/libpng/pngtest.c ! src/share/native/sun/awt/libpng/pngtrans.c ! src/share/native/sun/awt/libpng/pngvcrd.c ! src/share/native/sun/awt/libpng/pngwio.c ! src/share/native/sun/awt/libpng/pngwrite.c ! src/share/native/sun/awt/libpng/pngwtran.c ! src/share/native/sun/awt/libpng/pngwutil.c ! src/share/native/sun/awt/medialib/awt_ImagingLib.c ! src/share/native/sun/awt/medialib/awt_ImagingLib.h ! src/share/native/sun/awt/medialib/j2d_names.h ! src/share/native/sun/awt/medialib/mlib.h ! src/share/native/sun/awt/medialib/mlib_ImageAffine.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine.h ! src/share/native/sun/awt/medialib/mlib_ImageAffineEdge.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_D64.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_F32.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_BC_S32.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_D64.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_F32.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_BL_S32.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_NN.c ! src/share/native/sun/awt/medialib/mlib_ImageAffine_NN_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageCheck.h ! src/share/native/sun/awt/medialib/mlib_ImageClipping.c ! src/share/native/sun/awt/medialib/mlib_ImageClipping.h ! src/share/native/sun/awt/medialib/mlib_ImageColorTrue2Index.c ! src/share/native/sun/awt/medialib/mlib_ImageColormap.h ! src/share/native/sun/awt/medialib/mlib_ImageConv.h ! src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c ! src/share/native/sun/awt/medialib/mlib_ImageConvClearEdge_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageConvClearEdge_Fp.c ! src/share/native/sun/awt/medialib/mlib_ImageConvCopyEdge_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageConvEdge.h ! src/share/native/sun/awt/medialib/mlib_ImageConvKernelConvert.c ! src/share/native/sun/awt/medialib/mlib_ImageConvMxN.c ! src/share/native/sun/awt/medialib/mlib_ImageConvMxN_Fp.c ! src/share/native/sun/awt/medialib/mlib_ImageConvMxN_ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_32nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_D64nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_F32nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageCopy.h ! src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageCreate.c ! src/share/native/sun/awt/medialib/mlib_ImageCreate.h ! src/share/native/sun/awt/medialib/mlib_ImageDivTables.c ! src/share/native/sun/awt/medialib/mlib_ImageDivTables.h ! src/share/native/sun/awt/medialib/mlib_ImageFilters.c ! src/share/native/sun/awt/medialib/mlib_ImageFilters.h ! src/share/native/sun/awt/medialib/mlib_ImageLookUp.h ! src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c ! src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c ! src/share/native/sun/awt/medialib/mlib_ImageRowTable.h ! src/share/native/sun/awt/medialib/mlib_ImageScanPoly.c ! src/share/native/sun/awt/medialib/mlib_ImageUtils.c ! src/share/native/sun/awt/medialib/mlib_SysMath.h ! src/share/native/sun/awt/medialib/mlib_c_ImageAffineIndex_BC.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffineIndex_BL.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC_S16.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BC_U16.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BL.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BL_S16.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_BL_U16.c ! src/share/native/sun/awt/medialib/mlib_c_ImageAffine_NN.c ! src/share/native/sun/awt/medialib/mlib_c_ImageBlendTable.c ! src/share/native/sun/awt/medialib/mlib_c_ImageBlendTable.h ! src/share/native/sun/awt/medialib/mlib_c_ImageConv.h ! src/share/native/sun/awt/medialib/mlib_c_ImageConvClearEdge.c ! src/share/native/sun/awt/medialib/mlib_c_ImageConvCopyEdge.c ! src/share/native/sun/awt/medialib/mlib_c_ImageConvVersion.c ! src/share/native/sun/awt/medialib/mlib_c_ImageConv_f.c ! src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c ! src/share/native/sun/awt/medialib/mlib_c_ImageLookUp.c ! src/share/native/sun/awt/medialib/mlib_c_ImageLookUp.h ! src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c ! src/share/native/sun/awt/medialib/mlib_c_ImageThresh1.h ! src/share/native/sun/awt/medialib/mlib_c_ImageThresh1_U8.c ! src/share/native/sun/awt/medialib/mlib_image.h ! src/share/native/sun/awt/medialib/mlib_image_blend_proto.h ! src/share/native/sun/awt/medialib/mlib_image_get.h ! src/share/native/sun/awt/medialib/mlib_image_proto.h ! src/share/native/sun/awt/medialib/mlib_image_types.h ! src/share/native/sun/awt/medialib/mlib_status.h ! src/share/native/sun/awt/medialib/mlib_sys.c ! src/share/native/sun/awt/medialib/mlib_sys.h ! src/share/native/sun/awt/medialib/mlib_sys_proto.h ! src/share/native/sun/awt/medialib/mlib_types.h ! src/share/native/sun/awt/medialib/safe_alloc.h ! src/share/native/sun/awt/splashscreen/java_awt_SplashScreen.c ! src/share/native/sun/awt/splashscreen/splashscreen_gfx.h ! src/share/native/sun/awt/splashscreen/splashscreen_gfx_impl.c ! src/share/native/sun/awt/splashscreen/splashscreen_gfx_impl.h ! src/share/native/sun/awt/splashscreen/splashscreen_gif.c ! src/share/native/sun/awt/splashscreen/splashscreen_impl.c ! src/share/native/sun/awt/splashscreen/splashscreen_impl.h ! src/share/native/sun/awt/splashscreen/splashscreen_jpeg.c ! src/share/native/sun/awt/splashscreen/splashscreen_png.c ! src/share/native/sun/awt/utility/rect.c ! src/share/native/sun/font/AccelGlyphCache.c ! src/share/native/sun/font/AccelGlyphCache.h ! src/share/native/sun/font/DrawGlyphList.c ! src/share/native/sun/font/FontInstanceAdapter.cpp ! src/share/native/sun/font/FontInstanceAdapter.h ! src/share/native/sun/font/fontscaler.h ! src/share/native/sun/font/fontscalerdefs.h ! src/share/native/sun/font/freetypeScaler.c ! src/share/native/sun/font/glyphblitting.h ! src/share/native/sun/font/layout/AlternateSubstSubtables.cpp ! src/share/native/sun/font/layout/AlternateSubstSubtables.h ! src/share/native/sun/font/layout/AnchorTables.cpp ! src/share/native/sun/font/layout/AnchorTables.h ! src/share/native/sun/font/layout/ArabicLayoutEngine.cpp ! src/share/native/sun/font/layout/ArabicLayoutEngine.h ! src/share/native/sun/font/layout/ArabicShaping.cpp ! src/share/native/sun/font/layout/ArabicShaping.h ! src/share/native/sun/font/layout/AttachmentPosnSubtables.h ! src/share/native/sun/font/layout/CanonData.cpp ! src/share/native/sun/font/layout/CanonShaping.cpp ! src/share/native/sun/font/layout/CanonShaping.h ! src/share/native/sun/font/layout/CharSubstitutionFilter.h ! src/share/native/sun/font/layout/ClassDefinitionTables.cpp ! src/share/native/sun/font/layout/ClassDefinitionTables.h ! src/share/native/sun/font/layout/ContextualGlyphInsertion.h ! src/share/native/sun/font/layout/ContextualGlyphSubstProc.cpp ! src/share/native/sun/font/layout/ContextualGlyphSubstProc.h ! src/share/native/sun/font/layout/ContextualGlyphSubstitution.h ! src/share/native/sun/font/layout/ContextualSubstSubtables.cpp ! src/share/native/sun/font/layout/ContextualSubstSubtables.h ! src/share/native/sun/font/layout/CoverageTables.cpp ! src/share/native/sun/font/layout/CoverageTables.h ! src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp ! src/share/native/sun/font/layout/CursiveAttachmentSubtables.h ! src/share/native/sun/font/layout/DefaultCharMapper.h ! src/share/native/sun/font/layout/DeviceTables.cpp ! src/share/native/sun/font/layout/DeviceTables.h ! src/share/native/sun/font/layout/ExtensionSubtables.cpp ! src/share/native/sun/font/layout/ExtensionSubtables.h ! src/share/native/sun/font/layout/Features.cpp ! src/share/native/sun/font/layout/Features.h ! src/share/native/sun/font/layout/GDEFMarkFilter.cpp ! src/share/native/sun/font/layout/GDEFMarkFilter.h ! src/share/native/sun/font/layout/GXLayoutEngine.cpp ! src/share/native/sun/font/layout/GXLayoutEngine.h ! src/share/native/sun/font/layout/GlyphDefinitionTables.cpp ! src/share/native/sun/font/layout/GlyphDefinitionTables.h ! src/share/native/sun/font/layout/GlyphIterator.cpp ! src/share/native/sun/font/layout/GlyphIterator.h ! src/share/native/sun/font/layout/GlyphLookupTables.cpp ! src/share/native/sun/font/layout/GlyphLookupTables.h ! src/share/native/sun/font/layout/GlyphPositionAdjustments.cpp ! src/share/native/sun/font/layout/GlyphPositionAdjustments.h ! src/share/native/sun/font/layout/GlyphPositioningTables.cpp ! src/share/native/sun/font/layout/GlyphPositioningTables.h ! src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp ! src/share/native/sun/font/layout/GlyphPosnLookupProc.h ! src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp ! src/share/native/sun/font/layout/GlyphSubstLookupProc.h ! src/share/native/sun/font/layout/GlyphSubstitutionTables.cpp ! src/share/native/sun/font/layout/GlyphSubstitutionTables.h ! src/share/native/sun/font/layout/HanLayoutEngine.cpp ! src/share/native/sun/font/layout/HanLayoutEngine.h ! src/share/native/sun/font/layout/HebrewLigatureData.cpp ! src/share/native/sun/font/layout/HebrewShaping.cpp ! src/share/native/sun/font/layout/HebrewShaping.h ! src/share/native/sun/font/layout/IndicClassTables.cpp ! src/share/native/sun/font/layout/IndicLayoutEngine.cpp ! src/share/native/sun/font/layout/IndicLayoutEngine.h ! src/share/native/sun/font/layout/IndicRearrangement.h ! src/share/native/sun/font/layout/IndicRearrangementProcessor.cpp ! src/share/native/sun/font/layout/IndicRearrangementProcessor.h ! src/share/native/sun/font/layout/IndicReordering.cpp ! src/share/native/sun/font/layout/IndicReordering.h ! src/share/native/sun/font/layout/KernTable.cpp ! src/share/native/sun/font/layout/KernTable.h ! src/share/native/sun/font/layout/KhmerLayoutEngine.cpp ! src/share/native/sun/font/layout/KhmerLayoutEngine.h ! src/share/native/sun/font/layout/KhmerReordering.cpp ! src/share/native/sun/font/layout/KhmerReordering.h ! src/share/native/sun/font/layout/LEFontInstance.cpp ! src/share/native/sun/font/layout/LEFontInstance.h ! src/share/native/sun/font/layout/LEGlyphFilter.h ! src/share/native/sun/font/layout/LEGlyphStorage.cpp ! src/share/native/sun/font/layout/LEGlyphStorage.h ! src/share/native/sun/font/layout/LEInsertionList.cpp ! src/share/native/sun/font/layout/LEInsertionList.h ! src/share/native/sun/font/layout/LELanguages.h ! src/share/native/sun/font/layout/LEScripts.h ! src/share/native/sun/font/layout/LEStandalone.h ! src/share/native/sun/font/layout/LESwaps.h ! src/share/native/sun/font/layout/LETypes.h ! src/share/native/sun/font/layout/LayoutEngine.cpp ! src/share/native/sun/font/layout/LayoutEngine.h ! src/share/native/sun/font/layout/LayoutTables.h ! src/share/native/sun/font/layout/LigatureSubstProc.cpp ! src/share/native/sun/font/layout/LigatureSubstProc.h ! src/share/native/sun/font/layout/LigatureSubstSubtables.cpp ! src/share/native/sun/font/layout/LigatureSubstSubtables.h ! src/share/native/sun/font/layout/LigatureSubstitution.h ! src/share/native/sun/font/layout/LookupProcessor.cpp ! src/share/native/sun/font/layout/LookupProcessor.h ! src/share/native/sun/font/layout/LookupTables.cpp ! src/share/native/sun/font/layout/LookupTables.h ! src/share/native/sun/font/layout/Lookups.cpp ! src/share/native/sun/font/layout/Lookups.h ! src/share/native/sun/font/layout/MPreFixups.cpp ! src/share/native/sun/font/layout/MPreFixups.h ! src/share/native/sun/font/layout/MarkArrays.cpp ! src/share/native/sun/font/layout/MarkArrays.h ! src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp ! src/share/native/sun/font/layout/MarkToBasePosnSubtables.h ! src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp ! src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.h ! src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp ! src/share/native/sun/font/layout/MarkToMarkPosnSubtables.h ! src/share/native/sun/font/layout/MirroredCharData.cpp ! src/share/native/sun/font/layout/MorphStateTables.h ! src/share/native/sun/font/layout/MorphTables.cpp ! src/share/native/sun/font/layout/MorphTables.h ! src/share/native/sun/font/layout/MultipleSubstSubtables.cpp ! src/share/native/sun/font/layout/MultipleSubstSubtables.h ! src/share/native/sun/font/layout/NonContextualGlyphSubst.h ! src/share/native/sun/font/layout/NonContextualGlyphSubstProc.cpp ! src/share/native/sun/font/layout/NonContextualGlyphSubstProc.h ! src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp ! src/share/native/sun/font/layout/OpenTypeLayoutEngine.h ! src/share/native/sun/font/layout/OpenTypeTables.h ! src/share/native/sun/font/layout/OpenTypeUtilities.cpp ! src/share/native/sun/font/layout/OpenTypeUtilities.h ! src/share/native/sun/font/layout/PairPositioningSubtables.cpp ! src/share/native/sun/font/layout/PairPositioningSubtables.h ! src/share/native/sun/font/layout/ScriptAndLanguage.cpp ! src/share/native/sun/font/layout/ScriptAndLanguage.h ! src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp ! src/share/native/sun/font/layout/ScriptAndLanguageTags.h ! src/share/native/sun/font/layout/SegmentArrayProcessor.cpp ! src/share/native/sun/font/layout/SegmentArrayProcessor.h ! src/share/native/sun/font/layout/SegmentSingleProcessor.cpp ! src/share/native/sun/font/layout/SegmentSingleProcessor.h ! src/share/native/sun/font/layout/ShapingTypeData.cpp ! src/share/native/sun/font/layout/SimpleArrayProcessor.cpp ! src/share/native/sun/font/layout/SimpleArrayProcessor.h ! src/share/native/sun/font/layout/SinglePositioningSubtables.cpp ! src/share/native/sun/font/layout/SinglePositioningSubtables.h ! src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp ! src/share/native/sun/font/layout/SingleSubstitutionSubtables.h ! src/share/native/sun/font/layout/SingleTableProcessor.cpp ! src/share/native/sun/font/layout/SingleTableProcessor.h ! src/share/native/sun/font/layout/StateTableProcessor.cpp ! src/share/native/sun/font/layout/StateTableProcessor.h ! src/share/native/sun/font/layout/StateTables.h ! src/share/native/sun/font/layout/SubstitutionLookups.cpp ! src/share/native/sun/font/layout/SubstitutionLookups.h ! src/share/native/sun/font/layout/SubtableProcessor.cpp ! src/share/native/sun/font/layout/SubtableProcessor.h ! src/share/native/sun/font/layout/SunLayoutEngine.cpp ! src/share/native/sun/font/layout/ThaiLayoutEngine.cpp ! src/share/native/sun/font/layout/ThaiLayoutEngine.h ! src/share/native/sun/font/layout/ThaiShaping.cpp ! src/share/native/sun/font/layout/ThaiShaping.h ! src/share/native/sun/font/layout/ThaiStateTables.cpp ! src/share/native/sun/font/layout/TrimmedArrayProcessor.cpp ! src/share/native/sun/font/layout/TrimmedArrayProcessor.h ! src/share/native/sun/font/layout/ValueRecords.cpp ! src/share/native/sun/font/layout/ValueRecords.h ! src/share/native/sun/font/sunFont.c ! src/share/native/sun/font/sunfontids.h ! src/share/native/sun/java2d/Disposer.c ! src/share/native/sun/java2d/Disposer.h ! src/share/native/sun/java2d/ShaderList.c ! src/share/native/sun/java2d/ShaderList.h ! src/share/native/sun/java2d/SurfaceData.c ! src/share/native/sun/java2d/SurfaceData.h ! src/share/native/sun/java2d/Trace.c ! src/share/native/sun/java2d/Trace.h ! src/share/native/sun/java2d/cmm/lcms/LCMS.c ! src/share/native/sun/java2d/cmm/lcms/cmscam02.c ! src/share/native/sun/java2d/cmm/lcms/cmscam97.c ! src/share/native/sun/java2d/cmm/lcms/cmscgats.c ! src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c ! src/share/native/sun/java2d/cmm/lcms/cmserr.c ! src/share/native/sun/java2d/cmm/lcms/cmsgamma.c ! src/share/native/sun/java2d/cmm/lcms/cmsgmt.c ! src/share/native/sun/java2d/cmm/lcms/cmsintrp.c ! src/share/native/sun/java2d/cmm/lcms/cmsio0.c ! src/share/native/sun/java2d/cmm/lcms/cmsio1.c ! src/share/native/sun/java2d/cmm/lcms/cmslut.c ! src/share/native/sun/java2d/cmm/lcms/cmsmatsh.c ! src/share/native/sun/java2d/cmm/lcms/cmsmtrx.c ! src/share/native/sun/java2d/cmm/lcms/cmsnamed.c ! src/share/native/sun/java2d/cmm/lcms/cmspack.c ! src/share/native/sun/java2d/cmm/lcms/cmspcs.c ! src/share/native/sun/java2d/cmm/lcms/cmsps2.c ! src/share/native/sun/java2d/cmm/lcms/cmssamp.c ! src/share/native/sun/java2d/cmm/lcms/cmsvirt.c ! src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c ! src/share/native/sun/java2d/cmm/lcms/cmsxform.c ! src/share/native/sun/java2d/cmm/lcms/icc34.h ! src/share/native/sun/java2d/cmm/lcms/lcms.h ! src/share/native/sun/java2d/loops/AlphaMacros.c ! src/share/native/sun/java2d/loops/AlphaMacros.h ! src/share/native/sun/java2d/loops/AlphaMath.c ! src/share/native/sun/java2d/loops/AlphaMath.h ! src/share/native/sun/java2d/loops/Any3Byte.c ! src/share/native/sun/java2d/loops/Any3Byte.h ! src/share/native/sun/java2d/loops/Any4Byte.c ! src/share/native/sun/java2d/loops/Any4Byte.h ! src/share/native/sun/java2d/loops/AnyByte.c ! src/share/native/sun/java2d/loops/AnyByte.h ! src/share/native/sun/java2d/loops/AnyByteBinary.h ! src/share/native/sun/java2d/loops/AnyInt.c ! src/share/native/sun/java2d/loops/AnyInt.h ! src/share/native/sun/java2d/loops/AnyShort.c ! src/share/native/sun/java2d/loops/AnyShort.h ! src/share/native/sun/java2d/loops/Blit.c ! src/share/native/sun/java2d/loops/BlitBg.c ! src/share/native/sun/java2d/loops/ByteBinary1Bit.c ! src/share/native/sun/java2d/loops/ByteBinary1Bit.h ! src/share/native/sun/java2d/loops/ByteBinary2Bit.c ! src/share/native/sun/java2d/loops/ByteBinary2Bit.h ! src/share/native/sun/java2d/loops/ByteBinary4Bit.c ! src/share/native/sun/java2d/loops/ByteBinary4Bit.h ! src/share/native/sun/java2d/loops/ByteGray.c ! src/share/native/sun/java2d/loops/ByteGray.h ! src/share/native/sun/java2d/loops/ByteIndexed.c ! src/share/native/sun/java2d/loops/ByteIndexed.h ! src/share/native/sun/java2d/loops/DrawLine.c ! src/share/native/sun/java2d/loops/DrawPath.c ! src/share/native/sun/java2d/loops/DrawPath.h ! src/share/native/sun/java2d/loops/DrawPolygons.c ! src/share/native/sun/java2d/loops/DrawRect.c ! src/share/native/sun/java2d/loops/FillPath.c ! src/share/native/sun/java2d/loops/FillRect.c ! src/share/native/sun/java2d/loops/FillSpans.c ! src/share/native/sun/java2d/loops/FourByteAbgr.c ! src/share/native/sun/java2d/loops/FourByteAbgr.h ! src/share/native/sun/java2d/loops/FourByteAbgrPre.c ! src/share/native/sun/java2d/loops/FourByteAbgrPre.h ! src/share/native/sun/java2d/loops/GlyphImageRef.h ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ! src/share/native/sun/java2d/loops/ImageData.h ! src/share/native/sun/java2d/loops/Index12Gray.c ! src/share/native/sun/java2d/loops/Index12Gray.h ! src/share/native/sun/java2d/loops/Index8Gray.c ! src/share/native/sun/java2d/loops/Index8Gray.h ! src/share/native/sun/java2d/loops/IntArgb.c ! src/share/native/sun/java2d/loops/IntArgb.h ! src/share/native/sun/java2d/loops/IntArgbBm.c ! src/share/native/sun/java2d/loops/IntArgbBm.h ! src/share/native/sun/java2d/loops/IntArgbPre.c ! src/share/native/sun/java2d/loops/IntArgbPre.h ! src/share/native/sun/java2d/loops/IntBgr.c ! src/share/native/sun/java2d/loops/IntBgr.h ! src/share/native/sun/java2d/loops/IntDcm.h ! src/share/native/sun/java2d/loops/IntRgb.c ! src/share/native/sun/java2d/loops/IntRgb.h ! src/share/native/sun/java2d/loops/IntRgbx.c ! src/share/native/sun/java2d/loops/IntRgbx.h ! src/share/native/sun/java2d/loops/LineUtils.h ! src/share/native/sun/java2d/loops/LoopMacros.h ! src/share/native/sun/java2d/loops/MapAccelFunc.c ! src/share/native/sun/java2d/loops/MaskBlit.c ! src/share/native/sun/java2d/loops/MaskFill.c ! src/share/native/sun/java2d/loops/ProcessPath.c ! src/share/native/sun/java2d/loops/ProcessPath.h ! src/share/native/sun/java2d/loops/ScaledBlit.c ! src/share/native/sun/java2d/loops/ThreeByteBgr.c ! src/share/native/sun/java2d/loops/ThreeByteBgr.h ! src/share/native/sun/java2d/loops/TransformHelper.c ! src/share/native/sun/java2d/loops/Ushort4444Argb.c ! src/share/native/sun/java2d/loops/Ushort4444Argb.h ! src/share/native/sun/java2d/loops/Ushort555Rgb.c ! src/share/native/sun/java2d/loops/Ushort555Rgb.h ! src/share/native/sun/java2d/loops/Ushort555Rgbx.c ! src/share/native/sun/java2d/loops/Ushort555Rgbx.h ! src/share/native/sun/java2d/loops/Ushort565Rgb.c ! src/share/native/sun/java2d/loops/Ushort565Rgb.h ! src/share/native/sun/java2d/loops/UshortGray.c ! src/share/native/sun/java2d/loops/UshortGray.h ! src/share/native/sun/java2d/loops/UshortIndexed.c ! src/share/native/sun/java2d/loops/UshortIndexed.h ! src/share/native/sun/java2d/opengl/J2D_GL/gl.h ! src/share/native/sun/java2d/opengl/J2D_GL/glext.h ! src/share/native/sun/java2d/opengl/OGLBlitLoops.c ! src/share/native/sun/java2d/opengl/OGLBlitLoops.h ! src/share/native/sun/java2d/opengl/OGLBufImgOps.c ! src/share/native/sun/java2d/opengl/OGLBufImgOps.h ! src/share/native/sun/java2d/opengl/OGLContext.c ! src/share/native/sun/java2d/opengl/OGLContext.h ! src/share/native/sun/java2d/opengl/OGLFuncMacros.h ! src/share/native/sun/java2d/opengl/OGLFuncs.c ! src/share/native/sun/java2d/opengl/OGLFuncs.h ! src/share/native/sun/java2d/opengl/OGLMaskBlit.c ! src/share/native/sun/java2d/opengl/OGLMaskBlit.h ! src/share/native/sun/java2d/opengl/OGLMaskFill.c ! src/share/native/sun/java2d/opengl/OGLMaskFill.h ! src/share/native/sun/java2d/opengl/OGLPaints.c ! src/share/native/sun/java2d/opengl/OGLPaints.h ! src/share/native/sun/java2d/opengl/OGLRenderQueue.c ! src/share/native/sun/java2d/opengl/OGLRenderQueue.h ! src/share/native/sun/java2d/opengl/OGLRenderer.c ! src/share/native/sun/java2d/opengl/OGLRenderer.h ! src/share/native/sun/java2d/opengl/OGLSurfaceData.c ! src/share/native/sun/java2d/opengl/OGLSurfaceData.h ! src/share/native/sun/java2d/opengl/OGLTextRenderer.c ! src/share/native/sun/java2d/opengl/OGLTextRenderer.h ! src/share/native/sun/java2d/opengl/OGLVertexCache.c ! src/share/native/sun/java2d/opengl/OGLVertexCache.h ! src/share/native/sun/java2d/pipe/BufferedMaskBlit.c ! src/share/native/sun/java2d/pipe/BufferedRenderPipe.c ! src/share/native/sun/java2d/pipe/PathConsumer2D.h ! src/share/native/sun/java2d/pipe/Region.c ! src/share/native/sun/java2d/pipe/Region.h ! src/share/native/sun/java2d/pipe/ShapeSpanIterator.c ! src/share/native/sun/java2d/pipe/SpanClipRenderer.c ! src/share/native/sun/java2d/pipe/SpanIterator.h ! src/share/native/sun/management/ClassLoadingImpl.c ! src/share/native/sun/management/Flag.c ! src/share/native/sun/management/GarbageCollectorImpl.c ! src/share/native/sun/management/GcInfoBuilder.c ! src/share/native/sun/management/HotSpotDiagnostic.c ! src/share/native/sun/management/HotspotThread.c ! src/share/native/sun/management/MemoryImpl.c ! src/share/native/sun/management/MemoryManagerImpl.c ! src/share/native/sun/management/MemoryPoolImpl.c ! src/share/native/sun/management/ThreadImpl.c ! src/share/native/sun/management/VMManagementImpl.c ! src/share/native/sun/management/management.c ! src/share/native/sun/management/management.h ! src/share/native/sun/misc/GC.c ! src/share/native/sun/misc/MessageUtils.c ! src/share/native/sun/misc/NativeSignalHandler.c ! src/share/native/sun/misc/Signal.c ! src/share/native/sun/misc/VM.c ! src/share/native/sun/misc/VMSupport.c ! src/share/native/sun/misc/Version.c ! src/share/native/sun/nio/ch/genSocketOptionRegistry.c ! src/share/native/sun/nio/ch/nio.h ! src/share/native/sun/reflect/ConstantPool.c ! src/share/native/sun/reflect/NativeAccessors.c ! src/share/native/sun/reflect/Reflection.c ! src/share/native/sun/rmi/server/MarshalInputStream.c ! src/share/native/sun/security/ec/ECC_JNI.cpp ! src/share/native/sun/security/ec/impl/ec.c ! src/share/native/sun/security/ec/impl/ec.h ! src/share/native/sun/security/ec/impl/ec2.h ! src/share/native/sun/security/ec/impl/ec2_163.c ! src/share/native/sun/security/ec/impl/ec2_193.c ! src/share/native/sun/security/ec/impl/ec2_233.c ! src/share/native/sun/security/ec/impl/ec2_aff.c ! src/share/native/sun/security/ec/impl/ec2_mont.c ! src/share/native/sun/security/ec/impl/ec_naf.c ! src/share/native/sun/security/ec/impl/ecc_impl.h ! src/share/native/sun/security/ec/impl/ecdecode.c ! src/share/native/sun/security/ec/impl/ecl-curve.h ! src/share/native/sun/security/ec/impl/ecl-exp.h ! src/share/native/sun/security/ec/impl/ecl-priv.h ! src/share/native/sun/security/ec/impl/ecl.c ! src/share/native/sun/security/ec/impl/ecl.h ! src/share/native/sun/security/ec/impl/ecl_curve.c ! src/share/native/sun/security/ec/impl/ecl_gf.c ! src/share/native/sun/security/ec/impl/ecl_mult.c ! src/share/native/sun/security/ec/impl/ecp.h ! src/share/native/sun/security/ec/impl/ecp_192.c ! src/share/native/sun/security/ec/impl/ecp_224.c ! src/share/native/sun/security/ec/impl/ecp_256.c ! src/share/native/sun/security/ec/impl/ecp_384.c ! src/share/native/sun/security/ec/impl/ecp_521.c ! src/share/native/sun/security/ec/impl/ecp_aff.c ! src/share/native/sun/security/ec/impl/ecp_jac.c ! src/share/native/sun/security/ec/impl/ecp_jm.c ! src/share/native/sun/security/ec/impl/ecp_mont.c ! src/share/native/sun/security/ec/impl/logtab.h ! src/share/native/sun/security/ec/impl/mp_gf2m-priv.h ! src/share/native/sun/security/ec/impl/mp_gf2m.c ! src/share/native/sun/security/ec/impl/mp_gf2m.h ! src/share/native/sun/security/ec/impl/mpi-config.h ! src/share/native/sun/security/ec/impl/mpi-priv.h ! src/share/native/sun/security/ec/impl/mpi.c ! src/share/native/sun/security/ec/impl/mpi.h ! src/share/native/sun/security/ec/impl/mplogic.c ! src/share/native/sun/security/ec/impl/mplogic.h ! src/share/native/sun/security/ec/impl/mpmontg.c ! src/share/native/sun/security/ec/impl/mpprime.h ! src/share/native/sun/security/ec/impl/oid.c ! src/share/native/sun/security/ec/impl/secitem.c ! src/share/native/sun/security/ec/impl/secoidt.h ! src/share/native/sun/security/jgss/wrapper/GSSLibStub.c ! src/share/native/sun/security/jgss/wrapper/NativeUtil.c ! src/share/native/sun/security/jgss/wrapper/NativeUtil.h ! src/share/native/sun/security/jgss/wrapper/gssapi.h ! src/share/native/sun/security/pkcs11/j2secmod.c ! src/share/native/sun/security/pkcs11/j2secmod.h ! src/share/native/sun/security/pkcs11/wrapper/p11_convert.c ! src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c ! src/share/native/sun/security/pkcs11/wrapper/p11_digest.c ! src/share/native/sun/security/pkcs11/wrapper/p11_dual.c ! src/share/native/sun/security/pkcs11/wrapper/p11_general.c ! src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c ! src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c ! src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c ! src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c ! src/share/native/sun/security/pkcs11/wrapper/p11_sign.c ! src/share/native/sun/security/pkcs11/wrapper/p11_util.c ! src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h ! src/share/native/sun/security/smartcardio/pcsc.c ! src/share/native/sun/tracing/dtrace/JVM.c ! src/share/native/sun/tracing/dtrace/jvm_symbols.h ! src/share/npt/npt.c ! src/share/npt/npt.h ! src/share/npt/utf.c ! src/share/npt/utf.h ! src/share/sample/jmx/jmx-scandir/build.xml ! src/share/sample/jmx/jmx-scandir/index.html ! src/share/sample/jmx/jmx-scandir/nbproject/file-targets.xml ! src/share/sample/jmx/jmx-scandir/nbproject/jdk.xml ! src/share/sample/jmx/jmx-scandir/nbproject/netbeans-targets.xml ! src/share/sample/jmx/jmx-scandir/nbproject/project.xml ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScanner.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/DirectoryScannerMXBean.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManager.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ResultLogManagerMXBean.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirAgent.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirClient.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfig.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanDirConfigMXBean.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManager.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/ScanManagerMXBean.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/DirectoryScannerConfig.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/FileMatch.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultLogConfig.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ResultRecord.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/ScanManagerConfig.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/XmlConfigUtils.java ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/config/package.html ! src/share/sample/jmx/jmx-scandir/src/com/sun/jmx/examples/scandir/package.html ! src/share/sample/jmx/jmx-scandir/src/etc/testconfig.xml ! src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/DirectoryScannerTest.java ! src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanDirConfigTest.java ! src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/ScanManagerTest.java ! src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/TestUtils.java ! src/share/sample/jmx/jmx-scandir/test/com/sun/jmx/examples/scandir/config/XmlConfigUtilsTest.java ! src/share/sample/nbproject/project.xml ! src/share/sample/nio/file/AclEdit.java ! src/share/sample/nio/file/Chmod.java ! src/share/sample/nio/file/Copy.java ! src/share/sample/nio/file/DiskUsage.java ! src/share/sample/nio/file/FileType.java ! src/share/sample/nio/file/WatchDir.java ! src/share/sample/nio/file/Xdd.java ! src/share/sample/nio/multicast/MulticastAddress.java ! src/share/sample/nio/multicast/Reader.java ! src/share/sample/nio/multicast/Sender.java ! src/share/sample/nio/server/AcceptHandler.java ! src/share/sample/nio/server/Acceptor.java ! src/share/sample/nio/server/B1.java ! src/share/sample/nio/server/BN.java ! src/share/sample/nio/server/BP.java ! src/share/sample/nio/server/ChannelIO.java ! src/share/sample/nio/server/ChannelIOSecure.java ! src/share/sample/nio/server/Content.java ! src/share/sample/nio/server/Dispatcher.java ! src/share/sample/nio/server/Dispatcher1.java ! src/share/sample/nio/server/DispatcherN.java ! src/share/sample/nio/server/FileContent.java ! src/share/sample/nio/server/Handler.java ! src/share/sample/nio/server/MalformedRequestException.java ! src/share/sample/nio/server/N1.java ! src/share/sample/nio/server/N2.java ! src/share/sample/nio/server/Reply.java ! src/share/sample/nio/server/Request.java ! src/share/sample/nio/server/RequestHandler.java ! src/share/sample/nio/server/RequestServicer.java ! src/share/sample/nio/server/Sendable.java ! src/share/sample/nio/server/Server.java ! src/share/sample/nio/server/StringContent.java ! src/share/sample/nio/server/URLDumper.java ! src/share/sample/scripting/scriptpad/build.xml ! src/share/sample/scripting/scriptpad/nbproject/file-targets.xml ! src/share/sample/scripting/scriptpad/nbproject/jdk.xml ! src/share/sample/scripting/scriptpad/nbproject/netbeans-targets.xml ! src/share/sample/scripting/scriptpad/nbproject/project.xml ! src/share/sample/scripting/scriptpad/src/com/sun/sample/scriptpad/Main.java ! src/share/sample/scripting/scriptpad/src/resources/Main.js ! src/share/sample/scripting/scriptpad/src/resources/conc.js ! src/share/sample/scripting/scriptpad/src/resources/gui.js ! src/share/sample/scripting/scriptpad/src/resources/mm.js ! src/share/sample/scripting/scriptpad/src/resources/scriptpad.js ! src/share/sample/scripting/scriptpad/src/scripts/browse.js ! src/share/sample/scripting/scriptpad/src/scripts/insertfile.js ! src/share/sample/scripting/scriptpad/src/scripts/linewrap.js ! src/share/sample/scripting/scriptpad/src/scripts/mail.js ! src/share/sample/scripting/scriptpad/src/scripts/memmonitor.js ! src/share/sample/scripting/scriptpad/src/scripts/memory.bat ! src/share/sample/scripting/scriptpad/src/scripts/memory.js ! src/share/sample/scripting/scriptpad/src/scripts/memory.sh ! src/share/sample/scripting/scriptpad/src/scripts/textcolor.js ! src/share/sample/vm/clr-jvm/Makefile ! src/share/sample/vm/clr-jvm/invoked.java ! src/share/sample/vm/clr-jvm/invoker.cs ! src/share/sample/vm/clr-jvm/jinvoker.cpp ! src/share/sample/vm/clr-jvm/jinvokerExp.h ! src/share/sample/vm/jvm-clr/Makefile ! src/share/sample/vm/jvm-clr/invoked.cs ! src/share/sample/vm/jvm-clr/invoker.cpp ! src/share/sample/vm/jvm-clr/invoker.h ! src/share/sample/vm/jvm-clr/invoker.java ! src/share/sample/vm/jvm-clr/invokerExp.h ! src/share/test/pack200/pack.conf ! src/share/transport/shmem/shmemBack.c ! src/share/transport/shmem/shmemBase.c ! src/share/transport/shmem/shmemBase.h ! src/share/transport/shmem/sysShmem.h ! src/share/transport/socket/socketTransport.c ! src/share/transport/socket/socketTransport.h ! src/share/transport/socket/sysSocket.h ! src/solaris/back/exec_md.c ! src/solaris/back/linker_md.c ! src/solaris/back/path_md.h ! src/solaris/back/proc_md.h ! src/solaris/back/util_md.h ! src/solaris/bin/amd64/jvm.cfg ! src/solaris/bin/ergo.c ! src/solaris/bin/ergo.h ! src/solaris/bin/ergo_i586.c ! src/solaris/bin/ergo_sparc.c ! src/solaris/bin/ergo_zero.c ! src/solaris/bin/i586/jvm.cfg ! src/solaris/bin/ia64/jvm.cfg ! src/solaris/bin/java-rmi.cgi.sh ! src/solaris/bin/java_md.c ! src/solaris/bin/java_md.h ! src/solaris/bin/jexec.c ! src/solaris/bin/sparc/jvm.cfg ! src/solaris/bin/sparcv9/jvm.cfg ! src/solaris/bin/zero/jvm.cfg ! src/solaris/classes/com/sun/management/OSMBeanFactory.java ! src/solaris/classes/com/sun/management/UnixOperatingSystem.java ! src/solaris/classes/java/io/FileDescriptor.java ! src/solaris/classes/java/io/UnixFileSystem.java ! src/solaris/classes/java/lang/ProcessEnvironment.java ! src/solaris/classes/java/lang/ProcessImpl.java ! src/solaris/classes/java/lang/Terminator.java ! src/solaris/classes/java/lang/UNIXProcess.java.linux ! src/solaris/classes/java/lang/UNIXProcess.java.solaris ! src/solaris/classes/java/net/DefaultDatagramSocketImplFactory.java ! src/solaris/classes/java/net/PlainDatagramSocketImpl.java ! src/solaris/classes/java/net/PlainSocketImpl.java ! src/solaris/classes/java/util/prefs/FileSystemPreferences.java ! src/solaris/classes/java/util/prefs/FileSystemPreferencesFactory.java ! src/solaris/classes/sun/awt/UNIXToolkit.java ! src/solaris/classes/sun/awt/X11/GtkFileDialogPeer.java ! src/solaris/classes/sun/awt/X11/InfoWindow.java ! src/solaris/classes/sun/awt/X11/ListHelper.java ! src/solaris/classes/sun/awt/X11/MWMConstants.java ! src/solaris/classes/sun/awt/X11/MotifColorUtilities.java ! src/solaris/classes/sun/awt/X11/MotifDnDConstants.java ! src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java ! src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java ! src/solaris/classes/sun/awt/X11/Native.java ! src/solaris/classes/sun/awt/X11/OwnershipListener.java ! src/solaris/classes/sun/awt/X11/ToplevelStateListener.java ! src/solaris/classes/sun/awt/X11/UnsafeXDisposerRecord.java ! src/solaris/classes/sun/awt/X11/WindowDimensions.java ! src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java ! src/solaris/classes/sun/awt/X11/XAWTFormatter.java ! src/solaris/classes/sun/awt/X11/XAWTLookAndFeel.java ! src/solaris/classes/sun/awt/X11/XAWTXSettings.java ! src/solaris/classes/sun/awt/X11/XAbstractMenuItem.java ! src/solaris/classes/sun/awt/X11/XAtom.java ! src/solaris/classes/sun/awt/X11/XAtomList.java ! src/solaris/classes/sun/awt/X11/XAwtState.java ! src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java ! src/solaris/classes/sun/awt/X11/XBaseWindow.java ! src/solaris/classes/sun/awt/X11/XButtonPeer.java ! src/solaris/classes/sun/awt/X11/XCanvasPeer.java ! src/solaris/classes/sun/awt/X11/XCheckboxMenuItemPeer.java ! src/solaris/classes/sun/awt/X11/XCheckboxPeer.java ! src/solaris/classes/sun/awt/X11/XChoicePeer.java ! src/solaris/classes/sun/awt/X11/XClipboard.java ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/solaris/classes/sun/awt/X11/XConstants.java ! src/solaris/classes/sun/awt/X11/XContentWindow.java ! src/solaris/classes/sun/awt/X11/XCreateWindowParams.java ! src/solaris/classes/sun/awt/X11/XCursorFontConstants.java ! src/solaris/classes/sun/awt/X11/XCustomCursor.java ! src/solaris/classes/sun/awt/X11/XDataTransferer.java ! src/solaris/classes/sun/awt/X11/XDecoratedPeer.java ! src/solaris/classes/sun/awt/X11/XDesktopPeer.java ! src/solaris/classes/sun/awt/X11/XDialogPeer.java ! src/solaris/classes/sun/awt/X11/XDnDConstants.java ! src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java ! src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java ! src/solaris/classes/sun/awt/X11/XDragAndDropProtocols.java ! src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java ! src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java ! src/solaris/classes/sun/awt/X11/XDragSourceProtocolListener.java ! src/solaris/classes/sun/awt/X11/XDropTargetContextPeer.java ! src/solaris/classes/sun/awt/X11/XDropTargetEventProcessor.java ! src/solaris/classes/sun/awt/X11/XDropTargetProtocol.java ! src/solaris/classes/sun/awt/X11/XDropTargetProtocolListener.java ! src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java ! src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedChildProxy.java ! src/solaris/classes/sun/awt/X11/XEmbedChildProxyPeer.java ! src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java ! src/solaris/classes/sun/awt/X11/XEmbedHelper.java ! src/solaris/classes/sun/awt/X11/XEmbedServerTester.java ! src/solaris/classes/sun/awt/X11/XEmbeddedFrame.java ! src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java ! src/solaris/classes/sun/awt/X11/XEmbeddingContainer.java ! src/solaris/classes/sun/awt/X11/XErrorHandler.java ! src/solaris/classes/sun/awt/X11/XEventDispatcher.java ! src/solaris/classes/sun/awt/X11/XException.java ! src/solaris/classes/sun/awt/X11/XFileDialogPeer.java ! src/solaris/classes/sun/awt/X11/XFocusProxyWindow.java ! src/solaris/classes/sun/awt/X11/XFontPeer.java ! src/solaris/classes/sun/awt/X11/XFramePeer.java ! src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java ! src/solaris/classes/sun/awt/X11/XHorizontalScrollbar.java ! src/solaris/classes/sun/awt/X11/XIconInfo.java ! src/solaris/classes/sun/awt/X11/XIconWindow.java ! src/solaris/classes/sun/awt/X11/XInputMethod.java ! src/solaris/classes/sun/awt/X11/XInputMethodDescriptor.java ! src/solaris/classes/sun/awt/X11/XKeySymConstants.java ! src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java ! src/solaris/classes/sun/awt/X11/XKeysym.java ! src/solaris/classes/sun/awt/X11/XLabelPeer.java ! src/solaris/classes/sun/awt/X11/XLayerProtocol.java ! src/solaris/classes/sun/awt/X11/XListPeer.java ! src/solaris/classes/sun/awt/X11/XMSelection.java ! src/solaris/classes/sun/awt/X11/XMSelectionListener.java ! src/solaris/classes/sun/awt/X11/XMenuBarPeer.java ! src/solaris/classes/sun/awt/X11/XMenuItemPeer.java ! src/solaris/classes/sun/awt/X11/XMenuPeer.java ! src/solaris/classes/sun/awt/X11/XMenuWindow.java ! src/solaris/classes/sun/awt/X11/XModalityProtocol.java ! src/solaris/classes/sun/awt/X11/XMouseDragGestureRecognizer.java ! src/solaris/classes/sun/awt/X11/XMouseInfoPeer.java ! src/solaris/classes/sun/awt/X11/XNETProtocol.java ! src/solaris/classes/sun/awt/X11/XPanelPeer.java ! src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java ! src/solaris/classes/sun/awt/X11/XPropertyCache.java ! src/solaris/classes/sun/awt/X11/XProtocol.java ! src/solaris/classes/sun/awt/X11/XProtocolConstants.java ! src/solaris/classes/sun/awt/X11/XQueryTree.java ! src/solaris/classes/sun/awt/X11/XRepaintArea.java ! src/solaris/classes/sun/awt/X11/XRobotPeer.java ! src/solaris/classes/sun/awt/X11/XRootWindow.java ! src/solaris/classes/sun/awt/X11/XScrollPanePeer.java ! src/solaris/classes/sun/awt/X11/XScrollbar.java ! src/solaris/classes/sun/awt/X11/XScrollbarClient.java ! src/solaris/classes/sun/awt/X11/XScrollbarPeer.java ! src/solaris/classes/sun/awt/X11/XSelection.java ! src/solaris/classes/sun/awt/X11/XStateProtocol.java ! src/solaris/classes/sun/awt/X11/XSystemTrayPeer.java ! src/solaris/classes/sun/awt/X11/XTextAreaPeer.java ! src/solaris/classes/sun/awt/X11/XTextFieldPeer.java ! src/solaris/classes/sun/awt/X11/XTextTransferHelper.java ! src/solaris/classes/sun/awt/X11/XToolkit.java ! src/solaris/classes/sun/awt/X11/XToolkitThreadBlockedHandler.java ! src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java ! src/solaris/classes/sun/awt/X11/XTrayIconPeer.java ! src/solaris/classes/sun/awt/X11/XUtilConstants.java ! src/solaris/classes/sun/awt/X11/XVerticalScrollbar.java ! src/solaris/classes/sun/awt/X11/XWINProtocol.java ! src/solaris/classes/sun/awt/X11/XWM.java ! src/solaris/classes/sun/awt/X11/XWarningWindow.java ! src/solaris/classes/sun/awt/X11/XWindow.java ! src/solaris/classes/sun/awt/X11/XWindowAttributesData.java ! src/solaris/classes/sun/awt/X11/XWindowPeer.java ! src/solaris/classes/sun/awt/X11/XWrapperBase.java ! src/solaris/classes/sun/awt/X11/XlibUtil.java ! src/solaris/classes/sun/awt/X11/XlibWrapper.java ! src/solaris/classes/sun/awt/X11/doc-files/Modality.txt ! src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java ! src/solaris/classes/sun/awt/X11/genhash.awk ! src/solaris/classes/sun/awt/X11/keysym2ucs.h ! src/solaris/classes/sun/awt/X11ComponentPeer.java ! src/solaris/classes/sun/awt/X11CustomCursor.java ! src/solaris/classes/sun/awt/X11GraphicsConfig.java ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/solaris/classes/sun/awt/X11InputMethod.java ! src/solaris/classes/sun/awt/X11InputMethodDescriptor.java ! src/solaris/classes/sun/awt/XSettings.java ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.SuSE.properties ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties ! src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties ! src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.5.8.properties ! src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.5.9.properties ! src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties ! src/solaris/classes/sun/awt/motif/AWTLockAccess.java ! src/solaris/classes/sun/awt/motif/MFontConfiguration.java ! src/solaris/classes/sun/awt/motif/MFontPeer.java ! src/solaris/classes/sun/awt/motif/MToolkit.java ! src/solaris/classes/sun/awt/motif/MToolkitThreadBlockedHandler.java ! src/solaris/classes/sun/awt/motif/MWindowAttributes.java ! src/solaris/classes/sun/awt/motif/X11CNS11643.java ! src/solaris/classes/sun/awt/motif/X11CNS11643P1.java ! src/solaris/classes/sun/awt/motif/X11CNS11643P2.java ! src/solaris/classes/sun/awt/motif/X11CNS11643P3.java ! src/solaris/classes/sun/awt/motif/X11Dingbats.java ! src/solaris/classes/sun/awt/motif/X11FontMetrics.java ! src/solaris/classes/sun/awt/motif/X11GB18030_0.java ! src/solaris/classes/sun/awt/motif/X11GB18030_1.java ! src/solaris/classes/sun/awt/motif/X11GB2312.java ! src/solaris/classes/sun/awt/motif/X11GBK.java ! src/solaris/classes/sun/awt/motif/X11JIS0201.java ! src/solaris/classes/sun/awt/motif/X11JIS0208.java ! src/solaris/classes/sun/awt/motif/X11JIS0212.java ! src/solaris/classes/sun/awt/motif/X11Johab.java ! src/solaris/classes/sun/awt/motif/X11KSC5601.java ! src/solaris/classes/sun/awt/motif/X11SunUnicode_0.java ! src/solaris/classes/sun/awt/windows/ThemeReader.java ! src/solaris/classes/sun/font/FcFontConfiguration.java ! src/solaris/classes/sun/font/FontConfigManager.java ! src/solaris/classes/sun/font/NativeFont.java ! src/solaris/classes/sun/font/NativeGlyphMapper.java ! src/solaris/classes/sun/font/NativeStrike.java ! src/solaris/classes/sun/font/NativeStrikeDisposer.java ! src/solaris/classes/sun/font/X11TextRenderer.java ! src/solaris/classes/sun/font/XMap.java ! src/solaris/classes/sun/java2d/BackBufferCapsProvider.java ! src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java ! src/solaris/classes/sun/java2d/opengl/GLXGraphicsConfig.java ! src/solaris/classes/sun/java2d/opengl/GLXSurfaceData.java ! src/solaris/classes/sun/java2d/opengl/GLXVolatileSurfaceManager.java ! src/solaris/classes/sun/java2d/x11/X11PMBlitBgLoops.java ! src/solaris/classes/sun/java2d/x11/X11PMBlitLoops.java ! src/solaris/classes/sun/java2d/x11/X11Renderer.java ! src/solaris/classes/sun/java2d/x11/X11SurfaceData.java ! src/solaris/classes/sun/java2d/x11/X11SurfaceDataProxy.java ! src/solaris/classes/sun/java2d/x11/X11VolatileSurfaceManager.java ! src/solaris/classes/sun/management/FileSystemImpl.java ! src/solaris/classes/sun/misc/FileURLMapper.java ! src/solaris/classes/sun/misc/OSEnvironment.java ! src/solaris/classes/sun/net/NetHooks.java ! src/solaris/classes/sun/net/dns/ResolverConfigurationImpl.java ! src/solaris/classes/sun/net/spi/SdpProvider.java ! src/solaris/classes/sun/net/www/protocol/file/Handler.java ! src/solaris/classes/sun/net/www/protocol/http/NTLMAuthentication.java ! src/solaris/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java ! src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java ! src/solaris/classes/sun/nio/ch/DatagramDispatcher.java ! src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java ! src/solaris/classes/sun/nio/ch/DefaultSelectorProvider.java ! src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java ! src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/EPoll.java ! src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java ! src/solaris/classes/sun/nio/ch/EPollPort.java ! src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/EPollSelectorProvider.java ! src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java ! src/solaris/classes/sun/nio/ch/FileKey.java ! src/solaris/classes/sun/nio/ch/InheritedChannel.java ! src/solaris/classes/sun/nio/ch/LinuxAsynchronousChannelProvider.java ! src/solaris/classes/sun/nio/ch/NativeThread.java ! src/solaris/classes/sun/nio/ch/PipeImpl.java ! src/solaris/classes/sun/nio/ch/PollArrayWrapper.java ! src/solaris/classes/sun/nio/ch/PollSelectorImpl.java ! src/solaris/classes/sun/nio/ch/Port.java ! src/solaris/classes/sun/nio/ch/SctpAssocChange.java ! src/solaris/classes/sun/nio/ch/SctpAssociationImpl.java ! src/solaris/classes/sun/nio/ch/SctpChannelImpl.java ! src/solaris/classes/sun/nio/ch/SctpMultiChannelImpl.java ! src/solaris/classes/sun/nio/ch/SctpNet.java ! src/solaris/classes/sun/nio/ch/SctpNotification.java ! src/solaris/classes/sun/nio/ch/SctpPeerAddrChange.java ! src/solaris/classes/sun/nio/ch/SctpResultContainer.java ! src/solaris/classes/sun/nio/ch/SctpSendFailed.java ! src/solaris/classes/sun/nio/ch/SctpServerChannelImpl.java ! src/solaris/classes/sun/nio/ch/SctpShutdown.java ! src/solaris/classes/sun/nio/ch/SinkChannelImpl.java ! src/solaris/classes/sun/nio/ch/SocketDispatcher.java ! src/solaris/classes/sun/nio/ch/SolarisAsynchronousChannelProvider.java ! src/solaris/classes/sun/nio/ch/SolarisEventPort.java ! src/solaris/classes/sun/nio/ch/SourceChannelImpl.java ! src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java ! src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java ! src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT.java ! src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT_Decoder.java ! src/solaris/classes/sun/nio/cs/ext/COMPOUND_TEXT_Encoder.java ! src/solaris/classes/sun/nio/cs/ext/CompoundTextSupport.java ! src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/DefaultFileTypeDetector.java ! src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java ! src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java ! src/solaris/classes/sun/nio/fs/LinuxFileStore.java ! src/solaris/classes/sun/nio/fs/LinuxFileSystem.java ! src/solaris/classes/sun/nio/fs/LinuxFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/LinuxNativeDispatcher.java ! src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java ! src/solaris/classes/sun/nio/fs/LinuxWatchService.java ! src/solaris/classes/sun/nio/fs/SolarisAclFileAttributeView.java ! src/solaris/classes/sun/nio/fs/SolarisFileStore.java ! src/solaris/classes/sun/nio/fs/SolarisFileSystem.java ! src/solaris/classes/sun/nio/fs/SolarisFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/SolarisNativeDispatcher.java ! src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java ! src/solaris/classes/sun/nio/fs/SolarisWatchService.java ! src/solaris/classes/sun/nio/fs/UnixChannelFactory.java ! src/solaris/classes/sun/nio/fs/UnixCopyFile.java ! src/solaris/classes/sun/nio/fs/UnixDirectoryStream.java ! src/solaris/classes/sun/nio/fs/UnixException.java ! src/solaris/classes/sun/nio/fs/UnixFileAttributeViews.java ! src/solaris/classes/sun/nio/fs/UnixFileAttributes.java ! src/solaris/classes/sun/nio/fs/UnixFileKey.java ! src/solaris/classes/sun/nio/fs/UnixFileModeAttribute.java ! src/solaris/classes/sun/nio/fs/UnixFileStore.java ! src/solaris/classes/sun/nio/fs/UnixFileStoreAttributes.java ! src/solaris/classes/sun/nio/fs/UnixFileSystem.java ! src/solaris/classes/sun/nio/fs/UnixFileSystemProvider.java ! src/solaris/classes/sun/nio/fs/UnixMountEntry.java ! src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java ! src/solaris/classes/sun/nio/fs/UnixPath.java ! src/solaris/classes/sun/nio/fs/UnixSecureDirectoryStream.java ! src/solaris/classes/sun/nio/fs/UnixUriUtils.java ! src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java ! src/solaris/classes/sun/print/AttributeClass.java ! src/solaris/classes/sun/print/CUPSPrinter.java ! src/solaris/classes/sun/print/IPPPrintService.java ! src/solaris/classes/sun/print/UnixPrintJob.java ! src/solaris/classes/sun/print/UnixPrintService.java ! src/solaris/classes/sun/print/UnixPrintServiceLookup.java ! src/solaris/classes/sun/security/provider/NativePRNG.java ! src/solaris/classes/sun/security/provider/NativeSeedGenerator.java ! src/solaris/classes/sun/security/smartcardio/PlatformPCSC.java ! src/solaris/classes/sun/tools/attach/LinuxAttachProvider.java ! src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java ! src/solaris/classes/sun/tools/attach/SolarisAttachProvider.java ! src/solaris/classes/sun/tools/attach/SolarisVirtualMachine.java ! src/solaris/demo/jni/Poller/Client.java ! src/solaris/demo/jni/Poller/LinkedQueue.java ! src/solaris/demo/jni/Poller/Poller.c ! src/solaris/demo/jni/Poller/Poller.java ! src/solaris/demo/jni/Poller/PollingServer.java ! src/solaris/demo/jni/Poller/SimpleServer.java ! src/solaris/demo/jvmti/hprof/hprof_md.c ! src/solaris/doc/sun/man/man1/appletviewer.1 ! src/solaris/doc/sun/man/man1/apt.1 ! src/solaris/doc/sun/man/man1/extcheck.1 ! src/solaris/doc/sun/man/man1/idlj.1 ! src/solaris/doc/sun/man/man1/ja/appletviewer.1 ! src/solaris/doc/sun/man/man1/ja/apt.1 ! src/solaris/doc/sun/man/man1/ja/extcheck.1 ! src/solaris/doc/sun/man/man1/ja/idlj.1 ! src/solaris/doc/sun/man/man1/ja/jar.1 ! src/solaris/doc/sun/man/man1/ja/jarsigner.1 ! src/solaris/doc/sun/man/man1/ja/java.1 ! src/solaris/doc/sun/man/man1/ja/javac.1 ! src/solaris/doc/sun/man/man1/ja/javadoc.1 ! src/solaris/doc/sun/man/man1/ja/javah.1 ! src/solaris/doc/sun/man/man1/ja/javap.1 ! src/solaris/doc/sun/man/man1/ja/javaws.1 ! src/solaris/doc/sun/man/man1/ja/jconsole.1 ! src/solaris/doc/sun/man/man1/ja/jdb.1 ! src/solaris/doc/sun/man/man1/ja/jhat.1 ! src/solaris/doc/sun/man/man1/ja/jinfo.1 ! src/solaris/doc/sun/man/man1/ja/jmap.1 ! src/solaris/doc/sun/man/man1/ja/jps.1 ! src/solaris/doc/sun/man/man1/ja/jrunscript.1 ! src/solaris/doc/sun/man/man1/ja/jsadebugd.1 ! src/solaris/doc/sun/man/man1/ja/jstack.1 ! src/solaris/doc/sun/man/man1/ja/jstat.1 ! src/solaris/doc/sun/man/man1/ja/jstatd.1 ! src/solaris/doc/sun/man/man1/ja/keytool.1 ! src/solaris/doc/sun/man/man1/ja/native2ascii.1 ! src/solaris/doc/sun/man/man1/ja/orbd.1 ! src/solaris/doc/sun/man/man1/ja/pack200.1 ! src/solaris/doc/sun/man/man1/ja/policytool.1 ! src/solaris/doc/sun/man/man1/ja/rmic.1 ! src/solaris/doc/sun/man/man1/ja/rmid.1 ! src/solaris/doc/sun/man/man1/ja/rmiregistry.1 ! src/solaris/doc/sun/man/man1/ja/schemagen.1 ! src/solaris/doc/sun/man/man1/ja/serialver.1 ! src/solaris/doc/sun/man/man1/ja/servertool.1 ! src/solaris/doc/sun/man/man1/ja/tnameserv.1 ! src/solaris/doc/sun/man/man1/ja/unpack200.1 ! src/solaris/doc/sun/man/man1/ja/wsgen.1 ! src/solaris/doc/sun/man/man1/ja/wsimport.1 ! src/solaris/doc/sun/man/man1/ja/xjc.1 ! src/solaris/doc/sun/man/man1/jar.1 ! src/solaris/doc/sun/man/man1/jarsigner.1 ! src/solaris/doc/sun/man/man1/java.1 ! src/solaris/doc/sun/man/man1/javac.1 ! src/solaris/doc/sun/man/man1/javadoc.1 ! src/solaris/doc/sun/man/man1/javah.1 ! src/solaris/doc/sun/man/man1/javap.1 ! src/solaris/doc/sun/man/man1/javaws.1 ! src/solaris/doc/sun/man/man1/jconsole.1 ! src/solaris/doc/sun/man/man1/jdb.1 ! src/solaris/doc/sun/man/man1/jhat.1 ! src/solaris/doc/sun/man/man1/jinfo.1 ! src/solaris/doc/sun/man/man1/jmap.1 ! src/solaris/doc/sun/man/man1/jps.1 ! src/solaris/doc/sun/man/man1/jrunscript.1 ! src/solaris/doc/sun/man/man1/jsadebugd.1 ! src/solaris/doc/sun/man/man1/jstack.1 ! src/solaris/doc/sun/man/man1/jstat.1 ! src/solaris/doc/sun/man/man1/jstatd.1 ! src/solaris/doc/sun/man/man1/keytool.1 ! src/solaris/doc/sun/man/man1/native2ascii.1 ! src/solaris/doc/sun/man/man1/orbd.1 ! src/solaris/doc/sun/man/man1/pack200.1 ! src/solaris/doc/sun/man/man1/policytool.1 ! src/solaris/doc/sun/man/man1/rmic.1 ! src/solaris/doc/sun/man/man1/rmid.1 ! src/solaris/doc/sun/man/man1/rmiregistry.1 ! src/solaris/doc/sun/man/man1/schemagen.1 ! src/solaris/doc/sun/man/man1/serialver.1 ! src/solaris/doc/sun/man/man1/servertool.1 ! src/solaris/doc/sun/man/man1/tnameserv.1 ! src/solaris/doc/sun/man/man1/unpack200.1 ! src/solaris/doc/sun/man/man1/wsgen.1 ! src/solaris/doc/sun/man/man1/wsimport.1 ! src/solaris/doc/sun/man/man1/xjc.1 ! src/solaris/hpi/export/byteorder_md.h ! src/solaris/hpi/export/hpi_md.h ! src/solaris/hpi/export/io_md.h ! src/solaris/hpi/export/path_md.h ! src/solaris/hpi/export/timeval_md.h ! src/solaris/hpi/include/hpi_init.h ! src/solaris/hpi/include/interrupt.h ! src/solaris/hpi/include/largefile.h ! src/solaris/hpi/include/largefile_linux.h ! src/solaris/hpi/include/largefile_solaris.h ! src/solaris/hpi/native_threads/include/condvar_md.h ! src/solaris/hpi/native_threads/include/monitor_md.h ! src/solaris/hpi/native_threads/include/mutex_md.h ! src/solaris/hpi/native_threads/include/np.h ! src/solaris/hpi/native_threads/include/porting.h ! src/solaris/hpi/native_threads/include/threads_md.h ! src/solaris/hpi/native_threads/src/condvar_md.c ! src/solaris/hpi/native_threads/src/interrupt_md.c ! src/solaris/hpi/native_threads/src/monitor_md.c ! src/solaris/hpi/native_threads/src/mutex_md.c ! src/solaris/hpi/native_threads/src/sys_api_td.c ! src/solaris/hpi/native_threads/src/threads_linux.c ! src/solaris/hpi/native_threads/src/threads_md.c ! src/solaris/hpi/native_threads/src/threads_solaris.c ! src/solaris/hpi/src/interrupt.c ! src/solaris/hpi/src/linker_md.c ! src/solaris/hpi/src/memory_md.c ! src/solaris/hpi/src/system_md.c ! src/solaris/instrument/EncodingSupport_md.c ! src/solaris/instrument/FileSystemSupport_md.c ! src/solaris/instrument/FileSystemSupport_md.h ! src/solaris/javavm/export/jawt_md.h ! src/solaris/javavm/export/jni_md.h ! src/solaris/javavm/export/jvm_md.h ! src/solaris/native/com/sun/management/UnixOperatingSystem_md.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_CommonUtils.h ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiIn.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiOut.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_MidiUtils.h ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCMUtils.h ! src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_Ports.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_PCM.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Ports.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.c ! src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.h ! src/solaris/native/com/sun/security/auth/module/Solaris.c ! src/solaris/native/com/sun/security/auth/module/Unix.c ! src/solaris/native/common/gdefs_md.h ! src/solaris/native/common/jdk_util_md.c ! src/solaris/native/common/jlong_md.h ! src/solaris/native/common/jni_util_md.c ! src/solaris/native/java/io/Console_md.c ! src/solaris/native/java/io/FileDescriptor_md.c ! src/solaris/native/java/io/FileInputStream_md.c ! src/solaris/native/java/io/FileOutputStream_md.c ! src/solaris/native/java/io/FileSystem_md.c ! src/solaris/native/java/io/RandomAccessFile_md.c ! src/solaris/native/java/io/UnixFileSystem_md.c ! src/solaris/native/java/io/canonicalize_md.c ! src/solaris/native/java/io/io_util_md.c ! src/solaris/native/java/io/io_util_md.h ! src/solaris/native/java/lang/ProcessEnvironment_md.c ! src/solaris/native/java/lang/UNIXProcess_md.c ! src/solaris/native/java/lang/java_props_md.c ! src/solaris/native/java/lang/locale_str.h ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/solaris/native/java/net/Inet6AddressImpl.c ! src/solaris/native/java/net/InetAddressImplFactory.c ! src/solaris/native/java/net/NetworkInterface.c ! src/solaris/native/java/net/PlainDatagramSocketImpl.c ! src/solaris/native/java/net/PlainSocketImpl.c ! src/solaris/native/java/net/SocketInputStream.c ! src/solaris/native/java/net/SocketOutputStream.c ! src/solaris/native/java/net/linux_close.c ! src/solaris/native/java/net/net_util_md.c ! src/solaris/native/java/net/net_util_md.h ! src/solaris/native/java/nio/MappedByteBuffer.c ! src/solaris/native/java/util/FileSystemPreferences.c ! src/solaris/native/java/util/TimeZone_md.c ! src/solaris/native/java/util/TimeZone_md.h ! src/solaris/native/java/util/logging.c ! src/solaris/native/sun/awt/CUPSfuncs.c ! src/solaris/native/sun/awt/MouseInfo.c ! src/solaris/native/sun/awt/VDrawingArea.c ! src/solaris/native/sun/awt/VDrawingArea.h ! src/solaris/native/sun/awt/VDrawingAreaP.h ! src/solaris/native/sun/awt/X11Color.c ! src/solaris/native/sun/awt/XDrawingArea.c ! src/solaris/native/sun/awt/XDrawingArea.h ! src/solaris/native/sun/awt/XDrawingAreaP.h ! src/solaris/native/sun/awt/awt.h ! src/solaris/native/sun/awt/awt_AWTEvent.c ! src/solaris/native/sun/awt/awt_AWTEvent.h ! src/solaris/native/sun/awt/awt_Component.h ! src/solaris/native/sun/awt/awt_Cursor.h ! src/solaris/native/sun/awt/awt_DrawingSurface.c ! src/solaris/native/sun/awt/awt_DrawingSurface.h ! src/solaris/native/sun/awt/awt_Event.c ! src/solaris/native/sun/awt/awt_Event.h ! src/solaris/native/sun/awt/awt_Font.c ! src/solaris/native/sun/awt/awt_Font.h ! src/solaris/native/sun/awt/awt_GraphicsEnv.c ! src/solaris/native/sun/awt/awt_GraphicsEnv.h ! src/solaris/native/sun/awt/awt_InputMethod.c ! src/solaris/native/sun/awt/awt_Insets.c ! src/solaris/native/sun/awt/awt_Insets.h ! src/solaris/native/sun/awt/awt_KeyboardFocusManager.h ! src/solaris/native/sun/awt/awt_LoadLibrary.c ! src/solaris/native/sun/awt/awt_MToolkit.c ! src/solaris/native/sun/awt/awt_MToolkit.h ! src/solaris/native/sun/awt/awt_MenuComponent.h ! src/solaris/native/sun/awt/awt_MenuItem.h ! src/solaris/native/sun/awt/awt_Mlib.c ! src/solaris/native/sun/awt/awt_Mlib.h ! src/solaris/native/sun/awt/awt_Plugin.c ! src/solaris/native/sun/awt/awt_Plugin.h ! src/solaris/native/sun/awt/awt_PopupMenu.h ! src/solaris/native/sun/awt/awt_Robot.c ! src/solaris/native/sun/awt/awt_TopLevel.h ! src/solaris/native/sun/awt/awt_UNIXToolkit.c ! src/solaris/native/sun/awt/awt_Window.h ! src/solaris/native/sun/awt/awt_mgrsel.c ! src/solaris/native/sun/awt/awt_mgrsel.h ! src/solaris/native/sun/awt/awt_motif.h ! src/solaris/native/sun/awt/awt_p.h ! src/solaris/native/sun/awt/awt_util.c ! src/solaris/native/sun/awt/awt_util.h ! src/solaris/native/sun/awt/awt_wm.c ! src/solaris/native/sun/awt/awt_wm.h ! src/solaris/native/sun/awt/awt_xembed.h ! src/solaris/native/sun/awt/awt_xembed_server.c ! src/solaris/native/sun/awt/awt_xembed_server.h ! src/solaris/native/sun/awt/canvas.h ! src/solaris/native/sun/awt/color.h ! src/solaris/native/sun/awt/colordata.h ! src/solaris/native/sun/awt/extutil.h ! src/solaris/native/sun/awt/fontpath.c ! src/solaris/native/sun/awt/gtk2_interface.c ! src/solaris/native/sun/awt/gtk2_interface.h ! src/solaris/native/sun/awt/img_util_md.h ! src/solaris/native/sun/awt/initIDs.c ! src/solaris/native/sun/awt/jawt.c ! src/solaris/native/sun/awt/list.c ! src/solaris/native/sun/awt/list.h ! src/solaris/native/sun/awt/medialib/mlib_ImageConvCopyEdge_Fp.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffineIndex_BC.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BC.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BC_S16.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BC_U16.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL_S16.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL_S16.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_BL_U16.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageAffine_NN.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_1.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_43.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelExtract_f.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert_1.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageChannelInsert_34.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConv.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvClearEdge.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvCopyEdge.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvIndex3_8_16nw.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvIndex3_8_8nw.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvMxN_8.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvMxN_8ext.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConvVersion.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageConv_8nw.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy_blk.s ! src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy_f.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageCopy_f.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageFilters.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageFilters.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUp.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpFunc.h ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS16U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpS32U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS16U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIS32U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU16U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpSIU8U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU16U8Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8S16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8S32Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8U16Func.c ! src/solaris/native/sun/awt/medialib/mlib_v_ImageLookUpU8U8Func.c ! src/solaris/native/sun/awt/medialib/vis_32.il ! src/solaris/native/sun/awt/medialib/vis_64.il ! src/solaris/native/sun/awt/medialib/vis_asi.h ! src/solaris/native/sun/awt/medialib/vis_proto.h ! src/solaris/native/sun/awt/multiVis.c ! src/solaris/native/sun/awt/multiVis.h ! src/solaris/native/sun/awt/multi_font.c ! src/solaris/native/sun/awt/multi_font.h ! src/solaris/native/sun/awt/robot_common.c ! src/solaris/native/sun/awt/robot_common.h ! src/solaris/native/sun/awt/splashscreen/splashscreen_config.h ! src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c ! src/solaris/native/sun/awt/swing_GTKEngine.c ! src/solaris/native/sun/awt/swing_GTKStyle.c ! src/solaris/native/sun/awt/utility/rect.h ! src/solaris/native/sun/awt/wsutils.h ! src/solaris/native/sun/font/X11FontScaler.c ! src/solaris/native/sun/font/X11FontScaler.h ! src/solaris/native/sun/font/X11TextRenderer.c ! src/solaris/native/sun/java2d/j2d_md.h ! src/solaris/native/sun/java2d/loops/java2d_Mlib.c ! src/solaris/native/sun/java2d/loops/java2d_Mlib.h ! src/solaris/native/sun/java2d/loops/mlib_ImageCopy.h ! src/solaris/native/sun/java2d/loops/mlib_ImageLogic_proto.h ! src/solaris/native/sun/java2d/loops/mlib_ImageZoom.h ! src/solaris/native/sun/java2d/loops/mlib_ImageZoom_NN.c ! src/solaris/native/sun/java2d/loops/mlib_v_ImageClear.c ! src/solaris/native/sun/java2d/loops/mlib_v_ImageClear_f.c ! src/solaris/native/sun/java2d/loops/mlib_v_ImageClear_f.h ! src/solaris/native/sun/java2d/loops/mlib_v_ImageConstLogic.h ! src/solaris/native/sun/java2d/loops/mlib_v_ImageConstXor.c ! src/solaris/native/sun/java2d/loops/mlib_v_ImageLogic.h ! src/solaris/native/sun/java2d/loops/mlib_v_ImageLogic_proto.h ! src/solaris/native/sun/java2d/loops/mlib_v_ImageXor.c ! src/solaris/native/sun/java2d/loops/mlib_v_ImageZoom_NN_f.c ! src/solaris/native/sun/java2d/loops/vis_AlphaMacros.c ! src/solaris/native/sun/java2d/loops/vis_AlphaMacros.h ! src/solaris/native/sun/java2d/loops/vis_AlphaMaskBlit.c ! src/solaris/native/sun/java2d/loops/vis_AlphaMaskFill.c ! src/solaris/native/sun/java2d/loops/vis_ByteGray.c ! src/solaris/native/sun/java2d/loops/vis_ByteGray_FromRgb.c ! src/solaris/native/sun/java2d/loops/vis_ByteGray_Mask.c ! src/solaris/native/sun/java2d/loops/vis_ByteIndexed.c ! src/solaris/native/sun/java2d/loops/vis_DrawLine.c ! src/solaris/native/sun/java2d/loops/vis_FourByteAbgr.c ! src/solaris/native/sun/java2d/loops/vis_FourByteAbgrPre.c ! src/solaris/native/sun/java2d/loops/vis_FuncArray.c ! src/solaris/native/sun/java2d/loops/vis_GlyphList.c ! src/solaris/native/sun/java2d/loops/vis_GlyphListXor.c ! src/solaris/native/sun/java2d/loops/vis_IntArgb.c ! src/solaris/native/sun/java2d/loops/vis_IntArgbBm.c ! src/solaris/native/sun/java2d/loops/vis_IntArgbPre.c ! src/solaris/native/sun/java2d/loops/vis_IntArgbPre_Mask.c ! src/solaris/native/sun/java2d/loops/vis_IntBgr.c ! src/solaris/native/sun/java2d/loops/vis_IntRgb.c ! src/solaris/native/sun/java2d/loops/vis_IntRgbx.c ! src/solaris/native/sun/java2d/loops/vis_Interp.c ! src/solaris/native/sun/java2d/loops/vis_SrcMaskFill.c ! src/solaris/native/sun/java2d/loops/vis_SrcOverMaskBlit.c ! src/solaris/native/sun/java2d/loops/vis_SrcOverMaskFill.c ! src/solaris/native/sun/java2d/loops/vis_ThreeByteBgr.c ! src/solaris/native/sun/java2d/loops/vis_UshortGray.c ! src/solaris/native/sun/java2d/loops/vis_UshortGray_FromRgb.c ! src/solaris/native/sun/java2d/loops/vis_XorBlit.c ! src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.c ! src/solaris/native/sun/java2d/opengl/GLXGraphicsConfig.h ! src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c ! src/solaris/native/sun/java2d/opengl/GLXSurfaceData.h ! src/solaris/native/sun/java2d/opengl/J2D_GL/glx.h ! src/solaris/native/sun/java2d/opengl/J2D_GL/glxext.h ! src/solaris/native/sun/java2d/opengl/OGLFuncs_md.h ! src/solaris/native/sun/java2d/x11/X11FontScaler_md.c ! src/solaris/native/sun/java2d/x11/X11PMBlitLoops.c ! src/solaris/native/sun/java2d/x11/X11Renderer.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.h ! src/solaris/native/sun/java2d/x11/X11TextRenderer_md.c ! src/solaris/native/sun/jdga/dgalock.c ! src/solaris/native/sun/jdga/jdga.h ! src/solaris/native/sun/jdga/jdgadevice.h ! src/solaris/native/sun/management/FileSystemImpl.c ! src/solaris/native/sun/net/dns/ResolverConfigurationImpl.c ! src/solaris/native/sun/net/spi/DefaultProxySelector.c ! src/solaris/native/sun/net/spi/SdpProvider.c ! src/solaris/native/sun/nio/ch/DatagramChannelImpl.c ! src/solaris/native/sun/nio/ch/DatagramDispatcher.c ! src/solaris/native/sun/nio/ch/DevPollArrayWrapper.c ! src/solaris/native/sun/nio/ch/EPoll.c ! src/solaris/native/sun/nio/ch/EPollArrayWrapper.c ! src/solaris/native/sun/nio/ch/EPollPort.c ! src/solaris/native/sun/nio/ch/FileChannelImpl.c ! src/solaris/native/sun/nio/ch/FileDispatcherImpl.c ! src/solaris/native/sun/nio/ch/FileKey.c ! src/solaris/native/sun/nio/ch/IOUtil.c ! src/solaris/native/sun/nio/ch/InheritedChannel.c ! src/solaris/native/sun/nio/ch/NativeThread.c ! src/solaris/native/sun/nio/ch/Net.c ! src/solaris/native/sun/nio/ch/PollArrayWrapper.c ! src/solaris/native/sun/nio/ch/Sctp.h ! src/solaris/native/sun/nio/ch/SctpChannelImpl.c ! src/solaris/native/sun/nio/ch/SctpNet.c ! src/solaris/native/sun/nio/ch/SctpServerChannelImpl.c ! src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c ! src/solaris/native/sun/nio/ch/SocketChannelImpl.c ! src/solaris/native/sun/nio/ch/SocketDispatcher.c ! src/solaris/native/sun/nio/ch/SolarisEventPort.c ! src/solaris/native/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.c ! src/solaris/native/sun/nio/ch/UnixAsynchronousSocketChannelImpl.c ! src/solaris/native/sun/nio/ch/nio_util.h ! src/solaris/native/sun/nio/fs/GnomeFileTypeDetector.c ! src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c ! src/solaris/native/sun/nio/fs/LinuxWatchService.c ! src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c ! src/solaris/native/sun/nio/fs/SolarisWatchService.c ! src/solaris/native/sun/nio/fs/UnixCopyFile.c ! src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c ! src/solaris/native/sun/nio/fs/genSolarisConstants.c ! src/solaris/native/sun/nio/fs/genUnixConstants.c ! src/solaris/native/sun/security/jgss/wrapper/NativeFunc.c ! src/solaris/native/sun/security/jgss/wrapper/NativeFunc.h ! src/solaris/native/sun/security/pkcs11/j2secmod_md.c ! src/solaris/native/sun/security/pkcs11/j2secmod_md.h ! src/solaris/native/sun/security/pkcs11/wrapper/p11_md.c ! src/solaris/native/sun/security/smartcardio/pcsc_md.c ! src/solaris/native/sun/security/smartcardio/pcsc_md.h ! src/solaris/native/sun/tools/attach/LinuxVirtualMachine.c ! src/solaris/native/sun/tools/attach/SolarisVirtualMachine.c ! src/solaris/native/sun/tracing/dtrace/jvm_symbols_md.c ! src/solaris/native/sun/xawt/XToolkit.c ! src/solaris/native/sun/xawt/XWindow.c ! src/solaris/native/sun/xawt/XlibWrapper.c ! src/solaris/native/sun/xawt/awt_Desktop.c ! src/solaris/npt/npt_md.h ! src/solaris/npt/utf_md.c ! src/solaris/npt/utf_md.h ! src/solaris/sample/dtrace/helpers/dtrace_helper.d ! src/solaris/sample/dtrace/hotspot/class_loading_stat.d ! src/solaris/sample/dtrace/hotspot/gc_time_stat.d ! src/solaris/sample/dtrace/hotspot/hotspot_calls_tree.d ! src/solaris/sample/dtrace/hotspot/method_compile_stat.d ! src/solaris/sample/dtrace/hotspot/method_invocation_stat.d ! src/solaris/sample/dtrace/hotspot/method_invocation_stat_filter.d ! src/solaris/sample/dtrace/hotspot/method_invocation_tree.d ! src/solaris/sample/dtrace/hotspot/monitors.d ! src/solaris/sample/dtrace/hotspot/object_allocation_stat.d ! src/solaris/sample/dtrace/hotspot_jni/CriticalSection.d ! src/solaris/sample/dtrace/hotspot_jni/CriticalSection_slow.d ! src/solaris/sample/dtrace/hotspot_jni/hotspot_jni_calls_stat.d ! src/solaris/sample/dtrace/hotspot_jni/hotspot_jni_calls_tree.d ! src/solaris/transport/socket/socket_md.c ! src/solaris/transport/socket/socket_md.h ! src/windows/back/exec_md.c ! src/windows/back/linker_md.c ! src/windows/back/mutex_md.h ! src/windows/back/path_md.h ! src/windows/back/proc_md.h ! src/windows/back/util_md.h ! src/windows/bin/amd64/jvm.cfg ! src/windows/bin/i586/jvm.cfg ! src/windows/bin/ia64/jvm.cfg ! src/windows/bin/java-rmi.c ! src/windows/bin/java_md.c ! src/windows/bin/java_md.h ! src/windows/classes/com/sun/management/OSMBeanFactory.java ! src/windows/classes/com/sun/management/OperatingSystem.java ! src/windows/classes/com/sun/tools/jdi/SharedMemoryAttachingConnector.java ! src/windows/classes/com/sun/tools/jdi/SharedMemoryListeningConnector.java ! src/windows/classes/com/sun/tools/jdi/SharedMemoryTransportService.java ! src/windows/classes/com/sun/tools/jdi/SunSDK.java ! src/windows/classes/java/io/FileDescriptor.java ! src/windows/classes/java/io/Win32FileSystem.java ! src/windows/classes/java/io/WinNTFileSystem.java ! src/windows/classes/java/lang/ProcessEnvironment.java ! src/windows/classes/java/lang/ProcessImpl.java ! src/windows/classes/java/lang/Terminator.java ! src/windows/classes/java/net/DefaultDatagramSocketImplFactory.java ! src/windows/classes/java/net/DualStackPlainDatagramSocketImpl.java ! src/windows/classes/java/net/DualStackPlainSocketImpl.java ! src/windows/classes/java/net/PlainSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainDatagramSocketImpl.java ! src/windows/classes/java/net/TwoStacksPlainSocketImpl.java ! src/windows/classes/java/util/prefs/WindowsPreferences.java ! src/windows/classes/java/util/prefs/WindowsPreferencesFactory.java ! src/windows/classes/sun/awt/Win32ColorModel24.java ! src/windows/classes/sun/awt/Win32FontManager.java ! src/windows/classes/sun/awt/Win32GraphicsConfig.java ! src/windows/classes/sun/awt/Win32GraphicsDevice.java ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java ! src/windows/classes/sun/awt/shell/Win32ShellFolder2.java ! src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java ! src/windows/classes/sun/awt/windows/ThemeReader.java ! src/windows/classes/sun/awt/windows/TranslucentWindowPainter.java ! src/windows/classes/sun/awt/windows/WBufferStrategy.java ! src/windows/classes/sun/awt/windows/WButtonPeer.java ! src/windows/classes/sun/awt/windows/WCanvasPeer.java ! src/windows/classes/sun/awt/windows/WCheckboxMenuItemPeer.java ! src/windows/classes/sun/awt/windows/WCheckboxPeer.java ! src/windows/classes/sun/awt/windows/WChoicePeer.java ! src/windows/classes/sun/awt/windows/WClipboard.java ! src/windows/classes/sun/awt/windows/WColor.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/awt/windows/WCustomCursor.java ! src/windows/classes/sun/awt/windows/WDataTransferer.java ! src/windows/classes/sun/awt/windows/WDefaultFontCharset.java ! src/windows/classes/sun/awt/windows/WDesktopPeer.java ! src/windows/classes/sun/awt/windows/WDesktopProperties.java ! src/windows/classes/sun/awt/windows/WDialogPeer.java ! src/windows/classes/sun/awt/windows/WDragSourceContextPeer.java ! src/windows/classes/sun/awt/windows/WDropTargetContextPeer.java ! src/windows/classes/sun/awt/windows/WEmbeddedFrame.java ! src/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java ! src/windows/classes/sun/awt/windows/WFileDialogPeer.java ! src/windows/classes/sun/awt/windows/WFontConfiguration.java ! src/windows/classes/sun/awt/windows/WFontMetrics.java ! src/windows/classes/sun/awt/windows/WFontPeer.java ! src/windows/classes/sun/awt/windows/WFramePeer.java ! src/windows/classes/sun/awt/windows/WGlobalCursorManager.java ! src/windows/classes/sun/awt/windows/WInputMethod.java ! src/windows/classes/sun/awt/windows/WInputMethodDescriptor.java ! src/windows/classes/sun/awt/windows/WKeyboardFocusManagerPeer.java ! src/windows/classes/sun/awt/windows/WLabelPeer.java ! src/windows/classes/sun/awt/windows/WListPeer.java ! src/windows/classes/sun/awt/windows/WMenuBarPeer.java ! src/windows/classes/sun/awt/windows/WMenuItemPeer.java ! src/windows/classes/sun/awt/windows/WMenuPeer.java ! src/windows/classes/sun/awt/windows/WMouseDragGestureRecognizer.java ! src/windows/classes/sun/awt/windows/WObjectPeer.java ! src/windows/classes/sun/awt/windows/WPageDialog.java ! src/windows/classes/sun/awt/windows/WPageDialogPeer.java ! src/windows/classes/sun/awt/windows/WPanelPeer.java ! src/windows/classes/sun/awt/windows/WPathGraphics.java ! src/windows/classes/sun/awt/windows/WPopupMenuPeer.java ! src/windows/classes/sun/awt/windows/WPrintDialog.java ! src/windows/classes/sun/awt/windows/WPrintDialogPeer.java ! src/windows/classes/sun/awt/windows/WPrinterJob.java ! src/windows/classes/sun/awt/windows/WRobotPeer.java ! src/windows/classes/sun/awt/windows/WScrollPanePeer.java ! src/windows/classes/sun/awt/windows/WScrollbarPeer.java ! src/windows/classes/sun/awt/windows/WSystemTrayPeer.java ! src/windows/classes/sun/awt/windows/WTextAreaPeer.java ! src/windows/classes/sun/awt/windows/WTextComponentPeer.java ! src/windows/classes/sun/awt/windows/WTextFieldPeer.java ! src/windows/classes/sun/awt/windows/WToolkit.java ! src/windows/classes/sun/awt/windows/WTrayIconPeer.java ! src/windows/classes/sun/awt/windows/WWindowPeer.java ! src/windows/classes/sun/awt/windows/WingDings.java ! src/windows/classes/sun/awt/windows/fontconfig.properties ! src/windows/classes/sun/font/NativeFont.java ! src/windows/classes/sun/font/NativeStrike.java ! src/windows/classes/sun/io/Win32ErrorMode.java ! src/windows/classes/sun/java2d/ScreenUpdateManager.java ! src/windows/classes/sun/java2d/WindowsSurfaceManagerFactory.java ! src/windows/classes/sun/java2d/d3d/D3DBlitLoops.java ! src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java ! src/windows/classes/sun/java2d/d3d/D3DContext.java ! src/windows/classes/sun/java2d/d3d/D3DDrawImage.java ! src/windows/classes/sun/java2d/d3d/D3DGraphicsConfig.java ! src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java ! src/windows/classes/sun/java2d/d3d/D3DMaskBlit.java ! src/windows/classes/sun/java2d/d3d/D3DMaskFill.java ! src/windows/classes/sun/java2d/d3d/D3DPaints.java ! src/windows/classes/sun/java2d/d3d/D3DRenderQueue.java ! src/windows/classes/sun/java2d/d3d/D3DRenderer.java ! src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java ! src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java ! src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java ! src/windows/classes/sun/java2d/d3d/D3DTextRenderer.java ! src/windows/classes/sun/java2d/d3d/D3DVolatileSurfaceManager.java ! src/windows/classes/sun/java2d/opengl/WGLGraphicsConfig.java ! src/windows/classes/sun/java2d/opengl/WGLSurfaceData.java ! src/windows/classes/sun/java2d/opengl/WGLVolatileSurfaceManager.java ! src/windows/classes/sun/java2d/windows/GDIBlitLoops.java ! src/windows/classes/sun/java2d/windows/GDIRenderer.java ! src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java ! src/windows/classes/sun/java2d/windows/WindowsFlags.java ! src/windows/classes/sun/management/FileSystemImpl.java ! src/windows/classes/sun/misc/FileURLMapper.java ! src/windows/classes/sun/misc/OSEnvironment.java ! src/windows/classes/sun/net/NetHooks.java ! src/windows/classes/sun/net/dns/ResolverConfigurationImpl.java ! src/windows/classes/sun/net/www/protocol/file/Handler.java ! src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java ! src/windows/classes/sun/net/www/protocol/http/ntlm/NTLMAuthentication.java ! src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java ! src/windows/classes/sun/nio/ch/DatagramDispatcher.java ! src/windows/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java ! src/windows/classes/sun/nio/ch/DefaultSelectorProvider.java ! src/windows/classes/sun/nio/ch/FileDispatcherImpl.java ! src/windows/classes/sun/nio/ch/FileKey.java ! src/windows/classes/sun/nio/ch/Iocp.java ! src/windows/classes/sun/nio/ch/NativeThread.java ! src/windows/classes/sun/nio/ch/PendingIoCache.java ! src/windows/classes/sun/nio/ch/PipeImpl.java ! src/windows/classes/sun/nio/ch/PollArrayWrapper.java ! src/windows/classes/sun/nio/ch/SctpChannelImpl.java ! src/windows/classes/sun/nio/ch/SctpMultiChannelImpl.java ! src/windows/classes/sun/nio/ch/SctpServerChannelImpl.java ! src/windows/classes/sun/nio/ch/SinkChannelImpl.java ! src/windows/classes/sun/nio/ch/SocketDispatcher.java ! src/windows/classes/sun/nio/ch/SourceChannelImpl.java ! src/windows/classes/sun/nio/ch/WindowsAsynchronousChannelProvider.java ! src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java ! src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java ! src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java ! src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java ! src/windows/classes/sun/nio/ch/WindowsSelectorProvider.java ! src/windows/classes/sun/nio/fs/DefaultFileSystemProvider.java ! src/windows/classes/sun/nio/fs/DefaultFileTypeDetector.java ! src/windows/classes/sun/nio/fs/RegistryFileTypeDetector.java ! src/windows/classes/sun/nio/fs/WindowsAclFileAttributeView.java ! src/windows/classes/sun/nio/fs/WindowsChannelFactory.java ! src/windows/classes/sun/nio/fs/WindowsConstants.java ! src/windows/classes/sun/nio/fs/WindowsDirectoryStream.java ! src/windows/classes/sun/nio/fs/WindowsException.java ! src/windows/classes/sun/nio/fs/WindowsFileAttributeViews.java ! src/windows/classes/sun/nio/fs/WindowsFileAttributes.java ! src/windows/classes/sun/nio/fs/WindowsFileCopy.java ! src/windows/classes/sun/nio/fs/WindowsFileStore.java ! src/windows/classes/sun/nio/fs/WindowsFileSystem.java ! src/windows/classes/sun/nio/fs/WindowsFileSystemProvider.java ! src/windows/classes/sun/nio/fs/WindowsLinkSupport.java ! src/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java ! src/windows/classes/sun/nio/fs/WindowsPath.java ! src/windows/classes/sun/nio/fs/WindowsPathParser.java ! src/windows/classes/sun/nio/fs/WindowsPathType.java ! src/windows/classes/sun/nio/fs/WindowsSecurity.java ! src/windows/classes/sun/nio/fs/WindowsSecurityDescriptor.java ! src/windows/classes/sun/nio/fs/WindowsUriSupport.java ! src/windows/classes/sun/nio/fs/WindowsUserDefinedFileAttributeView.java ! src/windows/classes/sun/nio/fs/WindowsUserPrincipals.java ! src/windows/classes/sun/nio/fs/WindowsWatchService.java ! src/windows/classes/sun/print/Win32MediaTray.java ! src/windows/classes/sun/print/Win32PrintJob.java ! src/windows/classes/sun/print/Win32PrintService.java ! src/windows/classes/sun/print/Win32PrintServiceLookup.java ! src/windows/classes/sun/security/krb5/internal/tools/Kinit.java ! src/windows/classes/sun/security/krb5/internal/tools/KinitOptions.java ! src/windows/classes/sun/security/krb5/internal/tools/Klist.java ! src/windows/classes/sun/security/krb5/internal/tools/Ktab.java ! src/windows/classes/sun/security/mscapi/Key.java ! src/windows/classes/sun/security/mscapi/KeyStore.java ! src/windows/classes/sun/security/mscapi/PRNG.java ! src/windows/classes/sun/security/mscapi/RSACipher.java ! src/windows/classes/sun/security/mscapi/RSAKeyPair.java ! src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java ! src/windows/classes/sun/security/mscapi/RSAPrivateKey.java ! src/windows/classes/sun/security/mscapi/RSAPublicKey.java ! src/windows/classes/sun/security/mscapi/RSASignature.java ! src/windows/classes/sun/security/mscapi/SunMSCAPI.java ! src/windows/classes/sun/security/provider/NativePRNG.java ! src/windows/classes/sun/security/provider/NativeSeedGenerator.java ! src/windows/classes/sun/security/smartcardio/PlatformPCSC.java ! src/windows/classes/sun/tools/attach/WindowsAttachProvider.java ! src/windows/classes/sun/tools/attach/WindowsVirtualMachine.java ! src/windows/demo/jvmti/hprof/hprof_md.c ! src/windows/hpi/export/byteorder_md.h ! src/windows/hpi/export/hpi_md.h ! src/windows/hpi/export/io_md.h ! src/windows/hpi/export/path_md.h ! src/windows/hpi/export/timeval_md.h ! src/windows/hpi/include/monitor_md.h ! src/windows/hpi/include/mutex_md.h ! src/windows/hpi/include/threads_md.h ! src/windows/hpi/src/linker_md.c ! src/windows/hpi/src/memory_md.c ! src/windows/hpi/src/monitor_md.c ! src/windows/hpi/src/path_md.c ! src/windows/hpi/src/socket_md.c ! src/windows/hpi/src/sys_api_md.c ! src/windows/hpi/src/system_md.c ! src/windows/hpi/src/threads_md.c ! src/windows/instrument/EncodingSupport_md.c ! src/windows/instrument/FileSystemSupport_md.c ! src/windows/instrument/FileSystemSupport_md.h ! src/windows/javavm/export/jawt_md.h ! src/windows/javavm/export/jni_md.h ! src/windows/javavm/export/jvm_md.h ! src/windows/native/com/sun/management/OperatingSystem_md.c ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_DirectSound.cpp ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_MidiIn.cpp ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_MidiOut.c ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Ports.c ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Util.c ! src/windows/native/com/sun/media/sound/PLATFORM_API_WinOS_Util.h ! src/windows/native/com/sun/security/auth/module/nt.c ! src/windows/native/common/gdefs_md.h ! src/windows/native/common/java_main_md.h ! src/windows/native/common/jdk_util_md.c ! src/windows/native/common/jlong_md.h ! src/windows/native/common/jni_util_md.c ! src/windows/native/common/locale_str.h ! src/windows/native/java/io/Console_md.c ! src/windows/native/java/io/FileDescriptor_md.c ! src/windows/native/java/io/FileInputStream_md.c ! src/windows/native/java/io/FileOutputStream_md.c ! src/windows/native/java/io/FileSystem_md.c ! src/windows/native/java/io/RandomAccessFile_md.c ! src/windows/native/java/io/Win32FileSystem_md.c ! src/windows/native/java/io/WinNTFileSystem_md.c ! src/windows/native/java/io/canonicalize_md.c ! src/windows/native/java/io/dirent_md.c ! src/windows/native/java/io/dirent_md.h ! src/windows/native/java/io/io_util_md.c ! src/windows/native/java/io/io_util_md.h ! src/windows/native/java/lang/ProcessEnvironment_md.c ! src/windows/native/java/lang/ProcessImpl_md.c ! src/windows/native/java/lang/java_props_md.c ! src/windows/native/java/net/DualStackPlainDatagramSocketImpl.c ! src/windows/native/java/net/DualStackPlainSocketImpl.c ! src/windows/native/java/net/Inet4AddressImpl.c ! src/windows/native/java/net/Inet6AddressImpl.c ! src/windows/native/java/net/InetAddressImplFactory.c ! src/windows/native/java/net/NetworkInterface.c ! src/windows/native/java/net/NetworkInterface.h ! src/windows/native/java/net/NetworkInterface_win9x.c ! src/windows/native/java/net/NetworkInterface_winXP.c ! src/windows/native/java/net/SocketInputStream.c ! src/windows/native/java/net/SocketOutputStream.c ! src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c ! src/windows/native/java/net/TwoStacksPlainSocketImpl.c ! src/windows/native/java/net/icmp.h ! src/windows/native/java/net/net_util_md.c ! src/windows/native/java/net/net_util_md.h ! src/windows/native/java/nio/MappedByteBuffer.c ! src/windows/native/java/util/TimeZone_md.c ! src/windows/native/java/util/TimeZone_md.h ! src/windows/native/java/util/WindowsPreferences.c ! src/windows/native/java/util/logging.c ! src/windows/native/sun/awt/splashscreen/splashscreen_config.h ! src/windows/native/sun/awt/splashscreen/splashscreen_sys.c ! src/windows/native/sun/awt/utility/rect.h ! src/windows/native/sun/awt_common/awt_makecube.cpp ! src/windows/native/sun/font/fontpath.c ! src/windows/native/sun/font/lcdglyph.c ! src/windows/native/sun/io/Win32ErrorMode.c ! src/windows/native/sun/java2d/d3d/D3DBadHardware.h ! src/windows/native/sun/java2d/d3d/D3DBlitLoops.cpp ! src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ! src/windows/native/sun/java2d/d3d/D3DBufImgOps.cpp ! src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ! src/windows/native/sun/java2d/d3d/D3DContext.cpp ! src/windows/native/sun/java2d/d3d/D3DContext.h ! src/windows/native/sun/java2d/d3d/D3DGlyphCache.cpp ! src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ! src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.cpp ! src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ! src/windows/native/sun/java2d/d3d/D3DMaskBlit.cpp ! src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ! src/windows/native/sun/java2d/d3d/D3DMaskCache.cpp ! src/windows/native/sun/java2d/d3d/D3DMaskCache.h ! src/windows/native/sun/java2d/d3d/D3DMaskFill.cpp ! src/windows/native/sun/java2d/d3d/D3DMaskFill.h ! src/windows/native/sun/java2d/d3d/D3DPaints.cpp ! src/windows/native/sun/java2d/d3d/D3DPaints.h ! src/windows/native/sun/java2d/d3d/D3DPipeline.cpp ! src/windows/native/sun/java2d/d3d/D3DPipeline.h ! src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp ! src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ! src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp ! src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ! src/windows/native/sun/java2d/d3d/D3DRenderer.cpp ! src/windows/native/sun/java2d/d3d/D3DRenderer.h ! src/windows/native/sun/java2d/d3d/D3DResourceManager.cpp ! src/windows/native/sun/java2d/d3d/D3DResourceManager.h ! src/windows/native/sun/java2d/d3d/D3DShaderGen.c ! src/windows/native/sun/java2d/d3d/D3DShaders.h ! src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp ! src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ! src/windows/native/sun/java2d/d3d/D3DTextRenderer.cpp ! src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ! src/windows/native/sun/java2d/d3d/D3DVertexCacher.cpp ! src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ! src/windows/native/sun/java2d/j2d_md.h ! src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ! src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ! src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.c ! src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.c ! src/windows/native/sun/java2d/opengl/WGLSurfaceData.h ! src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp ! src/windows/native/sun/java2d/windows/GDIRenderer.cpp ! src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp ! src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ! src/windows/native/sun/java2d/windows/WindowsFlags.cpp ! src/windows/native/sun/java2d/windows/WindowsFlags.h ! src/windows/native/sun/jkernel/DownloadDialog.cpp ! src/windows/native/sun/jkernel/DownloadDialog.h ! src/windows/native/sun/jkernel/DownloadHelper.cpp ! src/windows/native/sun/jkernel/DownloadHelper.h ! src/windows/native/sun/jkernel/kernel.cpp ! src/windows/native/sun/jkernel/kernel.def ! src/windows/native/sun/jkernel/kernel.h ! src/windows/native/sun/jkernel/kernel.rc ! src/windows/native/sun/jkernel/kernel_de.rc ! src/windows/native/sun/jkernel/kernel_en.rc ! src/windows/native/sun/jkernel/kernel_es.rc ! src/windows/native/sun/jkernel/kernel_fr.rc ! src/windows/native/sun/jkernel/kernel_it.rc ! src/windows/native/sun/jkernel/kernel_ja.rc ! src/windows/native/sun/jkernel/kernel_ko.rc ! src/windows/native/sun/jkernel/kernel_sv.rc ! src/windows/native/sun/jkernel/kernel_zh.rc ! src/windows/native/sun/jkernel/kernel_zh_TW.rc ! src/windows/native/sun/jkernel/resource.h ! src/windows/native/sun/jkernel/stdafx.cpp ! src/windows/native/sun/jkernel/stdafx.h ! src/windows/native/sun/jkernel/version.rc ! src/windows/native/sun/management/FileSystemImpl.c ! src/windows/native/sun/net/dns/ResolverConfigurationImpl.c ! src/windows/native/sun/net/spi/DefaultProxySelector.c ! src/windows/native/sun/net/www/protocol/http/ntlm/NTLMAuthSequence.c ! src/windows/native/sun/nio/ch/DatagramChannelImpl.c ! src/windows/native/sun/nio/ch/DatagramDispatcher.c ! src/windows/native/sun/nio/ch/FileChannelImpl.c ! src/windows/native/sun/nio/ch/FileDispatcherImpl.c ! src/windows/native/sun/nio/ch/FileKey.c ! src/windows/native/sun/nio/ch/IOUtil.c ! src/windows/native/sun/nio/ch/Iocp.c ! src/windows/native/sun/nio/ch/Net.c ! src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c ! src/windows/native/sun/nio/ch/SocketChannelImpl.c ! src/windows/native/sun/nio/ch/SocketDispatcher.c ! src/windows/native/sun/nio/ch/WindowsAsynchronousFileChannelImpl.c ! src/windows/native/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.c ! src/windows/native/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.c ! src/windows/native/sun/nio/ch/WindowsSelectorImpl.c ! src/windows/native/sun/nio/ch/nio_util.h ! src/windows/native/sun/nio/fs/RegistryFileTypeDetector.c ! src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c ! src/windows/native/sun/security/krb5/NativeCreds.c ! src/windows/native/sun/security/krb5/WindowsDirectory.c ! src/windows/native/sun/security/mscapi/security.cpp ! src/windows/native/sun/security/pkcs11/j2secmod_md.c ! src/windows/native/sun/security/pkcs11/j2secmod_md.h ! src/windows/native/sun/security/pkcs11/wrapper/p11_md.c ! src/windows/native/sun/security/provider/WinCAPISeedGenerator.c ! src/windows/native/sun/security/smartcardio/pcsc_md.c ! src/windows/native/sun/security/smartcardio/pcsc_md.h ! src/windows/native/sun/tools/attach/WindowsAttachProvider.c ! src/windows/native/sun/tools/attach/WindowsVirtualMachine.c ! src/windows/native/sun/tracing/dtrace/jvm_symbols_md.c ! src/windows/native/sun/windows/CmdIDList.cpp ! src/windows/native/sun/windows/CmdIDList.h ! src/windows/native/sun/windows/ComCtl32Util.cpp ! src/windows/native/sun/windows/ComCtl32Util.h ! src/windows/native/sun/windows/Devices.cpp ! src/windows/native/sun/windows/Devices.h ! src/windows/native/sun/windows/DllUtil.cpp ! src/windows/native/sun/windows/DllUtil.h ! src/windows/native/sun/windows/GDIHashtable.cpp ! src/windows/native/sun/windows/GDIHashtable.h ! src/windows/native/sun/windows/Hashtable.cpp ! src/windows/native/sun/windows/Hashtable.h ! src/windows/native/sun/windows/MouseInfo.cpp ! src/windows/native/sun/windows/ObjectList.cpp ! src/windows/native/sun/windows/ObjectList.h ! src/windows/native/sun/windows/ShellFolder2.cpp ! src/windows/native/sun/windows/ThemeReader.cpp ! src/windows/native/sun/windows/WBufferStrategy.cpp ! src/windows/native/sun/windows/WPrinterJob.cpp ! src/windows/native/sun/windows/alloc.h ! src/windows/native/sun/windows/awt.h ! src/windows/native/sun/windows/awt.rc ! src/windows/native/sun/windows/awt_AWTEvent.cpp ! src/windows/native/sun/windows/awt_AWTEvent.h ! src/windows/native/sun/windows/awt_BitmapUtil.cpp ! src/windows/native/sun/windows/awt_BitmapUtil.h ! src/windows/native/sun/windows/awt_Brush.cpp ! src/windows/native/sun/windows/awt_Brush.h ! src/windows/native/sun/windows/awt_Button.cpp ! src/windows/native/sun/windows/awt_Button.h ! src/windows/native/sun/windows/awt_Canvas.cpp ! src/windows/native/sun/windows/awt_Canvas.h ! src/windows/native/sun/windows/awt_Checkbox.cpp ! src/windows/native/sun/windows/awt_Checkbox.h ! src/windows/native/sun/windows/awt_Choice.cpp ! src/windows/native/sun/windows/awt_Choice.h ! src/windows/native/sun/windows/awt_Clipboard.cpp ! src/windows/native/sun/windows/awt_Clipboard.h ! src/windows/native/sun/windows/awt_Color.cpp ! src/windows/native/sun/windows/awt_Color.h ! src/windows/native/sun/windows/awt_Component.cpp ! src/windows/native/sun/windows/awt_Component.h ! src/windows/native/sun/windows/awt_Container.cpp ! src/windows/native/sun/windows/awt_Container.h ! src/windows/native/sun/windows/awt_Cursor.cpp ! src/windows/native/sun/windows/awt_Cursor.h ! src/windows/native/sun/windows/awt_CustomPaletteDef.h ! src/windows/native/sun/windows/awt_DCHolder.cpp ! src/windows/native/sun/windows/awt_DCHolder.h ! src/windows/native/sun/windows/awt_DataTransferer.cpp ! src/windows/native/sun/windows/awt_DataTransferer.h ! src/windows/native/sun/windows/awt_Debug.cpp ! src/windows/native/sun/windows/awt_Debug.h ! src/windows/native/sun/windows/awt_Desktop.cpp ! src/windows/native/sun/windows/awt_DesktopProperties.cpp ! src/windows/native/sun/windows/awt_DesktopProperties.h ! src/windows/native/sun/windows/awt_Dialog.cpp ! src/windows/native/sun/windows/awt_Dialog.h ! src/windows/native/sun/windows/awt_Dimension.cpp ! src/windows/native/sun/windows/awt_Dimension.h ! src/windows/native/sun/windows/awt_DnDDS.cpp ! src/windows/native/sun/windows/awt_DnDDS.h ! src/windows/native/sun/windows/awt_DnDDT.cpp ! src/windows/native/sun/windows/awt_DnDDT.h ! src/windows/native/sun/windows/awt_DrawingSurface.cpp ! src/windows/native/sun/windows/awt_DrawingSurface.h ! src/windows/native/sun/windows/awt_Event.cpp ! src/windows/native/sun/windows/awt_Event.h ! src/windows/native/sun/windows/awt_FileDialog.cpp ! src/windows/native/sun/windows/awt_FileDialog.h ! src/windows/native/sun/windows/awt_Font.cpp ! src/windows/native/sun/windows/awt_Font.h ! src/windows/native/sun/windows/awt_Frame.cpp ! src/windows/native/sun/windows/awt_Frame.h ! src/windows/native/sun/windows/awt_GDIObject.cpp ! src/windows/native/sun/windows/awt_GDIObject.h ! src/windows/native/sun/windows/awt_IconCursor.cpp ! src/windows/native/sun/windows/awt_IconCursor.h ! src/windows/native/sun/windows/awt_InputEvent.cpp ! src/windows/native/sun/windows/awt_InputEvent.h ! src/windows/native/sun/windows/awt_InputMethod.cpp ! src/windows/native/sun/windows/awt_InputTextInfor.cpp ! src/windows/native/sun/windows/awt_InputTextInfor.h ! src/windows/native/sun/windows/awt_Insets.cpp ! src/windows/native/sun/windows/awt_Insets.h ! src/windows/native/sun/windows/awt_KeyEvent.cpp ! src/windows/native/sun/windows/awt_KeyEvent.h ! src/windows/native/sun/windows/awt_KeyboardFocusManager.cpp ! src/windows/native/sun/windows/awt_Label.cpp ! src/windows/native/sun/windows/awt_Label.h ! src/windows/native/sun/windows/awt_List.cpp ! src/windows/native/sun/windows/awt_List.h ! src/windows/native/sun/windows/awt_Menu.cpp ! src/windows/native/sun/windows/awt_Menu.h ! src/windows/native/sun/windows/awt_MenuBar.cpp ! src/windows/native/sun/windows/awt_MenuBar.h ! src/windows/native/sun/windows/awt_MenuItem.cpp ! src/windows/native/sun/windows/awt_MenuItem.h ! src/windows/native/sun/windows/awt_Mlib.cpp ! src/windows/native/sun/windows/awt_Mlib.h ! src/windows/native/sun/windows/awt_MouseEvent.cpp ! src/windows/native/sun/windows/awt_MouseEvent.h ! src/windows/native/sun/windows/awt_Object.cpp ! src/windows/native/sun/windows/awt_Object.h ! src/windows/native/sun/windows/awt_Palette.cpp ! src/windows/native/sun/windows/awt_Palette.h ! src/windows/native/sun/windows/awt_Panel.cpp ! src/windows/native/sun/windows/awt_Panel.h ! src/windows/native/sun/windows/awt_Pen.cpp ! src/windows/native/sun/windows/awt_Pen.h ! src/windows/native/sun/windows/awt_PopupMenu.cpp ! src/windows/native/sun/windows/awt_PopupMenu.h ! src/windows/native/sun/windows/awt_PrintControl.cpp ! src/windows/native/sun/windows/awt_PrintControl.h ! src/windows/native/sun/windows/awt_PrintDialog.cpp ! src/windows/native/sun/windows/awt_PrintDialog.h ! src/windows/native/sun/windows/awt_PrintJob.cpp ! src/windows/native/sun/windows/awt_Rectangle.cpp ! src/windows/native/sun/windows/awt_Rectangle.h ! src/windows/native/sun/windows/awt_Robot.cpp ! src/windows/native/sun/windows/awt_Robot.h ! src/windows/native/sun/windows/awt_ScrollPane.cpp ! src/windows/native/sun/windows/awt_ScrollPane.h ! src/windows/native/sun/windows/awt_Scrollbar.cpp ! src/windows/native/sun/windows/awt_Scrollbar.h ! src/windows/native/sun/windows/awt_TextArea.cpp ! src/windows/native/sun/windows/awt_TextArea.h ! src/windows/native/sun/windows/awt_TextComponent.cpp ! src/windows/native/sun/windows/awt_TextComponent.h ! src/windows/native/sun/windows/awt_TextField.cpp ! src/windows/native/sun/windows/awt_TextField.h ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_Toolkit.h ! src/windows/native/sun/windows/awt_TrayIcon.cpp ! src/windows/native/sun/windows/awt_TrayIcon.h ! src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp ! src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ! src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp ! src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ! src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp ! src/windows/native/sun/windows/awt_Window.cpp ! src/windows/native/sun/windows/awt_Window.h ! src/windows/native/sun/windows/awt_new.cpp ! src/windows/native/sun/windows/awt_new.h ! src/windows/native/sun/windows/awt_ole.cpp ! src/windows/native/sun/windows/awt_ole.h ! src/windows/native/sun/windows/awtmsg.h ! src/windows/native/sun/windows/colordata.h ! src/windows/native/sun/windows/img_util_md.h ! src/windows/native/sun/windows/initIDs.cpp ! src/windows/native/sun/windows/jawt.cpp ! src/windows/native/sun/windows/mlib_types_md.h ! src/windows/native/sun/windows/stdhdrs.h ! src/windows/npt/npt_md.h ! src/windows/npt/utf_md.c ! src/windows/npt/utf_md.h ! src/windows/resource/version.rc ! src/windows/transport/shmem/shmem_md.c ! src/windows/transport/shmem/shmem_md.h ! src/windows/transport/socket/socket_md.c ! src/windows/transport/socket/socket_md.h ! test/Makefile ! test/ProblemList.txt ! test/com/sun/awt/SecurityWarning/GetSizeShouldNotReturnZero.java ! test/com/sun/awt/Translucency/WindowOpacity.java ! test/com/sun/crypto/provider/Cipher/AES/Test4511676.java ! test/com/sun/crypto/provider/Cipher/AES/Test4512524.java ! test/com/sun/crypto/provider/Cipher/AES/Test4512704.java ! test/com/sun/crypto/provider/Cipher/AES/Test4513830.java ! test/com/sun/crypto/provider/Cipher/AES/Test4517355.java ! test/com/sun/crypto/provider/Cipher/AES/Test4626070.java ! test/com/sun/crypto/provider/Cipher/AES/TestISO10126Padding.java ! test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_IV.java ! test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VK.java ! test/com/sun/crypto/provider/Cipher/AES/TestKATForECB_VT.java ! test/com/sun/crypto/provider/Cipher/AES/TestShortBuffer.java ! test/com/sun/crypto/provider/Cipher/Blowfish/BlowfishTestVector.java ! test/com/sun/crypto/provider/Cipher/CTR/CounterMode.java ! test/com/sun/crypto/provider/Cipher/CTS/CTSMode.java ! test/com/sun/crypto/provider/Cipher/DES/DesAPITest.java ! test/com/sun/crypto/provider/Cipher/DES/DoFinalReturnLen.java ! test/com/sun/crypto/provider/Cipher/DES/FlushBug.java ! test/com/sun/crypto/provider/Cipher/DES/KeyWrapping.java ! test/com/sun/crypto/provider/Cipher/DES/PaddingTest.java ! test/com/sun/crypto/provider/Cipher/DES/PerformanceTest.java ! test/com/sun/crypto/provider/Cipher/DES/Sealtest.java ! test/com/sun/crypto/provider/Cipher/DES/TestUtility.java ! test/com/sun/crypto/provider/Cipher/KeyWrap/NISTWrapKAT.java ! test/com/sun/crypto/provider/Cipher/KeyWrap/XMLEncKAT.java ! test/com/sun/crypto/provider/Cipher/PBE/DecryptWithoutParameters.java ! test/com/sun/crypto/provider/Cipher/PBE/PBEInvalidParamsTest.java ! test/com/sun/crypto/provider/Cipher/PBE/PBEKeyTest.java ! test/com/sun/crypto/provider/Cipher/PBE/PBEKeysAlgorithmNames.java ! test/com/sun/crypto/provider/Cipher/PBE/PBEParametersTest.java ! test/com/sun/crypto/provider/Cipher/PBE/PKCS12Cipher.java ! test/com/sun/crypto/provider/Cipher/PBE/PKCS12CipherKAT.java ! test/com/sun/crypto/provider/Cipher/PBE/PKCS12Oid.java ! test/com/sun/crypto/provider/Cipher/RC2ArcFour/CipherKAT.java ! test/com/sun/crypto/provider/Cipher/RSA/TestOAEP.java ! test/com/sun/crypto/provider/Cipher/RSA/TestOAEPParameterSpec.java ! test/com/sun/crypto/provider/Cipher/RSA/TestOAEPWithParams.java ! test/com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java ! test/com/sun/crypto/provider/Cipher/RSA/TestRSA.java ! test/com/sun/crypto/provider/Cipher/UTIL/StrongOrUnlimited.java ! test/com/sun/crypto/provider/Cipher/UTIL/TestUtil.java ! test/com/sun/crypto/provider/KeyAgreement/DHGenSecretKey.java ! test/com/sun/crypto/provider/KeyAgreement/DHGenSharedSecret.java ! test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement2.java ! test/com/sun/crypto/provider/KeyAgreement/DHKeyAgreement3.java ! test/com/sun/crypto/provider/KeyAgreement/DHKeyFactory.java ! test/com/sun/crypto/provider/KeyAgreement/DHKeyGenSpeed.java ! test/com/sun/crypto/provider/KeyAgreement/TestExponentSize.java ! test/com/sun/crypto/provider/KeyFactory/PBKDF2HmacSHA1FactoryTest.java ! test/com/sun/crypto/provider/KeyFactory/TestProviderLeak.java ! test/com/sun/crypto/provider/KeyGenerator/Test4628062.java ! test/com/sun/crypto/provider/KeyGenerator/TestExplicitKeyLength.java ! test/com/sun/crypto/provider/Mac/HmacMD5.java ! test/com/sun/crypto/provider/Mac/HmacPBESHA1.java ! test/com/sun/crypto/provider/Mac/HmacSaltLengths.java ! test/com/sun/crypto/provider/Mac/MacClone.java ! test/com/sun/crypto/provider/Mac/MacKAT.java ! test/com/sun/crypto/provider/TLS/TestKeyMaterial.java ! test/com/sun/crypto/provider/TLS/TestMasterSecret.java ! test/com/sun/crypto/provider/TLS/TestPRF.java ! test/com/sun/crypto/provider/TLS/TestPremaster.java ! test/com/sun/crypto/provider/TLS/Utils.java ! test/com/sun/java/swing/plaf/gtk/Test6635110.java ! test/com/sun/java/swing/plaf/windows/Test6824600.java ! test/com/sun/jdi/AcceptTimeout.java ! test/com/sun/jdi/AccessSpecifierTest.java ! test/com/sun/jdi/AfterThreadDeathTest.java ! test/com/sun/jdi/AllLineLocations.java ! test/com/sun/jdi/AnyDebuggeeTest.java ! test/com/sun/jdi/ArrayLengthDumpTest.sh ! test/com/sun/jdi/ArrayRangeTest.java ! test/com/sun/jdi/BacktraceFieldTest.java ! test/com/sun/jdi/BadHandshakeTest.java ! test/com/sun/jdi/BreakpointTest.java ! test/com/sun/jdi/BreakpointWithFullGC.sh ! test/com/sun/jdi/CatchAllTest.sh ! test/com/sun/jdi/CatchCaughtTest.sh ! test/com/sun/jdi/CatchPatternTest.sh ! test/com/sun/jdi/ClassLoaderClassesTest.java ! test/com/sun/jdi/ClassLoaderTarg.java ! test/com/sun/jdi/ClassesByName.java ! test/com/sun/jdi/ClassesByName2Test.java ! test/com/sun/jdi/CommandCommentDelimiter.sh ! test/com/sun/jdi/CompatibleConnectors.java ! test/com/sun/jdi/ConnectedVMs.java ! test/com/sun/jdi/ConstantPoolInfo.java ! test/com/sun/jdi/CountEvent.java ! test/com/sun/jdi/CountFilterTest.java ! test/com/sun/jdi/DataModelTest.java ! test/com/sun/jdi/DebuggerThreadTest.java ! test/com/sun/jdi/DeferredStepTest.sh ! test/com/sun/jdi/DeleteAllBkptsTest.java ! test/com/sun/jdi/DeleteEventRequestsTest.java ! test/com/sun/jdi/DeoptimizeWalk.sh ! test/com/sun/jdi/DoubleAgentTest.java ! test/com/sun/jdi/EarlyReturnNegativeTest.java ! test/com/sun/jdi/EarlyReturnTest.java ! test/com/sun/jdi/EnumTest.java ! test/com/sun/jdi/EvalArgs.sh ! test/com/sun/jdi/EventQueueDisconnectTest.java ! test/com/sun/jdi/ExceptionEvents.java ! test/com/sun/jdi/ExclusiveBind.java ! test/com/sun/jdi/Exit0.java ! test/com/sun/jdi/ExpiredRequestDeletionTest.java ! test/com/sun/jdi/FieldWatchpoints.java ! test/com/sun/jdi/FilterMatch.java ! test/com/sun/jdi/FilterNoMatch.java ! test/com/sun/jdi/FinalLocalsTest.java ! test/com/sun/jdi/FinalizerTest.java ! test/com/sun/jdi/FramesTest.java ! test/com/sun/jdi/GenericsTest.java ! test/com/sun/jdi/GetLocalVariables2Test.java ! test/com/sun/jdi/GetLocalVariables3Test.sh ! test/com/sun/jdi/GetLocalVariables4Test.sh ! test/com/sun/jdi/HomeTest.java ! test/com/sun/jdi/ImmutableResourceTest.java ! test/com/sun/jdi/ImmutableResourceTest.sh ! test/com/sun/jdi/InnerTarg.java ! test/com/sun/jdi/InstTarg.java ! test/com/sun/jdi/InstanceFilter.java ! test/com/sun/jdi/InstancesTest.java ! test/com/sun/jdi/InvokeHangTest.java ! test/com/sun/jdi/InvokeTest.java ! test/com/sun/jdi/JDIScaffold.java ! test/com/sun/jdi/JITDebug.java ! test/com/sun/jdi/JITDebug.sh ! test/com/sun/jdi/Java_gTest.java ! test/com/sun/jdi/JdbArgTest.sh ! test/com/sun/jdi/JdbLockTest.sh ! test/com/sun/jdi/JdbMethodExitTest.sh ! test/com/sun/jdi/JdbMissStep.sh ! test/com/sun/jdi/JdbReadTwiceTest.sh ! test/com/sun/jdi/JdbVarargsTest.sh ! test/com/sun/jdi/LaunchCommandLine.java ! test/com/sun/jdi/LineNumberInfo.java ! test/com/sun/jdi/ListenAddress.java ! test/com/sun/jdi/LocalVariableEqual.java ! test/com/sun/jdi/LocationTest.java ! test/com/sun/jdi/MethodCalls.java ! test/com/sun/jdi/MethodCallsReflection.java ! test/com/sun/jdi/MethodEntryExitEvents.java ! test/com/sun/jdi/MethodExitReturnValuesTest.java ! test/com/sun/jdi/MixedSuspendTest.sh ! test/com/sun/jdi/ModificationWatchpoints.java ! test/com/sun/jdi/MonitorEventTest.java ! test/com/sun/jdi/MonitorFrameInfo.java ! test/com/sun/jdi/MultiBreakpointsTest.java ! test/com/sun/jdi/NewInstanceTest.java ! test/com/sun/jdi/NoLaunchOptionTest.java ! test/com/sun/jdi/NoLocInfoTest.java ! test/com/sun/jdi/NotAField.sh ! test/com/sun/jdi/NullLocalVariable.sh ! test/com/sun/jdi/OnThrowTarget.java ! test/com/sun/jdi/OnThrowTest.java ! test/com/sun/jdi/OptionTest.java ! test/com/sun/jdi/PopAndInvokeTest.java ! test/com/sun/jdi/PopAsynchronousTest.java ! test/com/sun/jdi/PopSynchronousTest.java ! test/com/sun/jdi/PrivateTransportTest.sh ! test/com/sun/jdi/ProcessAttachDebuggee.java ! test/com/sun/jdi/ProcessAttachDebugger.java ! test/com/sun/jdi/ProcessAttachTest.sh ! test/com/sun/jdi/Redefine-g.sh ! test/com/sun/jdi/RedefineAnnotation.sh ! test/com/sun/jdi/RedefineChangeClassOrder.sh ! test/com/sun/jdi/RedefineClasses.sh ! test/com/sun/jdi/RedefineClearBreakpoint.sh ! test/com/sun/jdi/RedefineCrossEvent.java ! test/com/sun/jdi/RedefineCrossStart.java ! test/com/sun/jdi/RedefineException.sh ! test/com/sun/jdi/RedefineFinal.sh ! test/com/sun/jdi/RedefineImplementor.sh ! test/com/sun/jdi/RedefineIntConstantToLong.sh ! test/com/sun/jdi/RedefineMulti.sh ! test/com/sun/jdi/RedefinePop.sh ! test/com/sun/jdi/RedefineStep.sh ! test/com/sun/jdi/RedefineTTYLineNumber.sh ! test/com/sun/jdi/ReferrersTest.java ! test/com/sun/jdi/RepStep.java ! test/com/sun/jdi/RepStepTarg.java ! test/com/sun/jdi/RequestReflectionTest.java ! test/com/sun/jdi/ResumeOneThreadTest.java ! test/com/sun/jdi/RunToExit.java ! test/com/sun/jdi/SDENullTest.java ! test/com/sun/jdi/ShellScaffold.sh ! test/com/sun/jdi/ShutdownDebuggee.java ! test/com/sun/jdi/SimulResumerTest.java ! test/com/sun/jdi/Solaris32AndSolaris64Test.sh ! test/com/sun/jdi/SourceNameFilterTest.java ! test/com/sun/jdi/StepTest.java ! test/com/sun/jdi/StringConvertTest.sh ! test/com/sun/jdi/SuspendNoFlagTest.sh ! test/com/sun/jdi/SuspendThreadTest.java ! test/com/sun/jdi/TargetAdapter.java ! test/com/sun/jdi/TargetListener.java ! test/com/sun/jdi/TemplateTest.java ! test/com/sun/jdi/TestScaffold.java ! test/com/sun/jdi/ThreadGroupTest.java ! test/com/sun/jdi/TwoThreadsTest.java ! test/com/sun/jdi/UTF8Test.java ! test/com/sun/jdi/Unload1Targ.java ! test/com/sun/jdi/Unload2Targ.java ! test/com/sun/jdi/UnloadEventTarg.java ! test/com/sun/jdi/UnpreparedByName.java ! test/com/sun/jdi/UnpreparedClasses.java ! test/com/sun/jdi/VMConnection.java ! test/com/sun/jdi/VMDeathLastTest.java ! test/com/sun/jdi/VMDeathRequestTest.java ! test/com/sun/jdi/VarargsTest.java ! test/com/sun/jdi/Vars.java ! test/com/sun/jdi/WatchFramePop.sh ! test/com/sun/jdi/ZZZcleanup.sh ! test/com/sun/jdi/connect/spi/DebugUsingCustomConnector.java ! test/com/sun/jdi/connect/spi/Foo.java ! test/com/sun/jdi/connect/spi/GeneratedConnectors.java ! test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.java ! test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh ! test/com/sun/jdi/connect/spi/ListConnectors.java ! test/com/sun/jdi/connect/spi/NullTransportService.java ! test/com/sun/jdi/connect/spi/SimpleLaunchingConnector.java ! test/com/sun/jdi/redefine/RedefineSetUp.sh ! test/com/sun/jdi/redefine/RedefineTest.java ! test/com/sun/jdi/redefine/SchemaChange_RedefineSubTarg.java ! test/com/sun/jdi/redefineMethod/RedefineSetUp.sh ! test/com/sun/jdi/redefineMethod/RedefineTest.java ! test/com/sun/jmx/snmp/SnmpOidHashCode.java ! test/com/sun/jmx/snmp/TimeTicksWrapping.java ! test/com/sun/jndi/dns/CheckAccess.java ! test/com/sun/jndi/ldap/BalancedParentheses.java ! test/com/sun/jndi/ldap/InvalidLdapFilters.java ! test/com/sun/management/GarbageCollectorMXBean/LastGCInfo.java ! test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java ! test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.sh ! test/com/sun/management/HotSpotDiagnosticMXBean/GetDiagnosticOptions.java ! test/com/sun/management/HotSpotDiagnosticMXBean/GetVMOption.java ! test/com/sun/management/HotSpotDiagnosticMXBean/SetAllVMOptions.java ! test/com/sun/management/HotSpotDiagnosticMXBean/SetVMOption.java ! test/com/sun/management/OperatingSystemMXBean/GetCommittedVirtualMemorySize.java ! test/com/sun/management/OperatingSystemMXBean/GetFreePhysicalMemorySize.java ! test/com/sun/management/OperatingSystemMXBean/GetFreeSwapSpaceSize.java ! test/com/sun/management/OperatingSystemMXBean/GetProcessCpuTime.java ! test/com/sun/management/OperatingSystemMXBean/GetTotalPhysicalMemorySize.java ! test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java ! test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh ! test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.java ! test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh ! test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.java ! test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh ! test/com/sun/net/httpserver/DummyVerifier.java ! test/com/sun/net/httpserver/FileServerHandler.java ! test/com/sun/net/httpserver/LogFilter.java ! test/com/sun/net/httpserver/SelCacheTest.java ! test/com/sun/net/httpserver/SimpleSSLContext.java ! test/com/sun/net/httpserver/Test.java ! test/com/sun/net/httpserver/Test1.java ! test/com/sun/net/httpserver/Test11.java ! test/com/sun/net/httpserver/Test12.java ! test/com/sun/net/httpserver/Test13.java ! test/com/sun/net/httpserver/Test14.java ! test/com/sun/net/httpserver/Test2.java ! test/com/sun/net/httpserver/Test3.java ! test/com/sun/net/httpserver/Test4.java ! test/com/sun/net/httpserver/Test5.java ! test/com/sun/net/httpserver/Test6.java ! test/com/sun/net/httpserver/Test6a.java ! test/com/sun/net/httpserver/Test7.java ! test/com/sun/net/httpserver/Test7a.java ! test/com/sun/net/httpserver/Test8.java ! test/com/sun/net/httpserver/Test8a.java ! test/com/sun/net/httpserver/Test9.java ! test/com/sun/net/httpserver/Test9a.java ! test/com/sun/net/httpserver/TestLogging.java ! test/com/sun/net/httpserver/bugs/B6339483.java ! test/com/sun/net/httpserver/bugs/B6341616.java ! test/com/sun/net/httpserver/bugs/B6361557.java ! test/com/sun/net/httpserver/bugs/B6373555.java ! test/com/sun/net/httpserver/bugs/B6393710.java ! test/com/sun/net/httpserver/bugs/B6401598.java ! test/com/sun/net/httpserver/bugs/B6421581.java ! test/com/sun/net/httpserver/bugs/B6424196.java ! test/com/sun/net/httpserver/bugs/B6431193.java ! test/com/sun/net/httpserver/bugs/B6433018.java ! test/com/sun/net/httpserver/bugs/B6526158.java ! test/com/sun/net/httpserver/bugs/B6526913.java ! test/com/sun/net/httpserver/bugs/B6529200.java ! test/com/sun/net/httpserver/bugs/B6744329.java ! test/com/sun/net/httpserver/bugs/B6886436.java ! test/com/sun/net/httpserver/bugs/FixedLengthInputStream.java ! test/com/sun/net/httpserver/bugs/HeadTest.java ! test/com/sun/nio/sctp/MessageInfoTests.java ! test/com/sun/nio/sctp/SctpChannel/Bind.java ! test/com/sun/nio/sctp/SctpChannel/CommUp.java ! test/com/sun/nio/sctp/SctpChannel/Connect.java ! test/com/sun/nio/sctp/SctpChannel/Receive.java ! test/com/sun/nio/sctp/SctpChannel/Send.java ! test/com/sun/nio/sctp/SctpChannel/Shutdown.java ! test/com/sun/nio/sctp/SctpChannel/SocketOptionTests.java ! test/com/sun/nio/sctp/SctpChannel/Util.java ! test/com/sun/nio/sctp/SctpMultiChannel/Branch.java ! test/com/sun/nio/sctp/SctpMultiChannel/Send.java ! test/com/sun/nio/sctp/SctpMultiChannel/SocketOptionTests.java ! test/com/sun/nio/sctp/SctpMultiChannel/Util.java ! test/com/sun/nio/sctp/SctpServerChannel/Accept.java ! test/com/sun/nio/sctp/SctpServerChannel/NonBlockingAccept.java ! test/com/sun/nio/sctp/SctpServerChannel/Util.java ! test/com/sun/org/apache/xml/internal/security/TruncateHMAC.java ! test/com/sun/org/apache/xml/internal/security/exceptions/LocaleTest.java ! test/com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java ! test/com/sun/org/apache/xml/internal/security/transforms/MyTransform.java ! test/com/sun/security/auth/CreateLdapPrincipals.java ! test/com/sun/security/auth/callback/DialogCallbackHandler/Default.java ! test/com/sun/security/auth/callback/TextCallbackHandler/Confirm.java ! test/com/sun/security/auth/callback/TextCallbackHandler/Default.java ! test/com/sun/security/auth/callback/TextCallbackHandler/NPE.java ! test/com/sun/security/auth/callback/TextCallbackHandler/Password.java ! test/com/sun/security/auth/login/ConfigFile/EmptyOption.java ! test/com/sun/security/auth/login/ConfigFile/IllegalURL.java ! test/com/sun/security/auth/login/ConfigFile/InconsistentError.java ! test/com/sun/security/auth/login/ConfigFile/InnerClassConfig.java ! test/com/sun/security/auth/login/ConfigFile/Override.java ! test/com/sun/security/auth/login/ConfigFile/PropertyExpansion.java ! test/com/sun/security/auth/module/KeyStoreLoginModule/OptionTest.java ! test/com/sun/security/auth/module/KeyStoreLoginModule/ReadOnly.java ! test/com/sun/security/auth/module/LdapLoginModule/CheckConfigs.java ! test/com/sun/security/auth/module/LdapLoginModule/CheckOptions.java ! test/com/sun/security/jgss/InquireSecContextPermissionCheck.java ! test/com/sun/security/sasl/ClientCallbackHandler.java ! test/com/sun/security/sasl/Cram.java ! test/com/sun/security/sasl/PropertiesFileCallbackHandler.java ! test/com/sun/security/sasl/digest/AuthNoUtf8.java ! test/com/sun/security/sasl/digest/AuthOnly.java ! test/com/sun/security/sasl/digest/AuthRealms.java ! test/com/sun/security/sasl/digest/CheckNegotiatedQOPs.java ! test/com/sun/security/sasl/digest/ClientCallbackHandler.java ! test/com/sun/security/sasl/digest/Integrity.java ! test/com/sun/security/sasl/digest/NoQuoteParams.java ! test/com/sun/security/sasl/digest/Privacy.java ! test/com/sun/security/sasl/digest/PrivacyRc4.java ! test/com/sun/security/sasl/digest/PropertiesFileCallbackHandler.java ! test/com/sun/security/sasl/gsskerb/AuthOnly.java ! test/com/sun/security/sasl/gsskerb/ConfSecurityLayer.java ! test/com/sun/security/sasl/gsskerb/NoSecurityLayer.java ! test/com/sun/security/sasl/gsskerb/PropertiesFileCallbackHandler.java ! test/com/sun/security/sasl/util/CheckAccess.java ! test/com/sun/servicetag/DeleteServiceTag.java ! test/com/sun/servicetag/DuplicateNotFound.java ! test/com/sun/servicetag/FindServiceTags.java ! test/com/sun/servicetag/InstanceUrnCheck.java ! test/com/sun/servicetag/InvalidRegistrationData.java ! test/com/sun/servicetag/InvalidServiceTag.java ! test/com/sun/servicetag/JavaServiceTagTest.java ! test/com/sun/servicetag/JavaServiceTagTest1.java ! test/com/sun/servicetag/NewRegistrationData.java ! test/com/sun/servicetag/SvcTagClient.java ! test/com/sun/servicetag/SystemRegistryTest.java ! test/com/sun/servicetag/TestLoadFromXML.java ! test/com/sun/servicetag/UpdateServiceTagTest.java ! test/com/sun/servicetag/Util.java ! test/com/sun/servicetag/ValidRegistrationData.java ! test/com/sun/tools/attach/Agent.java ! test/com/sun/tools/attach/AgentSetup.sh ! test/com/sun/tools/attach/Application.java ! test/com/sun/tools/attach/ApplicationSetup.sh ! test/com/sun/tools/attach/BadAgent.java ! test/com/sun/tools/attach/BasicTests.java ! test/com/sun/tools/attach/BasicTests.sh ! test/com/sun/tools/attach/CommonSetup.sh ! test/com/sun/tools/attach/PermissionTest.java ! test/com/sun/tools/attach/PermissionTests.sh ! test/com/sun/tools/attach/ProviderTest.java ! test/com/sun/tools/attach/ProviderTests.sh ! test/com/sun/tools/attach/RedefineAgent.java ! test/com/sun/tools/attach/Shutdown.java ! test/com/sun/tools/attach/SimpleProvider.java ! test/com/sun/tools/extcheck/TestExtcheckArgs.java ! test/com/sun/tools/extcheck/TestExtcheckArgs.sh ! test/com/sun/tracing/BasicFunctionality.java ! test/com/sun/tracing/BasicWithSecurityMgr.java ! test/demo/jvmti/Context.java ! test/demo/jvmti/DemoRun.java ! test/demo/jvmti/HeapUser.java ! test/demo/jvmti/Hello.java ! test/demo/jvmti/compiledMethodLoad/CompiledMethodLoadTest.java ! test/demo/jvmti/gctest/BigHello.java ! test/demo/jvmti/gctest/Gctest.java ! test/demo/jvmti/heapTracker/HeapTrackerTest.java ! test/demo/jvmti/heapViewer/HeapViewerTest.java ! test/demo/jvmti/hprof/CpuOldTest.java ! test/demo/jvmti/hprof/CpuSamplesTest.java ! test/demo/jvmti/hprof/CpuTimesDefineClassTest.java ! test/demo/jvmti/hprof/CpuTimesTest.java ! test/demo/jvmti/hprof/DefineClass.java ! test/demo/jvmti/hprof/HeapAllTest.java ! test/demo/jvmti/hprof/HeapBinaryFormatTest.java ! test/demo/jvmti/hprof/HeapDumpTest.java ! test/demo/jvmti/hprof/HeapSitesTest.java ! test/demo/jvmti/hprof/HelloWorld.java ! test/demo/jvmti/hprof/MonitorTest.java ! test/demo/jvmti/hprof/OptionsTest.java ! test/demo/jvmti/hprof/StackMapTableTest.java ! test/demo/jvmti/hprof/UseAllBytecodes.java ! test/demo/jvmti/minst/MinstExample.java ! test/demo/jvmti/minst/MinstTest.java ! test/demo/jvmti/mtrace/JFrameCreateTime.java ! test/demo/jvmti/mtrace/TraceJFrame.java ! test/demo/jvmti/versionCheck/FailsWhenJvmtiVersionDiffers.java ! test/demo/jvmti/waiters/WaitersTest.java ! test/java/awt/Choice/ChoiceKeyEventReaction/ChoiceKeyEventReaction.java ! test/java/awt/Choice/NonFocusablePopupMenuTest/NonFocusablePopupMenuTest.java ! test/java/awt/Choice/UnfocusableToplevel/UnfocusableToplevel.java ! test/java/awt/Component/F10TopToplevel/F10TopToplevel.java ! test/java/awt/Component/NoUpdateUponShow/NoUpdateUponShow.java ! test/java/awt/Component/PrintAllXcheckJNI/PrintAllXcheckJNI.java ! test/java/awt/Component/UpdatingBootTime/UpdatingBootTime.java ! test/java/awt/Component/isLightweightCrash/IsLightweightCrash.java ! test/java/awt/Component/isLightweightCrash/StubPeerCrash.java ! test/java/awt/Container/ValidateRoot/InvalidateMustRespectValidateRoots.java ! test/java/awt/Container/isRemoveNotifyNeeded/JInternalFrameTest.java ! test/java/awt/Cursor/PredefinedPrivate/PredefinedPrivate.java ! test/java/awt/Dialog/CrashXCheckJni/CrashXCheckJni.java ! test/java/awt/Dialog/DialogOverflowSizeTest/DialogSizeOverflowTest.java ! test/java/awt/Dialog/NonResizableDialogSysMenuResize/NonResizableDialogSysMenuResize.java ! test/java/awt/EventDispatchThread/LoopRobustness/LoopRobustness.java ! test/java/awt/EventQueue/6638195/bug6638195.java ! test/java/awt/EventQueue/PushPopDeadlock2/PushPopTest.java ! test/java/awt/FileDialog/DefaultFocusOwner/DefaultFocusOwner.java ! test/java/awt/FileDialog/FileDialogReturnTest/FileDialogReturnTest.java ! test/java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.java ! test/java/awt/FileDialog/MultipleMode/MultipleMode.java ! test/java/awt/FileDialog/RegexpFilterTest/RegexpFilterTest.java ! test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java ! test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java ! test/java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest.java ! test/java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusSetVisibleTest.java ! test/java/awt/Focus/AutoRequestFocusTest/AutoRequestFocusToFrontTest.java ! test/java/awt/Focus/AutoRequestFocusTest/TestHelper.java ! test/java/awt/Focus/ChoiceFocus/ChoiceFocus.java ! test/java/awt/Focus/ClearGlobalFocusOwnerTest/ClearGlobalFocusOwnerTest.java ! test/java/awt/Focus/ClearLwQueueBreakTest/ClearLwQueueBreakTest.java ! test/java/awt/Focus/CloseDialogActivateOwnerTest/CloseDialogActivateOwnerTest.java ! test/java/awt/Focus/ConsumeNextKeyTypedOnModalShowTest/ConsumeNextKeyTypedOnModalShowTest.java ! test/java/awt/Focus/ContainerFocusAutoTransferTest/ContainerFocusAutoTransferTest.java ! test/java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.java ! test/java/awt/Focus/FocusEmbeddedFrameTest/FocusEmbeddedFrameTest.java ! test/java/awt/Focus/FocusTraversalPolicy/DefaultFTPTest.java ! test/java/awt/Focus/FocusTraversalPolicy/LayoutFTPTest.java ! test/java/awt/Focus/FrameJumpingToMouse/FrameJumpingToMouse.java ! test/java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java ! test/java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java ! test/java/awt/Focus/InputVerifierTest3/InputVerifierTest3.java ! test/java/awt/Focus/ModalBlockedStealsFocusTest/ModalBlockedStealsFocusTest.java ! test/java/awt/Focus/NoAutotransferToDisabledCompTest/NoAutotransferToDisabledCompTest.java ! test/java/awt/Focus/NonFocusableResizableTooSmall/NonFocusableResizableTooSmall.java ! test/java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java ! test/java/awt/Focus/NonFocusableWindowTest/NonfocusableOwnerTest.java ! test/java/awt/Focus/OwnedWindowFocusIMECrashTest/OwnedWindowFocusIMECrashTest.java ! test/java/awt/Focus/RemoveAfterRequest/RemoveAfterRequest.java ! test/java/awt/Focus/RequestFocusAndHideTest/RequestFocusAndHideTest.java ! test/java/awt/Focus/RequestFocusToDisabledCompTest/RequestFocusToDisabledCompTest.java ! test/java/awt/Focus/RequestOnCompWithNullParent/RequestOnCompWithNullParent1.java ! test/java/awt/Focus/RestoreFocusOnDisabledComponentTest/RestoreFocusOnDisabledComponentTest.java ! test/java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java ! test/java/awt/Focus/ToFrontFocusTest/ToFrontFocus.java ! test/java/awt/Focus/TranserFocusToWindow/TranserFocusToWindow.java ! test/java/awt/Focus/TypeAhead/TestFocusFreeze.java ! test/java/awt/Focus/WindowInitialFocusTest/WindowInitialFocusTest.java ! test/java/awt/Focus/WrongKeyTypedConsumedTest/WrongKeyTypedConsumedTest.java ! test/java/awt/FontClass/BigMetrics.java ! test/java/awt/FontClass/CreateFont/BigFont.java ! test/java/awt/FontClass/CreateFont/DeleteFont.java ! test/java/awt/FontClass/CreateFont/DeleteFont.sh ! test/java/awt/FontClass/CreateFont/bigfont.html ! test/java/awt/FontClass/CreateFont/fileaccess/FontFile.java ! test/java/awt/FontClass/FontAccess.java ! test/java/awt/FontClass/FontPrivilege.java ! test/java/awt/Frame/DynamicLayout/DynamicLayout.java ! test/java/awt/Frame/FrameSize/TestFrameSize.java ! test/java/awt/Frame/InitialMaximizedTest/InitialMaximizedTest.java ! test/java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java ! test/java/awt/Frame/MaximizedToIconified/MaximizedToIconified.java ! test/java/awt/Frame/ShownOffScreenOnWin98/ShownOffScreenOnWin98Test.java ! test/java/awt/Frame/ShownOnPack/ShownOnPack.java ! test/java/awt/Frame/UnfocusableMaximizedFrameResizablity/UnfocusableMaximizedFrameResizablity.java ! test/java/awt/FullScreen/BufferStrategyExceptionTest/BufferStrategyExceptionTest.java ! test/java/awt/FullScreen/MultimonFullscreenTest/MultimonFullscreenTest.java ! test/java/awt/FullScreen/NoResizeEventOnDMChangeTest/NoResizeEventOnDMChangeTest.java ! test/java/awt/FullScreen/SetFSWindow/FSFrame.java ! test/java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java ! test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/DisplayModeChanger.java ! test/java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java ! test/java/awt/Graphics/LCDTextAndGraphicsState.java ! test/java/awt/Graphics/TextAAHintsTest.java ! test/java/awt/Graphics2D/DrawString/AlphaSurfaceText.java ! test/java/awt/Graphics2D/DrawString/DrawStrSuper.java ! test/java/awt/Graphics2D/DrawString/EmptyAttrString.java ! test/java/awt/Graphics2D/DrawString/RotTransText.java ! test/java/awt/Graphics2D/DrawString/ScaledLCDTextMetrics.java ! test/java/awt/GraphicsDevice/CloneConfigsTest.java ! test/java/awt/GraphicsEnvironment/PreferLocaleFonts.java ! test/java/awt/GraphicsEnvironment/TestGetDefScreenDevice.java ! test/java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.html ! test/java/awt/GridBagLayout/GridBagLayoutIpadXYTest/GridBagLayoutIpadXYTest.java ! test/java/awt/GridLayout/LayoutExtraGaps/LayoutExtraGaps.java ! test/java/awt/Insets/CombinedTestApp1.java ! test/java/awt/Insets/WindowWithWarningTest/WindowWithWarningTest.java ! test/java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.java ! test/java/awt/KeyboardFocusmanager/TypeAhead/MenuItemActivatedTest/MenuItemActivatedTest.java ! test/java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.java ! test/java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.java ! test/java/awt/List/ActionAfterRemove/ActionAfterRemove.java ! test/java/awt/List/ListFlickers/ListFlickers.java ! test/java/awt/List/SetBackgroundTest/SetBackgroundTest.java ! test/java/awt/List/SetFontTest/SetFontTest.java ! test/java/awt/List/SingleModeDeselect/SingleModeDeselect.java ! test/java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ! test/java/awt/Mixing/HWDisappear.java ! test/java/awt/Mixing/JButtonInGlassPane.java ! test/java/awt/Mixing/LWComboBox.java ! test/java/awt/Mixing/LWPopupMenu.java ! test/java/awt/Mixing/MixingInHwPanel.java ! test/java/awt/Mixing/MixingOnDialog.java ! test/java/awt/Mixing/MixingOnShrinkingHWButton.java ! test/java/awt/Mixing/NonOpaqueInternalFrame.java ! test/java/awt/Mixing/OpaqueTest.java ! test/java/awt/Mixing/OverlappingButtons.java ! test/java/awt/Mixing/ValidBounds.java ! test/java/awt/Mixing/Validating.java ! test/java/awt/Mixing/setComponentZOrder.java ! test/java/awt/Modal/LWModalTest/LWModalTest.java ! test/java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java ! test/java/awt/Modal/NpeOnClose/NpeOnCloseTest.java ! test/java/awt/Modal/SupportedTest/SupportedTest.java ! test/java/awt/Modal/WsDisabledStyle/CloseBlocker/CloseBlocker.java ! test/java/awt/Modal/WsDisabledStyle/OverBlocker/OverBlocker.java ! test/java/awt/Modal/WsDisabledStyle/Winkey/Winkey.java ! test/java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java ! test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html ! test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java ! test/java/awt/Mouse/TitleBarDoubleClick/TitleBarDoubleClick.java ! test/java/awt/MouseAdapter/MouseAdapterUnitTest/MouseAdapterUnitTest.java ! test/java/awt/MultipleGradientPaint/MultiGradientTest.java ! test/java/awt/Multiscreen/DeviceIdentificationTest/DeviceIdentificationTest.java ! test/java/awt/Multiscreen/LocationRelativeToTest/LocationRelativeToTest.java ! test/java/awt/Multiscreen/UpdateGCTest/UpdateGCTest.java ! test/java/awt/Multiscreen/WPanelPeerPerf/WPanelPeerPerf.java ! test/java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.java ! test/java/awt/PrintJob/ConstrainedPrintingTest/ConstrainedPrintingTest.java ! test/java/awt/PrintJob/EdgeTest/EdgeTest.java ! test/java/awt/PrintJob/MultipleEnd/MultipleEnd.java ! test/java/awt/PrintJob/PageSetupDlgBlockingTest/PageSetupDlgBlockingTest.java ! test/java/awt/PrintJob/PrintArcTest/PrintArcTest.java ! test/java/awt/PrintJob/PrintCheckboxTest/PrintCheckboxManualTest.java ! test/java/awt/PrintJob/QuoteAndBackslashTest/QuoteAndBackslashTest.java ! test/java/awt/PrintJob/RoundedRectTest/RoundedRectTest.java ! test/java/awt/PrintJob/SaveDialogTitleTest.java ! test/java/awt/PrintJob/Security/SecurityDialogTest.java ! test/java/awt/PrintJob/Security/policy ! test/java/awt/PrintJob/Text/StringWidth.java ! test/java/awt/Robot/CtorTest/CtorTest.java ! test/java/awt/TextArea/TextAreaCursorTest/HoveringAndDraggingTest.java ! test/java/awt/TextArea/UsingWithMouse/SelectionAutoscrollTest.java ! test/java/awt/TextField/ScrollSelectionTest/ScrollSelectionTest.java ! test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.java ! test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh ! test/java/awt/Toolkit/HeadlessTray/HeadlessTray.java ! test/java/awt/Toolkit/RealSync/RealSyncOnEDT.java ! test/java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java ! test/java/awt/TrayIcon/CtorTest/CtorTest.java ! test/java/awt/TrayIcon/DragEventSource/DragEventSource.java ! test/java/awt/Window/AlwaysOnTop/AlwaysOnTopEvenOfWindow.java ! test/java/awt/Window/GrabSequence/GrabSequence.java ! test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java ! test/java/awt/Window/PropertyChangeListenerLockSerialization/PropertyChangeListenerLockSerialization.java ! test/java/awt/Window/SetBackgroundNPE/SetBackgroundNPE.java ! test/java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java ! test/java/awt/Window/TranslucentShapedFrameTest/TSFrame.java ! test/java/awt/Window/TranslucentShapedFrameTest/TranslucentShapedFrameTest.java ! test/java/awt/Window/WindowType/WindowType.java ! test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.java ! test/java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/AbsoluteComponentCenterCalculator.java ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/FileListTransferable.java ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/InterprocessMessages.java ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/NextFramePositionCalculator.java ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/SourcePanel.java ! test/java/awt/datatransfer/DragUnicodeBetweenJVMTest/TargetPanel.java ! test/java/awt/dnd/Button2DragTest/Button2DragTest.java ! test/java/awt/dnd/DnDFileGroupDescriptor/DnDFileGroupDescriptor.java ! test/java/awt/dnd/DnDFileGroupDescriptor/DnDTarget.java ! test/java/awt/dnd/FileListBetweenJVMsTest/FileListBetweenJVMsTest.java ! test/java/awt/dnd/FileListBetweenJVMsTest/FileListTransferable.java ! test/java/awt/dnd/FileListBetweenJVMsTest/InterprocessMessages.java ! test/java/awt/dnd/FileListBetweenJVMsTest/SourceFileListFrame.java ! test/java/awt/dnd/FileListBetweenJVMsTest/TargetFileListFrame.java ! test/java/awt/dnd/ImageDecoratedDnD/DnDSource.java ! test/java/awt/dnd/ImageDecoratedDnD/DnDTarget.java ! test/java/awt/dnd/ImageDecoratedDnD/ImageDecoratedDnD.java ! test/java/awt/dnd/ImageDecoratedDnD/ImageGenerator.java ! test/java/awt/dnd/ImageDecoratedDnD/MyCursor.java ! test/java/awt/dnd/ImageDecoratedDnDInOut/DnDSource.java ! test/java/awt/dnd/ImageDecoratedDnDInOut/DnDTarget.java ! test/java/awt/dnd/ImageDecoratedDnDInOut/ImageDecoratedDnDInOut.java ! test/java/awt/dnd/ImageDecoratedDnDInOut/ImageGenerator.java ! test/java/awt/dnd/ImageDecoratedDnDInOut/MyCursor.java ! test/java/awt/dnd/ImageDecoratedDnDNegative/DnDSource.java ! test/java/awt/dnd/ImageDecoratedDnDNegative/DnDTarget.java ! test/java/awt/dnd/ImageDecoratedDnDNegative/ImageDecoratedDnDNegative.java ! test/java/awt/dnd/ImageDecoratedDnDNegative/ImageGenerator.java ! test/java/awt/dnd/ImageDecoratedDnDNegative/MyCursor.java ! test/java/awt/dnd/URIListBetweenJVMsTest/FileListTransferable.java ! test/java/awt/dnd/URIListBetweenJVMsTest/InterprocessMessages.java ! test/java/awt/dnd/URIListBetweenJVMsTest/SourceFileListFrame.java ! test/java/awt/dnd/URIListBetweenJVMsTest/TargetFileListFrame.java ! test/java/awt/dnd/URIListBetweenJVMsTest/URIListBetweenJVMsTest.java ! test/java/awt/event/HierarchyEvent/AncestorResized/AncestorResized.java ! test/java/awt/event/InvocationEvent/InvocationEventTest.java ! test/java/awt/event/KeyEvent/CorrectTime/CorrectTime.java ! test/java/awt/event/KeyEvent/KeyTyped/CtrlASCII.java ! test/java/awt/event/MouseEvent/AWTPanelSmoothWheel/AWTPanelSmoothWheel.java ! test/java/awt/event/MouseEvent/EventTimeInFuture/EventTimeInFuture.java ! test/java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.java ! test/java/awt/event/MouseEvent/MenuDragMouseEventAbsoluteCoordsTest/MenuDragMouseEventAbsoluteCoordsTest.java ! test/java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.java ! test/java/awt/event/MouseEvent/MouseWheelEventAbsoluteCoordsTest/MouseWheelEventAbsoluteCoordsTest.java ! test/java/awt/event/MouseEvent/RobotLWTest/RobotLWTest.java ! test/java/awt/event/MouseEvent/SmoothWheel/SmoothWheel.java ! test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java ! test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_1.java ! test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_2.java ! test/java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java ! test/java/awt/event/MouseWheelEvent/DisabledComponent/DisabledComponent.java ! test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java ! test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java ! test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java ! test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java ! test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java ! test/java/awt/font/GlyphVector/VisualBounds.java ! test/java/awt/font/LineBreakMeasurer/FRCTest.java ! test/java/awt/font/NumericShaper/EasternArabicTest.java ! test/java/awt/font/NumericShaper/EqualsTest.java ! test/java/awt/font/NumericShaper/MTTest.java ! test/java/awt/font/NumericShaper/ShapingTest.java ! test/java/awt/font/Rotate/Shear.java ! test/java/awt/font/Rotate/TestTransform.java ! test/java/awt/font/Rotate/TranslatedOutlineTest.java ! test/java/awt/font/TextLayout/AttributeValuesCastTest.java ! test/java/awt/font/TextLayout/DecorationBoundsTest.java ! test/java/awt/font/TextLayout/TestHebrewMark.java ! test/java/awt/font/TextLayout/TestSinhalaChar.java ! test/java/awt/font/TextLayout/TextLayoutBounds.java ! test/java/awt/font/TextLayout/UnderlinePositionTest.java ! test/java/awt/font/TextLayout/VisibleAdvance.java ! test/java/awt/font/Threads/FontThread.java ! test/java/awt/geom/Path2D/FillPPathTest.java ! test/java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java ! test/java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java ! test/java/awt/im/4490692/bug4490692.java ! test/java/awt/im/4959409/bug4959409.java ! test/java/awt/im/6396526/IMLookAndFeel.java ! test/java/awt/im/InputContext/InputContextTest.java ! test/java/awt/im/InputContext/bug4625203.java ! test/java/awt/im/JTextFieldTest.java ! test/java/awt/image/ConvolveOp/OpCompatibleImageTest.java ! test/java/awt/image/ImagingOpsNoExceptionsTest/ImagingOpsNoExceptionsTest.java ! test/java/awt/image/LookupOp/SingleArrayTest.java ! test/java/awt/image/MemoryLeakTest/MemoryLeakTest.java ! test/java/awt/image/mlib/MlibOpsTest.java ! test/java/awt/print/Dialog/DialogCopies.java ! test/java/awt/print/Dialog/DialogOrient.java ! test/java/awt/print/Dialog/DialogType.java ! test/java/awt/print/Dialog/PaperSizeError.java ! test/java/awt/print/PageFormat/PageFormatFromAttributes.java ! test/java/awt/print/PrinterJob/Collate2DPrintingTest.java ! test/java/awt/print/PrinterJob/ExceptionTest.java ! test/java/awt/print/PrinterJob/GetMediasTest.java ! test/java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java ! test/java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java ! test/java/awt/print/PrinterJob/Margins.java ! test/java/awt/print/PrinterJob/PageFormatChange.java ! test/java/awt/print/PrinterJob/PageRanges.java ! test/java/awt/print/PrinterJob/PrintAWTImage.java ! test/java/awt/print/PrinterJob/PrtException.java ! test/java/awt/print/PrinterJob/SameService.java ! test/java/awt/print/PrinterJob/ValidatePage/ValidatePage.java ! test/java/awt/regtesthelpers/AbstractPolicyTest.java ! test/java/awt/regtesthelpers/AbstractTest.java ! test/java/awt/regtesthelpers/Sysout.java ! test/java/awt/regtesthelpers/Util.java ! test/java/awt/regtesthelpers/process/ProcessCommunicator.java ! test/java/awt/regtesthelpers/process/ProcessResults.java ! test/java/awt/xembed/server/JavaClient.java ! test/java/awt/xembed/server/RunTestXEmbed.java ! test/java/awt/xembed/server/TestXEmbedServer.java ! test/java/awt/xembed/server/TestXEmbedServerJava.java ! test/java/awt/xembed/server/TesterClient.java ! test/java/beans/Beans/6669869/TestDesignTime.java ! test/java/beans/Beans/6669869/TestGuiAvailable.java ! test/java/beans/Beans/Test4067824.java ! test/java/beans/Beans/Test4080522.java ! test/java/beans/Beans/Test4343723.java ! test/java/beans/EventHandler/Test6179222.java ! test/java/beans/EventHandler/Test6277246.java ! test/java/beans/EventHandler/Test6277266.java ! test/java/beans/EventHandler/Test6788531.java ! test/java/beans/Introspector/4168475/Test4168475.java ! test/java/beans/Introspector/4168475/infos/ComponentBeanInfo.java ! test/java/beans/Introspector/4520754/Foo.java ! test/java/beans/Introspector/4520754/FooBar.java ! test/java/beans/Introspector/4520754/FooBarBeanInfo.java ! test/java/beans/Introspector/4520754/Test4520754.java ! test/java/beans/Introspector/4520754/Wombat.java ! test/java/beans/Introspector/4520754/WombatBeanInfo.java ! test/java/beans/Introspector/4520754/infos/ComponentBeanInfo.java ! test/java/beans/Introspector/4750368/Test4750368.java ! test/java/beans/Introspector/4750368/com/foo/test/Component.java ! test/java/beans/Introspector/6380849/TestBeanInfo.java ! test/java/beans/Introspector/BeanUtils.java ! test/java/beans/Introspector/Test4072197.java ! test/java/beans/Introspector/Test4144543.java ! test/java/beans/Introspector/Test4168833.java ! test/java/beans/Introspector/Test4274639.java ! test/java/beans/Introspector/Test4498236.java ! test/java/beans/Introspector/Test4619536.java ! test/java/beans/Introspector/Test4619792.java ! test/java/beans/Introspector/Test4634390.java ! test/java/beans/Introspector/Test4896879.java ! test/java/beans/Introspector/Test4918902.java ! test/java/beans/Introspector/Test4935607.java ! test/java/beans/Introspector/Test4948761.java ! test/java/beans/Introspector/Test4984912.java ! test/java/beans/Introspector/Test5063390.java ! test/java/beans/Introspector/Test5102804.java ! test/java/beans/Introspector/Test6194788.java ! test/java/beans/Introspector/Test6277246.java ! test/java/beans/Introspector/Test6311051.java ! test/java/beans/Introspector/Test6422403.java ! test/java/beans/Introspector/Test6528714.java ! test/java/beans/Introspector/Test6660539.java ! test/java/beans/Introspector/Test6723447.java ! test/java/beans/Introspector/Test6868189.java ! test/java/beans/Introspector/TestTypeResolver.java ! test/java/beans/Introspector/memory/Bean.java ! test/java/beans/Introspector/memory/Bean2.java ! test/java/beans/Introspector/memory/Bean3.java ! test/java/beans/Introspector/memory/Bean4.java ! test/java/beans/Introspector/memory/SimpleClassLoader.java ! test/java/beans/Introspector/memory/Test4508780.java ! test/java/beans/Introspector/memory/Test4809008.java ! test/java/beans/Performance/TestIntrospector.java ! test/java/beans/Performance/TestPropertyChangeSupport.java ! test/java/beans/Performance/TestVetoableChangeSupport.java ! test/java/beans/PropertyChangeSupport/Test4092905.java ! test/java/beans/PropertyChangeSupport/Test4353056.java ! test/java/beans/PropertyChangeSupport/Test4682386.java ! test/java/beans/PropertyChangeSupport/Test4985020.java ! test/java/beans/PropertyChangeSupport/TestEquals.java ! test/java/beans/PropertyChangeSupport/TestListeners.java ! test/java/beans/PropertyChangeSupport/TestMethods.java ! test/java/beans/PropertyChangeSupport/TestSerialization.java ! test/java/beans/PropertyChangeSupport/TestSynchronization.java ! test/java/beans/PropertyEditor/6380849/TestPropertyEditor.java ! test/java/beans/PropertyEditor/MemoryClassLoader.java ! test/java/beans/PropertyEditor/Test4968709.java ! test/java/beans/PropertyEditor/Test6397609.java ! test/java/beans/PropertyEditor/TestBooleanClass.java ! test/java/beans/PropertyEditor/TestBooleanClassJava.java ! test/java/beans/PropertyEditor/TestBooleanClassNull.java ! test/java/beans/PropertyEditor/TestBooleanClassValue.java ! test/java/beans/PropertyEditor/TestBooleanType.java ! test/java/beans/PropertyEditor/TestBooleanTypeJava.java ! test/java/beans/PropertyEditor/TestBooleanTypeNull.java ! test/java/beans/PropertyEditor/TestBooleanTypeValue.java ! test/java/beans/PropertyEditor/TestByteClass.java ! test/java/beans/PropertyEditor/TestByteClassJava.java ! test/java/beans/PropertyEditor/TestByteClassNull.java ! test/java/beans/PropertyEditor/TestByteClassValue.java ! test/java/beans/PropertyEditor/TestByteType.java ! test/java/beans/PropertyEditor/TestByteTypeJava.java ! test/java/beans/PropertyEditor/TestByteTypeNull.java ! test/java/beans/PropertyEditor/TestByteTypeValue.java ! test/java/beans/PropertyEditor/TestColorClass.java ! test/java/beans/PropertyEditor/TestColorClassJava.java ! test/java/beans/PropertyEditor/TestColorClassNull.java ! test/java/beans/PropertyEditor/TestColorClassValue.java ! test/java/beans/PropertyEditor/TestDoubleClass.java ! test/java/beans/PropertyEditor/TestDoubleClassJava.java ! test/java/beans/PropertyEditor/TestDoubleClassNull.java ! test/java/beans/PropertyEditor/TestDoubleClassValue.java ! test/java/beans/PropertyEditor/TestDoubleType.java ! test/java/beans/PropertyEditor/TestDoubleTypeJava.java ! test/java/beans/PropertyEditor/TestDoubleTypeNull.java ! test/java/beans/PropertyEditor/TestDoubleTypeValue.java ! test/java/beans/PropertyEditor/TestEditor.java ! test/java/beans/PropertyEditor/TestEnumClass.java ! test/java/beans/PropertyEditor/TestEnumClassJava.java ! test/java/beans/PropertyEditor/TestEnumClassNull.java ! test/java/beans/PropertyEditor/TestEnumClassValue.java ! test/java/beans/PropertyEditor/TestEnumSubclass.java ! test/java/beans/PropertyEditor/TestEnumSubclassJava.java ! test/java/beans/PropertyEditor/TestEnumSubclassNull.java ! test/java/beans/PropertyEditor/TestEnumSubclassValue.java ! test/java/beans/PropertyEditor/TestFloatClass.java ! test/java/beans/PropertyEditor/TestFloatClassJava.java ! test/java/beans/PropertyEditor/TestFloatClassNull.java ! test/java/beans/PropertyEditor/TestFloatClassValue.java ! test/java/beans/PropertyEditor/TestFloatType.java ! test/java/beans/PropertyEditor/TestFloatTypeJava.java ! test/java/beans/PropertyEditor/TestFloatTypeNull.java ! test/java/beans/PropertyEditor/TestFloatTypeValue.java ! test/java/beans/PropertyEditor/TestFontClass.java ! test/java/beans/PropertyEditor/TestFontClassJava.java ! test/java/beans/PropertyEditor/TestFontClassNull.java ! test/java/beans/PropertyEditor/TestFontClassValue.java ! test/java/beans/PropertyEditor/TestIntegerClass.java ! test/java/beans/PropertyEditor/TestIntegerClassJava.java ! test/java/beans/PropertyEditor/TestIntegerClassNull.java ! test/java/beans/PropertyEditor/TestIntegerClassValue.java ! test/java/beans/PropertyEditor/TestIntegerType.java ! test/java/beans/PropertyEditor/TestIntegerTypeJava.java ! test/java/beans/PropertyEditor/TestIntegerTypeNull.java ! test/java/beans/PropertyEditor/TestIntegerTypeValue.java ! test/java/beans/PropertyEditor/TestLongClass.java ! test/java/beans/PropertyEditor/TestLongClassJava.java ! test/java/beans/PropertyEditor/TestLongClassNull.java ! test/java/beans/PropertyEditor/TestLongClassValue.java ! test/java/beans/PropertyEditor/TestLongType.java ! test/java/beans/PropertyEditor/TestLongTypeJava.java ! test/java/beans/PropertyEditor/TestLongTypeNull.java ! test/java/beans/PropertyEditor/TestLongTypeValue.java ! test/java/beans/PropertyEditor/TestShortClass.java ! test/java/beans/PropertyEditor/TestShortClassJava.java ! test/java/beans/PropertyEditor/TestShortClassNull.java ! test/java/beans/PropertyEditor/TestShortClassValue.java ! test/java/beans/PropertyEditor/TestShortType.java ! test/java/beans/PropertyEditor/TestShortTypeJava.java ! test/java/beans/PropertyEditor/TestShortTypeNull.java ! test/java/beans/PropertyEditor/TestShortTypeValue.java ! test/java/beans/PropertyEditor/TestStringClass.java ! test/java/beans/PropertyEditor/TestStringClassJava.java ! test/java/beans/PropertyEditor/TestStringClassNull.java ! test/java/beans/PropertyEditor/TestStringClassValue.java ! test/java/beans/Statement/Test4530962.java ! test/java/beans/Statement/Test4653179.java ! test/java/beans/Statement/Test6224433.java ! test/java/beans/Statement/Test6707226.java ! test/java/beans/Statement/Test6788531.java ! test/java/beans/VetoableChangeSupport/Test4076065.java ! test/java/beans/VetoableChangeSupport/Test4092906.java ! test/java/beans/VetoableChangeSupport/Test4425885.java ! test/java/beans/VetoableChangeSupport/Test4994635.java ! test/java/beans/VetoableChangeSupport/Test6630275.java ! test/java/beans/VetoableChangeSupport/TestEquals.java ! test/java/beans/VetoableChangeSupport/TestListeners.java ! test/java/beans/VetoableChangeSupport/TestMethods.java ! test/java/beans/VetoableChangeSupport/TestSerialization.java ! test/java/beans/VetoableChangeSupport/TestSynchronization.java ! test/java/beans/XMLDecoder/4676532/Test4676532.java ! test/java/beans/XMLDecoder/Test4864117.java ! test/java/beans/XMLDecoder/Test6338070.java ! test/java/beans/XMLDecoder/Test6341798.java ! test/java/beans/XMLDecoder/spec/AbstractTest.java ! test/java/beans/XMLDecoder/spec/TestArray.java ! test/java/beans/XMLDecoder/spec/TestBoolean.java ! test/java/beans/XMLDecoder/spec/TestByte.java ! test/java/beans/XMLDecoder/spec/TestChar.java ! test/java/beans/XMLDecoder/spec/TestClass.java ! test/java/beans/XMLDecoder/spec/TestDouble.java ! test/java/beans/XMLDecoder/spec/TestFalse.java ! test/java/beans/XMLDecoder/spec/TestField.java ! test/java/beans/XMLDecoder/spec/TestFloat.java ! test/java/beans/XMLDecoder/spec/TestInt.java ! test/java/beans/XMLDecoder/spec/TestJava.java ! test/java/beans/XMLDecoder/spec/TestLong.java ! test/java/beans/XMLDecoder/spec/TestMethod.java ! test/java/beans/XMLDecoder/spec/TestNew.java ! test/java/beans/XMLDecoder/spec/TestNull.java ! test/java/beans/XMLDecoder/spec/TestObject.java ! test/java/beans/XMLDecoder/spec/TestProperty.java ! test/java/beans/XMLDecoder/spec/TestShort.java ! test/java/beans/XMLDecoder/spec/TestString.java ! test/java/beans/XMLDecoder/spec/TestTrue.java ! test/java/beans/XMLDecoder/spec/TestVar.java ! test/java/beans/XMLEncoder/4741757/AbstractTest.java ! test/java/beans/XMLEncoder/4741757/TestFieldAccess.java ! test/java/beans/XMLEncoder/4741757/TestSecurityManager.java ! test/java/beans/XMLEncoder/4741757/TestStackOverflow.java ! test/java/beans/XMLEncoder/6329581/Test6329581.java ! test/java/beans/XMLEncoder/6380849/TestPersistenceDelegate.java ! test/java/beans/XMLEncoder/6777487/TestBox.java ! test/java/beans/XMLEncoder/6777487/TestCheckedCollection.java ! test/java/beans/XMLEncoder/6777487/TestCheckedList.java ! test/java/beans/XMLEncoder/6777487/TestCheckedMap.java ! test/java/beans/XMLEncoder/6777487/TestCheckedRandomAccessList.java ! test/java/beans/XMLEncoder/6777487/TestCheckedSet.java ! test/java/beans/XMLEncoder/6777487/TestCheckedSortedMap.java ! test/java/beans/XMLEncoder/6777487/TestCheckedSortedSet.java ! test/java/beans/XMLEncoder/6777487/TestEncoder.java ! test/java/beans/XMLEncoder/6777487/TestEnumMap.java ! test/java/beans/XMLEncoder/6777487/TestEnumSet.java ! test/java/beans/XMLEncoder/AbstractTest.java ! test/java/beans/XMLEncoder/Bean.java ! test/java/beans/XMLEncoder/BeanValidator.java ! test/java/beans/XMLEncoder/EnumPrivate.java ! test/java/beans/XMLEncoder/EnumPublic.java ! test/java/beans/XMLEncoder/Test4625418.java ! test/java/beans/XMLEncoder/Test4631471.java ! test/java/beans/XMLEncoder/Test4646747.java ! test/java/beans/XMLEncoder/Test4652928.java ! test/java/beans/XMLEncoder/Test4679556.java ! test/java/beans/XMLEncoder/Test4822050.java ! test/java/beans/XMLEncoder/Test4880633.java ! test/java/beans/XMLEncoder/Test4903007.java ! test/java/beans/XMLEncoder/Test4935607.java ! test/java/beans/XMLEncoder/Test4936682.java ! test/java/beans/XMLEncoder/Test4950122.java ! test/java/beans/XMLEncoder/Test4968523.java ! test/java/beans/XMLEncoder/Test4993777.java ! test/java/beans/XMLEncoder/Test4994637.java ! test/java/beans/XMLEncoder/Test5023550.java ! test/java/beans/XMLEncoder/Test5023552.java ! test/java/beans/XMLEncoder/Test5023557.java ! test/java/beans/XMLEncoder/Test5023559.java ! test/java/beans/XMLEncoder/Test6176120.java ! test/java/beans/XMLEncoder/Test6187118.java ! test/java/beans/XMLEncoder/Test6256805.java ! test/java/beans/XMLEncoder/Test6437265.java ! test/java/beans/XMLEncoder/Test6501431.java ! test/java/beans/XMLEncoder/Test6505888.java ! test/java/beans/XMLEncoder/Test6531597.java ! test/java/beans/XMLEncoder/Test6570354.java ! test/java/beans/XMLEncoder/Test6852574.java ! test/java/beans/XMLEncoder/Test6921644.java ! test/java/beans/XMLEncoder/java_awt_AWTKeyStroke.java ! test/java/beans/XMLEncoder/java_awt_BorderLayout.java ! test/java/beans/XMLEncoder/java_awt_Color.java ! test/java/beans/XMLEncoder/java_awt_Cursor.java ! test/java/beans/XMLEncoder/java_awt_Dimension.java ! test/java/beans/XMLEncoder/java_awt_Font.java ! test/java/beans/XMLEncoder/java_awt_GridBagConstraints.java ! test/java/beans/XMLEncoder/java_awt_Insets.java ! test/java/beans/XMLEncoder/java_awt_MenuShortcut.java ! test/java/beans/XMLEncoder/java_awt_Point.java ! test/java/beans/XMLEncoder/java_awt_Rectangle.java ! test/java/beans/XMLEncoder/java_awt_ScrollPane.java ! test/java/beans/XMLEncoder/java_beans_EventHandler.java ! test/java/beans/XMLEncoder/java_beans_Expression.java ! test/java/beans/XMLEncoder/java_beans_Statement.java ! test/java/beans/XMLEncoder/java_io_File.java ! test/java/beans/XMLEncoder/java_lang_Character.java ! test/java/beans/XMLEncoder/java_lang_Class.java ! test/java/beans/XMLEncoder/java_lang_Enum.java ! test/java/beans/XMLEncoder/java_lang_String.java ! test/java/beans/XMLEncoder/java_lang_reflect_Field.java ! test/java/beans/XMLEncoder/java_lang_reflect_Method.java ! test/java/beans/XMLEncoder/java_net_URI.java ! test/java/beans/XMLEncoder/java_sql_Date.java ! test/java/beans/XMLEncoder/java_sql_Time.java ! test/java/beans/XMLEncoder/java_sql_Timestamp.java ! test/java/beans/XMLEncoder/java_util_ArrayList.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedCollection.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedList.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedMap.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedRandomAccessList.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedSet.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedSortedMap.java ! test/java/beans/XMLEncoder/java_util_Collections_CheckedSortedSet.java ! test/java/beans/XMLEncoder/java_util_Collections_EmptyList.java ! test/java/beans/XMLEncoder/java_util_Collections_EmptyMap.java ! test/java/beans/XMLEncoder/java_util_Collections_EmptySet.java ! test/java/beans/XMLEncoder/java_util_Collections_SingletonList.java ! test/java/beans/XMLEncoder/java_util_Collections_SingletonMap.java ! test/java/beans/XMLEncoder/java_util_Collections_SingletonSet.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedCollection.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedList.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedMap.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedRandomAccessList.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSet.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSortedMap.java ! test/java/beans/XMLEncoder/java_util_Collections_SynchronizedSortedSet.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableCollection.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableList.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableMap.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableRandomAccessList.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableSet.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableSortedMap.java ! test/java/beans/XMLEncoder/java_util_Collections_UnmodifiableSortedSet.java ! test/java/beans/XMLEncoder/java_util_Date.java ! test/java/beans/XMLEncoder/java_util_EnumMap.java ! test/java/beans/XMLEncoder/java_util_HashMap.java ! test/java/beans/XMLEncoder/java_util_JumboEnumSet.java ! test/java/beans/XMLEncoder/java_util_RegularEnumSet.java ! test/java/beans/XMLEncoder/javax_swing_Box.java ! test/java/beans/XMLEncoder/javax_swing_BoxLayout.java ! test/java/beans/XMLEncoder/javax_swing_Box_Filler.java ! test/java/beans/XMLEncoder/javax_swing_DefaultCellEditor.java ! test/java/beans/XMLEncoder/javax_swing_JButton.java ! test/java/beans/XMLEncoder/javax_swing_JLayeredPane.java ! test/java/beans/XMLEncoder/javax_swing_JSplitPane.java ! test/java/beans/XMLEncoder/javax_swing_JTree.java ! test/java/beans/XMLEncoder/javax_swing_KeyStroke.java ! test/java/beans/XMLEncoder/javax_swing_OverlayLayout.java ! test/java/beans/XMLEncoder/javax_swing_border_BevelBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_CompoundBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_EmptyBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_EtchedBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_LineBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_MatteBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_SoftBevelBorder.java ! test/java/beans/XMLEncoder/javax_swing_border_TitledBorder.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_BevelBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_CompoundBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_EmptyBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_EtchedBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_LineBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_MatteBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_BorderUIResource_TitledBorderUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_ColorUIResource.java ! test/java/beans/XMLEncoder/javax_swing_plaf_FontUIResource.java ! test/java/beans/XMLEncoder/javax_swing_tree_DefaultTreeModel.java ! test/java/beans/XMLEncoder/javax_swing_tree_TreePath.java ! test/java/beans/XMLEncoder/sun_swing_PrintColorUIResource.java ! test/java/beans/beancontext/Test4132698.java ! test/java/beans/beancontext/Test4233980.java ! test/java/beans/beancontext/Test4328406.java ! test/java/dyn/MethodHandlesTest.java ! test/java/io/BufferedInputStream/CloseStream.java ! test/java/io/BufferedInputStream/CountUpdate.java ! test/java/io/BufferedInputStream/Fill.java ! test/java/io/BufferedInputStream/ReadAfterClose.java ! test/java/io/BufferedInputStream/ReadZeroBytes.java ! test/java/io/BufferedInputStream/SkipTest.java ! test/java/io/BufferedReader/BigMark.java ! test/java/io/BufferedReader/EOL.java ! test/java/io/BufferedReader/Fill.java ! test/java/io/BufferedReader/MarkedFillAtEOF.java ! test/java/io/BufferedReader/ReadLine.java ! test/java/io/BufferedReader/ReadLineSync.java ! test/java/io/BufferedReader/Ready.java ! test/java/io/BufferedReader/SkipNegative.java ! test/java/io/BufferedWriter/Cleanup.java ! test/java/io/ByteArrayOutputStream/ToString.java ! test/java/io/ByteArrayOutputStream/WriteBounds.java ! test/java/io/CharArrayReader/Constructor.java ! test/java/io/DataInputStream/OpsAfterClose.java ! test/java/io/DataInputStream/ReadFully.java ! test/java/io/DataInputStream/ReadLinePushback.java ! test/java/io/DataInputStream/ReadUTF.java ! test/java/io/DataInputStream/SkipBytes.java ! test/java/io/DataOutputStream/CounterOverflow.java ! test/java/io/DataOutputStream/WriteUTF.java ! test/java/io/Externalizable/compatibility/ExternalizableBlockData.java ! test/java/io/Externalizable/definesWriteObject/DefinesWriteObject.java ! test/java/io/File/AccessDenied.java ! test/java/io/File/Basic.java ! test/java/io/File/BlockIsDirectory.java ! test/java/io/File/CheckTempDir.java ! test/java/io/File/CompareTo.java ! test/java/io/File/Cons.java ! test/java/io/File/Create.java ! test/java/io/File/CreateNewFile.java ! test/java/io/File/DeleteOnExit.java ! test/java/io/File/DeleteOnExitLong.java ! test/java/io/File/DeleteOnExitNPE.java ! test/java/io/File/EmptyPath.java ! test/java/io/File/FileMethods.java ! test/java/io/File/GetAbsolutePath.java ! test/java/io/File/GetCanonicalPath.java ! test/java/io/File/GetParent.java ! test/java/io/File/GetXSpace.java ! test/java/io/File/GetXSpace.sh ! test/java/io/File/HashCodeEquals.java ! test/java/io/File/IsAbsolute.java ! test/java/io/File/IsHidden.java ! test/java/io/File/ListNull.java ! test/java/io/File/ListRoots.java ! test/java/io/File/ListSpace.java ! test/java/io/File/MaxPath.java ! test/java/io/File/MaxPathLength.java ! test/java/io/File/Mkdir.java ! test/java/io/File/NullArgs.java ! test/java/io/File/SetAccess.java ! test/java/io/File/SetLastModified.java ! test/java/io/File/SetReadOnly.java ! test/java/io/File/SymLinks.java ! test/java/io/File/ToURI.java ! test/java/io/File/ToURL.java ! test/java/io/File/Unicode.java ! test/java/io/File/WinDeviceName.java ! test/java/io/File/WinMaxPath.java ! test/java/io/File/WinSpecialFiles.java ! test/java/io/File/basic.sh ! test/java/io/File/createTempFile/Patterns.java ! test/java/io/File/isDirectory/Applet.java ! test/java/io/FileDescriptor/FileChannelFDTest.java ! test/java/io/FileDescriptor/Finalize.java ! test/java/io/FileInputStream/Available.java ! test/java/io/FileInputStream/FinalizeShdCallClose.java ! test/java/io/FileInputStream/LeadingSlash.java ! test/java/io/FileInputStream/OpenDir.java ! test/java/io/FileOutputStream/AtomicAppend.java ! test/java/io/FileOutputStream/FileOpen.sh ! test/java/io/FileOutputStream/FileOpenNeg.java ! test/java/io/FileOutputStream/FileOpenPos.java ! test/java/io/FileOutputStream/FinalizeShdCallClose.java ! test/java/io/FileOutputStream/ManyFiles.java ! test/java/io/FilePermission/SpecTests.java ! test/java/io/FilterOutputStream/BoundsCheck.java ! test/java/io/FilterOutputStream/Write.java ! test/java/io/IOException/LastErrorString.java ! test/java/io/InputStream/OpsAfterClose.java ! test/java/io/InputStream/ReadParams.java ! test/java/io/InputStream/Skip.java ! test/java/io/InputStreamReader/GrowAfterEOF.java ! test/java/io/InputStreamReader/NullCreate.java ! test/java/io/InputStreamReader/One.java ! test/java/io/InputStreamReader/ReadOffset.java ! test/java/io/LineNumberInputStream/Available.java ! test/java/io/LineNumberInputStream/MarkReset.java ! test/java/io/LineNumberInputStream/Skip.java ! test/java/io/LineNumberInputStream/SkipEOL.java ! test/java/io/LineNumberReader/MarkReset.java ! test/java/io/LineNumberReader/Read.java ! test/java/io/LineNumberReader/ReadReadLine.java ! test/java/io/LineNumberReader/Skip.java ! test/java/io/NegativeInitSize.java ! test/java/io/ObjectInputStream/ResolveProxyClass.java ! test/java/io/OutputStream/WriteParams.java ! test/java/io/OutputStreamWriter/BoundsCheck.java ! test/java/io/OutputStreamWriter/Encode.java ! test/java/io/OutputStreamWriter/NullCreate.java ! test/java/io/OutputStreamWriter/TestWrite.java ! test/java/io/OutputStreamWriter/WriteAfterClose.java ! test/java/io/PipedInputStream/CloseAndAvailableRC.java ! test/java/io/PipedInputStream/ClosedWriter.java ! test/java/io/PipedInputStream/Constructors.java ! test/java/io/PipedInputStream/FasterWriter.java ! test/java/io/PipedInputStream/WriterLoop.java ! test/java/io/PipedOutputStream/ClosedWrite.java ! test/java/io/PipedOutputStream/DeadReader.java ! test/java/io/PipedOutputStream/MultipleConnect.java ! test/java/io/PipedOutputStream/NotConnected.java ! test/java/io/PipedOutputStream/WriteAfterClose.java ! test/java/io/PipedReader/Constructors.java ! test/java/io/PipedReader/ReadToArray.java ! test/java/io/PipedReader/Ready.java ! test/java/io/PipedWriter/ConnectAfterReaderClose.java ! test/java/io/PipedWriter/FlushAfterClose.java ! test/java/io/PipedWriter/WriteAfterReaderClose.java ! test/java/io/PrintStream/CheckError.java ! test/java/io/PrintStream/ClearErrorStream.java ! test/java/io/PrintStream/EncodingConstructor.java ! test/java/io/PrintStream/NullConstructor.java ! test/java/io/PrintStream/OversynchronizedTest.java ! test/java/io/PrintWriter/CheckError.java ! test/java/io/PrintWriter/ClearErrorWriter.java ! test/java/io/PrintWriter/OpsAfterClose.java ! test/java/io/PrintWriter/OversynchronizedTest.java ! test/java/io/PrintWriter/SubClass.java ! test/java/io/PushbackInputStream/Available.java ! test/java/io/PushbackInputStream/ClosedStream.java ! test/java/io/PushbackInputStream/MarkReset.java ! test/java/io/PushbackInputStream/Skip.java ! test/java/io/PushbackReader/MarkReset.java ! test/java/io/PushbackReader/Skip.java ! test/java/io/RandomAccessFile/Close.java ! test/java/io/RandomAccessFile/EOF.java ! test/java/io/RandomAccessFile/OpenSync.java ! test/java/io/RandomAccessFile/ParameterCheck.java ! test/java/io/RandomAccessFile/ReadLine.java ! test/java/io/RandomAccessFile/ReadWritePrimitives.java ! test/java/io/RandomAccessFile/Seek.java ! test/java/io/RandomAccessFile/SetLength.java ! test/java/io/RandomAccessFile/WriteBytesChars.java ! test/java/io/RandomAccessFile/WriteUTF.java ! test/java/io/RandomAccessFile/skipBytes/SkipBytes.java ! test/java/io/Reader/NullLock.java ! test/java/io/Reader/OpsAfterClose.java ! test/java/io/Reader/ReadParams.java ! test/java/io/Reader/Skip.java ! test/java/io/Reader/SkipNegative.java ! test/java/io/SequenceInputStream/ConstructorNull.java ! test/java/io/Serializable/ClassCastExceptionDetail/Read.java ! test/java/io/Serializable/ClassCastExceptionDetail/Write.java ! test/java/io/Serializable/GetField/Read.java ! test/java/io/Serializable/GetField/Read2.java ! test/java/io/Serializable/GetField/Write.java ! test/java/io/Serializable/InvalidClassException/noargctor/DefaultPackage.java ! test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PackageCtor.java ! test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PrivateCtor.java ! test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/ProtectedCtor.java ! test/java/io/Serializable/InvalidClassException/noargctor/NonSerialize/PublicCtor.java ! test/java/io/Serializable/InvalidClassException/noargctor/Serialize/SamePackageCtor.java ! test/java/io/Serializable/InvalidClassException/noargctor/Serialize/SubclassAcrossPackage.java ! test/java/io/Serializable/InvalidClassException/noargctor/Test.java ! test/java/io/Serializable/NPEProvoker/NPEProvoker.java ! test/java/io/Serializable/NoClassDefFoundErrorTrap/NoClassDefFoundErrorTrap.java ! test/java/io/Serializable/PutField/Read.java ! test/java/io/Serializable/PutField/Read2.java ! test/java/io/Serializable/PutField/Write.java ! test/java/io/Serializable/PutField/Write2.java ! test/java/io/Serializable/accessConstants/AccessConstants.java ! test/java/io/Serializable/arraySuidConflict/Foo.java ! test/java/io/Serializable/arraySuidConflict/Read.java ! test/java/io/Serializable/arraySuidConflict/Write.java ! test/java/io/Serializable/auditStreamSubclass/AuditStreamSubclass.java ! test/java/io/Serializable/available/Available.java ! test/java/io/Serializable/backRefCNFException/Read.java ! test/java/io/Serializable/backRefCNFException/Write.java ! test/java/io/Serializable/badSerialPersistentField/BadSerialPersistentField.java ! test/java/io/Serializable/badSerialVersionUID/BadSerialVersionUID.java ! test/java/io/Serializable/badSubstByReplace/BadSubstByReplace.java ! test/java/io/Serializable/checkModifiers/CheckModifiers.java ! test/java/io/Serializable/class/NonSerialA_1.java ! test/java/io/Serializable/class/NonSerialA_2.java ! test/java/io/Serializable/class/SerialA.java ! test/java/io/Serializable/class/SerialA_1.java ! test/java/io/Serializable/class/SerialA_2.java ! test/java/io/Serializable/class/SerialA_3.java ! test/java/io/Serializable/class/Test.java ! test/java/io/Serializable/class/run.sh ! test/java/io/Serializable/classDescFlagConflict/Foo.java ! test/java/io/Serializable/classDescFlagConflict/Read.java ! test/java/io/Serializable/classDescGetField/GetField.java ! test/java/io/Serializable/classDescHooks/CNFException.java ! test/java/io/Serializable/classDescHooks/ClassDescHooks.java ! test/java/io/Serializable/classDescHooks/ExternLoopback.java ! test/java/io/Serializable/classDescHooks/Loopback.java ! test/java/io/Serializable/clearHandleTable/ClearHandleTable.java ! test/java/io/Serializable/concurrentClassDescLookup/ConcurrentClassDescLookup.java ! test/java/io/Serializable/corruptedUTFConsumption/CorruptedUTFConsumption.java ! test/java/io/Serializable/defaultDataEnd/DefaultDataEnd.java ! test/java/io/Serializable/defaultReadObjectCNFException/DefaultReadObjectCNFException.java ! test/java/io/Serializable/defaulted/GetFieldRead.java ! test/java/io/Serializable/defaulted/GetFieldWrite.java ! test/java/io/Serializable/duplicateSerialFields/Setup.java ! test/java/io/Serializable/duplicateSerialFields/Test.java ! test/java/io/Serializable/enum/array/Test.java ! test/java/io/Serializable/enum/badResolve/Read.java ! test/java/io/Serializable/enum/badResolve/Write.java ! test/java/io/Serializable/enum/basic/Test.java ! test/java/io/Serializable/enum/classObject/Test.java ! test/java/io/Serializable/enum/constantSubclasses/Read.java ! test/java/io/Serializable/enum/constantSubclasses/Write.java ! test/java/io/Serializable/enum/ignoreSerializationFields/Test.java ! test/java/io/Serializable/enum/ignoreSerializationMethods/Test.java ! test/java/io/Serializable/enum/mismatchedTypecode/Test.java ! test/java/io/Serializable/enum/missingConstant/Read.java ! test/java/io/Serializable/enum/missingConstant/Write.java ! test/java/io/Serializable/enum/unshared/Test.java ! test/java/io/Serializable/evolution/AddedExternField/ReadAddedField.java ! test/java/io/Serializable/evolution/AddedExternField/WriteAddedField.java ! test/java/io/Serializable/evolution/AddedExternField/run.sh ! test/java/io/Serializable/evolution/AddedField/ReadAddedField.java ! test/java/io/Serializable/evolution/AddedField/WriteAddedField.java ! test/java/io/Serializable/evolution/AddedField/run ! test/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass.java ! test/java/io/Serializable/evolution/AddedSuperClass/ReadAddedSuperClass2.java ! test/java/io/Serializable/evolution/AddedSuperClass/WriteAddedSuperClass.java ! test/java/io/Serializable/evolution/RenamePackage/extension/ExtendedObjectInputStream.java ! test/java/io/Serializable/evolution/RenamePackage/install/SerialDriver.java ! test/java/io/Serializable/evolution/RenamePackage/run.sh ! test/java/io/Serializable/evolution/RenamePackage/test/SerialDriver.java ! test/java/io/Serializable/expectedStackTrace/ExpectedStackTrace.java ! test/java/io/Serializable/explicitCNFException/ExplicitCNFException.java ! test/java/io/Serializable/fieldTypeString/Read.java ! test/java/io/Serializable/fieldTypeString/Write.java ! test/java/io/Serializable/finalFields/FinalFields.java ! test/java/io/Serializable/getSuidClinitError/GetSuidClinitError.java ! test/java/io/Serializable/illegalHandle/Test.java ! test/java/io/Serializable/inactiveRegistration/InactiveRegistration.java ! test/java/io/Serializable/longString/LongString.java ! test/java/io/Serializable/lookupAnyInvocation/LookupAnyInvocation.java ! test/java/io/Serializable/lookupInterfaceDesc/LookupInterfaceDesc.java ! test/java/io/Serializable/maskSyntheticModifier/Foo.java ! test/java/io/Serializable/maskSyntheticModifier/Test.java ! test/java/io/Serializable/maskSyntheticModifier/run.sh ! test/java/io/Serializable/misplacedArrayClassDesc/MisplacedArrayClassDesc.java ! test/java/io/Serializable/modifyStaticFields/ModifyStaticFields.java ! test/java/io/Serializable/nestedReplace/NestedReplace.java ! test/java/io/Serializable/noSuchFieldClarification/NoSuchFieldClarification.java ! test/java/io/Serializable/nonserializable/ExceptionDetail.java ! test/java/io/Serializable/notAvailable/NotAvailable.java ! test/java/io/Serializable/nullArgExceptionOrder/Test.java ! test/java/io/Serializable/oldTests/AnnotateClass.java ! test/java/io/Serializable/oldTests/ArrayFields.java ! test/java/io/Serializable/oldTests/ArrayOpsTest.java ! test/java/io/Serializable/oldTests/ArrayTest.java ! test/java/io/Serializable/oldTests/ArraysOfArrays.java ! test/java/io/Serializable/oldTests/BinaryTree.java ! test/java/io/Serializable/oldTests/CheckForException.java ! test/java/io/Serializable/oldTests/CheckingEquality.java ! test/java/io/Serializable/oldTests/CircularList.java ! test/java/io/Serializable/oldTests/PrimitivesTest.java ! test/java/io/Serializable/oldTests/SerializeWithException.java ! test/java/io/Serializable/oldTests/SimpleArrays.java ! test/java/io/Serializable/oldTests/ValidateClass.java ! test/java/io/Serializable/oldTests/WritePrimitive.java ! test/java/io/Serializable/optionalDataEnd/OptionalDataEnd.java ! test/java/io/Serializable/packageAccess/A.java ! test/java/io/Serializable/packageAccess/B.java ! test/java/io/Serializable/packageAccess/C.java ! test/java/io/Serializable/packageAccess/D.java ! test/java/io/Serializable/packageAccess/Test.java ! test/java/io/Serializable/packageAccess/run.sh ! test/java/io/Serializable/parents/EvolvedClass.java ! test/java/io/Serializable/parents/OriginalClass.java ! test/java/io/Serializable/partialClassDesc/PartialClassDesc.java ! test/java/io/Serializable/primitiveClasses/PrimitiveClasses.java ! test/java/io/Serializable/proxy/Basic.java ! test/java/io/Serializable/proxy/replace/ReadResolve.java ! test/java/io/Serializable/proxy/replace/Resolved.java ! test/java/io/Serializable/proxy/replace/Test.java ! test/java/io/Serializable/proxy/replace/WriteReplace.java ! test/java/io/Serializable/proxy/skipMissing/Handler.java ! test/java/io/Serializable/proxy/skipMissing/Read.java ! test/java/io/Serializable/proxy/skipMissing/Write.java ! test/java/io/Serializable/readObjectNoData/Read.java ! test/java/io/Serializable/readObjectNoData/Write.java ! test/java/io/Serializable/readPastObject/ReadPastObject.java ! test/java/io/Serializable/recursiveClassDescLookup/Test.java ! test/java/io/Serializable/replaceStringArray/ReplaceStringArray.java ! test/java/io/Serializable/replaceWithNull/ReplaceWithNull.java ! test/java/io/Serializable/resolveClass/MethodTest.java ! test/java/io/Serializable/resolveClass/consTest/Boot.java ! test/java/io/Serializable/resolveClass/consTest/Test.java ! test/java/io/Serializable/resolveClass/consTest/run.sh ! test/java/io/Serializable/resolveClass/deserializeButton/Foo.java ! test/java/io/Serializable/resolveClass/deserializeButton/Test.java ! test/java/io/Serializable/resolveClass/deserializeButton/run.sh ! test/java/io/Serializable/resolveClassException/ResolveClassException.java ! test/java/io/Serializable/resolveProxyClass/NonPublicInterface.java ! test/java/io/Serializable/sanityCheck/SanityCheck.java ! test/java/io/Serializable/serialver/classpath/Test.java ! test/java/io/Serializable/serialver/classpath/run.sh ! test/java/io/Serializable/serialver/nested/Test.java ! test/java/io/Serializable/serialver/nested/run.sh ! test/java/io/Serializable/skipToEndOfBlockData/SkipToEndOfBlockData.java ! test/java/io/Serializable/skipWriteObject/Read.java ! test/java/io/Serializable/skipWriteObject/Write.java ! test/java/io/Serializable/skippedObjCNFException/Read.java ! test/java/io/Serializable/skippedObjCNFException/Write.java ! test/java/io/Serializable/stopCustomDeserialization/Read.java ! test/java/io/Serializable/stopCustomDeserialization/Write.java ! test/java/io/Serializable/subclass/AbstractObjectInputStream.java ! test/java/io/Serializable/subclass/AbstractObjectOutputStream.java ! test/java/io/Serializable/subclass/Test.java ! test/java/io/Serializable/subclass/XObjectInputStream.java ! test/java/io/Serializable/subclass/XObjectOutputStream.java ! test/java/io/Serializable/subclass/run.sh ! test/java/io/Serializable/subclassGC/SubclassGC.java ! test/java/io/Serializable/subclassGC/SubclassOfOOS.java ! test/java/io/Serializable/superclassDataLoss/A.java ! test/java/io/Serializable/superclassDataLoss/B.java ! test/java/io/Serializable/superclassDataLoss/Test.java ! test/java/io/Serializable/superclassDataLoss/run.sh ! test/java/io/Serializable/survivePrematureClose/SurvivePrematureClose.java ! test/java/io/Serializable/typeSafeEnum/TypeSafeEnum.java ! test/java/io/Serializable/typeStringBackRef/TypeStringBackRef.java ! test/java/io/Serializable/underlyingOutputStreamException/UnderlyingOutputStreamException.java ! test/java/io/Serializable/unnamedPackageSwitch/A.java ! test/java/io/Serializable/unnamedPackageSwitch/Test.java ! test/java/io/Serializable/unnamedPackageSwitch/run.sh ! test/java/io/Serializable/unresolvedClassDesc/Foo.java ! test/java/io/Serializable/unresolvedClassDesc/Read.java ! test/java/io/Serializable/unresolvedClassDesc/Write.java ! test/java/io/Serializable/unshared/Read.java ! test/java/io/Serializable/unshared/Write.java ! test/java/io/Serializable/userRWObjError/UserRWObjError.java ! test/java/io/Serializable/validate/Validate.java ! test/java/io/Serializable/verifyDynamicObjHandleTable/VerifyDynamicObjHandleTable.java ! test/java/io/Serializable/writeObjectMemory/WriteObjectMemory.java ! test/java/io/Serializable/writeReplace/WriteReplace.java ! test/java/io/Serializable/wrongReturnTypes/Read.java ! test/java/io/Serializable/wrongReturnTypes/Write.java ! test/java/io/StreamTokenizer/Comment.java ! test/java/io/StreamTokenizer/NullConstruct.java ! test/java/io/StreamTokenizer/QuoteTest.java ! test/java/io/StreamTokenizer/ReadAhead.java ! test/java/io/StreamTokenizer/Reset.java ! test/java/io/StringReader/ClosedReady.java ! test/java/io/StringReader/NegativeMarkLimit.java ! test/java/io/StringReader/Skip.java ! test/java/io/StringWriter/NegativeBufferSize.java ! test/java/io/SystemInAvailable.java ! test/java/io/Unicode.java ! test/java/io/Writer/Append.java ! test/java/io/Writer/WriteFromString.java ! test/java/io/Writer/WriteParams.java ! test/java/io/charStreams/ABCInputStream.java ! test/java/io/charStreams/ABCOutputStream.java ! test/java/io/charStreams/ABCReader.java ! test/java/io/charStreams/BCat.java ! test/java/io/charStreams/BufferSizes.java ! test/java/io/charStreams/BufferedReaderMark.java ! test/java/io/charStreams/Cat.java ! test/java/io/charStreams/CharGenerator.java ! test/java/io/charStreams/IntGenerator.java ! test/java/io/charStreams/LineGenerator.java ! test/java/io/charStreams/LineLengths.java ! test/java/io/charStreams/LineLengthsSource.java ! test/java/io/charStreams/LineNumbers.java ! test/java/io/charStreams/LineSink.java ! test/java/io/charStreams/RandomLineSource.java ! test/java/io/charStreams/RandomLines.java ! test/java/io/charStreams/SmallReads.java ! test/java/io/charStreams/StringConvert.java ! test/java/io/charStreams/StringGenerator.java ! test/java/io/charStreams/UTF16.java ! test/java/io/charStreams/UTF8.java ! test/java/io/charStreams/WriteLengths.java ! test/java/io/pathNames/General.java ! test/java/io/pathNames/GeneralWin32.java ! test/java/io/pathNames/unix/TrailingSlash.java ! test/java/io/pathNames/win32/BadDriveLetter.java ! test/java/io/pathNames/win32/DriveOnly.java ! test/java/io/pathNames/win32/DriveRelativePath.java ! test/java/io/pathNames/win32/DriveSlash.java ! test/java/io/pathNames/win32/RenameDelete.java ! test/java/io/pathNames/win32/SJIS.java ! test/java/io/pathNames/win32/bug6344646.java ! test/java/io/readBytes/MemoryLeak.java ! test/java/io/readBytes/ReadBytesBounds.java ! test/java/lang/Appendable/Basic.java ! test/java/lang/AssertionError/Cause.java ! test/java/lang/Boolean/Factory.java ! test/java/lang/Boolean/GetBoolean.java ! test/java/lang/Boolean/MakeBooleanComparable.java ! test/java/lang/Boolean/ParseBoolean.java ! test/java/lang/Byte/Decode.java ! test/java/lang/Class/Cast.java ! test/java/lang/Class/IsAnnotationType.java ! test/java/lang/Class/IsEnum.java ! test/java/lang/Class/IsSynthetic.java ! test/java/lang/Class/TypeCheckMicroBenchmark.java ! test/java/lang/Class/asSubclass/BasicUnit.java ! test/java/lang/Class/forName/InitArg.java ! test/java/lang/Class/forName/InvalidNameWithSlash.java ! test/java/lang/Class/forName/NonJavaNames.java ! test/java/lang/Class/forName/NonJavaNames.sh ! test/java/lang/Class/forName/Z.java ! test/java/lang/Class/getClasses/Sanity.java ! test/java/lang/Class/getDeclaredClasses/Sanity.java ! test/java/lang/Class/getDeclaredClasses/TypeTag.java ! test/java/lang/Class/getDeclaredField/Exceptions.java ! test/java/lang/Class/getDeclaredMethod/Exceptions.java ! test/java/lang/Class/getDeclaringClass/Sanity.java ! test/java/lang/Class/getEnclosingClass/EnclosingClass.java ! test/java/lang/Class/getEnclosingClass/EnclosingClassTest.java ! test/java/lang/Class/getEnclosingClass/T4992170.java ! test/java/lang/Class/getEnclosingClass/build.sh ! test/java/lang/Class/getEnclosingClass/common/TestMe.java ! test/java/lang/Class/getEnclosingClass/make_src.sh ! test/java/lang/Class/getEnclosingConstructor/EnclosingConstructorTests.java ! test/java/lang/Class/getEnclosingMethod/EnclosingMethodTests.java ! test/java/lang/Class/getField/Exceptions.java ! test/java/lang/Class/getMethod/Exceptions.java ! test/java/lang/Class/getMethod/NullInParamList.java ! test/java/lang/Class/getMethods/NonPublicStaticInitializer.java ! test/java/lang/Class/getMethods/StarInheritance.java ! test/java/lang/Class/getModifiers/ForInnerClass.java ! test/java/lang/Class/getModifiers/ForStaticInnerClass.java ! test/java/lang/Class/getModifiers/ResolveFrom.java ! test/java/lang/Class/getModifiers/StripACC_SUPER.java ! test/java/lang/ClassLoader/Assert.java ! test/java/lang/ClassLoader/Assert.sh ! test/java/lang/ClassLoader/ExceptionHidingLoader.java ! test/java/lang/ClassLoader/GetDotResource.java ! test/java/lang/ClassLoader/GetPackage.java ! test/java/lang/ClassLoader/LoadNullClass.java ! test/java/lang/ClassLoader/UninitializedParent.java ! test/java/lang/ClassLoader/deadlock/Alice.java ! test/java/lang/ClassLoader/deadlock/Bob.java ! test/java/lang/ClassLoader/deadlock/DelegatingLoader.java ! test/java/lang/ClassLoader/deadlock/Starter.java ! test/java/lang/ClassLoader/deadlock/SupAlice.java ! test/java/lang/ClassLoader/deadlock/SupBob.java ! test/java/lang/ClassLoader/deadlock/TestCrossDelegate.sh ! test/java/lang/ClassLoader/deadlock/TestOneWayDelegate.sh ! test/java/lang/ClassLoader/defineClass/DefineClassByteBuffer.java ! test/java/lang/ClassLoader/defineClass/TestClass.java ! test/java/lang/ClassLoader/findSystemClass/Loadee.java ! test/java/lang/ClassLoader/findSystemClass/Loader.java ! test/java/lang/ClassLoader/package1/Class1.java ! test/java/lang/ClassLoader/package1/package3/Class3.java ! test/java/lang/ClassLoader/package2/Class2.java ! test/java/lang/Compare.java ! test/java/lang/Double/BitwiseConversion.java ! test/java/lang/Double/Constants.java ! test/java/lang/Double/Extrema.java ! test/java/lang/Double/NaNInfinityParsing.java ! test/java/lang/Double/ParseDouble.java ! test/java/lang/Double/ParseHexFloatingPoint.java ! test/java/lang/Double/ToHexString.java ! test/java/lang/Double/ToString.java ! test/java/lang/Enum/ValueOf.java ! test/java/lang/Float/BitwiseConversion.java ! test/java/lang/Float/Constants.java ! test/java/lang/Float/Extrema.java ! test/java/lang/Float/NaNInfinityParsing.java ! test/java/lang/Float/ParseFloat.java ! test/java/lang/HashCode.java ! test/java/lang/InheritableThreadLocal/Basic.java ! test/java/lang/InheritableThreadLocal/ITLRemoveTest.java ! test/java/lang/Integer/BitTwiddle.java ! test/java/lang/Integer/Decode.java ! test/java/lang/Integer/GetInteger.java ! test/java/lang/Integer/ParsingTest.java ! test/java/lang/Integer/ValueOf.java ! test/java/lang/Long/BitTwiddle.java ! test/java/lang/Long/Decode.java ! test/java/lang/Long/GetLong.java ! test/java/lang/Long/ParsingTest.java ! test/java/lang/Math/AbsPositiveZero.java ! test/java/lang/Math/Atan2Tests.java ! test/java/lang/Math/CeilAndFloorTests.java ! test/java/lang/Math/CubeRootTests.java ! test/java/lang/Math/Expm1Tests.java ! test/java/lang/Math/HyperbolicTests.java ! test/java/lang/Math/HypotTests.java ! test/java/lang/Math/IeeeRecommendedTests.java ! test/java/lang/Math/Log10Tests.java ! test/java/lang/Math/Log1pTests.java ! test/java/lang/Math/MinMax.java ! test/java/lang/Math/PowTests.java ! test/java/lang/Math/Rint.java ! test/java/lang/Math/TanTests.java ! test/java/lang/Math/Tests.java ! test/java/lang/ProcessBuilder/Basic.java ! test/java/lang/ProcessBuilder/BigFork.java ! test/java/lang/ProcessBuilder/FeelingLucky.java ! test/java/lang/ProcessBuilder/Zombies.java ! test/java/lang/Runtime/exec/ArgWithSpaceAndFinalBackslash.java ! test/java/lang/Runtime/exec/BadEnvp.java ! test/java/lang/Runtime/exec/ConcurrentRead.java ! test/java/lang/Runtime/exec/Duped.java ! test/java/lang/Runtime/exec/ExecEmptyString.java ! test/java/lang/Runtime/exec/ExecWithDir.java ! test/java/lang/Runtime/exec/ExecWithInput.java ! test/java/lang/Runtime/exec/ExecWithLotsOfArgs.java ! test/java/lang/Runtime/exec/ExitValue.java ! test/java/lang/Runtime/exec/LotsOfDestroys.java ! test/java/lang/Runtime/exec/LotsOfOutput.java ! test/java/lang/Runtime/exec/SetCwd.java ! test/java/lang/Runtime/exec/SleepyCat.java ! test/java/lang/Runtime/exec/Space.java ! test/java/lang/Runtime/exec/Status.java ! test/java/lang/Runtime/exec/StreamsSurviveDestroy.java ! test/java/lang/Runtime/exec/WinCommand.java ! test/java/lang/Runtime/shutdown/ShutdownHooks.java ! test/java/lang/Runtime/shutdown/ShutdownHooks.sh ! test/java/lang/RuntimePermission/ExitVM.java ! test/java/lang/Short/ByteSwap.java ! test/java/lang/Short/Decode.java ! test/java/lang/StackTraceElement/PublicConstructor.java ! test/java/lang/StrictMath/CubeRootTests.java ! test/java/lang/StrictMath/Expm1Tests.java ! test/java/lang/StrictMath/HyperbolicTests.java ! test/java/lang/StrictMath/HypotTests.java ! test/java/lang/StrictMath/Log10Tests.java ! test/java/lang/StrictMath/Log1pTests.java ! test/java/lang/StrictMath/Tests.java ! test/java/lang/String/CaseConvertSameInstance.java ! test/java/lang/String/CompareIC.java ! test/java/lang/String/ContentEquals.java ! test/java/lang/String/Encodings.java ! test/java/lang/String/Exceptions.java ! test/java/lang/String/ICCBasher.java ! test/java/lang/String/IndexOfEmptyInEmpty.java ! test/java/lang/String/IsEmpty.java ! test/java/lang/String/NonCharacterMapping.java ! test/java/lang/String/Regex.java ! test/java/lang/String/RegionMatches.java ! test/java/lang/String/SBConstructor.java ! test/java/lang/String/Split.java ! test/java/lang/String/Supplementary.java ! test/java/lang/String/ToLowerCase.java ! test/java/lang/String/ToUpperCase.java ! test/java/lang/StringBuffer/AppendCharSequence.java ! test/java/lang/StringBuffer/AppendSB.java ! test/java/lang/StringBuffer/Exceptions.java ! test/java/lang/StringBuffer/GetCharsOverLength.java ! test/java/lang/StringBuffer/GetCharsSrcEndLarger.java ! test/java/lang/StringBuffer/IndexOf.java ! test/java/lang/StringBuffer/InsertMaxValue.java ! test/java/lang/StringBuffer/InsertNullString.java ! test/java/lang/StringBuffer/Replace.java ! test/java/lang/StringBuffer/SBBasher.java ! test/java/lang/StringBuffer/SetLength.java ! test/java/lang/StringBuffer/Substring.java ! test/java/lang/StringBuffer/Supplementary.java ! test/java/lang/StringBuffer/Trim.java ! test/java/lang/StringBuilder/Exceptions.java ! test/java/lang/StringBuilder/Insert.java ! test/java/lang/StringBuilder/Supplementary.java ! test/java/lang/StringCoding/CheckEncodings.sh ! test/java/lang/StringCoding/Enormous.java ! test/java/lang/System/Available.java ! test/java/lang/System/ExitFinalizersAndJIT.java ! test/java/lang/System/IHashCode.java ! test/java/lang/System/IgnoreNullSecurityManager.java ! test/java/lang/System/SecurityRace.java ! test/java/lang/System/Versions.java ! test/java/lang/System/finalization/FinExit.java ! test/java/lang/System/finalization/FinExit.sh ! test/java/lang/System/finalization/FinThreads.java ! test/java/lang/Thread/GenerifyStackTraces.java ! test/java/lang/Thread/HoldsLock.java ! test/java/lang/Thread/MainThreadTest.java ! test/java/lang/Thread/NullStackTrace.java ! test/java/lang/Thread/StackTraces.java ! test/java/lang/Thread/StartOOMTest.java ! test/java/lang/Thread/StopBeforeStart.java ! test/java/lang/Thread/ThreadStateTest.java ! test/java/lang/Thread/UncaughtExceptions.sh ! test/java/lang/ThreadGroup/Daemon.java ! test/java/lang/ThreadGroup/NullThreadName.java ! test/java/lang/ThreadGroup/SetMaxPriority.java ! test/java/lang/ThreadGroup/Stop.java ! test/java/lang/ThreadGroup/Suspend.java ! test/java/lang/ThreadLocal/Basic.java ! test/java/lang/ThreadLocal/ImmutableLocal.java ! test/java/lang/ThreadLocal/InitialValue.java ! test/java/lang/ThreadLocal/MemoryLeak.java ! test/java/lang/ThreadLocal/TLRemoveTest.java ! test/java/lang/ThreadLocal/TestThreadId.java ! test/java/lang/ThreadLocal/ThreadId.java ! test/java/lang/Throwable/LegacyChainedExceptionSerialization.java ! test/java/lang/Throwable/LocalizedMessage.java ! test/java/lang/Throwable/NewChainedExceptions.java ! test/java/lang/Throwable/StackTraceSerialization.java ! test/java/lang/ToString.java ! test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java ! test/java/lang/annotation/Missing/A.java ! test/java/lang/annotation/Missing/B.java ! test/java/lang/annotation/Missing/C.java ! test/java/lang/annotation/Missing/D.java ! test/java/lang/annotation/Missing/Marker.java ! test/java/lang/annotation/Missing/Missing.java ! test/java/lang/annotation/Missing/MissingTest.java ! test/java/lang/annotation/Missing/MissingWrapper.java ! test/java/lang/annotation/PackageMain.java ! test/java/lang/annotation/ParameterAnnotations.java ! test/java/lang/annotation/RecursiveAnnotation.java ! test/java/lang/annotation/UnitTest.java ! test/java/lang/annotation/loaderLeak/A.java ! test/java/lang/annotation/loaderLeak/B.java ! test/java/lang/annotation/loaderLeak/C.java ! test/java/lang/annotation/loaderLeak/LoaderLeak.sh ! test/java/lang/annotation/loaderLeak/Main.java ! test/java/lang/annotation/package-info.java ! test/java/lang/instrument/AInstrumentationTestCase.java ! test/java/lang/instrument/ASimpleInstrumentationTestCase.java ! test/java/lang/instrument/ATestCaseScaffold.java ! test/java/lang/instrument/ATransformerManagementTestCase.java ! test/java/lang/instrument/AddTransformerTest.java ! test/java/lang/instrument/AppendToBootstrapClassPathSetUp.sh ! test/java/lang/instrument/AppendToBootstrapClassPathTest.java ! test/java/lang/instrument/AppendToClassPathSetUp.sh ! test/java/lang/instrument/AppendToClassPathTest.java ! test/java/lang/instrument/BootClassPath/Agent.java ! test/java/lang/instrument/BootClassPath/AgentSupport.java ! test/java/lang/instrument/BootClassPath/BootClassPathTest.sh ! test/java/lang/instrument/BootClassPath/Cleanup.java ! test/java/lang/instrument/BootClassPath/DummyMain.java ! test/java/lang/instrument/BootClassPath/Setup.java ! test/java/lang/instrument/BufferClassLoader.java ! test/java/lang/instrument/Counter.java ! test/java/lang/instrument/Different_ExampleRedefine.java ! test/java/lang/instrument/DummyClass.java ! test/java/lang/instrument/ExampleForBootClassPath.java ! test/java/lang/instrument/ExampleForClassPath.java ! test/java/lang/instrument/ExampleRedefine.java ! test/java/lang/instrument/FakeTestDriver.java ! test/java/lang/instrument/FromShutdownHook.java ! test/java/lang/instrument/GetAllLoadedClassesTest.java ! test/java/lang/instrument/GetInitiatedClassesTest.java ! test/java/lang/instrument/GetObjectSizeTest.java ! test/java/lang/instrument/InstrumentationHandoff.java ! test/java/lang/instrument/IsModifiableClassAgent.java ! test/java/lang/instrument/IsModifiableClassApp.java ! test/java/lang/instrument/MakeJAR.sh ! test/java/lang/instrument/MakeJAR2.sh ! test/java/lang/instrument/MakeJAR3.sh ! test/java/lang/instrument/ManifestTest.sh ! test/java/lang/instrument/ManifestTestAgent.java ! test/java/lang/instrument/ManifestTestApp.java ! test/java/lang/instrument/NamedBuffer.java ! test/java/lang/instrument/NativeMethodPrefixAgent.java ! test/java/lang/instrument/NativeMethodPrefixApp.java ! test/java/lang/instrument/NoTransformerAddedTest.java ! test/java/lang/instrument/NullGetObjectSizeTest.java ! test/java/lang/instrument/NullRedefineClassesTests.java ! test/java/lang/instrument/NullTransformerAddTest.java ! test/java/lang/instrument/NullTransformerRemoveTest.java ! test/java/lang/instrument/ParallelTransformerLoader.sh ! test/java/lang/instrument/ParallelTransformerLoaderAgent.java ! test/java/lang/instrument/ParallelTransformerLoaderApp.java ! test/java/lang/instrument/PremainClass/CreateFiles.java ! test/java/lang/instrument/PremainClass/DummyMain.java ! test/java/lang/instrument/PremainClass/InheritAgent0001.java ! test/java/lang/instrument/PremainClass/InheritAgent0010.java ! test/java/lang/instrument/PremainClass/InheritAgent0011.java ! test/java/lang/instrument/PremainClass/InheritAgent0100.java ! test/java/lang/instrument/PremainClass/InheritAgent0101.java ! test/java/lang/instrument/PremainClass/InheritAgent0110.java ! test/java/lang/instrument/PremainClass/InheritAgent0111.java ! test/java/lang/instrument/PremainClass/InheritAgent1000.java ! test/java/lang/instrument/PremainClass/InheritAgent1001.java ! test/java/lang/instrument/PremainClass/InheritAgent1010.java ! test/java/lang/instrument/PremainClass/InheritAgent1011.java ! test/java/lang/instrument/PremainClass/InheritAgent1100.java ! test/java/lang/instrument/PremainClass/InheritAgent1101.java ! test/java/lang/instrument/PremainClass/InheritAgent1110.java ! test/java/lang/instrument/PremainClass/InheritAgent1111.java ! test/java/lang/instrument/PremainClass/NoPremainAgent.java ! test/java/lang/instrument/PremainClass/NoPremainAgent.sh ! test/java/lang/instrument/PremainClass/PremainClassTest.sh ! test/java/lang/instrument/PremainClass/ZeroArgPremainAgent.java ! test/java/lang/instrument/PremainClass/ZeroArgPremainAgent.sh ! test/java/lang/instrument/RedefineClassWithNativeMethod.sh ! test/java/lang/instrument/RedefineClassWithNativeMethodAgent.java ! test/java/lang/instrument/RedefineClassWithNativeMethodApp.java ! test/java/lang/instrument/RedefineClassesDisabledTest.java ! test/java/lang/instrument/RedefineClassesTests.java ! test/java/lang/instrument/RedefineMethodAddInvoke.sh ! test/java/lang/instrument/RedefineMethodAddInvokeAgent.java ! test/java/lang/instrument/RedefineMethodAddInvokeApp.java ! test/java/lang/instrument/RedefineMethodAddInvokeTarget.java ! test/java/lang/instrument/RedefineMethodAddInvokeTarget_1.java ! test/java/lang/instrument/RedefineMethodAddInvokeTarget_2.java ! test/java/lang/instrument/RedefineSetUp.sh ! test/java/lang/instrument/RemoveAbsentTransformerTest.java ! test/java/lang/instrument/RemoveTransformerTest.java ! test/java/lang/instrument/RetransformAgent.java ! test/java/lang/instrument/RetransformApp.java ! test/java/lang/instrument/RuntimeConstants.java ! test/java/lang/instrument/SimpleIdentityTransformer.java ! test/java/lang/instrument/SingleTransformerTest.java ! test/java/lang/instrument/StressGetObjectSizeApp.java ! test/java/lang/instrument/StressGetObjectSizeTest.sh ! test/java/lang/instrument/TestClass1.java ! test/java/lang/instrument/TestClass2.java ! test/java/lang/instrument/TestClass3.java ! test/java/lang/instrument/TransformMethodTest.java ! test/java/lang/instrument/TransformerManagementThreadAddTests.java ! test/java/lang/instrument/TransformerManagementThreadRemoveTests.java ! test/java/lang/instrument/appendToClassLoaderSearch/Agent.java ! test/java/lang/instrument/appendToClassLoaderSearch/AgentSupport.java ! test/java/lang/instrument/appendToClassLoaderSearch/Application.java ! test/java/lang/instrument/appendToClassLoaderSearch/BasicTest.java ! test/java/lang/instrument/appendToClassLoaderSearch/BootSupport.java ! test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.java ! test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.sh ! test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.java ! test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.sh ! test/java/lang/instrument/appendToClassLoaderSearch/CommonSetup.sh ! test/java/lang/instrument/appendToClassLoaderSearch/DynamicTest.java ! test/java/lang/instrument/appendToClassLoaderSearch/InstrumentedApplication.java ! test/java/lang/instrument/appendToClassLoaderSearch/PrematureLoadTest.java ! test/java/lang/instrument/appendToClassLoaderSearch/Tracer.java ! test/java/lang/instrument/appendToClassLoaderSearch/run_tests.sh ! test/java/lang/instrument/bootreporter/StringIdCallback.java ! test/java/lang/instrument/bootreporter/StringIdCallbackReporter.java ! test/java/lang/instrument/ilib/ClassDump.java ! test/java/lang/instrument/ilib/ClassReaderWriter.java ! test/java/lang/instrument/ilib/Info.java ! test/java/lang/instrument/ilib/Inject.java ! test/java/lang/instrument/ilib/InjectBytecodes.java ! test/java/lang/instrument/ilib/Injector.java ! test/java/lang/instrument/ilib/Options.java ! test/java/lang/instrument/ilib/RuntimeConstants.java ! test/java/lang/management/ClassLoadingMXBean/LoadCounts.java ! test/java/lang/management/CompilationMXBean/Basic.java ! test/java/lang/management/CompositeData/MemoryNotifInfoCompositeData.java ! test/java/lang/management/CompositeData/MemoryUsageCompositeData.java ! test/java/lang/management/CompositeData/OpenTypeConverter.java ! test/java/lang/management/CompositeData/ThreadInfoCompositeData.java ! test/java/lang/management/GarbageCollectorMXBean/GcInfoCompositeType.java ! test/java/lang/management/MXBean/MXBeanBehavior.java ! test/java/lang/management/ManagementFactory/GetPlatformMXBeans.java ! test/java/lang/management/ManagementFactory/MBeanServerMXBeanUnsupportedTest.java ! test/java/lang/management/ManagementFactory/MXBeanException.java ! test/java/lang/management/ManagementFactory/MXBeanProxyTest.java ! test/java/lang/management/ManagementFactory/PlatformMBeanServerTest.java ! test/java/lang/management/ManagementFactory/ProxyExceptions.java ! test/java/lang/management/ManagementFactory/ProxyTypeMapping.java ! test/java/lang/management/ManagementFactory/StateTest.java ! test/java/lang/management/ManagementFactory/StateTestMBean.java ! test/java/lang/management/ManagementFactory/ThreadMXBeanProxy.java ! test/java/lang/management/ManagementFactory/ValidateOpenTypes.java ! test/java/lang/management/MemoryMXBean/CollectionUsageThreshold.java ! test/java/lang/management/MemoryMXBean/CollectionUsageThresholdConcMarkSweepGC.sh ! test/java/lang/management/MemoryMXBean/CollectionUsageThresholdParallelGC.sh ! test/java/lang/management/MemoryMXBean/CollectionUsageThresholdSerialGC.sh ! test/java/lang/management/MemoryMXBean/GetMBeanInfo.java ! test/java/lang/management/MemoryMXBean/LowMemoryTest.java ! test/java/lang/management/MemoryMXBean/LowMemoryTest2.java ! test/java/lang/management/MemoryMXBean/LowMemoryTest2.sh ! test/java/lang/management/MemoryMXBean/LowMemoryTestConcMarkSweepGC.sh ! test/java/lang/management/MemoryMXBean/LowMemoryTestParallelGC.sh ! test/java/lang/management/MemoryMXBean/LowMemoryTestSerialGC.sh ! test/java/lang/management/MemoryMXBean/MemoryManagement.java ! test/java/lang/management/MemoryMXBean/MemoryManagementConcMarkSweepGC.sh ! test/java/lang/management/MemoryMXBean/MemoryManagementParallelGC.sh ! test/java/lang/management/MemoryMXBean/MemoryManagementSerialGC.sh ! test/java/lang/management/MemoryMXBean/MemoryTest.java ! test/java/lang/management/MemoryMXBean/MemoryTestAllGC.sh ! test/java/lang/management/MemoryMXBean/MemoryUtil.java ! test/java/lang/management/MemoryMXBean/Pending.java ! test/java/lang/management/MemoryMXBean/PendingAllGC.sh ! test/java/lang/management/MemoryMXBean/ResetPeakMemoryUsage.java ! test/java/lang/management/MemoryPoolMXBean/ThresholdTest.java ! test/java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java ! test/java/lang/management/OperatingSystemMXBean/PlatformMXBeanTest.java ! test/java/lang/management/OperatingSystemMXBean/TestSystemLoadAvg.sh ! test/java/lang/management/RuntimeMXBean/GetSystemProperties.java ! test/java/lang/management/RuntimeMXBean/InputArgument.java ! test/java/lang/management/RuntimeMXBean/PropertiesTest.java ! test/java/lang/management/RuntimeMXBean/TestInputArgument.sh ! test/java/lang/management/RuntimeMXBean/UpTime.java ! test/java/lang/management/ThreadMXBean/AllThreadIds.java ! test/java/lang/management/ThreadMXBean/Barrier.java ! test/java/lang/management/ThreadMXBean/DisableTest.java ! test/java/lang/management/ThreadMXBean/EnableTest.java ! test/java/lang/management/ThreadMXBean/FindDeadlocks.java ! test/java/lang/management/ThreadMXBean/FindMonitorDeadlock.java ! test/java/lang/management/ThreadMXBean/InvalidThreadID.java ! test/java/lang/management/ThreadMXBean/LockedMonitors.java ! test/java/lang/management/ThreadMXBean/LockedSynchronizers.java ! test/java/lang/management/ThreadMXBean/LockingThread.java ! test/java/lang/management/ThreadMXBean/Locks.java ! test/java/lang/management/ThreadMXBean/MonitorDeadlock.java ! test/java/lang/management/ThreadMXBean/MyOwnSynchronizer.java ! test/java/lang/management/ThreadMXBean/ResetPeakThreadCount.java ! test/java/lang/management/ThreadMXBean/Semaphore.java ! test/java/lang/management/ThreadMXBean/SharedSynchronizer.java ! test/java/lang/management/ThreadMXBean/SynchronizationStatistics.java ! test/java/lang/management/ThreadMXBean/SynchronizerDeadlock.java ! test/java/lang/management/ThreadMXBean/SynchronizerLockingThread.java ! test/java/lang/management/ThreadMXBean/ThreadBlockedCount.java ! test/java/lang/management/ThreadMXBean/ThreadCounts.java ! test/java/lang/management/ThreadMXBean/ThreadCpuTime.java ! test/java/lang/management/ThreadMXBean/ThreadDump.java ! test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java ! test/java/lang/management/ThreadMXBean/ThreadInfoArray.java ! test/java/lang/management/ThreadMXBean/ThreadLists.java ! test/java/lang/management/ThreadMXBean/ThreadStackTrace.java ! test/java/lang/management/ThreadMXBean/ThreadStateTest.java ! test/java/lang/management/ThreadMXBean/ThreadUserTime.java ! test/java/lang/management/ThreadMXBean/Utils.java ! test/java/lang/ref/Basic.java ! test/java/lang/ref/EnqueueNullRef.java ! test/java/lang/ref/NullQueue.java ! test/java/lang/ref/SoftReference/Bash.java ! test/java/lang/ref/SoftReference/Pin.java ! test/java/lang/reflect/Array/ExceedMaxDim.java ! test/java/lang/reflect/Assignment/ArrayAssignment.java ! test/java/lang/reflect/Constructor/GenericStringTest.java ! test/java/lang/reflect/Constructor/TestParameterAnnotations.java ! test/java/lang/reflect/DefaultAccessibility.java ! test/java/lang/reflect/Field/4490864/StaticFieldTest.java ! test/java/lang/reflect/Field/4498653/StaticInitializerTest.java ! test/java/lang/reflect/Field/GenericStringTest.java ! test/java/lang/reflect/Field/Set.java ! test/java/lang/reflect/Generics/HashCodeTest.java ! test/java/lang/reflect/Generics/Probe.java ! test/java/lang/reflect/Generics/StringsAndBounds.java ! test/java/lang/reflect/Generics/TestC1.java ! test/java/lang/reflect/Generics/TestC2.java ! test/java/lang/reflect/Generics/TestN1.java ! test/java/lang/reflect/Generics/TestParameterizedType.java ! test/java/lang/reflect/Generics/TestPlainArrayNotGeneric.java ! test/java/lang/reflect/Generics/exceptionCauseTest.java ! test/java/lang/reflect/Generics/getAnnotationTest.java ! test/java/lang/reflect/Method/Equals.java ! test/java/lang/reflect/Method/GenericStringTest.java ! test/java/lang/reflect/Method/InheritedInterfaceMethods.java ! test/java/lang/reflect/Method/InheritedMethods.java ! test/java/lang/reflect/Method/invoke/ErrorInInvoke.java ! test/java/lang/reflect/Method/invoke/IllegalAccessInInvoke.java ! test/java/lang/reflect/Modifier/toStringTest.java ! test/java/lang/reflect/Proxy/Basic1.java ! test/java/lang/reflect/Proxy/Boxing.java ! test/java/lang/reflect/Proxy/CharType.java ! test/java/lang/reflect/Proxy/ClassRestrictions.java ! test/java/lang/reflect/Proxy/NullClassLoader.java ! test/java/lang/reflect/Proxy/nonJavaNames/Test.java ! test/java/lang/reflect/Proxy/returnTypes/GetArray.java ! test/java/lang/reflect/Proxy/returnTypes/GetCloneable.java ! test/java/lang/reflect/Proxy/returnTypes/GetObject.java ! test/java/lang/reflect/Proxy/returnTypes/GetSerializable.java ! test/java/lang/reflect/Proxy/returnTypes/Test.java ! test/java/lang/reflect/ReflectPermission/Exceptions.java ! test/java/math/BigDecimal/AddTests.java ! test/java/math/BigDecimal/CompareToTests.java ! test/java/math/BigDecimal/Constructor.java ! test/java/math/BigDecimal/DivideTests.java ! test/java/math/BigDecimal/EqualsTests.java ! test/java/math/BigDecimal/FloatDoubleValueTests.java ! test/java/math/BigDecimal/IntegralDivisionTests.java ! test/java/math/BigDecimal/LongValueExactTests.java ! test/java/math/BigDecimal/MultiplyTests.java ! test/java/math/BigDecimal/NegateTests.java ! test/java/math/BigDecimal/PowTests.java ! test/java/math/BigDecimal/PrecisionTests.java ! test/java/math/BigDecimal/RoundingTests.java ! test/java/math/BigDecimal/ScaleByPowerOfTenTests.java ! test/java/math/BigDecimal/SerializationTests.java ! test/java/math/BigDecimal/StringConstructor.java ! test/java/math/BigDecimal/StrippingZerosTest.java ! test/java/math/BigDecimal/ToPlainStringTests.java ! test/java/math/BigDecimal/ZeroScalingTests.java ! test/java/math/BigInteger/BigIntegerTest.java ! test/java/math/BigInteger/CompareToTests.java ! test/java/math/BigInteger/ExtremeShiftingTests.java ! test/java/math/BigInteger/ModPow.java ! test/java/math/BigInteger/ModPow65537.java ! test/java/math/BigInteger/ModPowPowersof2.java ! test/java/math/BigInteger/OperatorNpeTests.java ! test/java/math/BigInteger/ProbablePrime.java ! test/java/math/BigInteger/StringConstructor.java ! test/java/math/BigInteger/UnicodeConstructor.java ! test/java/math/RoundingMode/RoundingModeTests.java ! test/java/net/Authenticator/AuthNPETest.java ! test/java/net/Authenticator/B4678055.java ! test/java/net/Authenticator/B4722333.java ! test/java/net/Authenticator/B4759514.java ! test/java/net/Authenticator/B4769350.java ! test/java/net/Authenticator/B4921848.java ! test/java/net/Authenticator/B4933582.java ! test/java/net/Authenticator/B4933582.sh ! test/java/net/Authenticator/B4962064.java ! test/java/net/Authenticator/B6870935.java ! test/java/net/Authenticator/BasicTest.java ! test/java/net/Authenticator/BasicTest3.java ! test/java/net/Authenticator/BasicTest4.java ! test/java/net/Authenticator/Deadlock.java ! test/java/net/B6499348.java ! test/java/net/BindException/Test.java ! test/java/net/CookieHandler/B6277794.java ! test/java/net/CookieHandler/B6644726.java ! test/java/net/CookieHandler/B6791927.java ! test/java/net/CookieHandler/CookieHandlerTest.java ! test/java/net/CookieHandler/CookieManagerTest.java ! test/java/net/CookieHandler/TestHttpCookie.java ! test/java/net/DatagramPacket/CheckBoundaries.java ! test/java/net/DatagramPacket/Constructor.java ! test/java/net/DatagramPacket/Offset.java ! test/java/net/DatagramPacket/ReuseBuf.java ! test/java/net/DatagramPacket/Unresolved.java ! test/java/net/DatagramSocket/B6411513.java ! test/java/net/DatagramSocket/BindFailTest.java ! test/java/net/DatagramSocket/DatagramTimeout.java ! test/java/net/DatagramSocket/ImplicitBind.java ! test/java/net/DatagramSocket/InheritHandle.java ! test/java/net/DatagramSocket/LocalSocketAddress.java ! test/java/net/DatagramSocket/PortUnreachable.java ! test/java/net/DatagramSocket/ReportSocketClosed.java ! test/java/net/DatagramSocket/Send12k.java ! test/java/net/DatagramSocket/SendDatagramToBadAddress.java ! test/java/net/DatagramSocket/SendSize.java ! test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.java ! test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh ! test/java/net/DatagramSocket/SetDatagramSocketImplFactory/java/net/MyDatagramSocketImplFactory.java ! test/java/net/DatagramSocket/SetReceiveBufferSize.java ! test/java/net/DatagramSocket/TestAfterClose.java ! test/java/net/DatagramSocketImpl/CheckDiscard.java ! test/java/net/HttpURLConnection/HttpResponseCode.java ! test/java/net/HttpURLConnection/getResponseCode.java ! test/java/net/Inet4Address/isSiteLocalAddress.java ! test/java/net/Inet4Address/textToNumericFormat.java ! test/java/net/Inet6Address/B4923906.java ! test/java/net/Inet6Address/B6206527.java ! test/java/net/Inet6Address/B6214234.java ! test/java/net/Inet6Address/B6558853.java ! test/java/net/Inet6Address/IPv6AddressTypes.java ! test/java/net/Inet6Address/IPv6Numeric.java ! test/java/net/Inet6Address/serialize/Serialize.java ! test/java/net/InetAddress/B4762344.java ! test/java/net/InetAddress/B5087907.java ! test/java/net/InetAddress/B6246242.java ! test/java/net/InetAddress/B6296240.java ! test/java/net/InetAddress/BadDottedIPAddress.java ! test/java/net/InetAddress/CachedUnknownHostName.java ! test/java/net/InetAddress/CheckJNI.java ! test/java/net/InetAddress/GetLocalHostWithSM.java ! test/java/net/InetAddress/GetLoopbackAddress.java ! test/java/net/InetAddress/HashSpread.java ! test/java/net/InetAddress/IPv4Formats.java ! test/java/net/InetAddress/IsHostReachableBug.java ! test/java/net/InetAddress/IsReachable.java ! test/java/net/InetAddress/MyPrincipal.java ! test/java/net/InetAddress/Simple1NameServiceDescriptor.java ! test/java/net/InetAddress/Simple2NameServiceDescriptor.java ! test/java/net/InetAddress/SimpleNameService.java ! test/java/net/InetAddress/WhiteSpaceHostTest.java ! test/java/net/InetAddress/ptr/Lookup.java ! test/java/net/InetAddress/ptr/lookup.sh ! test/java/net/InetSocketAddress/B4849451.java ! test/java/net/InetSocketAddress/B6469803.java ! test/java/net/InetSocketAddress/CreateUnresolved.java ! test/java/net/InetSocketAddress/ToString.java ! test/java/net/InterfaceAddress/Equals.java ! test/java/net/InterfaceAddress/NetworkPrefixLength.java ! test/java/net/MulticastSocket/B6425815.java ! test/java/net/MulticastSocket/B6427403.java ! test/java/net/MulticastSocket/JoinGroup.java ! test/java/net/MulticastSocket/Leave.java ! test/java/net/MulticastSocket/MulticastAddresses.java ! test/java/net/MulticastSocket/MulticastTTL.java ! test/java/net/MulticastSocket/NoLoopbackPackets.java ! test/java/net/MulticastSocket/Reuse.java ! test/java/net/MulticastSocket/SetLoopbackMode.java ! test/java/net/MulticastSocket/SetOutgoingIf.java ! test/java/net/MulticastSocket/SetTTLAndGetTTL.java ! test/java/net/MulticastSocket/SetTTLTo0.java ! test/java/net/MulticastSocket/Test.java ! test/java/net/MulticastSocket/TestDefaults.java ! test/java/net/MulticastSocket/TestInterfaces.java ! test/java/net/MulticastSocket/TimeToLive.java ! test/java/net/NetworkInterface/IndexTest.java ! test/java/net/NetworkInterface/NetParamsTest.java ! test/java/net/NetworkInterface/Test.java ! test/java/net/PlainSocketImpl/BigBacklog.java ! test/java/net/PlainSocketImpl/SetBufferSize.java ! test/java/net/PlainSocketImpl/SetOption.java ! test/java/net/PortUnreachableException/Concurrent.java ! test/java/net/PortUnreachableException/OneExceptionOnly.java ! test/java/net/PortUnreachableException/Test.java ! test/java/net/ProxySelector/B6563259.java ! test/java/net/ProxySelector/B6737819.java ! test/java/net/ProxySelector/LoopbackAddresses.java ! test/java/net/ProxySelector/NullArguments.java ! test/java/net/ProxySelector/NullSelector.java ! test/java/net/ProxySelector/ProxyTest.java ! test/java/net/ProxySelector/SystemProxies.java ! test/java/net/ResponseCache/B6181108.java ! test/java/net/ResponseCache/ResponseCacheTest.java ! test/java/net/ResponseCache/file1.cache ! test/java/net/ResponseCache/getResponseCode.java ! test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java ! test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.sh ! test/java/net/ServerSocket/TestAfterClose.java ! test/java/net/ServerSocket/ThreadStop.java ! test/java/net/Socket/AccurateTimeout.java ! test/java/net/Socket/AddressTest.java ! test/java/net/Socket/CloseAvailable.java ! test/java/net/Socket/DeadlockTest.java ! test/java/net/Socket/GetLocalAddress.java ! test/java/net/Socket/IDNTest.java ! test/java/net/Socket/InheritHandle.java ! test/java/net/Socket/InheritTimeout.java ! test/java/net/Socket/LingerTest.java ! test/java/net/Socket/LinkLocal.java ! test/java/net/Socket/NullHost.java ! test/java/net/Socket/OldImpl.java ! test/java/net/Socket/OldSocketImpl.java ! test/java/net/Socket/OldSocketImpl.sh ! test/java/net/Socket/ProxyCons.java ! test/java/net/Socket/RST.java ! test/java/net/Socket/ReadTimeout.java ! test/java/net/Socket/SetReceiveBufferSize.java ! test/java/net/Socket/SetSoLinger.java ! test/java/net/Socket/ShutdownBoth.java ! test/java/net/Socket/SoTimeout.java ! test/java/net/Socket/SocketImplTest.java ! test/java/net/Socket/SocksConnectTimeout.java ! test/java/net/Socket/TestAfterClose.java ! test/java/net/Socket/TestClose.java ! test/java/net/Socket/TestTcpNoDelay.java ! test/java/net/Socket/Timeout.java ! test/java/net/Socket/TrafficClass.java ! test/java/net/Socket/UrgentDataTest.java ! test/java/net/Socket/asyncClose/AsyncClose.java ! test/java/net/Socket/asyncClose/AsyncCloseTest.java ! test/java/net/Socket/asyncClose/BrokenPipe.java ! test/java/net/Socket/asyncClose/DatagramSocket_receive.java ! test/java/net/Socket/asyncClose/ServerSocket_accept.java ! test/java/net/Socket/asyncClose/Socket_getInputStream_read.java ! test/java/net/Socket/asyncClose/Socket_getOutputStream_write.java ! test/java/net/Socket/reset/Test.java ! test/java/net/Socket/setReuseAddress/Basic.java ! test/java/net/Socket/setReuseAddress/Restart.java ! test/java/net/SocketInputStream/SocketClosedException.java ! test/java/net/SocketInputStream/SocketTimeout.java ! test/java/net/SocketPermission/ActionSpace.java ! test/java/net/SocketPermission/B4414825.java ! test/java/net/SocketPermission/Ctor.java ! test/java/net/SocketPermission/Equals.java ! test/java/net/SocketPermission/NoAction.java ! test/java/net/Socks/SocksServer.java ! test/java/net/Socks/SocksV4Test.java ! test/java/net/URI/RelativeEncoding.java ! test/java/net/URI/Test.java ! test/java/net/URI/URItoURLTest.java ! test/java/net/URL/B4148751.java ! test/java/net/URL/B5086147.java ! test/java/net/URL/B5086147.sh ! test/java/net/URL/B6529759.java ! test/java/net/URL/Constructor.java ! test/java/net/URL/Equals.java ! test/java/net/URL/GetContent.java ! test/java/net/URL/GetDefaultPort.java ! test/java/net/URL/HandlerLoop.java ! test/java/net/URL/HashCode.java ! test/java/net/URL/OpenConnection.java ! test/java/net/URL/OpenStream.java ! test/java/net/URL/ParseAuthority.java ! test/java/net/URL/ParseURL.java ! test/java/net/URL/PerConnectionProxy.java ! test/java/net/URL/Protocol.java ! test/java/net/URL/RelativePath.java ! test/java/net/URL/RelativeURL.java ! test/java/net/URL/RelativeURLTest.java ! test/java/net/URL/RestoreURL.java ! test/java/net/URL/SpecifyHandler.java ! test/java/net/URL/Test.java ! test/java/net/URL/TestIPv6Addresses.java ! test/java/net/URL/TestPort.java ! test/java/net/URL/TestRFC2732.java ! test/java/net/URL/URIToURLTest.java ! test/java/net/URL/UppercaseScheme.java ! test/java/net/URL/runconstructor.sh ! test/java/net/URLClassLoader/AddURLTest.java ! test/java/net/URLClassLoader/B5077773.java ! test/java/net/URLClassLoader/B5077773.sh ! test/java/net/URLClassLoader/B6827999.java ! test/java/net/URLClassLoader/ClassLoad.java ! test/java/net/URLClassLoader/ClassPathTest.java ! test/java/net/URLClassLoader/GetURLsTest.java ! test/java/net/URLClassLoader/HttpTest.java ! test/java/net/URLClassLoader/URLParsing.java ! test/java/net/URLClassLoader/closetest/CloseTest.java ! test/java/net/URLClassLoader/closetest/build.sh ! test/java/net/URLClassLoader/closetest/serverRoot/Test.java ! test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass.java ! test/java/net/URLClassLoader/closetest/test1/com/foo/TestClass1.java ! test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass.java ! test/java/net/URLClassLoader/closetest/test2/com/foo/TestClass1.java ! test/java/net/URLClassLoader/getresourceasstream/Test.java ! test/java/net/URLClassLoader/getresourceasstream/test.sh ! test/java/net/URLClassLoader/sealing/CheckSealed.java ! test/java/net/URLClassLoader/sealing/a/p/A.java ! test/java/net/URLClassLoader/sealing/b/p/B.java ! test/java/net/URLClassLoader/sealing/checksealed.sh ! test/java/net/URLConnection/6212146/Test.java ! test/java/net/URLConnection/6212146/test.sh ! test/java/net/URLConnection/B5052093.java ! test/java/net/URLConnection/ChunkedEncoding.java ! test/java/net/URLConnection/Connect.java ! test/java/net/URLConnection/DisconnectAfterEOF.java ! test/java/net/URLConnection/ExifContentGuesser.java ! test/java/net/URLConnection/GetContentType.java ! test/java/net/URLConnection/GetFileNameMap.java ! test/java/net/URLConnection/GetLastModified.java ! test/java/net/URLConnection/GetResponseCode.java ! test/java/net/URLConnection/GetXmlContentType.java ! test/java/net/URLConnection/HandleContentTypeWithAttrs.java ! test/java/net/URLConnection/HttpContinueStackOverflow.java ! test/java/net/URLConnection/Redirect307Test.java ! test/java/net/URLConnection/RedirectLimit.java ! test/java/net/URLConnection/RequestProperties.java ! test/java/net/URLConnection/RequestPropertyValues.java ! test/java/net/URLConnection/ResendPostBody.java ! test/java/net/URLConnection/Responses.java ! test/java/net/URLConnection/SetIfModifiedSince.java ! test/java/net/URLConnection/TimeoutTest.java ! test/java/net/URLConnection/UNCTest.java ! test/java/net/URLConnection/UNCTest.sh ! test/java/net/URLConnection/URLConnectionHeaders.java ! test/java/net/URLConnection/UnknownContentType.java ! test/java/net/URLConnection/ZeroContentLength.java ! test/java/net/URLConnection/contentHandler/COM/foo/content/text/plain.java ! test/java/net/URLConnection/contentHandler/UserContentHandler.java ! test/java/net/URLDecoder/B6463990.java ! test/java/net/URLDecoder/EncodeDecode.java ! test/java/net/URLDecoder/URLDecoderArgs.java ! test/java/net/URLEncoder/DecodeNonEncoded.java ! test/java/net/URLEncoder/Decoder.java ! test/java/net/URLEncoder/SurrogatePairs.java ! test/java/net/URLEncoder/URLEncodeDecode.java ! test/java/net/URLEncoder/URLEncoderEncodeArgs.java ! test/java/net/ipv6tests/B6521014.java ! test/java/net/ipv6tests/BadIPv6Addresses.java ! test/java/net/ipv6tests/ScopeTests.java ! test/java/net/ipv6tests/TcpTest.java ! test/java/net/ipv6tests/Tests.java ! test/java/net/ipv6tests/UdpTest.java ! test/java/nio/Buffer/AllocateDirectInit.java ! test/java/nio/Buffer/Basic-X.java.template ! test/java/nio/Buffer/Basic.java ! test/java/nio/Buffer/BasicByte.java ! test/java/nio/Buffer/BasicChar.java ! test/java/nio/Buffer/BasicDouble.java ! test/java/nio/Buffer/BasicFloat.java ! test/java/nio/Buffer/BasicInt.java ! test/java/nio/Buffer/BasicLong.java ! test/java/nio/Buffer/BasicShort.java ! test/java/nio/Buffer/CharAt.java ! test/java/nio/Buffer/Chew.java ! test/java/nio/Buffer/CopyDirect-X-Memory.java.template ! test/java/nio/Buffer/CopyDirectByteMemory.java ! test/java/nio/Buffer/CopyDirectCharMemory.java ! test/java/nio/Buffer/CopyDirectDoubleMemory.java ! test/java/nio/Buffer/CopyDirectFloatMemory.java ! test/java/nio/Buffer/CopyDirectIntMemory.java ! test/java/nio/Buffer/CopyDirectLongMemory.java ! test/java/nio/Buffer/CopyDirectMemory.java ! test/java/nio/Buffer/CopyDirectShortMemory.java ! test/java/nio/Buffer/Order.java ! test/java/nio/Buffer/StringCharBufferSliceTest.java ! test/java/nio/Buffer/SwapMicroBenchmark.java ! test/java/nio/Buffer/genBasic.sh ! test/java/nio/Buffer/genCopyDirectMemory.sh ! test/java/nio/BufferPoolMXBean/Basic.java ! test/java/nio/ByteOrder/NativeOrder.java ! test/java/nio/MappedByteBuffer/Basic.java ! test/java/nio/MappedByteBuffer/Force.java ! test/java/nio/MappedByteBuffer/ZeroMap.java ! test/java/nio/channels/AsyncCloseAndInterrupt.java ! test/java/nio/channels/AsynchronousChannelGroup/AsExecutor.java ! test/java/nio/channels/AsynchronousChannelGroup/Attack.java ! test/java/nio/channels/AsynchronousChannelGroup/BadProperties.java ! test/java/nio/channels/AsynchronousChannelGroup/Basic.java ! test/java/nio/channels/AsynchronousChannelGroup/GroupOfOne.java ! test/java/nio/channels/AsynchronousChannelGroup/Identity.java ! test/java/nio/channels/AsynchronousChannelGroup/PrivilegedThreadFactory.java ! test/java/nio/channels/AsynchronousChannelGroup/Restart.java ! test/java/nio/channels/AsynchronousChannelGroup/Unbounded.java ! test/java/nio/channels/AsynchronousChannelGroup/run_any_task.sh ! test/java/nio/channels/AsynchronousDatagramChannel/Basic.java ! test/java/nio/channels/AsynchronousFileChannel/Basic.java ! test/java/nio/channels/AsynchronousFileChannel/CustomThreadPool.java ! test/java/nio/channels/AsynchronousFileChannel/Lock.java ! test/java/nio/channels/AsynchronousFileChannel/LotsOfWrites.java ! test/java/nio/channels/AsynchronousFileChannel/MyThreadFactory.java ! test/java/nio/channels/AsynchronousServerSocketChannel/Basic.java ! test/java/nio/channels/AsynchronousServerSocketChannel/WithSecurityManager.java ! test/java/nio/channels/AsynchronousSocketChannel/Basic.java ! test/java/nio/channels/AsynchronousSocketChannel/DieBeforeComplete.java ! test/java/nio/channels/AsynchronousSocketChannel/Leaky.java ! test/java/nio/channels/AsynchronousSocketChannel/StressLoopback.java ! test/java/nio/channels/Channels/Basic.java ! test/java/nio/channels/Channels/Basic2.java ! test/java/nio/channels/Channels/ReadByte.java ! test/java/nio/channels/Channels/ReadOffset.java ! test/java/nio/channels/Channels/ShortWrite.java ! test/java/nio/channels/Channels/TinyBuffers.java ! test/java/nio/channels/Channels/Write.java ! test/java/nio/channels/ConfigureBlocking.java ! test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java ! test/java/nio/channels/DatagramChannel/BasicMulticastTests.java ! test/java/nio/channels/DatagramChannel/Connect.java ! test/java/nio/channels/DatagramChannel/ConnectedSend.java ! test/java/nio/channels/DatagramChannel/EmptyBuffer.java ! test/java/nio/channels/DatagramChannel/IsBound.java ! test/java/nio/channels/DatagramChannel/IsConnected.java ! test/java/nio/channels/DatagramChannel/MulticastSendReceiveTests.java ! test/java/nio/channels/DatagramChannel/NetworkConfiguration.java ! test/java/nio/channels/DatagramChannel/NoSender.java ! test/java/nio/channels/DatagramChannel/NotBound.java ! test/java/nio/channels/DatagramChannel/Receive.java ! test/java/nio/channels/DatagramChannel/ReceiveISA.java ! test/java/nio/channels/DatagramChannel/Refused.java ! test/java/nio/channels/DatagramChannel/SRTest.java ! test/java/nio/channels/DatagramChannel/SendToUnresolved.java ! test/java/nio/channels/DatagramChannel/Sender.java ! test/java/nio/channels/DatagramChannel/SocketOptionTests.java ! test/java/nio/channels/DatagramChannel/ThereCanBeOnlyOne.java ! test/java/nio/channels/DatagramChannel/UseDGWithIPv6.java ! test/java/nio/channels/FileChannel/Args.java ! test/java/nio/channels/FileChannel/ClosedChannelTransfer.java ! test/java/nio/channels/FileChannel/ExpandingMap.java ! test/java/nio/channels/FileChannel/Force.java ! test/java/nio/channels/FileChannel/Lock.java ! test/java/nio/channels/FileChannel/LongTransferTest.java ! test/java/nio/channels/FileChannel/MapAssertions.java ! test/java/nio/channels/FileChannel/MapOverEnd.java ! test/java/nio/channels/FileChannel/MapReadOnly.java ! test/java/nio/channels/FileChannel/MapTest.java ! test/java/nio/channels/FileChannel/Mode.java ! test/java/nio/channels/FileChannel/Position.java ! test/java/nio/channels/FileChannel/Pread.java ! test/java/nio/channels/FileChannel/Pwrite.java ! test/java/nio/channels/FileChannel/Read.java ! test/java/nio/channels/FileChannel/ReadFull.java ! test/java/nio/channels/FileChannel/ReadToLimit.java ! test/java/nio/channels/FileChannel/Release.java ! test/java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java ! test/java/nio/channels/FileChannel/ScatteringRead.java ! test/java/nio/channels/FileChannel/Size.java ! test/java/nio/channels/FileChannel/Transfer.java ! test/java/nio/channels/FileChannel/TransferToChannel.java ! test/java/nio/channels/FileChannel/TransferToNonWritable.java ! test/java/nio/channels/FileChannel/Transfers.java ! test/java/nio/channels/FileChannel/Truncate.java ! test/java/nio/channels/FileChannel/TryLock.java ! test/java/nio/channels/FileChannel/Write.java ! test/java/nio/channels/Pipe/EmptyRead.java ! test/java/nio/channels/Pipe/NonBlocking.java ! test/java/nio/channels/Pipe/PipeChannel.java ! test/java/nio/channels/Pipe/ScatteringRead.java ! test/java/nio/channels/Pipe/SelectPipe.java ! test/java/nio/channels/SelectionKey/AtomicAttachTest.java ! test/java/nio/channels/Selector/Alias.java ! test/java/nio/channels/Selector/BasicAccept.java ! test/java/nio/channels/Selector/BasicConnect.java ! test/java/nio/channels/Selector/ByteServer.java ! test/java/nio/channels/Selector/CheckLocking.java ! test/java/nio/channels/Selector/Close.java ! test/java/nio/channels/Selector/CloseInvalidatesKeys.java ! test/java/nio/channels/Selector/CloseThenRegister.java ! test/java/nio/channels/Selector/CloseWhenKeyIdle.java ! test/java/nio/channels/Selector/Connect.java ! test/java/nio/channels/Selector/ConnectWrite.java ! test/java/nio/channels/Selector/HelperSlowToDie.java ! test/java/nio/channels/Selector/KeySets.java ! test/java/nio/channels/Selector/KeysReady.java ! test/java/nio/channels/Selector/LotsOfCancels.java ! test/java/nio/channels/Selector/LotsOfChannels.java ! test/java/nio/channels/Selector/LotsOfUpdates.java ! test/java/nio/channels/Selector/OpRead.java ! test/java/nio/channels/Selector/ReadAfterConnect.java ! test/java/nio/channels/Selector/RegAfterPreClose.java ! test/java/nio/channels/Selector/SelectAfterRead.java ! test/java/nio/channels/Selector/SelectAndCancel.java ! test/java/nio/channels/Selector/SelectAndClose.java ! test/java/nio/channels/Selector/SelectNowWhenEmpty.java ! test/java/nio/channels/Selector/SelectWrite.java ! test/java/nio/channels/Selector/SelectorLimit.java ! test/java/nio/channels/Selector/SelectorTest.java ! test/java/nio/channels/Selector/Wakeup.java ! test/java/nio/channels/Selector/WakeupAfterClose.java ! test/java/nio/channels/Selector/WakeupEmpty.java ! test/java/nio/channels/Selector/WakeupNow.java ! test/java/nio/channels/Selector/WakeupOverflow.java ! test/java/nio/channels/Selector/WakeupSpeed.java ! test/java/nio/channels/Selector/lots_of_updates.sh ! test/java/nio/channels/ServerSocketChannel/AcceptAddress.java ! test/java/nio/channels/ServerSocketChannel/AdaptServerSocket.java ! test/java/nio/channels/ServerSocketChannel/Basic.java ! test/java/nio/channels/ServerSocketChannel/NonBlockingAccept.java ! test/java/nio/channels/ServerSocketChannel/Open.java ! test/java/nio/channels/ServerSocketChannel/SocketOptionTests.java ! test/java/nio/channels/SocketChannel/AdaptSocket.java ! test/java/nio/channels/SocketChannel/AsyncCloseChannel.java ! test/java/nio/channels/SocketChannel/Basic.java ! test/java/nio/channels/SocketChannel/BigReadWrite.java ! test/java/nio/channels/SocketChannel/Bind.java ! test/java/nio/channels/SocketChannel/BufferSize.java ! test/java/nio/channels/SocketChannel/Close.java ! test/java/nio/channels/SocketChannel/CloseAfterConnect.java ! test/java/nio/channels/SocketChannel/CloseRegisteredChannel.java ! test/java/nio/channels/SocketChannel/CloseTimeoutChannel.java ! test/java/nio/channels/SocketChannel/Connect.java ! test/java/nio/channels/SocketChannel/ConnectState.java ! test/java/nio/channels/SocketChannel/ExceptionTranslation.java ! test/java/nio/channels/SocketChannel/FinishConnect.java ! test/java/nio/channels/SocketChannel/GetChannel.java ! test/java/nio/channels/SocketChannel/Hangup.java ! test/java/nio/channels/SocketChannel/IsConnectable.java ! test/java/nio/channels/SocketChannel/LocalAddress.java ! test/java/nio/channels/SocketChannel/Open.java ! test/java/nio/channels/SocketChannel/Open.sh ! test/java/nio/channels/SocketChannel/OpenLeak.java ! test/java/nio/channels/SocketChannel/Shutdown.java ! test/java/nio/channels/SocketChannel/SocketInheritance.java ! test/java/nio/channels/SocketChannel/SocketOptionTests.java ! test/java/nio/channels/SocketChannel/Stream.java ! test/java/nio/channels/SocketChannel/Trivial.java ! test/java/nio/channels/SocketChannel/UnboundSocketTests.java ! test/java/nio/channels/SocketChannel/VectorIO.java ! test/java/nio/channels/SocketChannel/VectorParams.java ! test/java/nio/channels/SocketChannel/Write.java ! test/java/nio/channels/TestThread.java ! test/java/nio/channels/TestUtil.java ! test/java/nio/channels/etc/NetworkChannelTests.java ! test/java/nio/channels/etc/Shadow.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/CheckProvider.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/Provider1.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/Provider2.java ! test/java/nio/channels/spi/AsynchronousChannelProvider/custom_provider.sh ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/CloseTest.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/ClosedStreams.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoService.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/EchoTest.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/NullTest.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTest.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/StateTestService.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Util.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh ! test/java/nio/charset/Charset/AvailableCharsetNames.java ! test/java/nio/charset/Charset/CharsetContainmentTest.java ! test/java/nio/charset/Charset/Contains.java ! test/java/nio/charset/Charset/Default.java ! test/java/nio/charset/Charset/EmptyCharsetName.java ! test/java/nio/charset/Charset/EncDec.java ! test/java/nio/charset/Charset/IllegalCharsetName.java ! test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java ! test/java/nio/charset/Charset/NullCharsetName.java ! test/java/nio/charset/Charset/RegisteredCharsets.java ! test/java/nio/charset/Charset/default.sh ! test/java/nio/charset/CharsetDecoder/AverageMax.java ! test/java/nio/charset/CharsetDecoder/EmptyInput.java ! test/java/nio/charset/CharsetEncoder/CanEncode.java ! test/java/nio/charset/CharsetEncoder/Flush.java ! test/java/nio/charset/RemovingSunIO/SunioAlias.java ! test/java/nio/charset/RemovingSunIO/TestCOMP.java ! test/java/nio/charset/RemovingSunIO/TestUnmappableForLength.java ! test/java/nio/charset/coders/BashCache.java ! test/java/nio/charset/coders/BashStreams.java ! test/java/nio/charset/coders/Check.java ! test/java/nio/charset/coders/CheckSJISMappingProp.sh ! test/java/nio/charset/coders/Errors.java ! test/java/nio/charset/coders/FullRead.java ! test/java/nio/charset/coders/IOCoders.java ! test/java/nio/charset/coders/IsLegalReplacement.java ! test/java/nio/charset/coders/ResetISO2022JP.java ! test/java/nio/charset/coders/SJISPropTest.java ! test/java/nio/charset/coders/StreamTimeout.java ! test/java/nio/charset/coders/Surrogate.java ! test/java/nio/charset/coders/Surrogates.java ! test/java/nio/charset/coders/Util.java ! test/java/nio/charset/spi/FooCharset.java ! test/java/nio/charset/spi/FooProvider.java ! test/java/nio/charset/spi/Test.java ! test/java/nio/charset/spi/basic.sh ! test/java/nio/file/DirectoryStream/Basic.java ! test/java/nio/file/DirectoryStream/DriveLetter.java ! test/java/nio/file/DirectoryStream/SecureDS.java ! test/java/nio/file/FileStore/Basic.java ! test/java/nio/file/FileSystem/Basic.java ! test/java/nio/file/Files/ContentType.java ! test/java/nio/file/Files/CreateFileTree.java ! test/java/nio/file/Files/ForceLoad.java ! test/java/nio/file/Files/Misc.java ! test/java/nio/file/Files/PrintFileTree.java ! test/java/nio/file/Files/SimpleFileTypeDetector.java ! test/java/nio/file/Files/SkipSiblings.java ! test/java/nio/file/Files/TerminateWalk.java ! test/java/nio/file/Files/WalkWithSecurity.java ! test/java/nio/file/Files/walk_file_tree.sh ! test/java/nio/file/Path/CheckPermissions.java ! test/java/nio/file/Path/CopyAndMove.java ! test/java/nio/file/Path/DeleteOnClose.java ! test/java/nio/file/Path/FileAttributes.java ! test/java/nio/file/Path/InterruptCopy.java ! test/java/nio/file/Path/Links.java ! test/java/nio/file/Path/Misc.java ! test/java/nio/file/Path/PassThroughFileSystem.java ! test/java/nio/file/Path/PathOps.java ! test/java/nio/file/Path/SBC.java ! test/java/nio/file/Path/TemporaryFiles.java ! test/java/nio/file/Path/UriImportExport.java ! test/java/nio/file/Path/delete_on_close.sh ! test/java/nio/file/PathMatcher/Basic.java ! test/java/nio/file/TestUtil.java ! test/java/nio/file/WatchService/Basic.java ! test/java/nio/file/WatchService/FileTreeModifier.java ! test/java/nio/file/WatchService/LotsOfEvents.java ! test/java/nio/file/WatchService/SensitivityModifier.java ! test/java/nio/file/WatchService/WithSecurityManager.java ! test/java/nio/file/attribute/AclFileAttributeView/Basic.java ! test/java/nio/file/attribute/BasicFileAttributeView/Basic.java ! test/java/nio/file/attribute/DosFileAttributeView/Basic.java ! test/java/nio/file/attribute/FileStoreAttributeView/Basic.java ! test/java/nio/file/attribute/FileTime/Basic.java ! test/java/nio/file/attribute/PosixFileAttributeView/Basic.java ! test/java/nio/file/attribute/UserDefinedFileAttributeView/Basic.java ! test/java/nio/file/spi/SetDefaultProvider.java ! test/java/nio/file/spi/TestProvider.java ! test/java/rmi/MarshalledObject/compare/Compare.java ! test/java/rmi/MarshalledObject/compare/HashCode.java ! test/java/rmi/MarshalledObject/compare/NullReference.java ! test/java/rmi/Naming/DefaultRegistryPort.java ! test/java/rmi/Naming/LookupIPv6.java ! test/java/rmi/Naming/LookupNameWithColon.java ! test/java/rmi/Naming/RmiIsNoScheme.java ! test/java/rmi/Naming/UnderscoreHost.java ! test/java/rmi/Naming/UnderscoreHost_Stub.java ! test/java/rmi/Naming/legalRegistryNames/Legal.java ! test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java ! test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames_Stub.java ! test/java/rmi/RMISecurityManager/checkPackageAccess/CheckPackageAccess.java ! test/java/rmi/RemoteException/chaining/Chaining.java ! test/java/rmi/activation/Activatable/checkActivateRef/ActivateMe.java ! test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef.java ! test/java/rmi/activation/Activatable/checkActivateRef/CheckActivateRef_Stub.java ! test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations.java ! test/java/rmi/activation/Activatable/checkAnnotations/CheckAnnotations_Stub.java ! test/java/rmi/activation/Activatable/checkAnnotations/MyRMI.java ! test/java/rmi/activation/Activatable/checkImplClassLoader/ActivatableImpl.java ! test/java/rmi/activation/Activatable/checkImplClassLoader/ActivatableImpl_Stub.java ! test/java/rmi/activation/Activatable/checkImplClassLoader/CheckImplClassLoader.java ! test/java/rmi/activation/Activatable/checkImplClassLoader/MyRMI.java ! test/java/rmi/activation/Activatable/checkRegisterInLog/ActivateMe.java ! test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog.java ! test/java/rmi/activation/Activatable/checkRegisterInLog/CheckRegisterInLog_Stub.java ! test/java/rmi/activation/Activatable/createPrivateActivable/ActivateMe.java ! test/java/rmi/activation/Activatable/createPrivateActivable/CreatePrivateActivatable.java ! test/java/rmi/activation/Activatable/downloadParameterClass/Bar.java ! test/java/rmi/activation/Activatable/downloadParameterClass/DownloadParameterClass.java ! test/java/rmi/activation/Activatable/downloadParameterClass/Foo.java ! test/java/rmi/activation/Activatable/downloadParameterClass/FooReceiverImpl.java ! test/java/rmi/activation/Activatable/downloadParameterClass/FooReceiverImpl_Stub.java ! test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ActivateMe.java ! test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod.java ! test/java/rmi/activation/Activatable/elucidateNoSuchMethod/ElucidateNoSuchMethod_Stub.java ! test/java/rmi/activation/Activatable/extLoadedImpl/CheckLoader.java ! test/java/rmi/activation/Activatable/extLoadedImpl/ExtLoadedImpl.java ! test/java/rmi/activation/Activatable/extLoadedImpl/ExtLoadedImplTest.java ! test/java/rmi/activation/Activatable/extLoadedImpl/ExtLoadedImpl_Stub.java ! test/java/rmi/activation/Activatable/extLoadedImpl/ext.sh ! test/java/rmi/activation/Activatable/forceLogSnapshot/ActivateMe.java ! test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot.java ! test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot_Skel.java ! test/java/rmi/activation/Activatable/forceLogSnapshot/ForceLogSnapshot_Stub.java ! test/java/rmi/activation/Activatable/inactiveGroup/ActivateMe.java ! test/java/rmi/activation/Activatable/inactiveGroup/InactiveGroup.java ! test/java/rmi/activation/Activatable/inactiveGroup/InactiveGroup_Stub.java ! test/java/rmi/activation/Activatable/lookupActivationSystem/LookupActivationSystem.java ! test/java/rmi/activation/Activatable/nestedActivate/ActivateMe.java ! test/java/rmi/activation/Activatable/nestedActivate/NestedActivate.java ! test/java/rmi/activation/Activatable/nestedActivate/NestedActivate_Stub.java ! test/java/rmi/activation/Activatable/nonExistentActivatable/ActivateMe.java ! test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable.java ! test/java/rmi/activation/Activatable/nonExistentActivatable/NonExistentActivatable_Stub.java ! test/java/rmi/activation/Activatable/notSerializable/NotSerializable.java ! test/java/rmi/activation/Activatable/restartCrashedService/ActivateMe.java ! test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService.java ! test/java/rmi/activation/Activatable/restartCrashedService/RestartCrashedService_Stub.java ! test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer.java ! test/java/rmi/activation/Activatable/restartLatecomer/RestartLatecomer_Stub.java ! test/java/rmi/activation/Activatable/restartService/ActivateMe.java ! test/java/rmi/activation/Activatable/restartService/RestartService.java ! test/java/rmi/activation/Activatable/restartService/RestartService_Stub.java ! test/java/rmi/activation/Activatable/shutdownGracefully/RegisteringActivatable.java ! test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java ! test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully_Stub.java ! test/java/rmi/activation/Activatable/shutdownGracefully/TestSecurityManager.java ! test/java/rmi/activation/Activatable/unregisterInactive/ActivateMe.java ! test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive.java ! test/java/rmi/activation/Activatable/unregisterInactive/UnregisterInactive_Stub.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ActivateFails_Stub.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ActivateMe.java ! test/java/rmi/activation/ActivateFailedException/activateFails/ShutdownThread.java ! test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup.java ! test/java/rmi/activation/ActivationGroup/downloadActivationGroup/DownloadActivationGroup_Stub.java ! test/java/rmi/activation/ActivationGroup/downloadActivationGroup/MyActivationGroupImpl.java ! test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java ! test/java/rmi/activation/ActivationSystem/activeGroup/IdempotentActiveGroup.java ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/ActivateMe.java ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor.java ! test/java/rmi/activation/ActivationSystem/modifyDescriptor/ModifyDescriptor_Stub.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/CanCreateStubs.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted.java ! test/java/rmi/activation/ActivationSystem/stubClassesPermitted/StubClassesPermitted_Stub.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/ActivateMe.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/CallbackInterface.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/Callback_Stub.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup.java ! test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup_Stub.java ! test/java/rmi/activation/CommandEnvironment/Doctor.java ! test/java/rmi/activation/CommandEnvironment/Doctor_Stub.java ! test/java/rmi/activation/CommandEnvironment/Eliza.java ! test/java/rmi/activation/CommandEnvironment/NullOptions.java ! test/java/rmi/activation/CommandEnvironment/Retireable.java ! test/java/rmi/activation/CommandEnvironment/SetChildEnv.java ! test/java/rmi/activation/checkusage/CheckUsage.java ! test/java/rmi/activation/log/LogTest.java ! test/java/rmi/activation/rmidViaInheritedChannel/InheritedChannelNotServerSocket.java ! test/java/rmi/activation/rmidViaInheritedChannel/RmidViaInheritedChannel.java ! test/java/rmi/dgc/VMID/CheckVMID.java ! test/java/rmi/dgc/dgcAckFailure/DGCAckFailure.java ! test/java/rmi/dgc/dgcAckFailure/DGCAckFailure_Stub.java ! test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation.java ! test/java/rmi/dgc/dgcImplInsulation/DGCImplInsulation_Stub.java ! test/java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls.java ! test/java/rmi/dgc/retryDirtyCalls/RetryDirtyCalls_Stub.java ! test/java/rmi/invalidName/InvalidName.java ! test/java/rmi/registry/altSecurityManager/AltSecurityManager.java ! test/java/rmi/registry/altSecurityManager/TestSecurityManager.java ! test/java/rmi/registry/checkusage/CheckUsage.java ! test/java/rmi/registry/classPathCodebase/ClassPathCodebase.java ! test/java/rmi/registry/classPathCodebase/Dummy.java ! test/java/rmi/registry/emptyName/EmptyName.java ! test/java/rmi/registry/interfaceHash/InterfaceHash.java ! test/java/rmi/registry/interfaceHash/ReferenceRegistryStub.java ! test/java/rmi/registry/multipleRegistries/MultipleRegistries.java ! test/java/rmi/registry/reexport/Reexport.java ! test/java/rmi/reliability/benchmark/bench/BenchInfo.java ! test/java/rmi/reliability/benchmark/bench/Benchmark.java ! test/java/rmi/reliability/benchmark/bench/ConfigFormatException.java ! test/java/rmi/reliability/benchmark/bench/Harness.java ! test/java/rmi/reliability/benchmark/bench/HtmlReporter.java ! test/java/rmi/reliability/benchmark/bench/Makefile ! test/java/rmi/reliability/benchmark/bench/Reporter.java ! test/java/rmi/reliability/benchmark/bench/TextReporter.java ! test/java/rmi/reliability/benchmark/bench/Util.java ! test/java/rmi/reliability/benchmark/bench/XmlReporter.java ! test/java/rmi/reliability/benchmark/bench/rmi/BenchServer.java ! test/java/rmi/reliability/benchmark/bench/rmi/BenchServerImpl.java ! test/java/rmi/reliability/benchmark/bench/rmi/BooleanArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/BooleanCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ByteArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ByteCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/CharArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/CharCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ClassLoading.java ! test/java/rmi/reliability/benchmark/bench/rmi/DoubleArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/DoubleCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ExceptionCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ExportObjs.java ! test/java/rmi/reliability/benchmark/bench/rmi/FloatArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/FloatCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/IntArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/IntCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/LongArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/LongCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/Main.java ! test/java/rmi/reliability/benchmark/bench/rmi/Makefile ! test/java/rmi/reliability/benchmark/bench/rmi/NullCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ObjArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ObjTreeCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ProxyArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/RemoteObjArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ShortArrayCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/ShortCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/SmallObjTreeCalls.java ! test/java/rmi/reliability/benchmark/bench/rmi/altroot/Node.java ! test/java/rmi/reliability/benchmark/bench/serial/BooleanArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Booleans.java ! test/java/rmi/reliability/benchmark/bench/serial/ByteArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Bytes.java ! test/java/rmi/reliability/benchmark/bench/serial/CharArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Chars.java ! test/java/rmi/reliability/benchmark/bench/serial/ClassDesc.java ! test/java/rmi/reliability/benchmark/bench/serial/Cons.java ! test/java/rmi/reliability/benchmark/bench/serial/CustomDefaultObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/CustomObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/DoubleArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Doubles.java ! test/java/rmi/reliability/benchmark/bench/serial/ExternObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/FloatArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Floats.java ! test/java/rmi/reliability/benchmark/bench/serial/GetPutFieldTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/IntArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Ints.java ! test/java/rmi/reliability/benchmark/bench/serial/LongArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Longs.java ! test/java/rmi/reliability/benchmark/bench/serial/Main.java ! test/java/rmi/reliability/benchmark/bench/serial/ObjArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/ObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/ProxyArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/ProxyClassDesc.java ! test/java/rmi/reliability/benchmark/bench/serial/RepeatObjs.java ! test/java/rmi/reliability/benchmark/bench/serial/ReplaceTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/ShortArrays.java ! test/java/rmi/reliability/benchmark/bench/serial/Shorts.java ! test/java/rmi/reliability/benchmark/bench/serial/SmallObjTrees.java ! test/java/rmi/reliability/benchmark/bench/serial/StreamBuffer.java ! test/java/rmi/reliability/benchmark/bench/serial/Strings.java ! test/java/rmi/reliability/benchmark/runRmiBench.sh ! test/java/rmi/reliability/benchmark/runSerialBench.sh ! test/java/rmi/reliability/juicer/Apple.java ! test/java/rmi/reliability/juicer/AppleEvent.java ! test/java/rmi/reliability/juicer/AppleImpl.java ! test/java/rmi/reliability/juicer/AppleUser.java ! test/java/rmi/reliability/juicer/AppleUserImpl.java ! test/java/rmi/reliability/juicer/ApplicationServer.java ! test/java/rmi/reliability/juicer/Orange.java ! test/java/rmi/reliability/juicer/OrangeEcho.java ! test/java/rmi/reliability/juicer/OrangeEchoImpl.java ! test/java/rmi/reliability/juicer/OrangeImpl.java ! test/java/rmi/reliability/launch_reliability.ksh ! test/java/rmi/reliability/scripts/create_benchmark_jars.ksh ! test/java/rmi/reliability/scripts/run_juicer.ksh ! test/java/rmi/reliability/scripts/run_rmibench.ksh ! test/java/rmi/reliability/scripts/run_serialbench.ksh ! test/java/rmi/server/ObjID/randomIDs/RandomIDs.java ! test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/DelegateBeforePermissionCheck.java ! test/java/rmi/server/RMIClassLoader/delegateBeforePermissionCheck/Foo.java ! test/java/rmi/server/RMIClassLoader/delegateToContextLoader/DelegateToContextLoader.java ! test/java/rmi/server/RMIClassLoader/delegateToContextLoader/Dummy.java ! test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass.java ! test/java/rmi/server/RMIClassLoader/downloadArrayClass/DownloadArrayClass_Stub.java ! test/java/rmi/server/RMIClassLoader/downloadArrayClass/Foo.java ! test/java/rmi/server/RMIClassLoader/downloadArrayClass/Receiver.java ! test/java/rmi/server/RMIClassLoader/getClassAnnotation/NullClass.java ! test/java/rmi/server/RMIClassLoader/getClassLoader/Foo.java ! test/java/rmi/server/RMIClassLoader/getClassLoader/GetClassLoader.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/FnnClass.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/FnnUnmarshal.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/LoadProxyClasses.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/NonpublicInterface.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/NonpublicInterface1.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/PublicInterface.java ! test/java/rmi/server/RMIClassLoader/loadProxyClasses/PublicInterface1.java ! test/java/rmi/server/RMIClassLoader/noSecurityManager/Dummy.java ! test/java/rmi/server/RMIClassLoader/noSecurityManager/LocalDummy.java ! test/java/rmi/server/RMIClassLoader/noSecurityManager/NoSecurityManager.java ! test/java/rmi/server/RMIClassLoader/spi/ContextInsulation.java ! test/java/rmi/server/RMIClassLoader/spi/DefaultProperty.java ! test/java/rmi/server/RMIClassLoader/spi/Foo.java ! test/java/rmi/server/RMIClassLoader/spi/Installed.java ! test/java/rmi/server/RMIClassLoader/spi/InvalidProperty.java ! test/java/rmi/server/RMIClassLoader/spi/Property.java ! test/java/rmi/server/RMIClassLoader/spi/ServiceConfiguration.java ! test/java/rmi/server/RMIClassLoader/spi/TestProvider.java ! test/java/rmi/server/RMIClassLoader/spi/TestProvider2.java ! test/java/rmi/server/RMIClassLoader/useCodebaseOnly/Bar.java ! test/java/rmi/server/RMIClassLoader/useCodebaseOnly/Foo.java ! test/java/rmi/server/RMIClassLoader/useCodebaseOnly/Receiver.java ! test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly.java ! test/java/rmi/server/RMIClassLoader/useCodebaseOnly/UseCodebaseOnly_Stub.java ! test/java/rmi/server/RMIClassLoader/useGetURLs/Dummy.java ! test/java/rmi/server/RMIClassLoader/useGetURLs/UseGetURLs.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressConstants.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressInputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/CompressOutputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/Echo.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/EchoImpl_Stub.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/MultiSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/activatable/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Compress.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/Hello.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/HelloImpl_Stub.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/registry/UseCustomSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressConstants.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressInputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/CompressOutputStream.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/Echo.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/EchoImpl_Stub.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/MultiSocketFactory.java ! test/java/rmi/server/RMISocketFactory/useSocketFactory/unicast/UseCustomSocketFactory.java ! test/java/rmi/server/RemoteObject/notExtending/NotExtending.java ! test/java/rmi/server/RemoteObject/notExtending/NotExtending_Skel.java ! test/java/rmi/server/RemoteObject/notExtending/NotExtending_Stub.java ! test/java/rmi/server/RemoteObject/toStub/ToStub.java ! test/java/rmi/server/RemoteObject/toStub/ToStub_Stub.java ! test/java/rmi/server/RemoteObject/unrecognizedRefType/UnrecognizedRefType.java ! test/java/rmi/server/RemoteObject/verifyRemoteEquals/VerifyRemoteEquals.java ! test/java/rmi/server/RemoteServer/AddrInUse.java ! test/java/rmi/server/RemoteServer/SetLogNull.java ! test/java/rmi/server/RemoteServer/setLogPermission/SetLogPermission.java ! test/java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName.java ! test/java/rmi/server/UnicastRemoteObject/changeHostName/ChangeHostName_Stub.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/KeepAliveDuringCall_Stub.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/Shutdown.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownImpl_Stub.java ! test/java/rmi/server/UnicastRemoteObject/keepAliveDuringCall/ShutdownMonitor.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport2_Stub.java ! test/java/rmi/server/UnicastRemoteObject/marshalAfterUnexport/MarshalAfterUnexport_Stub.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/Ping.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak.java ! test/java/rmi/server/UnicastRemoteObject/unexportObject/UnexportLeak_Stub.java ! test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies.java ! test/java/rmi/server/UnicastRemoteObject/useDynamicProxies/UseDynamicProxies_Stub.java ! test/java/rmi/server/Unmarshal/PrimitiveClasses.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshalOnStopThread_Stub.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/CheckUnmarshall.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/PoisonPill.java ! test/java/rmi/server/Unmarshal/checkUnmarshalOnStopThread/RuntimeExceptionParameter.java ! test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency.java ! test/java/rmi/server/Unreferenced/finiteGCLatency/FiniteGCLatency_Stub.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/LeaseCheckInterval_Stub.java ! test/java/rmi/server/Unreferenced/leaseCheckInterval/SelfTerminator.java ! test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet.java ! test/java/rmi/server/Unreferenced/marshalledObjectGet/MarshalledObjectGet_Stub.java ! test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext.java ! test/java/rmi/server/Unreferenced/unreferencedContext/UnreferencedContext_Stub.java ! test/java/rmi/server/clientStackTrace/ClientStackTrace.java ! test/java/rmi/server/clientStackTrace/MyRemoteObject_Stub.java ! test/java/rmi/server/getRemoteClass/GetRemoteClass.java ! test/java/rmi/server/serverStackTrace/Impl1_Skel.java ! test/java/rmi/server/serverStackTrace/Impl1_Stub.java ! test/java/rmi/server/serverStackTrace/Impl2_Stub.java ! test/java/rmi/server/serverStackTrace/ServerStackTrace.java ! test/java/rmi/server/serverStackTrace/ServerStackTrace_Stub.java ! test/java/rmi/server/serverStackTrace/SuppressStackTraces.java ! test/java/rmi/server/useCustomRef/Ping.java ! test/java/rmi/server/useCustomRef/UseCustomRef.java ! test/java/rmi/server/useCustomRef/UseCustomRef_Skel.java ! test/java/rmi/server/useCustomRef/UseCustomRef_Stub.java ! test/java/rmi/testlibrary/ActivationLibrary.java ! test/java/rmi/testlibrary/JavaVM.java ! test/java/rmi/testlibrary/RMID.java ! test/java/rmi/testlibrary/RegistryRunner.java ! test/java/rmi/testlibrary/RegistryRunner_Stub.java ! test/java/rmi/testlibrary/RemoteExiter.java ! test/java/rmi/testlibrary/StreamPipe.java ! test/java/rmi/testlibrary/TestFailedException.java ! test/java/rmi/testlibrary/TestLibrary.java ! test/java/rmi/testlibrary/TestParams.java ! test/java/rmi/transport/acceptLoop/CloseServerSocketOnTermination.java ! test/java/rmi/transport/checkFQDN/CheckFQDN.java ! test/java/rmi/transport/checkFQDN/CheckFQDNClient.java ! test/java/rmi/transport/checkFQDN/CheckFQDN_Stub.java ! test/java/rmi/transport/checkFQDN/TellServerName.java ! test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak.java ! test/java/rmi/transport/checkLeaseInfoLeak/CheckLeaseLeak_Stub.java ! test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeak.java ! test/java/rmi/transport/checkLeaseInfoLeak/LeaseLeakClient.java ! test/java/rmi/transport/closeServerSocket/CloseServerSocket.java ! test/java/rmi/transport/dgcDeadLock/DGCDeadLock.java ! test/java/rmi/transport/dgcDeadLock/Test.java ! test/java/rmi/transport/dgcDeadLock/TestImpl.java ! test/java/rmi/transport/dgcDeadLock/TestImpl_Stub.java ! test/java/rmi/transport/handshakeFailure/HandshakeFailure.java ! test/java/rmi/transport/handshakeTimeout/HandshakeTimeout.java ! test/java/rmi/transport/httpSocket/HttpSocketTest.java ! test/java/rmi/transport/httpSocket/HttpSocketTest_Stub.java ! test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java ! test/java/rmi/transport/pinLastArguments/PinLastArguments.java ! test/java/rmi/transport/rapidExportUnexport/RapidExportUnexport.java ! test/java/rmi/transport/readTimeout/ReadTimeoutTest.java ! test/java/rmi/transport/readTimeout/TestIface.java ! test/java/rmi/transport/readTimeout/TestImpl.java ! test/java/rmi/transport/readTimeout/TestImpl_Stub.java ! test/java/rmi/transport/reuseDefaultPort/ReuseDefaultPort.java ! test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java ! test/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak_Stub.java ! test/java/security/AccessControlContext/CheckCtor.java ! test/java/security/AccessControlContext/CheckNullPermission.java ! test/java/security/AccessControlContext/FailureDebugOption.java ! test/java/security/AccessControlContext/NullCombinerEquals.java ! test/java/security/AccessController/PreserveCombiner.java ! test/java/security/BasicPermission/EqualsImplies.java ! test/java/security/BasicPermission/ExitVMEquals.java ! test/java/security/BasicPermission/Homogeneity.java ! test/java/security/BasicPermission/MixedBasicPermissions.java ! test/java/security/BasicPermission/NullOrEmptyName.java ! test/java/security/BasicPermission/PermClass.java ! test/java/security/BasicPermission/SerialVersion.java ! test/java/security/CodeSource/Implies.java ! test/java/security/Exceptions/ChainingConstructors.java ! test/java/security/Identity/EqualsHashCodeContract.java ! test/java/security/IdentityScope/NoDefaultSystemScope.java ! test/java/security/KeyFactory/Failover.java ! test/java/security/KeyFactory/GenerateRSAPrivateCrtKey.java ! test/java/security/KeyPairGenerator/Failover.java ! test/java/security/KeyPairGenerator/GenerateKeypair.java ! test/java/security/KeyPairGenerator/GenerateRSAKeyPair.java ! test/java/security/KeyRep/Serial.java ! test/java/security/KeyRep/SerialDSAPubKey.java ! test/java/security/KeyRep/SerialOld.java ! test/java/security/KeyStore/DefaultEntryType.java ! test/java/security/KeyStore/EntryMethods.java ! test/java/security/KeyStore/KeyStoreBuilder.java ! test/java/security/MessageDigest/ArgumentSanity.java ! test/java/security/MessageDigest/ByteBuffers.java ! test/java/security/Permission/NullName.java ! test/java/security/Permission/ToString.java ! test/java/security/PermissionCollection/AddToReadOnlyPermissionCollection.java ! test/java/security/PermissionCollection/Concurrent.java ! test/java/security/Policy/Dynamic/DynamicPolicy.java ! test/java/security/Policy/Dynamic/TestDynamicPolicy.java ! test/java/security/Policy/GetInstance/GetInstance.java ! test/java/security/Policy/GetInstance/GetInstancePolicySpi.java ! test/java/security/Policy/GetInstance/GetInstanceProvider.java ! test/java/security/Policy/GetInstance/GetInstanceSecurity.java ! test/java/security/Policy/Root/Root.java ! test/java/security/PrivilegedActionException/PrintWrappedException.java ! test/java/security/ProtectionDomain/AllPerm.java ! test/java/security/ProtectionDomain/CheckWhatYouGet.java ! test/java/security/ProtectionDomain/NullPerms.java ! test/java/security/ProtectionDomain/Recursion.java ! test/java/security/ProtectionDomain/RecursionDebug.java ! test/java/security/Provider/CaseSensitiveServices.java ! test/java/security/Provider/CertStoreConstructorParam.java ! test/java/security/Provider/ChangeProviders.java ! test/java/security/Provider/DefaultPKCS11.java ! test/java/security/Provider/Equals.java ! test/java/security/Provider/GetInstance.java ! test/java/security/Provider/ProviderInfoCheck.java ! test/java/security/Provider/RemoveProvider.java ! test/java/security/Provider/SupportsParameter.java ! test/java/security/Provider/Turkish.java ! test/java/security/SecureClassLoader/DefineClassByteBuffer.java ! test/java/security/SecureClassLoader/TestClass.java ! test/java/security/SecureRandom/GetAlgorithm.java ! test/java/security/SecureRandom/Serialize.java ! test/java/security/Security/CaseInsensitiveAlgNames.java ! test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.java ! test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh ! test/java/security/Security/ClassLoaderDeadlock/CreateSerialized.java ! test/java/security/Security/ClassLoaderDeadlock/Deadlock.java ! test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh ! test/java/security/Security/ClassLoaderDeadlock/Deadlock2.java ! test/java/security/Security/ClassLoaderDeadlock/Deadlock2.sh ! test/java/security/Security/ClassLoaderDeadlock/provider/HashProvider.java ! test/java/security/Security/NoInstalledProviders.java ! test/java/security/Security/Nulls.java ! test/java/security/Security/SecurityPropFile/SecurityPropFile.java ! test/java/security/Security/SynchronizedAccess.java ! test/java/security/Security/removing/RemoveProviderByIdentity.java ! test/java/security/Security/removing/RemoveProviders.java ! test/java/security/Security/removing/RemoveStaticProvider.java ! test/java/security/Security/signedfirst/Dyn.sh ! test/java/security/Security/signedfirst/DynSignedProvFirst.java ! test/java/security/Security/signedfirst/Static.sh ! test/java/security/Security/signedfirst/StaticSignedProvFirst.java ! test/java/security/Signature/ByteBuffers.java ! test/java/security/Signature/NONEwithRSA.java ! test/java/security/Signature/SignWithOutputBuffer.java ! test/java/security/Signature/TestInitSignWithMyOwnRandom.java ! test/java/security/UnresolvedPermission/AccessorMethods.java ! test/java/security/UnresolvedPermission/Debug.java ! test/java/security/UnresolvedPermission/DebugPermission0.java ! test/java/security/UnresolvedPermission/DebugPermission1.java ! test/java/security/UnresolvedPermission/DebugPermission2.java ! test/java/security/UnresolvedPermission/DebugPermissionBad.java ! test/java/security/UnresolvedPermission/Equals.java ! test/java/security/cert/CertPath/Serialize.java ! test/java/security/cert/CertPathBuilder/GetInstance.java ! test/java/security/cert/CertPathBuilder/NoExtensions.java ! test/java/security/cert/CertPathBuilder/StubProvider.java ! test/java/security/cert/CertPathBuilder/StubProviderImpl.java ! test/java/security/cert/CertPathBuilder/selfIssued/DisableRevocation.java ! test/java/security/cert/CertPathBuilder/selfIssued/KeyUsageMatters.java ! test/java/security/cert/CertPathBuilder/selfIssued/README ! test/java/security/cert/CertPathBuilder/selfIssued/StatusLoopDependency.java ! test/java/security/cert/CertPathBuilder/selfIssued/generate.sh ! test/java/security/cert/CertPathBuilder/selfIssued/openssl.cnf ! test/java/security/cert/CertPathBuilder/targetConstraints/BuildEEBasicConstraints.java ! test/java/security/cert/CertPathBuilder/targetConstraints/BuildOddSel.java ! test/java/security/cert/CertPathValidator/OCSP/AIACheck.java ! test/java/security/cert/CertPathValidator/OCSP/FailoverToCRL.java ! test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevel.java ! test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLOneLevelRevoked.java ! test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevel.java ! test/java/security/cert/CertPathValidator/indirectCRL/CircularCRLTwoLevelRevoked.java ! test/java/security/cert/CertPathValidator/indirectCRL/README ! test/java/security/cert/CertPathValidator/indirectCRL/generate.sh ! test/java/security/cert/CertPathValidator/indirectCRL/openssl.cnf ! test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithRID.java ! test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithUnexpectedRID.java ! test/java/security/cert/CertPathValidator/nameConstraints/NameConstraintsWithoutRID.java ! test/java/security/cert/CertPathValidator/nameConstraints/generate.sh ! test/java/security/cert/CertPathValidator/nameConstraints/openssl.cnf ! test/java/security/cert/CertPathValidator/nameConstraintsRFC822/ValidateCertPath.java ! test/java/security/cert/CertPathValidator/targetConstraints/ValidateTargetConstraints.java ! test/java/security/cert/CertPathValidator/trustAnchor/ValidateNC.java ! test/java/security/cert/CertPathValidatorException/GetMessage.java ! test/java/security/cert/CertPathValidatorException/ReasonTest.java ! test/java/security/cert/CertPathValidatorException/Serial.java ! test/java/security/cert/CertificateFactory/BadX509CertData.java ! test/java/security/cert/CertificateFactory/GenerateCertificatesEmptyCollection.java ! test/java/security/cert/CertificateFactory/ReturnStream.java ! test/java/security/cert/CertificateFactory/SlowStream.java ! test/java/security/cert/CertificateFactory/invalidEncodedCerts/DetectInvalidEncoding.java ! test/java/security/cert/CertificateFactory/openssl/OpenSSLCert.java ! test/java/security/cert/CertificateFactory/slowstream.sh ! test/java/security/cert/GetInstance.java ! test/java/security/cert/PKIXBuilderParameters/InvalidParameters.java ! test/java/security/cert/PKIXParameters/InvalidParameters.java ! test/java/security/cert/PolicyNode/GetPolicyQualifiers.java ! test/java/security/cert/X509CertSelector/SetNameConstraintsEmptySequence.java ! test/java/security/cert/X509Certificate/EmptySubject.java ! test/java/security/cert/X509Certificate/ExtKeyUsage.java ! test/java/security/cert/pkix/nameConstraintsMinMax/VerifyNameConstraints.java ! test/java/security/cert/pkix/policyChanges/TestPolicy.java ! test/java/security/spec/ECCBasic.java ! test/java/security/testlibrary/CertUtils.java ! test/java/text/Bidi/BidiBug.java ! test/java/text/Bidi/BidiConformance.java ! test/java/text/Bidi/BidiEmbeddingTest.java ! test/java/text/Bidi/BidiSurrogateTest.java ! test/java/text/Bidi/Bug6665028.java ! test/java/text/Bidi/Bug6850113.java ! test/java/text/BreakIterator/ExceptionTest.java ! test/java/text/BreakIterator/MirroredBreakIterator.java ! test/java/text/Collator/Bug5047314.java ! test/java/text/Format/DateFormat/Bug4823811.java ! test/java/text/Format/DateFormat/Bug6609750.java ! test/java/text/Format/DateFormat/Bug6645292.java ! test/java/text/Format/DateFormat/Bug6683975.java ! test/java/util/AbstractCollection/ToString.java ! test/java/util/AbstractList/CheckForComodification.java ! test/java/util/AbstractList/FailFastIterator.java ! test/java/util/AbstractList/HasNextAfterException.java ! test/java/util/AbstractMap/AbstractMapClone.java ! test/java/util/AbstractMap/Equals.java ! test/java/util/AbstractMap/SimpleEntries.java ! test/java/util/AbstractMap/ToString.java ! test/java/util/AbstractSequentialList/AddAll.java ! test/java/util/ArrayList/AddAll.java ! test/java/util/ArrayList/Bug6533203.java ! test/java/util/ArrayList/IteratorMicroBenchmark.java ! test/java/util/ArrayList/RangeCheckMicroBenchmark.java ! test/java/util/Arrays/ArrayObjectMethods.java ! test/java/util/Arrays/Big.java ! test/java/util/Arrays/CopyMethods.java ! test/java/util/Arrays/Correct.java ! test/java/util/Arrays/Fill.java ! test/java/util/Arrays/FloatDoubleOrder.java ! test/java/util/Arrays/Sorting.java ! test/java/util/BitSet/And.java ! test/java/util/BitSet/BSMethods.java ! test/java/util/BitSet/ImportExport.java ! test/java/util/BitSet/MemoryLeak.java ! test/java/util/BitSet/PreviousBits.java ! test/java/util/BitSet/StickySize.java ! test/java/util/Calendar/Bug6645263.java ! test/java/util/Collection/BiggernYours.java ! test/java/util/Collection/HotPotatoes.java ! test/java/util/Collection/IteratorAtEnd.java ! test/java/util/Collection/MOAT.java ! test/java/util/Collections/AddAll.java ! test/java/util/Collections/AsLifoQueue.java ! test/java/util/Collections/BigBinarySearch.java ! test/java/util/Collections/BinarySearchNullComparator.java ! test/java/util/Collections/CheckedIdentityMap.java ! test/java/util/Collections/CheckedListBash.java ! test/java/util/Collections/CheckedMapBash.java ! test/java/util/Collections/CheckedNull.java ! test/java/util/Collections/CheckedSetBash.java ! test/java/util/Collections/Disjoint.java ! test/java/util/Collections/EmptyCollectionSerialization.java ! test/java/util/Collections/EmptyIterator.java ! test/java/util/Collections/Enum.java ! test/java/util/Collections/FindSubList.java ! test/java/util/Collections/Frequency.java ! test/java/util/Collections/MinMax.java ! test/java/util/Collections/NCopies.java ! test/java/util/Collections/NullComparator.java ! test/java/util/Collections/RacingCollections.java ! test/java/util/Collections/ReplaceAll.java ! test/java/util/Collections/ReverseOrder.java ! test/java/util/Collections/ReverseOrder2.java ! test/java/util/Collections/Rotate.java ! test/java/util/Collections/RotateEmpty.java ! test/java/util/Collections/Ser.java ! test/java/util/Collections/SetFromMap.java ! test/java/util/Collections/Swap.java ! test/java/util/Collections/T5078378.java ! test/java/util/Collections/T6433170.java ! test/java/util/Collections/ViewSynch.java ! test/java/util/Collections/WrappedNull.java ! test/java/util/Currency/Bug4512215.java ! test/java/util/Currency/CheckDataVersion.java ! test/java/util/Currency/CurrencyTest.java ! test/java/util/Currency/PropertiesTest.java ! test/java/util/Currency/ValidateISO4217.java ! test/java/util/Deque/ChorusLine.java ! test/java/util/EnumMap/EnumMapBash.java ! test/java/util/EnumMap/ToArray.java ! test/java/util/EnumSet/AllOf.java ! test/java/util/EnumSet/BogusEnumSet.java ! test/java/util/EnumSet/ComplementOf.java ! test/java/util/EnumSet/EnumSetBash.java ! test/java/util/EnumSet/InsertWrongType.java ! test/java/util/EnumSet/JumboRange.java ! test/java/util/EnumSet/OneUniverse.java ! test/java/util/EnumSet/Range.java ! test/java/util/EnumSet/RetainAll.java ! test/java/util/Formattable/StockName.java ! test/java/util/Formatter/Basic-X.java.template ! test/java/util/Formatter/Basic.java ! test/java/util/Formatter/Basic.sh ! test/java/util/Formatter/BasicBigDecimal.java ! test/java/util/Formatter/BasicBigInteger.java ! test/java/util/Formatter/BasicBoolean.java ! test/java/util/Formatter/BasicBooleanObject.java ! test/java/util/Formatter/BasicByte.java ! test/java/util/Formatter/BasicByteObject.java ! test/java/util/Formatter/BasicChar.java ! test/java/util/Formatter/BasicCharObject.java ! test/java/util/Formatter/BasicDateTime.java ! test/java/util/Formatter/BasicDouble.java ! test/java/util/Formatter/BasicDoubleObject.java ! test/java/util/Formatter/BasicFloat.java ! test/java/util/Formatter/BasicFloatObject.java ! test/java/util/Formatter/BasicInt.java ! test/java/util/Formatter/BasicIntObject.java ! test/java/util/Formatter/BasicLong.java ! test/java/util/Formatter/BasicLongObject.java ! test/java/util/Formatter/BasicShort.java ! test/java/util/Formatter/BasicShortObject.java ! test/java/util/Formatter/Close.java ! test/java/util/Formatter/Constructors.java ! test/java/util/Formatter/Flush.java ! test/java/util/Formatter/genBasic.sh ! test/java/util/HashMap/KeySetRemove.java ! test/java/util/HashMap/SetValue.java ! test/java/util/HashMap/ToString.java ! test/java/util/Hashtable/EqualsCast.java ! test/java/util/Hashtable/HashCode.java ! test/java/util/Hashtable/IllegalLoadFactor.java ! test/java/util/Hashtable/ReadObject.java ! test/java/util/Hashtable/SelfRef.java ! test/java/util/IdentityHashMap/ToArray.java ! test/java/util/IdentityHashMap/ToString.java ! test/java/util/IllegalFormatException/Constructors.java ! test/java/util/LinkedHashMap/Basic.java ! test/java/util/LinkedHashMap/Cache.java ! test/java/util/LinkedHashMap/EmptyMapIterator.java ! test/java/util/LinkedHashSet/Basic.java ! test/java/util/LinkedList/AddAll.java ! test/java/util/LinkedList/Clone.java ! test/java/util/LinkedList/ComodifiedRemove.java ! test/java/util/LinkedList/Remove.java ! test/java/util/List/LockStep.java ! test/java/util/Locale/Bug4152725.java ! test/java/util/Locale/Bug4175998Test.java ! test/java/util/Locale/Bug4184873Test.java ! test/java/util/Locale/Bug4184873_he ! test/java/util/Locale/Bug4184873_id ! test/java/util/Locale/Bug4184873_yi ! test/java/util/Locale/Bug4210525.java ! test/java/util/Locale/Bug4316602.java ! test/java/util/Locale/Bug4518797.java ! test/java/util/Locale/GenerateKeyList.java ! test/java/util/Locale/HashCodeTest.java ! test/java/util/Locale/InternationalBAT.java ! test/java/util/Locale/LocaleTest.java ! test/java/util/Locale/LocaleTestFmwk.java ! test/java/util/Locale/PrintDefaultLocale.java ! test/java/util/Locale/ThaiGov.java ! test/java/util/Locale/bug4122700.java ! test/java/util/Locale/bug4123285.java ! test/java/util/Locale/bug6277243.java ! test/java/util/Locale/bug6312358.java ! test/java/util/Locale/data/deflocale.c ! test/java/util/Locale/data/deflocale.sh ! test/java/util/Map/Get.java ! test/java/util/Map/LockStep.java ! test/java/util/NavigableMap/LockStep.java ! test/java/util/Objects/BasicObjectsTest.java ! test/java/util/Observable/ClearChanged.java ! test/java/util/PluggableLocale/BreakIteratorProviderTest.java ! test/java/util/PluggableLocale/BreakIteratorProviderTest.sh ! test/java/util/PluggableLocale/ClasspathTest.java ! test/java/util/PluggableLocale/ClasspathTest.sh ! test/java/util/PluggableLocale/CollatorProviderTest.java ! test/java/util/PluggableLocale/CollatorProviderTest.sh ! test/java/util/PluggableLocale/CurrencyNameProviderTest.java ! test/java/util/PluggableLocale/CurrencyNameProviderTest.sh ! test/java/util/PluggableLocale/DateFormatProviderTest.java ! test/java/util/PluggableLocale/DateFormatProviderTest.sh ! test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.java ! test/java/util/PluggableLocale/DateFormatSymbolsProviderTest.sh ! test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java ! test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.sh ! test/java/util/PluggableLocale/ExecTest.sh ! test/java/util/PluggableLocale/GenericTest.java ! test/java/util/PluggableLocale/GenericTest.sh ! test/java/util/PluggableLocale/LocaleNameProviderTest.java ! test/java/util/PluggableLocale/LocaleNameProviderTest.sh ! test/java/util/PluggableLocale/NumberFormatProviderTest.java ! test/java/util/PluggableLocale/NumberFormatProviderTest.sh ! test/java/util/PluggableLocale/ProviderTest.java ! test/java/util/PluggableLocale/TimeZoneNameProviderTest.java ! test/java/util/PluggableLocale/TimeZoneNameProviderTest.sh ! test/java/util/PluggableLocale/providersrc/BreakIteratorProviderImpl.java ! test/java/util/PluggableLocale/providersrc/CollatorProviderImpl.java ! test/java/util/PluggableLocale/providersrc/CurrencyNameProviderImpl.java ! test/java/util/PluggableLocale/providersrc/DateFormatProviderImpl.java ! test/java/util/PluggableLocale/providersrc/DateFormatSymbolsProviderImpl.java ! test/java/util/PluggableLocale/providersrc/DecimalFormatSymbolsProviderImpl.java ! test/java/util/PluggableLocale/providersrc/LocaleNameProviderImpl.java ! test/java/util/PluggableLocale/providersrc/LocaleNames.properties ! test/java/util/PluggableLocale/providersrc/LocaleNames_ja.properties ! test/java/util/PluggableLocale/providersrc/LocaleNames_ja_JP_kyoto.properties ! test/java/util/PluggableLocale/providersrc/LocaleNames_ja_JP_osaka.properties ! test/java/util/PluggableLocale/providersrc/LocaleNames_xx.properties ! test/java/util/PluggableLocale/providersrc/NumberFormatProviderImpl.java ! test/java/util/PluggableLocale/providersrc/TimeZoneNameProviderImpl.java ! test/java/util/PluggableLocale/providersrc/Utils.java ! test/java/util/PriorityQueue/ForgetMeNot.java ! test/java/util/PriorityQueue/NoNulls.java ! test/java/util/PriorityQueue/PriorityQueueSort.java ! test/java/util/PriorityQueue/RemoveContains.java ! test/java/util/Random/DistinctSeeds.java ! test/java/util/Random/NextBytes.java ! test/java/util/Random/NextIntPowerOfTwoMod.java ! test/java/util/ResourceBundle/Bug4083270Test.java ! test/java/util/ResourceBundle/Bug4165815Test.java ! test/java/util/ResourceBundle/Bug4168625Class.java ! test/java/util/ResourceBundle/Bug4168625Getter.java ! test/java/util/ResourceBundle/Bug4168625Resource.java ! test/java/util/ResourceBundle/Bug4168625Resource2.java ! test/java/util/ResourceBundle/Bug4168625Resource2_en_US.java ! test/java/util/ResourceBundle/Bug4168625Resource3.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en_CA.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en_IE.java ! test/java/util/ResourceBundle/Bug4168625Resource3_en_US.java ! test/java/util/ResourceBundle/Bug4168625Test.java ! test/java/util/ResourceBundle/Bug4177489Test.java ! test/java/util/ResourceBundle/Bug4177489_Resource.java ! test/java/util/ResourceBundle/Bug4177489_Resource_jf.java ! test/java/util/ResourceBundle/Bug4177489_Resource_jf_JF.properties ! test/java/util/ResourceBundle/Bug4179766Class.java ! test/java/util/ResourceBundle/Bug4179766Getter.java ! test/java/util/ResourceBundle/Bug4179766Resource.java ! test/java/util/ResourceBundle/Bug4195978Test.java ! test/java/util/ResourceBundle/Bug4257318.java ! test/java/util/ResourceBundle/Bug4257318Res.java ! test/java/util/ResourceBundle/Bug4257318Res_en.java ! test/java/util/ResourceBundle/Bug4353454.java ! test/java/util/ResourceBundle/Bug4396021.java ! test/java/util/ResourceBundle/Bug4396021GeneralMessages.java ! test/java/util/ResourceBundle/Bug4396021SpecialMessages.java ! test/java/util/ResourceBundle/Bug6190861.java ! test/java/util/ResourceBundle/Bug6190861Data.properties ! test/java/util/ResourceBundle/Bug6190861Data_en_US.properties ! test/java/util/ResourceBundle/Bug6204853.java ! test/java/util/ResourceBundle/Bug6204853.properties ! test/java/util/ResourceBundle/Bug6204853_Utf8.properties ! test/java/util/ResourceBundle/Bug6287579.java ! test/java/util/ResourceBundle/Bug6299235Test.java ! test/java/util/ResourceBundle/Bug6299235Test.sh ! test/java/util/ResourceBundle/Bug6355009.java ! test/java/util/ResourceBundle/Bug6356571.java ! test/java/util/ResourceBundle/Bug6356571.properties ! test/java/util/ResourceBundle/Bug6359330.java ! test/java/util/ResourceBundle/Bug6572242.java ! test/java/util/ResourceBundle/Control/AbstractRB.java ! test/java/util/ResourceBundle/Control/BadControlsTest.java ! test/java/util/ResourceBundle/Control/BadStaticInitRB.java ! test/java/util/ResourceBundle/Control/Bug6530694.java ! test/java/util/ResourceBundle/Control/Bug6530694_de_DE.properties ! test/java/util/ResourceBundle/Control/Chinese.properties ! test/java/util/ResourceBundle/Control/Chinese_zh.properties ! test/java/util/ResourceBundle/Control/Chinese_zh_CN.properties ! test/java/util/ResourceBundle/Control/Chinese_zh_TW.properties ! test/java/util/ResourceBundle/Control/ControlFactoryTest.java ! test/java/util/ResourceBundle/Control/DefaultControlTest.java ! test/java/util/ResourceBundle/Control/ExpirationTest.java ! test/java/util/ResourceBundle/Control/ExpirationTest.sh ! test/java/util/ResourceBundle/Control/LoadingStrategiesTest.java ! test/java/util/ResourceBundle/Control/MalformedDataRB_en.properties ! test/java/util/ResourceBundle/Control/MissingResourceCauseTest.java ! test/java/util/ResourceBundle/Control/MissingResourceCauseTest.sh ! test/java/util/ResourceBundle/Control/NonResourceBundle.java ! test/java/util/ResourceBundle/Control/PackagePrivateRB.java ! test/java/util/ResourceBundle/Control/PackagePrivateTest.java ! test/java/util/ResourceBundle/Control/PrivateConstructorRB.java ! test/java/util/ResourceBundle/Control/StressOut.properties ! test/java/util/ResourceBundle/Control/StressOut_en_CA.properties ! test/java/util/ResourceBundle/Control/StressOut_ja.properties ! test/java/util/ResourceBundle/Control/StressOut_ja_JP.properties ! test/java/util/ResourceBundle/Control/StressOut_ko.properties ! test/java/util/ResourceBundle/Control/StressOut_zh_CN.properties ! test/java/util/ResourceBundle/Control/StressTest.java ! test/java/util/ResourceBundle/Control/TestResourceRB.java ! test/java/util/ResourceBundle/Control/XMLResourceBundleTest.java ! test/java/util/ResourceBundle/FakeTestResource.java ! test/java/util/ResourceBundle/KeySetMessages.java ! test/java/util/ResourceBundle/KeySetMessages_zh_CN.java ! test/java/util/ResourceBundle/KeySetResources.properties ! test/java/util/ResourceBundle/KeySetResources_ja_JP.properties ! test/java/util/ResourceBundle/KeySetTest.java ! test/java/util/ResourceBundle/RB4353454_en.properties ! test/java/util/ResourceBundle/RBTestFmwk.java ! test/java/util/ResourceBundle/ReferencesTest.java ! test/java/util/ResourceBundle/ReferencesTestBundle.properties ! test/java/util/ResourceBundle/ResourceBundleTest.java ! test/java/util/ResourceBundle/RestrictedBundleTest.java ! test/java/util/ResourceBundle/Test4300693.java ! test/java/util/ResourceBundle/Test4300693RB.java ! test/java/util/ResourceBundle/Test4314141.java ! test/java/util/ResourceBundle/Test4314141A.properties ! test/java/util/ResourceBundle/Test4314141A_.properties ! test/java/util/ResourceBundle/Test4314141A__DE.properties ! test/java/util/ResourceBundle/Test4314141A___EURO.properties ! test/java/util/ResourceBundle/Test4314141A_de.properties ! test/java/util/ResourceBundle/Test4314141A_de_.properties ! test/java/util/ResourceBundle/Test4314141B.java ! test/java/util/ResourceBundle/Test4314141B_en.properties ! test/java/util/ResourceBundle/Test4314141B_es_ES.java ! test/java/util/ResourceBundle/Test4314141B_fr.properties ! test/java/util/ResourceBundle/Test4314141B_fr_CH.java ! test/java/util/ResourceBundle/Test4314141B_fr_CH.properties ! test/java/util/ResourceBundle/Test4318520.java ! test/java/util/ResourceBundle/Test4318520RB_de.properties ! test/java/util/ResourceBundle/Test4318520RB_en.properties ! test/java/util/ResourceBundle/TestBug4179766.java ! test/java/util/ResourceBundle/TestResource.java ! test/java/util/ResourceBundle/TestResource_de.java ! test/java/util/ResourceBundle/TestResource_fr.java ! test/java/util/ResourceBundle/TestResource_fr_CH.java ! test/java/util/ResourceBundle/TestResource_it.java ! test/java/util/ResourceBundle/bug4195978Test.properties ! test/java/util/ResourceBundle/bug6572242.properties ! test/java/util/ServiceLoader/Basic.java ! test/java/util/ServiceLoader/FooProvider1.java ! test/java/util/ServiceLoader/FooProvider2.java ! test/java/util/ServiceLoader/FooProvider3.java ! test/java/util/ServiceLoader/FooService.java ! test/java/util/ServiceLoader/Load.java ! test/java/util/ServiceLoader/basic.sh ! test/java/util/StringTokenizer/FormFeed.java ! test/java/util/StringTokenizer/ResetPos.java ! test/java/util/StringTokenizer/Supplementary.java ! test/java/util/TimSort/ArrayBuilder.java ! test/java/util/TimSort/SortPerf.java ! test/java/util/TimSort/Sorter.java ! test/java/util/TimeZone/ListTimeZones.java ! test/java/util/TimeZone/OldIDMappingTest.java ! test/java/util/TimeZone/OldIDMappingTest.sh ! test/java/util/TimeZone/TimeZoneDatePermissionCheck.java ! test/java/util/Timer/Args.java ! test/java/util/Timer/DelayOverflow.java ! test/java/util/Timer/KillThread.java ! test/java/util/Timer/NameConstructors.java ! test/java/util/Timer/Purge.java ! test/java/util/TreeMap/ContainsValue.java ! test/java/util/TreeMap/HeadTailTypeError.java ! test/java/util/TreeMap/NullAtEnd.java ! test/java/util/TreeMap/NullPermissiveComparator.java ! test/java/util/TreeMap/SubMap.java ! test/java/util/TreeMap/SubMapClear.java ! test/java/util/UUID/Serial.java ! test/java/util/UUID/UUIDTest.java ! test/java/util/Vector/ComodifiedRemoveAllElements.java ! test/java/util/Vector/CopyInto.java ! test/java/util/Vector/IllegalConstructorArgs.java ! test/java/util/Vector/LastIndexOf.java ! test/java/util/Vector/SyncLastIndexOf.java ! test/java/util/WeakHashMap/GCDuringIteration.java ! test/java/util/WeakHashMap/Iteration.java ! test/java/util/WeakHashMap/ZeroInitCap.java ! test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java ! test/java/util/concurrent/BlockingQueue/Interrupt.java ! test/java/util/concurrent/BlockingQueue/LastElement.java ! test/java/util/concurrent/BlockingQueue/LoopHelpers.java ! test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java ! test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java ! test/java/util/concurrent/BlockingQueue/PollMemoryLeak.java ! test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java ! test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java ! test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java ! test/java/util/concurrent/ConcurrentHashMap/MapCheck.java ! test/java/util/concurrent/ConcurrentHashMap/MapLoops.java ! test/java/util/concurrent/ConcurrentHashMap/toArray.java ! test/java/util/concurrent/ConcurrentMap/ConcurrentModification.java ! test/java/util/concurrent/ConcurrentQueues/ConcurrentQueueLoops.java ! test/java/util/concurrent/ConcurrentQueues/GCRetention.java ! test/java/util/concurrent/ConcurrentQueues/IteratorWeakConsistency.java ! test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java ! test/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java ! test/java/util/concurrent/ConcurrentQueues/RemovePollRace.java ! test/java/util/concurrent/CopyOnWriteArrayList/EqualsRace.java ! test/java/util/concurrent/CopyOnWriteArraySet/RacingCows.java ! test/java/util/concurrent/CountDownLatch/Basic.java ! test/java/util/concurrent/CyclicBarrier/Basic.java ! test/java/util/concurrent/DelayQueue/Iterate.java ! test/java/util/concurrent/DelayQueue/PollUnexpired.java ! test/java/util/concurrent/DelayQueue/Stress.java ! test/java/util/concurrent/Exchanger/ExchangeLoops.java ! test/java/util/concurrent/Exchanger/LoopHelpers.java ! test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java ! test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java ! test/java/util/concurrent/ExecutorService/Invoke.java ! test/java/util/concurrent/Executors/AutoShutdown.java ! test/java/util/concurrent/Executors/PrivilegedCallables.java ! test/java/util/concurrent/Executors/Throws.java ! test/java/util/concurrent/FutureTask/BlockingTaskExecutor.java ! test/java/util/concurrent/FutureTask/CancelledFutureLoops.java ! test/java/util/concurrent/FutureTask/Customized.java ! test/java/util/concurrent/FutureTask/LoopHelpers.java ! test/java/util/concurrent/FutureTask/Throw.java ! test/java/util/concurrent/LinkedBlockingQueue/ToArray.java ! test/java/util/concurrent/Phaser/Arrive.java ! test/java/util/concurrent/Phaser/Basic.java ! test/java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java ! test/java/util/concurrent/ScheduledThreadPoolExecutor/DecorateTask.java ! test/java/util/concurrent/ScheduledThreadPoolExecutor/DelayOverflow.java ! test/java/util/concurrent/ScheduledThreadPoolExecutor/Stress.java ! test/java/util/concurrent/Semaphore/PermitOverflow.java ! test/java/util/concurrent/Semaphore/RacingReleases.java ! test/java/util/concurrent/SynchronousQueue/Fairness.java ! test/java/util/concurrent/ThreadPoolExecutor/ConfigChanges.java ! test/java/util/concurrent/ThreadPoolExecutor/CoreThreadTimeOut.java ! test/java/util/concurrent/ThreadPoolExecutor/Custom.java ! test/java/util/concurrent/ThreadPoolExecutor/ModifyCorePoolSize.java ! test/java/util/concurrent/ThreadPoolExecutor/ScheduledTickleService.java ! test/java/util/concurrent/ThreadPoolExecutor/SelfInterrupt.java ! test/java/util/concurrent/ThreadPoolExecutor/ShutdownNowExecuteRace.java ! test/java/util/concurrent/ThreadPoolExecutor/ThrowingTasks.java ! test/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java ! test/java/util/concurrent/TimeUnit/Basic.java ! test/java/util/concurrent/atomic/Lazy.java ! test/java/util/concurrent/atomic/VMSupportsCS8.java ! test/java/util/concurrent/forkjoin/Integrate.java ! test/java/util/concurrent/forkjoin/NQueensCS.java ! test/java/util/concurrent/locks/Lock/FlakyMutex.java ! test/java/util/concurrent/locks/Lock/TimedAcquire.java ! test/java/util/concurrent/locks/Lock/TimedAcquireLeak.java ! test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java ! test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java ! test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java ! test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java ! test/java/util/concurrent/locks/ReentrantLock/TimeoutLockLoops.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/Bug6571733.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/Count.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java ! test/java/util/concurrent/locks/ReentrantReadWriteLock/RWMap.java ! test/java/util/jar/Attributes/Name.java ! test/java/util/jar/Attributes/PutAndPutAll.java ! test/java/util/jar/JarEntry/GetMethodsReturnClones.java ! test/java/util/jar/JarFile/Constructor.java ! test/java/util/jar/JarFile/JarNoManifest.java ! test/java/util/jar/JarFile/ScanSignedJar.java ! test/java/util/jar/JarFile/SignedJarFileGetInputStream.java ! test/java/util/jar/JarFile/SorryClosed.java ! test/java/util/jar/JarFile/TurkCert.java ! test/java/util/jar/JarFile/VerifySignedJar.java ! test/java/util/jar/JarInputStream/EmptyJar.java ! test/java/util/jar/JarInputStream/ScanSignedJar.java ! test/java/util/jar/TestExtra.java ! test/java/util/logging/ClassLoaderLeakTest.java ! test/java/util/logging/GetGlobalTest.java ! test/java/util/logging/LoggerSubclass.java ! test/java/util/logging/LoggingDeadlock.java ! test/java/util/logging/LoggingDeadlock2.java ! test/java/util/logging/LoggingMXBeanTest.java ! test/java/util/logging/LoggingMXBeanTest2.java ! test/java/util/logging/LoggingNIOChange.java ! test/java/util/logging/PlatformLoggingMXBean/PlatformLoggingMXBeanTest.java ! test/java/util/prefs/CommentsInXml.java ! test/java/util/prefs/ConflictInFlush.java ! test/java/util/prefs/ExportNode.java ! test/java/util/prefs/ExportSubtree.java ! test/java/util/prefs/PrefsSpi.java ! test/java/util/prefs/PrefsSpi.sh ! test/java/util/prefs/RemoveReadOnlyNode.java ! test/java/util/prefs/RemoveUnregedListener.java ! test/java/util/prefs/SerializeExceptions.java ! test/java/util/regex/BMPTestCases.txt ! test/java/util/regex/RegExTest.java ! test/java/util/regex/SupplementaryTestCases.txt ! test/java/util/regex/TestCases.txt ! test/java/util/zip/3GBZipFiles.sh ! test/java/util/zip/Available.java ! test/java/util/zip/Bounds.java ! test/java/util/zip/ConstructDeflaterInput.java ! test/java/util/zip/ConstructInflaterOutput.java ! test/java/util/zip/DataDescriptor.java ! test/java/util/zip/DeflateIn_InflateOut.java ! test/java/util/zip/FileBuilder.java ! test/java/util/zip/FlaterTest.java ! test/java/util/zip/GZIP/Accordion.java ! test/java/util/zip/GZIP/ReadUByte.java ! test/java/util/zip/InflateIn_DeflateOut.java ! test/java/util/zip/InflaterInputStream/MarkReset.java ! test/java/util/zip/InfoZip.java ! test/java/util/zip/InterruptibleZip.java ! test/java/util/zip/LargeZip.java ! test/java/util/zip/NoExtensionSignature.java ! test/java/util/zip/ReadLoc.java ! test/java/util/zip/StoredCRC.java ! test/java/util/zip/StreamConstructor.java ! test/java/util/zip/StreamIOAfterClose.java ! test/java/util/zip/TestEmptyZip.java ! test/java/util/zip/TestZipError.java ! test/java/util/zip/ZipCoding.java ! test/java/util/zip/ZipEntry/Clone.java ! test/java/util/zip/ZipEntry/Constructor.java ! test/java/util/zip/ZipFile/Assortment.java ! test/java/util/zip/ZipFile/Available.java ! test/java/util/zip/ZipFile/Comment.java ! test/java/util/zip/ZipFile/Constructor.java ! test/java/util/zip/ZipFile/CopyJar.java ! test/java/util/zip/ZipFile/CorruptedZipFiles.java ! test/java/util/zip/ZipFile/DeleteTempJar.java ! test/java/util/zip/ZipFile/EnumAfterClose.java ! test/java/util/zip/ZipFile/GetDirEntry.java ! test/java/util/zip/ZipFile/LargeZipFile.java ! test/java/util/zip/ZipFile/ManyEntries.java ! test/java/util/zip/ZipFile/ManyZipFiles.java ! test/java/util/zip/ZipFile/ReadAfterClose.java ! test/java/util/zip/ZipFile/ReadLongZipFileName.java ! test/java/util/zip/ZipFile/ReadZip.java ! test/java/util/zip/ZipFile/ReleaseInflater.java ! test/java/util/zip/ZipFile/ShortRead.java ! test/java/util/zip/ZipFile/deletetempjar.sh ! test/java/util/zip/ZipInputStream/Constructor.java ! test/java/util/zip/ZipInputStream/Skip.java ! test/java/util/zip/zip.java ! test/javax/crypto/Cipher/ByteBuffers.java ! test/javax/crypto/Cipher/ByteBuffersNull.java ! test/javax/crypto/Cipher/GetMaxAllowed.java ! test/javax/crypto/Cipher/InOutBuffers.java ! test/javax/crypto/Cipher/TestCipherMode.java ! test/javax/crypto/Cipher/TestGetInstance.java ! test/javax/crypto/Cipher/Turkish.java ! test/javax/crypto/CryptoPermission/AllPermCheck.java ! test/javax/crypto/CryptoPermission/LowercasePermCheck.java ! test/javax/crypto/CryptoPermission/RC2PermCheck.java ! test/javax/crypto/CryptoPermission/RC4AliasPermCheck.java ! test/javax/crypto/CryptoPermission/RSANoLimit.java ! test/javax/crypto/EncryptedPrivateKeyInfo/GetAlgName.java ! test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpec.java ! test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException.java ! test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecException2.java ! test/javax/crypto/EncryptedPrivateKeyInfo/GetKeySpecInvalidEncoding.java ! test/javax/crypto/JceSecurity/MyCertificateFactory.java ! test/javax/crypto/JceSecurity/MyProvider.java ! test/javax/crypto/JceSecurity/MyX509CertImpl.java ! test/javax/crypto/JceSecurity/SunJCE_BC_LoadOrdering.java ! test/javax/crypto/KeyGenerator/TestGetInstance.java ! test/javax/crypto/Mac/ByteBuffers.java ! test/javax/crypto/Mac/NullMacSpi.java ! test/javax/crypto/Mac/TestGetInstance.java ! test/javax/crypto/NullCipher/TestNPE.java ! test/javax/crypto/NullCipher/TestWithoutInit.java ! test/javax/crypto/SealedObject/NullKeySealedObject.java ! test/javax/crypto/SecretKeyFactory/FailOverTest.java ! test/javax/crypto/SecretKeyFactory/FailOverTest.sh ! test/javax/crypto/SecretKeyFactory/P1SecretKeyFactory.java ! test/javax/crypto/SecretKeyFactory/P2SecretKeyFactory.java ! test/javax/crypto/SecretKeyFactory/Provider1.java ! test/javax/crypto/SecretKeyFactory/Provider2.java ! test/javax/crypto/spec/DESKeySpec/CheckParity.java ! test/javax/crypto/spec/DESKeySpec/CheckWeakKeys.java ! test/javax/crypto/spec/DESKeySpec/NullKey.java ! test/javax/crypto/spec/IvParameterSpec/InvalidArgs.java ! test/javax/crypto/spec/IvParameterSpec/NullIV.java ! test/javax/crypto/spec/RC2ParameterSpec/RC2AlgorithmParameters.java ! test/javax/crypto/spec/RC2ParameterSpec/RC2ParameterSpecEquals.java ! test/javax/crypto/spec/RC5ParameterSpec/InvalidIV.java ! test/javax/crypto/spec/RC5ParameterSpec/RC5ParameterSpecEquals.java ! test/javax/imageio/CachePremissionsTest/CachePermissionsTest.java ! test/javax/imageio/EmptyFileTest.java ! test/javax/imageio/metadata/BooleanAttributes.java ! test/javax/imageio/metadata/DOML3Node.java ! test/javax/imageio/plugins/bmp/BMPSubsamplingTest.java ! test/javax/imageio/plugins/bmp/TopDownTest.java ! test/javax/imageio/plugins/gif/EncodeSubImageTest.java ! test/javax/imageio/plugins/jpeg/ConcurrentReadingTest.java ! test/javax/imageio/plugins/jpeg/ConcurrentWritingTest.java ! test/javax/imageio/plugins/jpeg/ReadAsGrayTest.java ! test/javax/imageio/plugins/jpeg/ReadingInterruptionTest.java ! test/javax/imageio/plugins/jpeg/WritingInterruptionTest.java ! test/javax/imageio/plugins/png/GrayPngTest.java ! test/javax/imageio/plugins/png/ITXtTest.java ! test/javax/imageio/plugins/png/ItxtUtf8Test.java ! test/javax/imageio/plugins/png/MergeStdCommentTest.java ! test/javax/imageio/plugins/png/PngOutputTypeTest.java ! test/javax/imageio/plugins/png/ShortHistogramTest.java ! test/javax/imageio/plugins/shared/BitDepth.java ! test/javax/imageio/plugins/wbmp/CanDecodeTest.java ! test/javax/imageio/stream/StreamCloserLeak/run_test.sh ! test/javax/imageio/stream/StreamCloserLeak/test/Main.java ! test/javax/imageio/stream/StreamCloserLeak/testapp/Main.java ! test/javax/management/ImplementationVersion/ImplVersionCommand.java ! test/javax/management/ImplementationVersion/ImplVersionReader.java ! test/javax/management/ImplementationVersion/ImplVersionTest.java ! test/javax/management/Introspector/AnnotationSecurityTest.java ! test/javax/management/Introspector/AnnotationTest.java ! test/javax/management/Introspector/ChangingNotifsTest.java ! test/javax/management/Introspector/ClassLeakTest.java ! test/javax/management/Introspector/Described.java ! test/javax/management/Introspector/DescribedMBean.java ! test/javax/management/Introspector/DescribedMX.java ! test/javax/management/Introspector/DescribedMXBean.java ! test/javax/management/Introspector/DuplicateGetterTest.java ! test/javax/management/Introspector/FeatureOrderTest.java ! test/javax/management/Introspector/GetMBeanInfoExceptionTest.java ! test/javax/management/Introspector/IdenticalMBeanInfoTest.java ! test/javax/management/Introspector/ImmutableNotificationInfoTest.java ! test/javax/management/Introspector/InvokeGettersTest.java ! test/javax/management/Introspector/IsMethodTest.java ! test/javax/management/Introspector/NotAnMBeanTest.java ! test/javax/management/Introspector/NotCompliantCauseTest.java ! test/javax/management/Introspector/SetWrongTypeAttributeTest.java ! test/javax/management/Introspector/SqeDescriptorKey.java ! test/javax/management/Introspector/UnDescribed.java ! test/javax/management/Introspector/UnDescribedMBean.java ! test/javax/management/Introspector/UnregisterMBeanExceptionTest.java ! test/javax/management/Introspector/annot/Name.java ! test/javax/management/MBeanInfo/EqualExceptionTest.java ! test/javax/management/MBeanInfo/MBeanInfoEqualsTest.java ! test/javax/management/MBeanInfo/NotificationInfoTest.java ! test/javax/management/MBeanInfo/NullInfoArraysTest.java ! test/javax/management/MBeanInfo/SerializationTest.java ! test/javax/management/MBeanInfo/SerializedMBeanInfo.java ! test/javax/management/MBeanInfo/TooManyFooTest.java ! test/javax/management/MBeanServer/AttributeListTypeSafeTest.java ! test/javax/management/MBeanServer/MBeanExceptionTest.java ! test/javax/management/MBeanServer/MBeanServerInvocationHandlerExceptionTest.java ! test/javax/management/MBeanServer/MBeanServerNotificationTest.java ! test/javax/management/MBeanServer/NewMBeanListenerTest.java ! test/javax/management/MBeanServer/NotifDeadlockTest.java ! test/javax/management/MBeanServer/OldMBeanServerTest.java ! test/javax/management/MBeanServer/PostExceptionTest.java ! test/javax/management/MBeanServer/PostRegisterDeadlockTest.java ! test/javax/management/MBeanServer/PostRegisterDeadlockTest2.java ! test/javax/management/MBeanServer/PreDeregisterDeadlockTest.java ! test/javax/management/MBeanServer/PreRegisterTest.java ! test/javax/management/MBeanServerFactory/ReleaseMBeanServerTest.java ! test/javax/management/MustBeValidMBeanInfo/MustBeValidCommand.java ! test/javax/management/ObjectInstance/MBeanInfoFailTest.java ! test/javax/management/ObjectInstance/ObjectInstanceNullTest.java ! test/javax/management/ObjectInstance/ToStringMethodTest.java ! test/javax/management/ObjectName/ApplyWildcardTest.java ! test/javax/management/ObjectName/ComparatorTest.java ! test/javax/management/ObjectName/DelegateNameWildcardNameTest.java ! test/javax/management/ObjectName/NullEmptyKeyValueTest.java ! test/javax/management/ObjectName/ObjectNameGetInstanceTest.java ! test/javax/management/ObjectName/RepositoryWildcardTest.java ! test/javax/management/ObjectName/SerialCompatTest.java ! test/javax/management/ObjectName/ValueWildcardTest.java ! test/javax/management/descriptor/DefaultDescriptorTest.java ! test/javax/management/descriptor/DescriptorTest.java ! test/javax/management/descriptor/EqualsHashCodeTest.java ! test/javax/management/descriptor/ImmutableArrayFieldTest.java ! test/javax/management/descriptor/ImmutableDescriptorSerialTest.java ! test/javax/management/descriptor/ImmutableDescriptorSetFieldsTest.java ! test/javax/management/descriptor/MBeanInfoInteropTest.java ! test/javax/management/descriptor/SerializedInfo.java ! test/javax/management/descriptor/UnionTest.java ! test/javax/management/generified/GenericTest.java ! test/javax/management/generified/ListTypeCheckTest.java ! test/javax/management/loading/ArrayClassTest.java ! test/javax/management/loading/DocumentRootTest.java ! test/javax/management/loading/GetMBeansFromURLTest.java ! test/javax/management/loading/LibraryLoader/LibraryLoaderTest.java ! test/javax/management/loading/LibraryLoader/jar_src/UseNativeLib.java ! test/javax/management/loading/LibraryLoader/jar_src/UseNativeLibMBean.java ! test/javax/management/loading/MLetCLR/MLetCommand.java ! test/javax/management/loading/MLetContentTest.java ! test/javax/management/loading/ParserInfiniteLoopTest.java ! test/javax/management/loading/SystemClassLoaderTest.java ! test/javax/management/modelmbean/AddAttributeChangeNotificationListenerTest.java ! test/javax/management/modelmbean/DescriptorSupportSerialTest.java ! test/javax/management/modelmbean/DescriptorSupportTest.java ! test/javax/management/modelmbean/DescriptorSupportXMLTest.java ! test/javax/management/modelmbean/ExoticTargetTypeTest.java ! test/javax/management/modelmbean/InfoSupportTest.java ! test/javax/management/modelmbean/ModelMBeanInfoSupport/GetAllDescriptorsTest.java ! test/javax/management/modelmbean/OnUnregisterTest.java ! test/javax/management/modelmbean/RequiredModelMBeanGetAttributeTest.java ! test/javax/management/modelmbean/RequiredModelMBeanMethodTest.java ! test/javax/management/modelmbean/RequiredModelMBeanSetAttributeTest.java ! test/javax/management/modelmbean/SimpleModelMBean/SimpleModelMBeanCommand.java ! test/javax/management/modelmbean/UnserializableTargetObjectTest.java ! test/javax/management/monitor/AttributeArbitraryDataTypeTest.java ! test/javax/management/monitor/CounterMonitorDeadlockTest.java ! test/javax/management/monitor/CounterMonitorInitThresholdTest.java ! test/javax/management/monitor/CounterMonitorTest.java ! test/javax/management/monitor/CounterMonitorThresholdTest.java ! test/javax/management/monitor/DerivedGaugeMonitorTest.java ! test/javax/management/monitor/GaugeMonitorDeadlockTest.java ! test/javax/management/monitor/MBeanServerBuilderImpl.java ! test/javax/management/monitor/MBeanServerForwarderInvocationHandler.java ! test/javax/management/monitor/MultiMonitorTest.java ! test/javax/management/monitor/NonComparableAttributeValueTest.java ! test/javax/management/monitor/NullAttributeValueTest.java ! test/javax/management/monitor/ReflectionExceptionTest.java ! test/javax/management/monitor/RuntimeExceptionTest.java ! test/javax/management/monitor/StartStopTest.java ! test/javax/management/monitor/StringMonitorDeadlockTest.java ! test/javax/management/monitor/ThreadPoolAccTest.java ! test/javax/management/monitor/ThreadPoolTest.java ! test/javax/management/mxbean/AmbiguousConstructorTest.java ! test/javax/management/mxbean/ComparatorExceptionTest.java ! test/javax/management/mxbean/ExceptionDiagnosisTest.java ! test/javax/management/mxbean/GenericArrayTypeTest.java ! test/javax/management/mxbean/GenericTypeTest.java ! test/javax/management/mxbean/InvalidMXBeanRegistrationTest.java ! test/javax/management/mxbean/LeakTest.java ! test/javax/management/mxbean/MBeanOperationInfoTest.java ! test/javax/management/mxbean/MXBeanAnnotationTest.java ! test/javax/management/mxbean/MXBeanFlagTest.java ! test/javax/management/mxbean/MXBeanPreRegisterTest.java ! test/javax/management/mxbean/MXBeanRefTest.java ! test/javax/management/mxbean/MXBeanTest.java ! test/javax/management/mxbean/MerlinMXBean.java ! test/javax/management/mxbean/MiscTest.java ! test/javax/management/mxbean/OperationImpactTest.java ! test/javax/management/mxbean/OverloadTest.java ! test/javax/management/mxbean/PreRegisterNameTest.java ! test/javax/management/mxbean/PropertyNamesTest.java ! test/javax/management/mxbean/RandomMXBeanTest.java ! test/javax/management/mxbean/SameObjectTwoNamesTest.java ! test/javax/management/mxbean/StandardMBeanOverrideTest.java ! test/javax/management/mxbean/ThreadMXBeanTest.java ! test/javax/management/mxbean/TigerMXBean.java ! test/javax/management/mxbean/TypeNameTest.java ! test/javax/management/notification/BroadcasterSupportDeadlockTest.java ! test/javax/management/notification/FilterExceptionTest.java ! test/javax/management/notification/NotifExecutorTest.java ! test/javax/management/notification/NotifInfoTest.java ! test/javax/management/openmbean/ArrayTypeTest.java ! test/javax/management/openmbean/BadConstraintTest.java ! test/javax/management/openmbean/CompositeDataStringTest.java ! test/javax/management/openmbean/ConstraintTest.java ! test/javax/management/openmbean/EqualsTest.java ! test/javax/management/openmbean/IsValueTest.java ! test/javax/management/openmbean/MBeanFeatureInfoSerialStore.java ! test/javax/management/openmbean/NullConstructorParamsTest.java ! test/javax/management/openmbean/OpenTypeDescriptorTest.java ! test/javax/management/openmbean/TabularDataOrderTest.java ! test/javax/management/proxy/NotificationEmitterProxy.java ! test/javax/management/proxy/ProxyObjectMethodsTest.java ! test/javax/management/query/CustomQueryTest.java ! test/javax/management/query/InstanceOfExpTest.java ! test/javax/management/query/QueryExpStringTest.java ! test/javax/management/query/QueryMatchTest.java ! test/javax/management/query/QuerySubstringTest.java ! test/javax/management/relation/NonArrayListTest.java ! test/javax/management/relation/RelationNotificationSeqNoTest.java ! test/javax/management/relation/RelationNotificationSourceTest.java ! test/javax/management/relation/RelationTypeTest.java ! test/javax/management/remote/mandatory/URLTest.java ! test/javax/management/remote/mandatory/connection/AddressableTest.java ! test/javax/management/remote/mandatory/connection/BrokenConnectionTest.java ! test/javax/management/remote/mandatory/connection/CloseFailedClientTest.java ! test/javax/management/remote/mandatory/connection/CloseServerTest.java ! test/javax/management/remote/mandatory/connection/CloseUnconnectedTest.java ! test/javax/management/remote/mandatory/connection/CloseableTest.java ! test/javax/management/remote/mandatory/connection/ConnectionListenerNullTest.java ! test/javax/management/remote/mandatory/connection/ConnectionTest.java ! test/javax/management/remote/mandatory/connection/DaemonRMIExporterTest.java ! test/javax/management/remote/mandatory/connection/DeadLockTest.java ! test/javax/management/remote/mandatory/connection/FailedConnectionTest.java ! test/javax/management/remote/mandatory/connection/GetConnectionTest.java ! test/javax/management/remote/mandatory/connection/IIOPURLTest.java ! test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java ! test/javax/management/remote/mandatory/connection/MultiOpenCloseTest.java ! test/javax/management/remote/mandatory/connection/RMIConnectionIdTest.java ! test/javax/management/remote/mandatory/connection/RMIExitTest.java ! test/javax/management/remote/mandatory/connection/RMISerializeTest.java ! test/javax/management/remote/mandatory/connection/ReconnectTest.java ! test/javax/management/remote/mandatory/connectorServer/ConnectorStopDeadlockTest.java ! test/javax/management/remote/mandatory/connectorServer/JNDIFailureTest.java ! test/javax/management/remote/mandatory/connectorServer/MBSFPreStartPostStartTest.java ! test/javax/management/remote/mandatory/connectorServer/RMIExporterTest.java ! test/javax/management/remote/mandatory/connectorServer/SetMBeanServerForwarder.java ! test/javax/management/remote/mandatory/loading/DefaultProviderTest.java ! test/javax/management/remote/mandatory/loading/DeserializeEncodedURLTest.java ! test/javax/management/remote/mandatory/loading/MethodResultTest.java ! test/javax/management/remote/mandatory/loading/MissingClassTest.java ! test/javax/management/remote/mandatory/loading/RMIDownloadTest.java ! test/javax/management/remote/mandatory/loading/SingleClassLoader.java ! test/javax/management/remote/mandatory/loading/TargetMBeanTest.java ! test/javax/management/remote/mandatory/loading/UserClassLoaderTest.java ! test/javax/management/remote/mandatory/notif/AddRemoveTest.java ! test/javax/management/remote/mandatory/notif/DiffHBTest.java ! test/javax/management/remote/mandatory/notif/EmptyDomainNotificationTest.java ! test/javax/management/remote/mandatory/notif/ListenerScaleTest.java ! test/javax/management/remote/mandatory/notif/NotSerializableNotifTest.java ! test/javax/management/remote/mandatory/notif/NotifBufferSizePropertyNameTest.java ! test/javax/management/remote/mandatory/notif/NotifReconnectDeadlockTest.java ! test/javax/management/remote/mandatory/notif/NotificationAccessControllerTest.java ! test/javax/management/remote/mandatory/notif/NotificationBufferCreationTest.java ! test/javax/management/remote/mandatory/notif/NotificationBufferDeadlockTest.java ! test/javax/management/remote/mandatory/notif/NotificationBufferTest.java ! test/javax/management/remote/mandatory/notif/NotificationEmissionTest.java ! test/javax/management/remote/mandatory/notif/NotificationSender.java ! test/javax/management/remote/mandatory/notif/NotificationSenderMBean.java ! test/javax/management/remote/mandatory/notif/RMINotifTest.java ! test/javax/management/remote/mandatory/notif/ServerNotifs.java ! test/javax/management/remote/mandatory/notif/UnexpectedNotifTest.java ! test/javax/management/remote/mandatory/passwordAccessFile/NonJMXPrincipalsTest.java ! test/javax/management/remote/mandatory/passwordAccessFile/PasswordAccessFileTest.java ! test/javax/management/remote/mandatory/passwordAccessFile/SimpleStandard.java ! test/javax/management/remote/mandatory/passwordAccessFile/SimpleStandardMBean.java ! test/javax/management/remote/mandatory/passwordAuthenticator/RMIAltAuthTest.java ! test/javax/management/remote/mandatory/passwordAuthenticator/RMIPasswdAuthTest.java ! test/javax/management/remote/mandatory/passwordAuthenticator/SimpleStandard.java ! test/javax/management/remote/mandatory/passwordAuthenticator/SimpleStandardMBean.java ! test/javax/management/remote/mandatory/provider/ProviderTest.java ! test/javax/management/remote/mandatory/provider/provider/JMXConnectorProviderImpl.java ! test/javax/management/remote/mandatory/provider/provider/JMXConnectorServerProviderImpl.java ! test/javax/management/remote/mandatory/serverError/JMXServerErrorTest.java ! test/javax/management/remote/mandatory/socketFactories/RMIClientFactory.java ! test/javax/management/remote/mandatory/socketFactories/RMIServerFactory.java ! test/javax/management/remote/mandatory/socketFactories/RMISocketFactoriesTest.java ! test/javax/management/remote/mandatory/subjectDelegation/SimpleStandard.java ! test/javax/management/remote/mandatory/subjectDelegation/SimpleStandardMBean.java ! test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation1Test.java ! test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation2Test.java ! test/javax/management/remote/mandatory/subjectDelegation/SubjectDelegation3Test.java ! test/javax/management/remote/mandatory/threads/ExecutorTest.java ! test/javax/management/remote/mandatory/threads/NoServerTimeoutTest.java ! test/javax/management/remote/mandatory/util/CacheMapTest.java ! test/javax/management/remote/mandatory/util/MapNullValuesTest.java ! test/javax/management/remote/mandatory/version/ImplVersionCommand.java ! test/javax/management/remote/mandatory/version/ImplVersionReader.java ! test/javax/management/remote/mandatory/version/ImplVersionTest.java ! test/javax/management/security/AvoidGetMBeanInfoCallsTest.java ! test/javax/management/security/MBeanPermissionTest.java ! test/javax/management/standardmbean/DeadlockTest.java ! test/javax/naming/InitialContext/EnvClone.java ! test/javax/naming/Name/Serialized13Name.java ! test/javax/naming/RefAddr/NullContent.java ! test/javax/naming/ldap/LdapName/CompareToEqualsTests.java ! test/javax/naming/ldap/LdapName/EscapeUnescapeTests.java ! test/javax/naming/ldap/LdapName/LdapNameConstruction.java ! test/javax/naming/ldap/LdapName/LdapParserTests.java ! test/javax/naming/ldap/LdapName/NameTests.java ! test/javax/naming/ldap/LdapName/RdnMisc.java ! test/javax/naming/ldap/LdapName/RdnToAttrsTest.java ! test/javax/naming/ldap/LdapName/TrailingSpaceTest.java ! test/javax/naming/spi/DirectoryManager/DummyContext.java ! test/javax/naming/spi/DirectoryManager/DummyObjectFactory.java ! test/javax/naming/spi/DirectoryManager/GetContDirCtx.java ! test/javax/print/CheckDupFlavor.java ! test/javax/print/DialogMargins.java ! test/javax/print/LookupServices.java ! test/javax/print/PrintSE/PrintSE.java ! test/javax/print/PrintSE/PrintSE.sh ! test/javax/print/PrintSubInputStream/Example.java ! test/javax/print/StreamPrintingOrientation.java ! test/javax/print/TestRaceCond.java ! test/javax/print/applet/AppletPrintLookup.sh ! test/javax/print/applet/YesNo.java ! test/javax/print/applet/applet0/Applet0.java ! test/javax/print/applet/applet1/Applet1.java ! test/javax/print/applet/applet1/Applet1PrintService.java ! test/javax/print/applet/applet1/Applet1PrintServiceLookup.java ! test/javax/print/applet/applet2/Applet2.java ! test/javax/print/applet/applet2/Applet2PrintService.java ! test/javax/print/applet/applet2/Applet2PrintServiceLookup.java ! test/javax/print/applet/applet3/Applet3.java ! test/javax/print/applet/applet3/Applet3PrintService.java ! test/javax/print/applet/applet4/Applet4.java ! test/javax/print/applet/applet4/Applet4PrintService.java ! test/javax/print/applet/applet4/Applet4PrintServiceLookup.java ! test/javax/print/attribute/AttributeTest.java ! test/javax/print/attribute/Chroma.java ! test/javax/print/attribute/ChromaticityValues.java ! test/javax/print/attribute/CollateAttr.java ! test/javax/print/attribute/GetCopiesSupported.java ! test/javax/print/attribute/MediaMappingsTest.java ! test/javax/print/attribute/PSCopiesFlavorTest.java ! test/javax/print/attribute/ServiceDialogTest.java ! test/javax/print/attribute/SidesPageRangesTest.java ! test/javax/print/attribute/SupportedPrintableAreas.java ! test/javax/print/attribute/autosense/PrintAutoSenseData.java ! test/javax/rmi/ssl/SSLSocketParametersTest.java ! test/javax/rmi/ssl/SSLSocketParametersTest.sh ! test/javax/rmi/ssl/SocketFactoryTest.java ! test/javax/script/CommonSetup.sh ! test/javax/script/DummyScriptEngine.java ! test/javax/script/DummyScriptEngineFactory.java ! test/javax/script/E4XErrorTest.java ! test/javax/script/Helper.java ! test/javax/script/JavaScriptScopeTest.java ! test/javax/script/MyContext.java ! test/javax/script/NullUndefinedVarTest.java ! test/javax/script/PluggableContextTest.java ! test/javax/script/ProviderTest.java ! test/javax/script/ProviderTest.sh ! test/javax/script/RhinoExceptionTest.java ! test/javax/script/Test1.java ! test/javax/script/Test2.java ! test/javax/script/Test3.java ! test/javax/script/Test4.java ! test/javax/script/Test5.java ! test/javax/script/Test6.java ! test/javax/script/Test7.java ! test/javax/script/Test8.java ! test/javax/script/VersionTest.java ! test/javax/security/auth/PrivateCredentialPermission/CanonError.java ! test/javax/security/auth/PrivateCredentialPermission/EmptyName.java ! test/javax/security/auth/PrivateCredentialPermission/Equals.java ! test/javax/security/auth/PrivateCredentialPermission/Serial.java ! test/javax/security/auth/PrivateCredentialPermission/Subset.java ! test/javax/security/auth/Subject/Generic.java ! test/javax/security/auth/Subject/Serial.java ! test/javax/security/auth/Subject/Synch.java ! test/javax/security/auth/Subject/Synch2.java ! test/javax/security/auth/Subject/Synch3.java ! test/javax/security/auth/Subject/doAs/Test.java ! test/javax/security/auth/Subject/doAs/Test.sh ! test/javax/security/auth/SubjectDomainCombiner/Optimize.java ! test/javax/security/auth/SubjectDomainCombiner/Regression.java ! test/javax/security/auth/kerberos/KerberosHashEqualsTest.java ! test/javax/security/auth/kerberos/KerberosTixDateTest.java ! test/javax/security/auth/kerberos/ServicePermissionTest.java ! test/javax/security/auth/login/Configuration/ConfigFileWithBlank.java ! test/javax/security/auth/login/Configuration/GetInstance.java ! test/javax/security/auth/login/Configuration/GetInstanceConfigSpi.java ! test/javax/security/auth/login/Configuration/GetInstanceProvider.java ! test/javax/security/auth/login/Configuration/GetInstanceSecurity.java ! test/javax/security/auth/login/Configuration/Synchronize.java ! test/javax/security/auth/login/Exceptions/NewExceptions.java ! test/javax/security/auth/login/LoginContext/ConfigConstructor.java ! test/javax/security/auth/login/LoginContext/ConfigConstructorNoPerm.java ! test/javax/security/auth/login/LoginContext/DefaultHandler.java ! test/javax/security/auth/login/LoginContext/DefaultHandlerImpl.java ! test/javax/security/auth/login/LoginContext/DefaultHandlerModule.java ! test/javax/security/auth/login/LoginContext/ModuleSubject.java ! test/javax/security/auth/login/LoginContext/ModuleSubjectModule.java ! test/javax/security/auth/login/LoginContext/ResetConfigModule.java ! test/javax/security/auth/login/LoginContext/ResetModule.java ! test/javax/security/auth/x500/X500Principal/DerIsConstructor.java ! test/javax/security/auth/x500/X500Principal/Equals.java ! test/javax/security/auth/x500/X500Principal/EscapedChars.java ! test/javax/security/auth/x500/X500Principal/InvalidConstructorInput.java ! test/javax/security/auth/x500/X500Principal/KeywordMap.java ! test/javax/security/auth/x500/X500Principal/OIDMap.java ! test/javax/security/auth/x500/X500Principal/RFC4514.java ! test/javax/security/sasl/Sasl/PassSysProps.java ! test/javax/smartcardio/HistoricalBytes.java ! test/javax/smartcardio/Serialize.java ! test/javax/smartcardio/TestCardPermission.java ! test/javax/smartcardio/TestCommandAPDU.java ! test/javax/sound/midi/Gervill/AudioFloatConverter/GetFormat.java ! test/javax/sound/midi/Gervill/AudioFloatConverter/ToFloatArray.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/Available.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/Close.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/GetFormat.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/GetFrameLength.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/MarkSupported.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/Read.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/ReadFloatArray.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/ReadFloatArrayIntInt.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/Reset.java ! test/javax/sound/midi/Gervill/AudioFloatInputStream/Skip.java ! test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankFile.java ! test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankInputStream.java ! test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankInputStream2.java ! test/javax/sound/midi/Gervill/DLSSoundbankReader/TestGetSoundbankUrl.java ! test/javax/sound/midi/Gervill/EmergencySoundbank/TestCreateSoundbank.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/GetInputStream.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/GetRoot.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/Load.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/LoadAll.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferByteArray.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferByteArrayIntInt.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferFile.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/NewModelByteBufferFileLongLong.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Available.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Close.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/MarkReset.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/MarkSupported.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Read.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/ReadByte.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/ReadByteIntInt.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/RandomFileInputStream/Skip.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLong.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLongLong.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/SubbufferLongLongBoolean.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/Unload.java ! test/javax/sound/midi/Gervill/ModelByteBuffer/WriteTo.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetAttenuation.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetChannels.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetLoopLength.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetLoopStart.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/GetPitchCorrection.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBuffer.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferAudioFormat.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferAudioFormatFloat.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/NewModelByteBufferWavetableModelByteBufferFloat.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/Open.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/Set8BitExtensionBuffer.java ! test/javax/sound/midi/Gervill/ModelByteBufferWavetable/SetLoopType.java ! test/javax/sound/midi/Gervill/ModelDestination/NewModelDestination.java ! test/javax/sound/midi/Gervill/ModelDestination/NewModelDestinationModelIdentifier.java ! test/javax/sound/midi/Gervill/ModelDestination/SetIdentifier.java ! test/javax/sound/midi/Gervill/ModelDestination/SetTransform.java ! test/javax/sound/midi/Gervill/ModelIdentifier/EqualsObject.java ! test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierString.java ! test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringInt.java ! test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringString.java ! test/javax/sound/midi/Gervill/ModelIdentifier/NewModelIdentifierStringStringInt.java ! test/javax/sound/midi/Gervill/ModelIdentifier/SetInstance.java ! test/javax/sound/midi/Gervill/ModelIdentifier/SetObject.java ! test/javax/sound/midi/Gervill/ModelIdentifier/SetVariable.java ! test/javax/sound/midi/Gervill/ModelPerformer/GetOscillators.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetConnectionBlocks.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetDefaultConnectionsEnabled.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetExclusiveClass.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetKeyFrom.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetKeyTo.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetName.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetSelfNonExclusive.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetVelFrom.java ! test/javax/sound/midi/Gervill/ModelPerformer/SetVelTo.java ! test/javax/sound/midi/Gervill/ModelSource/NewModelSource.java ! test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifier.java ! test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierBoolean.java ! test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierBooleanBoolean.java ! test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierBooleanBooleanInt.java ! test/javax/sound/midi/Gervill/ModelSource/NewModelSourceModelIdentifierModelTransform.java ! test/javax/sound/midi/Gervill/ModelSource/SetIdentifier.java ! test/javax/sound/midi/Gervill/ModelSource/SetTransform.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransform.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBoolean.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBooleanBoolean.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/NewModelStandardTransformBooleanBooleanInt.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/SetDirection.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/SetPolarity.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/SetTransform.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/TransformAbsolute.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/TransformConcave.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/TransformConvex.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/TransformLinear.java ! test/javax/sound/midi/Gervill/ModelStandardTransform/TransformSwitch.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/Available.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/Close.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/GetFilePointer.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/GetSize.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/HasNextChunk.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/Read.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadByte.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadByteArrayIntInt.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadInt.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadLong.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadShort.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadString.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadUnsignedByte.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadUnsignedInt.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/ReadUnsignedShort.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/Skip.java ! test/javax/sound/midi/Gervill/RiffReaderWriter/WriteOutputStream.java ! test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankFile.java ! test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankInputStream.java ! test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankInputStream2.java ! test/javax/sound/midi/Gervill/SF2SoundbankReader/TestGetSoundbankUrl.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrument.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntIntIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelInstrumentIntIntIntIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformer.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArray.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArrayIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArrayIntIntIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerArrayIntIntIntIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerIntIntIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/AddModelPerformerIntIntIntIntInt.java ! test/javax/sound/midi/Gervill/SimpleInstrument/Clear.java ! test/javax/sound/midi/Gervill/SimpleInstrument/SetName.java ! test/javax/sound/midi/Gervill/SimpleInstrument/SetPatch.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/AddInstrument.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/AddResource.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/GetInstrument.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/RemoveInstrument.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/SetDescription.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/SetName.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/SetVendor.java ! test/javax/sound/midi/Gervill/SimpleSoundbank/SetVersion.java ! test/javax/sound/midi/Gervill/SoftAudioBuffer/Array.java ! test/javax/sound/midi/Gervill/SoftAudioBuffer/Clear.java ! test/javax/sound/midi/Gervill/SoftAudioBuffer/Get.java ! test/javax/sound/midi/Gervill/SoftAudioBuffer/NewSoftAudioBuffer.java ! test/javax/sound/midi/Gervill/SoftAudioSynthesizer/DummySourceDataLine.java ! test/javax/sound/midi/Gervill/SoftAudioSynthesizer/GetFormat.java ! test/javax/sound/midi/Gervill/SoftAudioSynthesizer/GetPropertyInfo.java ! test/javax/sound/midi/Gervill/SoftAudioSynthesizer/Open.java ! test/javax/sound/midi/Gervill/SoftAudioSynthesizer/OpenStream.java ! test/javax/sound/midi/Gervill/SoftChannel/AllNotesOff.java ! test/javax/sound/midi/Gervill/SoftChannel/AllSoundOff.java ! test/javax/sound/midi/Gervill/SoftChannel/ChannelPressure.java ! test/javax/sound/midi/Gervill/SoftChannel/Controller.java ! test/javax/sound/midi/Gervill/SoftChannel/LocalControl.java ! test/javax/sound/midi/Gervill/SoftChannel/Mono.java ! test/javax/sound/midi/Gervill/SoftChannel/Mute.java ! test/javax/sound/midi/Gervill/SoftChannel/NoteOff.java ! test/javax/sound/midi/Gervill/SoftChannel/NoteOff2.java ! test/javax/sound/midi/Gervill/SoftChannel/NoteOn.java ! test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest.java ! test/javax/sound/midi/Gervill/SoftChannel/NoteOverFlowTest2.java ! test/javax/sound/midi/Gervill/SoftChannel/Omni.java ! test/javax/sound/midi/Gervill/SoftChannel/PitchBend.java ! test/javax/sound/midi/Gervill/SoftChannel/PolyPressure.java ! test/javax/sound/midi/Gervill/SoftChannel/ProgramChange.java ! test/javax/sound/midi/Gervill/SoftChannel/ResetAllControllers.java ! test/javax/sound/midi/Gervill/SoftChannel/SoftTestUtils.java ! test/javax/sound/midi/Gervill/SoftChannel/Solo.java ! test/javax/sound/midi/Gervill/SoftCubicResampler/Interpolate.java ! test/javax/sound/midi/Gervill/SoftFilter/TestProcessAudio.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_mono.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_mono_overdrive.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_mix_overdrive.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_normal.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_normal_mono.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_overdrive.java ! test/javax/sound/midi/Gervill/SoftLimiter/ProcessAudio_replace_overdrive_mono.java ! test/javax/sound/midi/Gervill/SoftLowFrequencyOscillator/TestProcessControlLogic.java ! test/javax/sound/midi/Gervill/SoftProvider/GetDevice.java ! test/javax/sound/midi/Gervill/SoftReceiver/Close.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_ActiveSense.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_AllNotesOff.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_AllSoundOff.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_ChannelPressure.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_Controller.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_Mono.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOff.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_AllChannels.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_Delayed.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_NoteOn_Multiple.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_Omni.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_PitchBend.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_PolyPressure.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_ProgramChange.java ! test/javax/sound/midi/Gervill/SoftReceiver/Send_ResetAllControllers.java ! test/javax/sound/midi/Gervill/SoftReceiver/SoftTestUtils.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/Close.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/DummySourceDataLine.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetAvailableInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetChannels.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetDefaultSoundbank.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetDeviceInfo.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetLatency.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetLoadedInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxPolyphony.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxReceivers.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetMaxTransmitters.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetMicrosecondPosition.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceiver2.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetReceivers.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitter.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetTransmitters.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/GetVoiceStatus.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/ImplicitOpenClose.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/IsOpen.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/IsSoundbankSupported.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/LoadAllInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstrument.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/LoadInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/Open.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/OpenStream.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/RemapInstrument.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/TestPreciseTimestampRendering.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/TestRender1.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadAllInstruments.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstrument.java ! test/javax/sound/midi/Gervill/SoftSynthesizer/UnloadInstruments.java ! test/javax/sound/midi/Gervill/SoftTuning/GetName.java ! test/javax/sound/midi/Gervill/SoftTuning/GetTuning.java ! test/javax/sound/midi/Gervill/SoftTuning/GetTuningInt.java ! test/javax/sound/midi/Gervill/SoftTuning/Load1.java ! test/javax/sound/midi/Gervill/SoftTuning/Load2.java ! test/javax/sound/midi/Gervill/SoftTuning/Load4.java ! test/javax/sound/midi/Gervill/SoftTuning/Load5.java ! test/javax/sound/midi/Gervill/SoftTuning/Load6.java ! test/javax/sound/midi/Gervill/SoftTuning/Load7.java ! test/javax/sound/midi/Gervill/SoftTuning/Load8.java ! test/javax/sound/midi/Gervill/SoftTuning/Load9.java ! test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuning.java ! test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuningByteArray.java ! test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuningPatch.java ! test/javax/sound/midi/Gervill/SoftTuning/NewSoftTuningPatchByteArray.java ! test/javax/swing/JButton/6604281/bug6604281.java ! test/javax/swing/JColorChooser/Test4165217.java ! test/javax/swing/JColorChooser/Test4177735.java ! test/javax/swing/JColorChooser/Test4193384.java ! test/javax/swing/JColorChooser/Test4222508.java ! test/javax/swing/JColorChooser/Test4234761.java ! test/javax/swing/JColorChooser/Test4380468.java ! test/javax/swing/JColorChooser/Test4461329.java ! test/javax/swing/JColorChooser/Test4711996.java ! test/javax/swing/JColorChooser/Test4759306.java ! test/javax/swing/JColorChooser/Test4759934.java ! test/javax/swing/JColorChooser/Test4887836.java ! test/javax/swing/JColorChooser/Test6348456.java ! test/javax/swing/JColorChooser/Test6524757.java ! test/javax/swing/JColorChooser/Test6541987.java ! test/javax/swing/JColorChooser/Test6559154.java ! test/javax/swing/JColorChooser/Test6707406.java ! test/javax/swing/JComboBox/6607130/bug6607130.java ! test/javax/swing/JEditorPane/6917744/bug6917744.java ! test/javax/swing/JFileChooser/6484091/bug6484091.java ! test/javax/swing/JFileChooser/6489130/bug6489130.java ! test/javax/swing/JFileChooser/6550546/bug6550546.java ! test/javax/swing/JFileChooser/6688203/bug6688203.java ! test/javax/swing/JFileChooser/6713352/bug6713352.java ! test/javax/swing/JFileChooser/6738668/bug6738668.java ! test/javax/swing/JFileChooser/6741890/bug6741890.java ! test/javax/swing/JFileChooser/6798062/bug6798062.java ! test/javax/swing/JFileChooser/6840086/bug6840086.java ! test/javax/swing/JFileChooser/6868611/bug6868611.java ! test/javax/swing/JFileChooser/6945316/bug6945316.java ! test/javax/swing/JInternalFrame/6647340/bug6647340.java ! test/javax/swing/JInternalFrame/6725409/bug6725409.java ! test/javax/swing/JInternalFrame/Test6325652.java ! test/javax/swing/JInternalFrame/Test6505027.java ! test/javax/swing/JInternalFrame/Test6802868.java ! test/javax/swing/JLabel/6501991/bug6501991.java ! test/javax/swing/JLayer/6824395/bug6824395.java ! test/javax/swing/JLayer/6872503/bug6872503.java ! test/javax/swing/JLayer/6875153/bug6875153.java ! test/javax/swing/JLayer/6875716/bug6875716.java ! test/javax/swing/JLayer/SerializationTest/SerializationTest.java ! test/javax/swing/JList/6823603/bug6823603.java ! test/javax/swing/JMenuItem/6883341/bug6883341.java ! test/javax/swing/JPopupMenu/6675802/bug6675802.java ! test/javax/swing/JPopupMenu/6690791/bug6690791.java ! test/javax/swing/JPopupMenu/6691503/bug6691503.java ! test/javax/swing/JPopupMenu/6694823/bug6694823.java ! test/javax/swing/JPopupMenu/Separator/6547087/bug6547087.java ! test/javax/swing/JScrollBar/6924059/bug6924059.java ! test/javax/swing/JScrollPane/6612531/bug6612531.java ! test/javax/swing/JScrollPane/Test6526631.java ! test/javax/swing/JSlider/4252173/bug4252173.java ! test/javax/swing/JSlider/4987336/bug4987336.java ! test/javax/swing/JSlider/6278700/bug6278700.java ! test/javax/swing/JSlider/6524424/bug6524424.java ! test/javax/swing/JSlider/6579827/bug6579827.java ! test/javax/swing/JSlider/6587742/bug6587742.java ! test/javax/swing/JSlider/6742358/bug6742358.java ! test/javax/swing/JSlider/6794831/bug6794831.java ! test/javax/swing/JSlider/6794836/bug6794836.java ! test/javax/swing/JSlider/6848475/bug6848475.java ! test/javax/swing/JSlider/6918861/bug6918861.java ! test/javax/swing/JSlider/6923305/bug6923305.java ! test/javax/swing/JSpinner/6463712/bug6463712.java ! test/javax/swing/JTable/6913768/bug6913768.java ! test/javax/swing/JTextArea/Test6593649.java ! test/javax/swing/MultiUIDefaults/4300666/bug4300666.html ! test/javax/swing/MultiUIDefaults/4300666/bug4300666.java ! test/javax/swing/MultiUIDefaults/4331767/bug4331767.java ! test/javax/swing/MultiUIDefaults/Test6860438.java ! test/javax/swing/RepaintManager/6608456/bug6608456.java ! test/javax/swing/Security/6657138/ComponentTest.java ! test/javax/swing/Security/6657138/bug6657138.java ! test/javax/swing/SwingTest.java ! test/javax/swing/SwingUtilities/6797139/bug6797139.java ! test/javax/swing/SwingWorker/6432565/bug6432565.java ! test/javax/swing/SwingWorker/6480289/bug6480289.java ! test/javax/swing/SwingWorker/6493680/bug6493680.java ! test/javax/swing/SwingWorker/6880336/NestedWorkers.java ! test/javax/swing/ToolTipManager/Test6657026.java ! test/javax/swing/UIDefaults/6795356/SwingLazyValueTest.java ! test/javax/swing/UIDefaults/6795356/TableTest.java ! test/javax/swing/UIDefaults/6795356/bug6795356.java ! test/javax/swing/UIManager/Test6657026.java ! test/javax/swing/border/Test4120351.java ! test/javax/swing/border/Test4124729.java ! test/javax/swing/border/Test4243289.java ! test/javax/swing/border/Test4247606.java ! test/javax/swing/border/Test4252164.java ! test/javax/swing/border/Test4856008.java ! test/javax/swing/border/Test6461042.java ! test/javax/swing/border/Test6625450.java ! test/javax/swing/plaf/basic/BasicSplitPaneUI/Test6657026.java ! test/javax/swing/plaf/metal/MetalBorders/Test6657026.java ! test/javax/swing/plaf/metal/MetalBumps/Test6657026.java ! test/javax/swing/plaf/metal/MetalInternalFrameUI/Test6657026.java ! test/javax/swing/plaf/metal/MetalSliderUI/Test6657026.java ! test/javax/swing/plaf/nimbus/ColorCustomizationTest.java ! test/javax/swing/plaf/nimbus/Test6741426.java ! test/javax/swing/plaf/nimbus/Test6849805.java ! test/javax/swing/plaf/nimbus/Test6919629.java ! test/javax/swing/plaf/synth/Test6660049.java ! test/javax/swing/plaf/synth/Test6933784.java ! test/javax/swing/system/6799345/TestShutdown.java ! test/javax/swing/text/GlyphView/6539700/bug6539700.java ! test/javax/swing/text/LayoutQueue/Test6588003.java ! test/javax/swing/text/html/HRuleView/Test5062055.java ! test/javax/swing/text/html/Test4783068.java ! test/javax/xml/crypto/dsig/GenerationTests.java ! test/javax/xml/crypto/dsig/KeySelectors.java ! test/javax/xml/crypto/dsig/SecurityManager/XMLDSigWithSecMgr.java ! test/javax/xml/crypto/dsig/SignatureValidator.java ! test/javax/xml/crypto/dsig/ValidationTests.java ! test/javax/xml/crypto/dsig/X509KeySelector.java ! test/javax/xml/crypto/dsig/keyinfo/KeyInfo/Marshal.java ! test/jprt.config ! test/lib/security/java.policy/Ext_AllPolicy.java ! test/lib/security/java.policy/Ext_AllPolicy.sh ! test/start-Xvfb.sh ! test/sun/awt/font/ClassLoaderLeakTest.java ! test/sun/awt/image/DrawByteBinary.java ! test/sun/awt/image/ImageRepresentation/LUTCompareTest.java ! test/sun/java2d/DirectX/AccelPaintsTest/AccelPaintsTest.java ! test/sun/java2d/DirectX/AcceleratedScaleTest/AcceleratedScaleTest.java ! test/sun/java2d/DirectX/IAEforEmptyFrameTest/IAEforEmptyFrameTest.java ! test/sun/java2d/DirectX/InfiniteValidationLoopTest/InfiniteValidationLoopTest.java ! test/sun/java2d/DirectX/NonOpaqueDestLCDAATest/NonOpaqueDestLCDAATest.java ! test/sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java ! test/sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java ! test/sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java ! test/sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java ! test/sun/java2d/DirectX/StrikeDisposalCrashTest/StrikeDisposalCrashTest.java ! test/sun/java2d/DirectX/SwingOnScreenScrollingTest/SwingOnScreenScrollingTest.java ! test/sun/java2d/DirectX/TransformedPaintTest/TransformedPaintTest.java ! test/sun/java2d/GdiRendering/InsetClipping.java ! test/sun/java2d/OpenGL/DrawBufImgOp.java ! test/sun/java2d/OpenGL/GradientPaints.java ! test/sun/java2d/SunGraphics2D/DrawImageBilinear.java ! test/sun/java2d/SunGraphics2D/PolyVertTest.java ! test/sun/java2d/SunGraphics2D/SimplePrimQuality.java ! test/sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java ! test/sun/java2d/X11SurfaceData/DrawImageBgTest/DrawImageBgTest.java ! test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.java ! test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh ! test/sun/java2d/cmm/ColorConvertOp/ColConvCCMTest.java ! test/sun/java2d/cmm/ColorConvertOp/ColConvDCMTest.java ! test/sun/java2d/cmm/ColorConvertOp/ColConvTest.java ! test/sun/java2d/cmm/ColorConvertOp/ColCvtAlpha.java ! test/sun/java2d/cmm/ColorConvertOp/ColCvtIntARGB.java ! test/sun/java2d/cmm/ColorConvertOp/ColorConvertTest.java ! test/sun/java2d/cmm/ColorConvertOp/ColorSpaceCvtCrashTest/ColorSpaceCvtCrashTest.java ! test/sun/java2d/cmm/ColorConvertOp/ConstructorsNullTest/ConstructorsNullTest.java ! test/sun/java2d/cmm/ColorConvertOp/ImageComparator.java ! test/sun/java2d/cmm/ColorConvertOp/ImageFactory.java ! test/sun/java2d/cmm/ColorConvertOp/MTColConvTest.java ! test/sun/java2d/cmm/ColorConvertOp/MTSafetyTest.java ! test/sun/java2d/cmm/ColorConvertOp/RGBColorConvertTest.java ! test/sun/java2d/cmm/ProfileOp/MTReadProfileTest.java ! test/sun/java2d/cmm/ProfileOp/ReadProfileTest.java ! test/sun/java2d/cmm/ProfileOp/ReadWriteProfileTest.java ! test/sun/java2d/pipe/MutableColorTest/MutableColorTest.java ! test/sun/java2d/pipe/hw/RSLAPITest/RSLAPITest.java ! test/sun/java2d/pipe/hw/RSLContextInvalidationTest/RSLContextInvalidationTest.java ! test/sun/java2d/pipe/hw/VSyncedBufferStrategyTest/VSyncedBufferStrategyTest.java ! test/sun/java2d/pisces/Renderer/TestNPE.java ! test/sun/jvmstat/monitor/HostIdentifier/HostIdentifierCreate.java ! test/sun/jvmstat/monitor/MonitoredVm/CR6672135.java ! test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.java ! test/sun/jvmstat/monitor/MonitoredVm/MonitorVmStartTerminate.sh ! test/sun/jvmstat/monitor/VmIdentifier/VmIdentifierCreateResolve.java ! test/sun/jvmstat/perfdata/PrologSanity/PrologSizeSanityCheck.java ! test/sun/jvmstat/testlibrary/JavaProcess.java ! test/sun/jvmstat/testlibrary/Sleeper.java ! test/sun/jvmstat/testlibrary/utils.sh ! test/sun/management/AgentCheckTest.java ! test/sun/management/HotspotClassLoadingMBean/ClassToLoad0.java ! test/sun/management/HotspotClassLoadingMBean/GetClassInitializationTime.java ! test/sun/management/HotspotClassLoadingMBean/GetClassLoadingTime.java ! test/sun/management/HotspotClassLoadingMBean/GetInitializedClassCount.java ! test/sun/management/HotspotClassLoadingMBean/GetLoadedClassSize.java ! test/sun/management/HotspotClassLoadingMBean/GetMethodDataSize.java ! test/sun/management/HotspotClassLoadingMBean/GetUnloadedClassSize.java ! test/sun/management/HotspotRuntimeMBean/GetSafepointCount.java ! test/sun/management/HotspotRuntimeMBean/GetSafepointSyncTime.java ! test/sun/management/HotspotRuntimeMBean/GetTotalSafepointTime.java ! test/sun/management/HotspotThreadMBean/GetInternalThreads.java ! test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java ! test/sun/management/jmxremote/RunTest.sh ! test/sun/management/jmxremote/bootstrap/CustomLauncherTest.sh ! test/sun/management/jmxremote/bootstrap/GeneratePropertyPassword.sh ! test/sun/management/jmxremote/bootstrap/JvmstatCountersTest.java ! test/sun/management/jmxremote/bootstrap/LocalManagementTest.sh ! test/sun/management/jmxremote/bootstrap/Makefile ! test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.sh ! test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.java ! test/sun/management/jmxremote/bootstrap/RmiBootstrapTest.sh ! test/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java ! test/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.sh ! test/sun/management/jmxremote/bootstrap/RmiSslBootstrapTest.sh ! test/sun/management/jmxremote/bootstrap/RmiSslNoKeyStoreTest.java ! test/sun/management/jmxremote/bootstrap/RmiSslNoKeyStoreTest.sh ! test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.sh ! test/sun/management/jmxremote/bootstrap/TestApplication.java ! test/sun/management/jmxremote/bootstrap/TestLogger.java ! test/sun/management/jmxremote/bootstrap/TestManager.java ! test/sun/management/jmxremote/bootstrap/Utils.java ! test/sun/management/jmxremote/bootstrap/launcher.c ! test/sun/management/windows/revokeall.c ! test/sun/misc/BootClassLoaderHook/TestHook.java ! test/sun/misc/ClassLoaderUtil/Test.java ! test/sun/misc/Cleaner/ExitOnThrow.java ! test/sun/misc/Cleaner/exitOnThrow.sh ! test/sun/misc/CopyMemory.java ! test/sun/misc/Encode/DecodeBuffer.java ! test/sun/misc/Encode/Encode.java ! test/sun/misc/Encode/GetBytes.java ! test/sun/misc/EscapePath.java ! test/sun/misc/Safe.java ! test/sun/misc/URLClassPath/ClassnameCharTest.java ! test/sun/misc/URLClassPath/ClassnameCharTest.sh ! test/sun/misc/URLClassPath/FileLoaderTest.java ! test/sun/net/InetAddress/nameservice/B6442088.java ! test/sun/net/InetAddress/nameservice/CacheTest.java ! test/sun/net/InetAddress/nameservice/SimpleNameService.java ! test/sun/net/InetAddress/nameservice/SimpleNameServiceDescriptor.java ! test/sun/net/InetAddress/nameservice/dns/CanonicalName.java ! test/sun/net/InetAddress/nameservice/dns/Lookup.java ! test/sun/net/InetAddress/nameservice/dns/cname.sh ! test/sun/net/TelnetTest.java ! test/sun/net/ftp/B6427768.java ! test/sun/net/ftp/FtpGetContent.java ! test/sun/net/ftp/FtpURL.java ! test/sun/net/idn/NFS4StringPrep.java ! test/sun/net/idn/PunycodeTest.java ! test/sun/net/idn/TestData.java ! test/sun/net/idn/TestStringPrep.java ! test/sun/net/sdp/ProbeIB.java ! test/sun/net/sdp/Sanity.java ! test/sun/net/sdp/sanity.sh ! test/sun/net/util/IPAddressUtilTest.java ! test/sun/net/www/AuthHeaderTest.java ! test/sun/net/www/EmbeddedEquals.java ! test/sun/net/www/HeaderTests.java ! test/sun/net/www/MarkResetTest.java ! test/sun/net/www/MarkResetTest.sh ! test/sun/net/www/ParseUtil_4922813.java ! test/sun/net/www/ParseUtil_6274990.java ! test/sun/net/www/ParseUtil_6306697.java ! test/sun/net/www/ParseUtil_6380332.java ! test/sun/net/www/ParseUtil_6478588.java ! test/sun/net/www/ftptest/FtpAuthHandler.java ! test/sun/net/www/ftptest/FtpCommandHandler.java ! test/sun/net/www/ftptest/FtpFileSystemHandler.java ! test/sun/net/www/ftptest/FtpServer.java ! test/sun/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh ! test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingTest.java ! test/sun/net/www/http/ChunkedInputStream/ChunkedEncodingWithProgressMonitorTest.java ! test/sun/net/www/http/ChunkedInputStream/TestAvailable.java ! test/sun/net/www/http/ChunkedOutputStream/Test.java ! test/sun/net/www/http/ChunkedOutputStream/checkError.java ! test/sun/net/www/http/HttpClient/B6726695.java ! test/sun/net/www/http/HttpClient/GetProxyPort.java ! test/sun/net/www/http/HttpClient/ImplicitFileName.java ! test/sun/net/www/http/HttpClient/IsKeepingAlive.java ! test/sun/net/www/http/HttpClient/MultiThreadTest.java ! test/sun/net/www/http/HttpClient/OpenServer.java ! test/sun/net/www/http/HttpClient/ProxyFromCache.java ! test/sun/net/www/http/HttpClient/ProxyTest.java ! test/sun/net/www/http/HttpClient/RequestURI.java ! test/sun/net/www/http/HttpClient/RetryPost.java ! test/sun/net/www/http/HttpClient/RetryPost.sh ! test/sun/net/www/http/KeepAliveCache/B5045306.java ! test/sun/net/www/http/KeepAliveCache/KeepAliveTimerThread.java ! test/sun/net/www/http/KeepAliveStream/KeepAliveStreamClose.java ! test/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java ! test/sun/net/www/httptest/AbstractCallback.java ! test/sun/net/www/httptest/ClosedChannelList.java ! test/sun/net/www/httptest/HttpCallback.java ! test/sun/net/www/httptest/HttpServer.java ! test/sun/net/www/httptest/HttpTransaction.java ! test/sun/net/www/protocol/file/EncodedMultiByteChar.java ! test/sun/net/www/protocol/file/Equals.java ! test/sun/net/www/protocol/file/FileMap.java ! test/sun/net/www/protocol/file/FileURLTest.java ! test/sun/net/www/protocol/file/GetContentLength.java ! test/sun/net/www/protocol/file/GetContentType.java ! test/sun/net/www/protocol/file/GetLastModified.java ! test/sun/net/www/protocol/file/NonUTF8EncodedChar.java ! test/sun/net/www/protocol/ftp/HandlerEquals.java ! test/sun/net/www/protocol/ftp/UserAndPasswordTest.java ! test/sun/net/www/protocol/http/AsyncDisconnect.java ! test/sun/net/www/protocol/http/B5017051.java ! test/sun/net/www/protocol/http/B6296310.java ! test/sun/net/www/protocol/http/B6299712.java ! test/sun/net/www/protocol/http/B6369510.java ! test/sun/net/www/protocol/http/B6518816.java ! test/sun/net/www/protocol/http/B6641309.java ! test/sun/net/www/protocol/http/B6660405.java ! test/sun/net/www/protocol/http/B6890349.java ! test/sun/net/www/protocol/http/BasicLongCredentials.java ! test/sun/net/www/protocol/http/ChunkedErrorStream.java ! test/sun/net/www/protocol/http/CloseOptionHeader.java ! test/sun/net/www/protocol/http/DigestTest.java ! test/sun/net/www/protocol/http/Finalizer.java ! test/sun/net/www/protocol/http/GetOutputStream.java ! test/sun/net/www/protocol/http/HttpInputStream.java ! test/sun/net/www/protocol/http/Modified.java ! test/sun/net/www/protocol/http/NTLMTest.java ! test/sun/net/www/protocol/http/ProtocolRedirect.java ! test/sun/net/www/protocol/http/ProxyTunnelServer.java ! test/sun/net/www/protocol/http/RelativeRedirect.java ! test/sun/net/www/protocol/http/ResponseCacheStream.java ! test/sun/net/www/protocol/http/RetryUponTimeout.java ! test/sun/net/www/protocol/http/SetChunkedStreamingMode.java ! test/sun/net/www/protocol/http/SetIfModifiedSince.java ! test/sun/net/www/protocol/http/StackTraceTest.java ! test/sun/net/www/protocol/http/StreamingOutputStream.java ! test/sun/net/www/protocol/http/TunnelThroughProxy.java ! test/sun/net/www/protocol/http/UserAgent.java ! test/sun/net/www/protocol/http/UserAuth.java ! test/sun/net/www/protocol/http/UserCookie.java ! test/sun/net/www/protocol/http/WebGet.java ! test/sun/net/www/protocol/jar/B4756443.java ! test/sun/net/www/protocol/jar/B4957695.java ! test/sun/net/www/protocol/jar/B5105410.java ! test/sun/net/www/protocol/jar/B5105410.sh ! test/sun/net/www/protocol/jar/B6449504.java ! test/sun/net/www/protocol/jar/GetContentType.java ! test/sun/net/www/protocol/jar/copyin.sh ! test/sun/net/www/protocol/jar/jarbug/run.sh ! test/sun/net/www/protocol/jar/jarbug/src/jar1/GetResource.java ! test/sun/net/www/protocol/jar/jarbug/src/jar1/LoadResourceBundle.java ! test/sun/net/www/protocol/jar/jarbug/src/test/JarTest.java ! test/sun/net/www/protocol/jar/jarbug/src/test/RunAllTests.java ! test/sun/net/www/protocol/jar/jarbug/src/test/TestBug4361044.java ! test/sun/net/www/protocol/jar/jarbug/src/test/TestBug4523159.java ! test/sun/net/www/protocol/mailto/HandlerParse.java ! test/sun/nio/ch/Basic.java ! test/sun/nio/ch/SelProvider.java ! test/sun/nio/ch/TempBuffer.java ! test/sun/nio/cs/BufferUnderflowEUCTWTest.java ! test/sun/nio/cs/CheckCaseInsensitiveEncAliases.java ! test/sun/nio/cs/CheckHistoricalNames.java ! test/sun/nio/cs/CheckICNE.java ! test/sun/nio/cs/ConvertSingle.java ! test/sun/nio/cs/Decode.java ! test/sun/nio/cs/DecoderOverflow.java ! test/sun/nio/cs/EUCJPUnderflowDecodeTest.java ! test/sun/nio/cs/EUC_TW_OLD.java ! test/sun/nio/cs/EucJpLinux0212.java ! test/sun/nio/cs/EucJpLinuxDecoderRecoveryTest.java ! test/sun/nio/cs/EuroConverter.java ! test/sun/nio/cs/FindASCIICodingBugs.java ! test/sun/nio/cs/FindASCIIRangeCodingBugs.java ! test/sun/nio/cs/FindASCIIReplBugs.java ! test/sun/nio/cs/FindCanEncodeBugs.java ! test/sun/nio/cs/FindDecoderBugs.java ! test/sun/nio/cs/FindEncoderBugs.java ! test/sun/nio/cs/FindOneCharEncoderBugs.java ! test/sun/nio/cs/HWKatakanaMS932EncodeTest.java ! test/sun/nio/cs/ISCIITest.java ! test/sun/nio/cs/ISO8859x.java ! test/sun/nio/cs/JISAutoDetectTest.java ! test/sun/nio/cs/LatinCharReplacementTWTest.java ! test/sun/nio/cs/LeftOverSurrogate.java ! test/sun/nio/cs/MalformedSurrogates.java ! test/sun/nio/cs/NIOJISAutoDetectTest.java ! test/sun/nio/cs/OLD/DBCSDecoderMapping.java ! test/sun/nio/cs/OLD/DBCS_IBM_ASCII_Decoder.java ! test/sun/nio/cs/OLD/DBCS_IBM_ASCII_Encoder.java ! test/sun/nio/cs/OLD/DBCS_IBM_EBCDIC_Decoder.java ! test/sun/nio/cs/OLD/DBCS_IBM_EBCDIC_Encoder.java ! test/sun/nio/cs/OLD/DBCS_ONLY_IBM_EBCDIC_Decoder.java ! test/sun/nio/cs/OLD/DoubleByteDecoder.java ! test/sun/nio/cs/OLD/DoubleByteEncoder.java ! test/sun/nio/cs/OLD/EUC_CN_OLD.java ! test/sun/nio/cs/OLD/EUC_KR_OLD.java ! test/sun/nio/cs/OLD/GBK_OLD.java ! test/sun/nio/cs/OLD/IBM1381_OLD.java ! test/sun/nio/cs/OLD/IBM1383_OLD.java ! test/sun/nio/cs/OLD/IBM930_OLD.java ! test/sun/nio/cs/OLD/IBM933_OLD.java ! test/sun/nio/cs/OLD/IBM935_OLD.java ! test/sun/nio/cs/OLD/IBM937_OLD.java ! test/sun/nio/cs/OLD/IBM939_OLD.java ! test/sun/nio/cs/OLD/IBM942C_OLD.java ! test/sun/nio/cs/OLD/IBM942_OLD.java ! test/sun/nio/cs/OLD/IBM943C_OLD.java ! test/sun/nio/cs/OLD/IBM943_OLD.java ! test/sun/nio/cs/OLD/IBM948_OLD.java ! test/sun/nio/cs/OLD/IBM949C_OLD.java ! test/sun/nio/cs/OLD/IBM949_OLD.java ! test/sun/nio/cs/OLD/IBM950_OLD.java ! test/sun/nio/cs/OLD/IBM970_OLD.java ! test/sun/nio/cs/OLD/Johab_OLD.java ! test/sun/nio/cs/OLD/MS932DB.java ! test/sun/nio/cs/OLD/MS932_OLD.java ! test/sun/nio/cs/OLD/MS936_OLD.java ! test/sun/nio/cs/OLD/MS949_OLD.java ! test/sun/nio/cs/OLD/MS950_OLD.java ! test/sun/nio/cs/OLD/SimpleEUCDecoder.java ! test/sun/nio/cs/OLD/TestIBMDB.java ! test/sun/nio/cs/OLD/TestX11CS.java ! test/sun/nio/cs/OLD/X11GB2312_OLD.java ! test/sun/nio/cs/OLD/X11GBK_OLD.java ! test/sun/nio/cs/OLD/X11KSC5601_OLD.java ! test/sun/nio/cs/ReadZero.java ! test/sun/nio/cs/SJISCanEncode.java ! test/sun/nio/cs/StrCodingBenchmark.java ! test/sun/nio/cs/StreamEncoderClose.java ! test/sun/nio/cs/SurrogateGB18030Test.java ! test/sun/nio/cs/SurrogateTestEUCTW.java ! test/sun/nio/cs/SurrogateTestHKSCS.java ! test/sun/nio/cs/Test4200310.sh ! test/sun/nio/cs/Test4206507.java ! test/sun/nio/cs/Test6254467.java ! test/sun/nio/cs/Test6275027.java ! test/sun/nio/cs/Test6392804.java ! test/sun/nio/cs/TestCompoundTest.java ! test/sun/nio/cs/TestConverterDroppedCharacters.java ! test/sun/nio/cs/TestCp834_SBCS.java ! test/sun/nio/cs/TestCp93xSISO.java ! test/sun/nio/cs/TestEUC_TW.java ! test/sun/nio/cs/TestIBMBugs.java ! test/sun/nio/cs/TestISCII91.java ! test/sun/nio/cs/TestISO2022CNDecoder.java ! test/sun/nio/cs/TestISO2022JP.java ! test/sun/nio/cs/TestISO2022JPEncoder.java ! test/sun/nio/cs/TestISO2022JPSubBytes.java ! test/sun/nio/cs/TestIllegalISO2022Esc.java ! test/sun/nio/cs/TestIllegalSJIS.java ! test/sun/nio/cs/TestJIS0208Decoder.java ! test/sun/nio/cs/TestJIS0212Decoder.java ! test/sun/nio/cs/TestMS5022X.java ! test/sun/nio/cs/TestMiscEUC_JP.java ! test/sun/nio/cs/TestSJIS0213.java ! test/sun/nio/cs/TestStringCoding.java ! test/sun/nio/cs/TestTrailingEscapesISO2022JP.java ! test/sun/nio/cs/TestUTF8.java ! test/sun/nio/cs/TestUTF8BOM.java ! test/sun/nio/cs/TestUTF_16.java ! test/sun/nio/cs/TestUTF_32.java ! test/sun/nio/cs/TestUni2HKSCS.java ! test/sun/nio/cs/TestX11CNS.java ! test/sun/nio/cs/TestX11JIS0201.java ! test/sun/nio/cs/UkrainianIsNotRussian.java ! test/sun/nio/cs/X11CNS11643.java ! test/sun/nio/cs/X11CNS11643P1.java ! test/sun/nio/cs/X11CNS11643P2.java ! test/sun/nio/cs/X11CNS11643P3.java ! test/sun/nio/cs/ZeroedByteArrayEUCTWTest.java ! test/sun/pisces/DashStrokeTest.java ! test/sun/pisces/JoinMiterTest.java ! test/sun/pisces/ScaleTest.java ! test/sun/pisces/StrokeShapeTest.java ! test/sun/pisces/ThinLineTest.java ! test/sun/rmi/log/ReliableLog/LogAlignmentTest.java ! test/sun/rmi/log/ReliableLog/Recovery.java ! test/sun/rmi/log/ReliableLog/SnapshotSize.java ! test/sun/rmi/rmic/RMIGenerator/RmicDefault.java ! test/sun/rmi/rmic/RMIGenerator/packagedir/RmicMeImpl.java ! test/sun/rmi/rmic/RMIGenerator/packagedir/RmicMeInterface.java ! test/sun/rmi/rmic/classFileVersion/G1.java ! test/sun/rmi/rmic/classFileVersion/G1Impl.java ! test/sun/rmi/rmic/classFileVersion/run.sh ! test/sun/rmi/rmic/covariantReturns/G2.java ! test/sun/rmi/rmic/covariantReturns/G2Impl.java ! test/sun/rmi/rmic/covariantReturns/G5.java ! test/sun/rmi/rmic/covariantReturns/G5Impl.java ! test/sun/rmi/rmic/covariantReturns/run.sh ! test/sun/rmi/rmic/defaultStubVersion/G1.java ! test/sun/rmi/rmic/defaultStubVersion/G1Impl.java ! test/sun/rmi/rmic/defaultStubVersion/run.sh ! test/sun/rmi/rmic/extraCompilation/run.sh ! test/sun/rmi/rmic/manifestClassPath/Util.sh ! test/sun/rmi/rmic/manifestClassPath/run.sh ! test/sun/rmi/rmic/minimizeWrapperInstances/P.java ! test/sun/rmi/rmic/minimizeWrapperInstances/PImpl.java ! test/sun/rmi/rmic/minimizeWrapperInstances/Test.java ! test/sun/rmi/rmic/minimizeWrapperInstances/run.sh ! test/sun/rmi/rmic/newrmic/equivalence/Agent.java ! test/sun/rmi/rmic/newrmic/equivalence/AgentServer.java ! test/sun/rmi/rmic/newrmic/equivalence/AgentServerImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/Apple.java ! test/sun/rmi/rmic/newrmic/equivalence/AppleEvent.java ! test/sun/rmi/rmic/newrmic/equivalence/AppleImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/AppleUser.java ! test/sun/rmi/rmic/newrmic/equivalence/AppleUserImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/Callback.java ! test/sun/rmi/rmic/newrmic/equivalence/ComputeServer.java ! test/sun/rmi/rmic/newrmic/equivalence/ComputeServerImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/CountInterface.java ! test/sun/rmi/rmic/newrmic/equivalence/CountServerImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/DayTimeInterface.java ! test/sun/rmi/rmic/newrmic/equivalence/DayTimeServerImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/G1.java ! test/sun/rmi/rmic/newrmic/equivalence/G1Impl.java ! test/sun/rmi/rmic/newrmic/equivalence/MyObject.java ! test/sun/rmi/rmic/newrmic/equivalence/MyObjectImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/NotActivatableInterface.java ! test/sun/rmi/rmic/newrmic/equivalence/NotActivatableServerImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/Orange.java ! test/sun/rmi/rmic/newrmic/equivalence/OrangeEcho.java ! test/sun/rmi/rmic/newrmic/equivalence/OrangeEchoImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/OrangeImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/Server.java ! test/sun/rmi/rmic/newrmic/equivalence/ServerImpl.java ! test/sun/rmi/rmic/newrmic/equivalence/Task.java ! test/sun/rmi/rmic/newrmic/equivalence/TestInterface.java ! test/sun/rmi/rmic/newrmic/equivalence/batch.sh ! test/sun/rmi/rmic/newrmic/equivalence/run.sh ! test/sun/rmi/rmic/oldjavacRemoved/Foo.java ! test/sun/rmi/rmic/oldjavacRemoved/sunToolsJavacMain.sh ! test/sun/rmi/runtime/Log/4504153/Test4504153.java ! test/sun/rmi/runtime/Log/6409194/NoConsoleOutput.java ! test/sun/rmi/runtime/Log/checkLogging/CheckLogStreams.java ! test/sun/rmi/runtime/Log/checkLogging/CheckLogging.java ! test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub.java ! test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/MarshalForeignStub_Stub.java ! test/sun/rmi/server/MarshalOutputStream/marshalForeignStub/Receiver.java ! test/sun/rmi/transport/proxy/EagerHttpFallback.java ! test/sun/rmi/transport/tcp/DeadCachedConnection.java ! test/sun/rmi/transport/tcp/blockAccept/BlockAcceptTest.java ! test/sun/rmi/transport/tcp/blockAccept/TestIface.java ! test/sun/rmi/transport/tcp/blockAccept/TestImpl.java ! test/sun/rmi/transport/tcp/blockAccept/TestImpl_Stub.java ! test/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing.java ! test/sun/rmi/transport/tcp/disableMultiplexing/DisableMultiplexing_Stub.java ! test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java ! test/sun/security/action/Generify.java ! test/sun/security/action/GetLongAction/ReturnNullIfNoDefault.java ! test/sun/security/ec/TestEC.java ! test/sun/security/jgss/CtorTests2.java ! test/sun/security/jgss/DefaultGssConfig.java ! test/sun/security/jgss/GssNPE.java ! test/sun/security/jgss/spnego/NoSpnegoAsDefMech.java ! test/sun/security/krb5/ConfPlusProp.java ! test/sun/security/krb5/ConfigWithQuotations.java ! test/sun/security/krb5/DnsFallback.java ! test/sun/security/krb5/IPv6.java ! test/sun/security/krb5/Krb5NameEquals.java ! test/sun/security/krb5/NegativeNonce.java ! test/sun/security/krb5/OptionPADataInKDCReq.java ! test/sun/security/krb5/PAData.java ! test/sun/security/krb5/ParseCAPaths.java ! test/sun/security/krb5/ParseConfig.java ! test/sun/security/krb5/RFC396xTest.java ! test/sun/security/krb5/ServiceNameClone.java ! test/sun/security/krb5/TimeInCCache.java ! test/sun/security/krb5/auto/Action.java ! test/sun/security/krb5/auto/BadKdc.java ! test/sun/security/krb5/auto/BadKdc1.java ! test/sun/security/krb5/auto/BadKdc2.java ! test/sun/security/krb5/auto/BadKdc3.java ! test/sun/security/krb5/auto/BadKdc4.java ! test/sun/security/krb5/auto/BasicKrb5Test.java ! test/sun/security/krb5/auto/CleanState.java ! test/sun/security/krb5/auto/Context.java ! test/sun/security/krb5/auto/CrossRealm.java ! test/sun/security/krb5/auto/HttpNegotiateServer.java ! test/sun/security/krb5/auto/IgnoreChannelBinding.java ! test/sun/security/krb5/auto/KDC.java ! test/sun/security/krb5/auto/KerberosHashEqualsTest.java ! test/sun/security/krb5/auto/LifeTimeInSeconds.java ! test/sun/security/krb5/auto/LoginModuleOptions.java ! test/sun/security/krb5/auto/MaxRetries.java ! test/sun/security/krb5/auto/MoreKvno.java ! test/sun/security/krb5/auto/NonMutualSpnego.java ! test/sun/security/krb5/auto/OkAsDelegate.java ! test/sun/security/krb5/auto/OkAsDelegateXRealm.java ! test/sun/security/krb5/auto/OneKDC.java ! test/sun/security/krb5/auto/SSL.java ! test/sun/security/krb5/auto/SpnegoReqFlags.java ! test/sun/security/krb5/auto/Test5653.java ! test/sun/security/krb5/auto/basic.sh ! test/sun/security/krb5/auto/ok-as-delegate-xrealm.sh ! test/sun/security/krb5/auto/ok-as-delegate.sh ! test/sun/security/krb5/canonicalize/Test.java ! test/sun/security/krb5/etype/WeakCrypto.java ! test/sun/security/krb5/ktab/HighestKvno.java ! test/sun/security/krb5/ktab/KeyString.java ! test/sun/security/krb5/ktab/KeyTabIndex.java ! test/sun/security/krb5/runNameEquals.sh ! test/sun/security/mscapi/AccessKeyStore.java ! test/sun/security/mscapi/AccessKeyStore.sh ! test/sun/security/mscapi/IsSunMSCAPIAvailable.java ! test/sun/security/mscapi/IsSunMSCAPIAvailable.sh ! test/sun/security/mscapi/KeyStoreCompatibilityMode.java ! test/sun/security/mscapi/KeyStoreCompatibilityMode.sh ! test/sun/security/mscapi/KeytoolChangeAlias.sh ! test/sun/security/mscapi/PrngSlow.java ! test/sun/security/mscapi/RSAEncryptDecrypt.java ! test/sun/security/mscapi/RSAEncryptDecrypt.sh ! test/sun/security/pkcs/EncryptedPrivateKeyInfo/EncryptedPKInfoEqualsHashCode.java ! test/sun/security/pkcs11/Cipher/ReinitCipher.java ! test/sun/security/pkcs11/Cipher/TestRSACipher.java ! test/sun/security/pkcs11/Cipher/TestRSACipherWrap.java ! test/sun/security/pkcs11/Cipher/TestSymmCiphers.java ! test/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java ! test/sun/security/pkcs11/KeyAgreement/TestDH.java ! test/sun/security/pkcs11/KeyAgreement/TestShort.java ! test/sun/security/pkcs11/KeyGenerator/DESParity.java ! test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java ! test/sun/security/pkcs11/KeyStore/Basic.java ! test/sun/security/pkcs11/KeyStore/Basic.sh ! test/sun/security/pkcs11/KeyStore/ClientAuth.java ! test/sun/security/pkcs11/KeyStore/ClientAuth.sh ! test/sun/security/pkcs11/KeyStore/ProviderLoader.java ! test/sun/security/pkcs11/KeyStore/SecretKeysBasic.java ! test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh ! test/sun/security/pkcs11/KeyStore/Solaris.sh ! test/sun/security/pkcs11/Mac/ReinitMac.java ! test/sun/security/pkcs11/MessageDigest/ByteBuffers.java ! test/sun/security/pkcs11/MessageDigest/DigestKAT.java ! test/sun/security/pkcs11/MessageDigest/ReinitDigest.java ! test/sun/security/pkcs11/PKCS11Test.java ! test/sun/security/pkcs11/Provider/ConfigQuotedString.java ! test/sun/security/pkcs11/Provider/ConfigQuotedString.sh ! test/sun/security/pkcs11/Provider/Login.java ! test/sun/security/pkcs11/Provider/Login.sh ! test/sun/security/pkcs11/SampleTest.java ! test/sun/security/pkcs11/Secmod/AddPrivateKey.java ! test/sun/security/pkcs11/Secmod/AddTrustedCert.java ! test/sun/security/pkcs11/Secmod/Crypto.java ! test/sun/security/pkcs11/Secmod/GetPrivateKey.java ! test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java ! test/sun/security/pkcs11/Secmod/TrustAnchors.java ! test/sun/security/pkcs11/SecmodTest.java ! test/sun/security/pkcs11/SecureRandom/Basic.java ! test/sun/security/pkcs11/SecureRandom/TestDeserialization.java ! test/sun/security/pkcs11/Serialize/SerializeProvider.java ! test/sun/security/pkcs11/Signature/ByteBuffers.java ! test/sun/security/pkcs11/Signature/ReinitSignature.java ! test/sun/security/pkcs11/Signature/TestDSA.java ! test/sun/security/pkcs11/Signature/TestRSAKeyLength.java ! test/sun/security/pkcs11/ec/ReadCertificates.java ! test/sun/security/pkcs11/ec/ReadPKCS12.java ! test/sun/security/pkcs11/ec/TestCurves.java ! test/sun/security/pkcs11/ec/TestECDH.java ! test/sun/security/pkcs11/ec/TestECDSA.java ! test/sun/security/pkcs11/ec/TestECGenSpec.java ! test/sun/security/pkcs11/ec/TestKeyFactory.java ! test/sun/security/pkcs11/fips/CipherTest.java ! test/sun/security/pkcs11/fips/ClientJSSEServerJSSE.java ! test/sun/security/pkcs11/fips/ImportKeyStore.java ! test/sun/security/pkcs11/fips/JSSEClient.java ! test/sun/security/pkcs11/fips/JSSEServer.java ! test/sun/security/pkcs11/fips/TrustManagerTest.java ! test/sun/security/pkcs11/rsa/GenKeyStore.java ! test/sun/security/pkcs11/rsa/KeyWrap.java ! test/sun/security/pkcs11/rsa/TestCACerts.java ! test/sun/security/pkcs11/rsa/TestKeyFactory.java ! test/sun/security/pkcs11/rsa/TestKeyPairGenerator.java ! test/sun/security/pkcs11/rsa/TestSignatures.java ! test/sun/security/pkcs11/sslecc/CipherTest.java ! test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java ! test/sun/security/pkcs11/sslecc/JSSEClient.java ! test/sun/security/pkcs11/sslecc/JSSEServer.java ! test/sun/security/pkcs11/tls/TestKeyMaterial.java ! test/sun/security/pkcs11/tls/TestMasterSecret.java ! test/sun/security/pkcs11/tls/TestPRF.java ! test/sun/security/pkcs11/tls/TestPremaster.java ! test/sun/security/provider/DSA/TestDSA.java ! test/sun/security/provider/DSA/TestKeyPairGenerator.java ! test/sun/security/provider/KeyStore/CaseSensitiveAliases.java ! test/sun/security/provider/KeyStore/TestJKSWithSecretKey.java ! test/sun/security/provider/KeyStore/WrongPassword.java ! test/sun/security/provider/MessageDigest/DigestKAT.java ! test/sun/security/provider/MessageDigest/Offsets.java ! test/sun/security/provider/MessageDigest/TestSHAClone.java ! test/sun/security/provider/PolicyFile/Alias.java ! test/sun/security/provider/PolicyFile/AliasExpansion.java ! test/sun/security/provider/PolicyFile/CanonPath.java ! test/sun/security/provider/PolicyFile/CombinedPerms.java ! test/sun/security/provider/PolicyFile/Comparator.java ! test/sun/security/provider/PolicyFile/EmailAddress.java ! test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.java ! test/sun/security/provider/PolicyFile/GrantAllPermToExtWhenNoPolicy.sh ! test/sun/security/provider/PolicyFile/SelfExpansion.java ! test/sun/security/provider/PolicyFile/SelfWildcard.java ! test/sun/security/provider/PolicyFile/SomeExtensionClass.java ! test/sun/security/provider/PolicyFile/TokenStore.java ! test/sun/security/provider/PolicyFile/TrustedCert.java ! test/sun/security/provider/PolicyFile/Utf8.java ! test/sun/security/provider/PolicyFile/getinstance/GetInstance.java ! test/sun/security/provider/PolicyFile/getinstance/NoArgPermission.java ! test/sun/security/provider/PolicyFile/getinstance/OneArgPermission.java ! test/sun/security/provider/PolicyFile/getinstance/TwoArgNullActionsPermission.java ! test/sun/security/provider/PolicyFile/getinstance/TwoArgPermission.java ! test/sun/security/provider/PolicyFile/getinstance/getinstance.sh ! test/sun/security/provider/PolicyFile/nullDomain.java ! test/sun/security/provider/PolicyParser/AvoidPropertyExpansionExceptions.java ! test/sun/security/provider/PolicyParser/BogusGrants.java ! test/sun/security/provider/PolicyParser/EncodeURL.java ! test/sun/security/provider/PolicyParser/ExpansionErrorMisleading.java ! test/sun/security/provider/PolicyParser/ExtDirs.java ! test/sun/security/provider/PolicyParser/ExtDirsA.java ! test/sun/security/provider/PolicyParser/ExtDirsB.java ! test/sun/security/provider/PolicyParser/ExtDirsChange.java ! test/sun/security/provider/PolicyParser/ExtDirsDefaultPolicy.java ! test/sun/security/provider/PolicyParser/PrincipalExpansionError.java ! test/sun/security/provider/PolicyParser/PrincipalExpansionError.sh ! test/sun/security/provider/PolicyParser/PrincipalExpansionErrorAction.java ! test/sun/security/provider/PolicyParser/TokenStore.java ! test/sun/security/provider/SecureRandom/SelfSeed.java ! test/sun/security/provider/SeedGenerator/Awt_Hang_Test.java ! test/sun/security/provider/SeedGenerator/Priority_Inversion.java ! test/sun/security/provider/certpath/CertId/CheckCertId.java ! test/sun/security/provider/certpath/DisabledAlgorithms/CPBuilder.java ! test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorEndEntity.java ! test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorIntermediate.java ! test/sun/security/provider/certpath/DisabledAlgorithms/CPValidatorTrustAnchor.java ! test/sun/security/provider/certpath/DisabledAlgorithms/README ! test/sun/security/provider/certpath/DisabledAlgorithms/generate.sh ! test/sun/security/provider/certpath/DisabledAlgorithms/openssl.cnf ! test/sun/security/provider/certpath/ReverseBuilder/BuildPath.java ! test/sun/security/provider/certpath/SunCertPathBuilderExceptionTest.java ! test/sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java ! test/sun/security/rsa/GenKeyStore.java ! test/sun/security/rsa/TestCACerts.java ! test/sun/security/rsa/TestKeyFactory.java ! test/sun/security/rsa/TestKeyPairGenerator.java ! test/sun/security/rsa/TestKeyPairGeneratorLength.java ! test/sun/security/rsa/TestSignatures.java ! test/sun/security/smartcardio/TestAll.java ! test/sun/security/smartcardio/TestChannel.java ! test/sun/security/smartcardio/TestConnect.java ! test/sun/security/smartcardio/TestConnectAgain.java ! test/sun/security/smartcardio/TestControl.java ! test/sun/security/smartcardio/TestDefault.java ! test/sun/security/smartcardio/TestExclusive.java ! test/sun/security/smartcardio/TestMultiplePresent.java ! test/sun/security/smartcardio/TestPresent.java ! test/sun/security/smartcardio/TestTransmit.java ! test/sun/security/smartcardio/Utils.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComKeyManagerFactoryImpl.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComSSLContextImpl.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ComTrustManagerFactoryImpl.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxKeyManagerFactoryImpl.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxSSLContextImpl.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/JavaxTrustManagerFactoryImpl.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/ProviderTest.java ! test/sun/security/ssl/com/sun/net/ssl/SSLSecurity/TruncateArray.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadBlocksClose.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadHandshake.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/ReadZeroBytes.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppInputStream/RemoveMarkReset.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/AppOutputStream/NoExceptionOnClose.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/CipherSuite/SSL_NULL.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/CipherSuiteOrder.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ClientThread.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/Handler.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ServerHandler.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/ServerThread.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/TestThread.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/Traffic.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/GenSSLConfigs/main.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/HandshakeOutStream/NullCerts.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ClientHelloRead.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/InterruptedIO.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/OriginServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/ProxyTunnelServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/InputRecord/SSLSocketTimeoutNulls.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ProtocolVersion/HttpsProtocols.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadKSProvider.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/BadTSProvider.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/GoodProvider.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseEngineException.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseInboundException.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/CloseStart.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/DelegatedTaskWrongException.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/EmptyExtensionData.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/EngineEnforceUseClientMode.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/RehandshakeFinished.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLEngineImpl/SSLEngineDeadlock.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionContextImpl/Timeout.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSessionImpl/HashCodeMissing.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/AsyncSSLSocketClose.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CheckMethods.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientModeClientAuth.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ClientTimeout.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocket.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/CloseSocketException.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/LoopbackSSLSocket.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NewSocketMethods.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NonAutoClose.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.policy ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTestHeyYou.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReuseAddr.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ReverseNameLookup.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/ServerTimeout.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/SetClientMode.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/UnconnectedSocketWrongExceptions.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/AnonCipherWithWantClientAuth.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHost.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostClient.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ServerHandshaker/GetPeerHostServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SocketCreation/SocketCreation.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/NullCases.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/PreferredKey.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509KeyManager/SelectOneKeyOutOfMany.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/CheckNullEntity.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/ClientServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/rsa/BrokenRSAPrivateCrtKey.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/spi/ProviderInit.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/MyKeyManager.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/OriginServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyAuthTest.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyTunnelServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ServerIdentityTest.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/CriticalSubjectAltName.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnection/GetResponseCode.java ! test/sun/security/ssl/javax/net/ssl/Fix5070632.java ! test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ComURLNulls.java ! test/sun/security/ssl/javax/net/ssl/FixingJavadocs/ImplicitHandshake.java ! test/sun/security/ssl/javax/net/ssl/FixingJavadocs/JavaxURLNulls.java ! test/sun/security/ssl/javax/net/ssl/FixingJavadocs/KMTMGetNothing.java ! test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSessionNulls.java ! test/sun/security/ssl/javax/net/ssl/FixingJavadocs/SSLSocketInherit.java ! test/sun/security/ssl/javax/net/ssl/GetInstance.java ! test/sun/security/ssl/javax/net/ssl/HttpsURLConnection/DelayDefaultContextLoading.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/CheckMyTrustedKeystore.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/HttpsURLConnectionLocalCertificateChain.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/KeyManagerTrustManager.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLCtxAccessToSessCtx.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/AcceptLargeFragments.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ArgCheck.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/Arrays.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/Basics.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeyEngine.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ExtendedKeySocket.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargeBufs.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/LargePacket.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/MyX509ExtendedKeyManager.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/MyX509KeyManager.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/SSLEngineResultArgs.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/SSLEngineService.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/TestAllSuites.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngineResult/Deserialize.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionCacheSizeTests.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/SessionTimeOutTests.java ! test/sun/security/ssl/javax/net/ssl/NewAPIs/testEnabledProtocols.java ! test/sun/security/ssl/javax/net/ssl/SSLServerSocket/DefaultSSLServSocketFac.java ! test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java ! test/sun/security/ssl/sanity/interop/CipherTest.java ! test/sun/security/ssl/sanity/interop/ClientJSSEServerJSSE.java ! test/sun/security/ssl/sanity/interop/JSSEClient.java ! test/sun/security/ssl/sanity/interop/JSSEServer.java ! test/sun/security/ssl/sanity/pluggability/CheckSSLContextExport.java ! test/sun/security/ssl/sanity/pluggability/CheckSockFacExport1.java ! test/sun/security/ssl/sanity/pluggability/CheckSockFacExport2.java ! test/sun/security/ssl/sanity/pluggability/CipherSuites.java ! test/sun/security/ssl/sanity/pluggability/MySSLContextImpl.java ! test/sun/security/ssl/sanity/pluggability/MySSLEngineImpl.java ! test/sun/security/ssl/sanity/pluggability/MySSLServerSocketFacImpl.java ! test/sun/security/ssl/sanity/pluggability/MySSLSocketFacImpl.java ! test/sun/security/ssl/sun/net/www/http/ChunkedOutputStream/Test.java ! test/sun/security/ssl/sun/net/www/httpstest/AbstractCallback.java ! test/sun/security/ssl/sun/net/www/httpstest/ClosedChannelList.java ! test/sun/security/ssl/sun/net/www/httpstest/HttpCallback.java ! test/sun/security/ssl/sun/net/www/httpstest/HttpServer.java ! test/sun/security/ssl/sun/net/www/httpstest/HttpTransaction.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6216082.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/B6226610.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CheckMethods.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CloseKeepAliveCached.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/CookieHandlerTest.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsPost.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/OriginServer.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ProxyTunnelServer.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ReadTimeout.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Redirect.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/RetryHttps.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/TunnelProxy.java ! test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java ! test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java ! test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHTTPSConnection.java ! test/sun/security/ssl/sun/net/www/protocol/https/NewImpl/JavaxHostnameVerifier.java ! test/sun/security/ssl/templates/SSLEngineTemplate.java ! test/sun/security/ssl/templates/SSLSocketTemplate.java ! test/sun/security/tools/jarsigner/AlgOptions.sh ! test/sun/security/tools/jarsigner/JarSigningNonAscii.java ! test/sun/security/tools/jarsigner/LargeJarEntry.java ! test/sun/security/tools/jarsigner/PercentSign.sh ! test/sun/security/tools/jarsigner/Test4431684.java ! test/sun/security/tools/jarsigner/TimestampCheck.java ! test/sun/security/tools/jarsigner/concise_jarsigner.sh ! test/sun/security/tools/jarsigner/crl.sh ! test/sun/security/tools/jarsigner/diffend.sh ! test/sun/security/tools/jarsigner/ec.sh ! test/sun/security/tools/jarsigner/emptymanifest.sh ! test/sun/security/tools/jarsigner/nameclash.sh ! test/sun/security/tools/jarsigner/newsize7.sh ! test/sun/security/tools/jarsigner/oldsig.sh ! test/sun/security/tools/jarsigner/passtype.sh ! test/sun/security/tools/jarsigner/samename.sh ! test/sun/security/tools/jarsigner/ts.sh ! test/sun/security/tools/keytool/AltProviderPath.sh ! test/sun/security/tools/keytool/CloneKeyAskPassword.sh ! test/sun/security/tools/keytool/CloseFile.java ! test/sun/security/tools/keytool/DummyProvider.java ! test/sun/security/tools/keytool/KeyToolTest.java ! test/sun/security/tools/keytool/NewSize7.java ! test/sun/security/tools/keytool/NoExtNPE.sh ! test/sun/security/tools/keytool/PrintSSL.java ! test/sun/security/tools/keytool/SecretKeyKS.sh ! test/sun/security/tools/keytool/StandardAlgName.sh ! test/sun/security/tools/keytool/StartDateTest.java ! test/sun/security/tools/keytool/autotest.sh ! test/sun/security/tools/keytool/console.sh ! test/sun/security/tools/keytool/emptysubject.sh ! test/sun/security/tools/keytool/file-in-help.sh ! test/sun/security/tools/keytool/i18n.java ! test/sun/security/tools/keytool/i18n.sh ! test/sun/security/tools/keytool/importreadall.sh ! test/sun/security/tools/keytool/newhelp.sh ! test/sun/security/tools/keytool/printssl.sh ! test/sun/security/tools/keytool/readjar.sh ! test/sun/security/tools/keytool/resource.sh ! test/sun/security/tools/keytool/selfissued.sh ! test/sun/security/tools/keytool/standard.sh ! test/sun/security/tools/policytool/Alias.java ! test/sun/security/tools/policytool/Alias.sh ! test/sun/security/tools/policytool/ChangeUI.java ! test/sun/security/tools/policytool/ChangeUI.sh ! test/sun/security/tools/policytool/OpenPolicy.java ! test/sun/security/tools/policytool/OpenPolicy.sh ! test/sun/security/tools/policytool/SaveAs.java ! test/sun/security/tools/policytool/SaveAs.sh ! test/sun/security/tools/policytool/UpdatePermissions.java ! test/sun/security/tools/policytool/UpdatePermissions.sh ! test/sun/security/tools/policytool/UsePolicy.java ! test/sun/security/tools/policytool/UsePolicy.sh ! test/sun/security/tools/policytool/i18n.java ! test/sun/security/tools/policytool/i18n.sh ! test/sun/security/util/BigInt/BigIntEqualsHashCode.java ! test/sun/security/util/BitArray/NamedBitList.java ! test/sun/security/util/Debug/MultiOptions.java ! test/sun/security/util/DerInputBuffer/BigInteger0.java ! test/sun/security/util/DerInputBuffer/DerInputBufferEqualsHashCode.java ! test/sun/security/util/DerInputBuffer/PaddedBitString.java ! test/sun/security/util/DerInputBuffer/TimeParsing.java ! test/sun/security/util/DerValue/BadValue.java ! test/sun/security/util/DerValue/DerValueEqualsHashCode.java ! test/sun/security/util/DerValue/EmptyValue.java ! test/sun/security/util/DerValue/Indefinite.java ! test/sun/security/util/DerValue/NegInt.java ! test/sun/security/util/HostnameMatcher/TestHostnameChecker.java ! test/sun/security/util/Oid/OidFormat.java ! test/sun/security/util/Oid/S11N.sh ! test/sun/security/util/Oid/SerialTest.java ! test/sun/security/util/PropertyExpander/ExpandAndEncode.java ! test/sun/security/util/Resources/Format.java ! test/sun/security/util/asn1StringTypes/StringTypes.java ! test/sun/security/x509/AVA/AVAEqualsHashCode.java ! test/sun/security/x509/AVA/BadName.java ! test/sun/security/x509/AVA/DomainComponentEncoding.java ! test/sun/security/x509/AVA/EmailAddressEncoding.java ! test/sun/security/x509/AVA/EmptyValue.java ! test/sun/security/x509/AlgorithmId/AlgorithmIdEqualsHashCode.java ! test/sun/security/x509/AlgorithmId/ExtensibleAlgorithmId.java ! test/sun/security/x509/AlgorithmId/SHA256withECDSA.java ! test/sun/security/x509/Extensions/BCNull.java ! test/sun/security/x509/GeneralName/Encode.java ! test/sun/security/x509/X500Name/AllAttribs.java ! test/sun/security/x509/X500Name/DerValueConstructor.java ! test/sun/security/x509/X500Name/EmailKeyword.java ! test/sun/security/x509/X500Name/NullX500Name.java ! test/sun/security/x509/X500Name/RDNwithMultipleAVAs.java ! test/sun/security/x509/X509CRLImpl/UnexpectedNPE.java ! test/sun/security/x509/equalNames/AltNamesEqualsTest.java ! test/sun/text/resources/Collator/Bug4248694.java ! test/sun/text/resources/Collator/Bug4804273.java ! test/sun/text/resources/Collator/Bug4848897.java ! test/sun/text/resources/Format/Bug4395196.java ! test/sun/text/resources/Format/Bug4442855.java ! test/sun/text/resources/Format/Bug4621320.java ! test/sun/text/resources/Format/Bug4651568.java ! test/sun/text/resources/Format/Bug4685470.java ! test/sun/text/resources/Format/Bug4762201.java ! test/sun/text/resources/Format/Bug4807540.java ! test/sun/text/resources/Format/Bug4810032.java ! test/sun/text/resources/Format/Bug4994312.java ! test/sun/text/resources/Format/Bug5096553.java ! test/sun/text/resources/LocaleDataTest.java ! test/sun/tools/common/ApplicationSetup.sh ! test/sun/tools/common/CommonSetup.sh ! test/sun/tools/common/ShutdownSimpleApplication.java ! test/sun/tools/common/SimpleApplication.java ! test/sun/tools/jconsole/ImmutableResourceTest.java ! test/sun/tools/jconsole/ImmutableResourceTest.sh ! test/sun/tools/jconsole/ResourceCheckTest.java ! test/sun/tools/jconsole/ResourceCheckTest.sh ! test/sun/tools/jhat/HatHeapDump1Test.java ! test/sun/tools/jhat/HatRun.java ! test/sun/tools/jhat/HelloWorld.java ! test/sun/tools/jhat/ParseTest.sh ! test/sun/tools/jinfo/Basic.sh ! test/sun/tools/jmap/Basic.sh ! test/sun/tools/jps/jps-Defaults.sh ! test/sun/tools/jps/jps-V_2.sh ! test/sun/tools/jps/jps-Vm_2.sh ! test/sun/tools/jps/jps-Vvm.sh ! test/sun/tools/jps/jps-Vvml.sh ! test/sun/tools/jps/jps-Vvml_2.sh ! test/sun/tools/jps/jps-help.sh ! test/sun/tools/jps/jps-l_1.sh ! test/sun/tools/jps/jps-l_2.sh ! test/sun/tools/jps/jps-lm.sh ! test/sun/tools/jps/jps-m.sh ! test/sun/tools/jps/jps-m_2.sh ! test/sun/tools/jps/jps-q.sh ! test/sun/tools/jps/jps-v_1.sh ! test/sun/tools/jps/jps-vm_1.sh ! test/sun/tools/jrunscript/CheckEngine.java ! test/sun/tools/jrunscript/Hello.java ! test/sun/tools/jrunscript/common.sh ! test/sun/tools/jrunscript/jrunscript-DTest.sh ! test/sun/tools/jrunscript/jrunscript-argsTest.sh ! test/sun/tools/jrunscript/jrunscript-cpTest.sh ! test/sun/tools/jrunscript/jrunscript-eTest.sh ! test/sun/tools/jrunscript/jrunscript-fTest.sh ! test/sun/tools/jrunscript/jrunscript-helpTest.sh ! test/sun/tools/jrunscript/jrunscriptTest.sh ! test/sun/tools/jstack/Basic.sh ! test/sun/tools/jstat/jstatClassOutput1.sh ! test/sun/tools/jstat/jstatCompilerOutput1.sh ! test/sun/tools/jstat/jstatFileURITest1.sh ! test/sun/tools/jstat/jstatGcCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcCauseOutput1.sh ! test/sun/tools/jstat/jstatGcNewCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcNewOutput1.sh ! test/sun/tools/jstat/jstatGcOldCapacityOutput1.sh ! test/sun/tools/jstat/jstatGcOldOutput1.sh ! test/sun/tools/jstat/jstatGcOutput1.sh ! test/sun/tools/jstat/jstatGcPermCapacityOutput1.sh ! test/sun/tools/jstat/jstatHelp.sh ! test/sun/tools/jstat/jstatLineCounts1.sh ! test/sun/tools/jstat/jstatLineCounts2.sh ! test/sun/tools/jstat/jstatLineCounts3.sh ! test/sun/tools/jstat/jstatLineCounts4.sh ! test/sun/tools/jstat/jstatOptions1.sh ! test/sun/tools/jstat/jstatPrintCompilationOutput1.sh ! test/sun/tools/jstat/jstatSnap1.sh ! test/sun/tools/jstat/jstatSnap2.sh ! test/sun/tools/jstat/jstatTimeStamp1.sh ! test/sun/tools/jstatd/jstatdDefaults.sh ! test/sun/tools/jstatd/jstatdExternalRegistry.sh ! test/sun/tools/jstatd/jstatdPort.sh ! test/sun/tools/jstatd/jstatdServerName.sh ! test/sun/tools/jstatd/jstatdUsage1.sh ! test/sun/tools/native2ascii/Native2AsciiTests.sh ! test/sun/tools/native2ascii/NativeErrors.java ! test/sun/tools/native2ascii/resources/ImmutableResourceTest.java ! test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh ! test/sun/util/logging/PlatformLoggerTest.java ! test/sun/util/resources/Calendar/Bug4518811.java ! test/sun/util/resources/Calendar/Bug4527203.java ! test/sun/util/resources/Locale/Bug4429024.java ! test/sun/util/resources/Locale/Bug4965260.java ! test/sun/util/resources/TimeZone/Bug4640234.java ! test/sun/util/resources/TimeZone/Bug4848242.java ! test/sun/util/resources/TimeZone/Bug4858517.java ! test/sun/util/resources/TimeZone/Bug4938846.java ! test/sun/util/resources/TimeZone/Bug6271396.java ! test/sun/util/resources/TimeZone/Bug6317929.java ! test/sun/util/resources/TimeZone/Bug6377794.java ! test/sun/util/resources/TimeZone/Bug6442006.java ! test/sun/util/resources/TimeZone/IntlTest.java ! test/tools/jar/ChangeDir.java ! test/tools/jar/JarEntryTime.java ! test/tools/jar/UpdateManifest.java ! test/tools/jar/index/MetaInf.java ! test/tools/launcher/6842838/CreateBadJar.java ! test/tools/launcher/6842838/Test6842838.sh ! test/tools/launcher/Arrrghs.java ! test/tools/launcher/ChangeDataModel.sh ! test/tools/launcher/ClassPathWildCard.sh ! test/tools/launcher/CreatePlatformFile.java ! test/tools/launcher/DefaultLocaleTest.java ! test/tools/launcher/DefaultLocaleTest.sh ! test/tools/launcher/ExecutionEnvironment.java ! test/tools/launcher/Makefile.SolarisRunpath ! test/tools/launcher/MultipleJRE.sh ! test/tools/launcher/PrintVersion.java ! test/tools/launcher/SomeException.java ! test/tools/launcher/TestHelper.java ! test/tools/launcher/UglyPrintVersion.java ! test/tools/launcher/UnicodeCleanup.java ! test/tools/launcher/UnicodeTest.java ! test/tools/launcher/UnicodeTest.sh ! test/tools/launcher/UnresolvedExceptions.java ! test/tools/launcher/VersionCheck.java ! test/tools/launcher/ZipMeUp.java ! test/tools/launcher/deleteI18n.sh ! test/tools/launcher/i18nTest.sh ! test/tools/launcher/unresolvedExceptions.sh ! test/tools/pack200/Pack200Simple.sh ! test/tools/pack200/Pack200Test.java ! test/vm/verifier/VerifyProtectedConstructor.java ! test/vm/verifier/VerifyStackForExceptionHandlers.java Changeset: db951e984ccf Author: ohair Date: 2010-05-26 10:45 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/db951e984ccf Merge Changeset: 4255ca314883 Author: mikejwre Date: 2010-05-27 10:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4255ca314883 Added tag jdk7-b95 for changeset db951e984ccf ! .hgtags Changeset: 4c234c13f66a Author: ohair Date: 2010-05-26 20:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4c234c13f66a 6956202: Fix a few missed rebranding issues, please contact lines etc. Reviewed-by: jjg, darcy, weijun ! make/common/Subdirs.gmk ! src/share/classes/com/sun/jarsigner/package.html ! src/share/classes/com/sun/java/util/jar/pack/package.html ! src/share/classes/com/sun/jdi/connect/package.html ! src/share/classes/com/sun/jdi/connect/spi/package.html ! src/share/classes/com/sun/jdi/event/package.html ! src/share/classes/com/sun/jdi/package.html ! src/share/classes/com/sun/jdi/request/package.html ! src/share/classes/com/sun/jmx/defaults/package.html ! src/share/classes/com/sun/jmx/interceptor/package.html ! src/share/classes/com/sun/jmx/mbeanserver/package.html ! src/share/classes/com/sun/jmx/remote/internal/package.html ! src/share/classes/com/sun/jmx/snmp/IPAcl/package.html ! src/share/classes/com/sun/jmx/snmp/agent/package.html ! src/share/classes/com/sun/jmx/snmp/daemon/package.html ! src/share/classes/com/sun/jmx/snmp/defaults/package.html ! src/share/classes/com/sun/jmx/snmp/internal/package.html ! src/share/classes/com/sun/jmx/snmp/mpm/package.html ! src/share/classes/com/sun/jmx/snmp/package.html ! src/share/classes/com/sun/jmx/snmp/tasks/package.html ! src/share/classes/com/sun/management/mgmt-overview.html ! src/share/classes/com/sun/management/package.html ! src/share/classes/com/sun/net/ssl/package.html ! src/share/classes/com/sun/rowset/providers/package.html ! src/share/classes/com/sun/servicetag/package.html ! src/share/classes/com/sun/servicetag/resources/register.html ! src/share/classes/com/sun/servicetag/resources/register_ja.html ! src/share/classes/com/sun/servicetag/resources/register_zh_CN.html ! src/share/classes/com/sun/tools/hat/resources/oqlhelp.html ! src/share/classes/java/security/acl/package.html ! src/share/classes/java/security/package.html ! src/share/classes/java/security/spec/package.html ! src/share/classes/java/sql/package.html ! src/share/classes/java/text/package.html ! src/share/classes/java/text/spi/package.html ! src/share/classes/java/util/jar/package.html ! src/share/classes/java/util/logging/package.html ! src/share/classes/java/util/package.html ! src/share/classes/java/util/prefs/package.html ! src/share/classes/java/util/regex/package.html ! src/share/classes/java/util/spi/package.html ! src/share/classes/java/util/zip/package.html ! src/share/classes/javax/accessibility/package.html ! src/share/classes/javax/crypto/interfaces/package.html ! src/share/classes/javax/crypto/package.html ! src/share/classes/javax/crypto/spec/package.html ! src/share/classes/javax/imageio/event/package.html ! src/share/classes/javax/imageio/metadata/doc-files/bmp_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/gif_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/jpeg_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/png_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/standard_metadata.html ! src/share/classes/javax/imageio/metadata/doc-files/wbmp_metadata.html ! src/share/classes/javax/imageio/metadata/package.html ! src/share/classes/javax/imageio/package.html ! src/share/classes/javax/imageio/plugins/bmp/package.html ! src/share/classes/javax/imageio/plugins/jpeg/package.html ! src/share/classes/javax/imageio/spi/package.html ! src/share/classes/javax/imageio/stream/package.html ! src/share/classes/javax/management/build.xml ! src/share/classes/javax/management/loading/package.html ! src/share/classes/javax/management/modelmbean/package.html ! src/share/classes/javax/management/monitor/package.html ! src/share/classes/javax/management/openmbean/package.html ! src/share/classes/javax/management/package.html ! src/share/classes/javax/management/relation/package.html ! src/share/classes/javax/management/remote/package.html ! src/share/classes/javax/management/remote/rmi/package.html ! src/share/classes/javax/management/timer/package.html ! src/share/classes/javax/naming/directory/package.html ! src/share/classes/javax/naming/event/package.html ! src/share/classes/javax/naming/ldap/package.html ! src/share/classes/javax/naming/package.html ! src/share/classes/javax/naming/spi/package.html ! src/share/classes/javax/net/package.html ! src/share/classes/javax/net/ssl/package.html ! src/share/classes/javax/print/attribute/package.html ! src/share/classes/javax/print/attribute/standard/package.html ! src/share/classes/javax/print/event/package.html ! src/share/classes/javax/print/package.html ! src/share/classes/javax/rmi/ssl/package.html ! src/share/classes/javax/script/package.html ! src/share/classes/javax/security/auth/callback/package.html ! src/share/classes/javax/security/auth/kerberos/package.html ! src/share/classes/javax/security/auth/login/package.html ! src/share/classes/javax/security/auth/package.html ! src/share/classes/javax/security/auth/spi/package.html ! src/share/classes/javax/security/auth/x500/package.html ! src/share/classes/javax/security/cert/package.html ! src/share/classes/javax/security/sasl/package.html ! src/share/classes/javax/sound/midi/package.html ! src/share/classes/javax/sound/midi/spi/package.html ! src/share/classes/javax/sound/sampled/package.html ! src/share/classes/javax/sound/sampled/spi/package.html ! src/share/classes/javax/sql/package.html ! src/share/classes/javax/sql/rowset/package.html ! src/share/classes/javax/sql/rowset/serial/package.html ! src/share/classes/javax/sql/rowset/spi/package.html ! src/share/classes/javax/swing/border/package.html ! src/share/classes/javax/swing/colorchooser/package.html ! src/share/classes/javax/swing/event/package.html ! src/share/classes/javax/swing/filechooser/package.html ! src/share/classes/javax/swing/package.html ! src/share/classes/javax/swing/plaf/basic/package.html ! src/share/classes/javax/swing/plaf/metal/package.html ! src/share/classes/javax/swing/plaf/multi/package.html ! src/share/classes/javax/swing/plaf/nimbus/package.html ! src/share/classes/javax/swing/plaf/package.html ! src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html ! src/share/classes/javax/swing/plaf/synth/package.html ! src/share/classes/javax/swing/table/package.html ! src/share/classes/javax/swing/text/html/package.html ! src/share/classes/javax/swing/text/html/parser/package.html ! src/share/classes/javax/swing/text/package.html ! src/share/classes/javax/swing/text/rtf/package.html ! src/share/classes/javax/swing/tree/package.html ! src/share/classes/javax/swing/undo/package.html ! src/share/classes/javax/xml/crypto/dom/package.html ! src/share/classes/javax/xml/crypto/dsig/dom/package.html ! src/share/classes/javax/xml/crypto/dsig/keyinfo/package.html ! src/share/classes/javax/xml/crypto/dsig/package.html ! src/share/classes/javax/xml/crypto/dsig/spec/package.html ! src/share/classes/javax/xml/crypto/package.html ! src/share/classes/org/ietf/jgss/package.html ! src/share/classes/overview-core.html ! src/solaris/classes/sun/awt/X11/keysym2ucs.h ! test/java/awt/font/LineBreakMeasurer/FRCTest.java ! test/java/awt/image/ConvolveOp/EdgeNoOpCrash.java ! test/java/beans/XMLEncoder/java_awt_Component.java ! test/java/lang/ClassLoader/getdotresource.sh ! test/java/lang/Runtime/exec/setcwd.sh ! test/java/util/ResourceBundle/Bug4083270Test.properties ! test/java/util/ResourceBundle/Bug4168625Test.java ! test/javax/sound/midi/Gervill/SoftLanczosResampler/Interpolate.java ! test/javax/sound/midi/Gervill/SoftLinearResampler/Interpolate.java ! test/javax/sound/midi/Gervill/SoftLinearResampler2/Interpolate.java ! test/javax/sound/midi/Gervill/SoftPointResampler/Interpolate.java ! test/javax/sound/midi/Gervill/SoftReceiver/GetMidiDevice.java ! test/javax/sound/midi/Gervill/SoftSincResampler/Interpolate.java ! test/javax/swing/JTable/Test6888156.java ! test/sun/net/www/protocol/jar/getcontenttype.sh Changeset: a6276fa6643a Author: ohair Date: 2010-05-28 11:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a6276fa6643a 6955707: Correct addNotices.sh logic in Makefiles 6949590: exes(java.exe, javaws.exe) show Copyright Year as 2004, COMPANY as Sun Reviewed-by: weijun, alanb ! make/common/Release.gmk ! make/common/shared/Defs.gmk ! make/java/nio/Makefile ! make/java/nio/addNotices.sh ! make/java/nio/genCharsetProvider.sh ! make/tools/manifest.mf ! src/share/classes/java/nio/channels/exceptions ! src/share/classes/java/nio/charset/exceptions ! src/share/classes/java/nio/exceptions ! src/share/classes/sun/nio/cs/standard-charsets Changeset: 51b9e5dbc2da Author: mikejwre Date: 2010-06-02 15:39 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/51b9e5dbc2da Merge Changeset: 050f05044e24 Author: mikejwre Date: 2010-06-03 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/050f05044e24 Added tag jdk7-b96 for changeset 51b9e5dbc2da ! .hgtags Changeset: ee157d437aa8 Author: prr Date: 2010-05-27 08:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ee157d437aa8 6954424: Support OpenType/CFF fonts in JDK 7 Reviewed-by: bae, igor ! src/share/classes/java/awt/Font.java ! src/share/classes/sun/font/SunFontManager.java Changeset: 5294c7067018 Author: ceisserer Date: 2010-05-28 11:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5294c7067018 6307603: [X11] Use RENDER extension for complex operations done in software Reviewed-by: bae, igor, prr ! make/common/Defs-solaris.gmk ! make/sun/awt/mapfile-mawt-vers ! make/sun/awt/mapfile-vers-linux ! make/sun/headless/mapfile-vers ! make/sun/jawt/Makefile ! make/sun/xawt/FILES_c_unix.gmk ! make/sun/xawt/Makefile ! make/sun/xawt/mapfile-vers + src/share/classes/sun/font/GlyphDisposedListener.java ! src/share/classes/sun/font/StrikeCache.java ! src/share/classes/sun/java2d/pipe/BufferedPaints.java ! src/share/classes/sun/java2d/pipe/RenderBuffer.java ! src/share/classes/sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine ! src/share/native/sun/font/AccelGlyphCache.c ! src/share/native/sun/font/fontscalerdefs.h ! src/share/native/sun/font/freetypeScaler.c ! src/share/native/sun/font/sunFont.c ! src/share/native/sun/java2d/opengl/OGLTextRenderer.c ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java + src/solaris/classes/sun/font/XRGlyphCache.java + src/solaris/classes/sun/font/XRGlyphCacheEntry.java + src/solaris/classes/sun/font/XRTextRenderer.java ! src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java + src/solaris/classes/sun/java2d/jules/IdleTileCache.java + src/solaris/classes/sun/java2d/jules/JulesAATileGenerator.java + src/solaris/classes/sun/java2d/jules/JulesPathBuf.java + src/solaris/classes/sun/java2d/jules/JulesRenderingEngine.java + src/solaris/classes/sun/java2d/jules/JulesShapePipe.java + src/solaris/classes/sun/java2d/jules/JulesTile.java + src/solaris/classes/sun/java2d/jules/TileWorker.java + src/solaris/classes/sun/java2d/jules/TrapezoidList.java ! src/solaris/classes/sun/java2d/x11/X11SurfaceData.java + src/solaris/classes/sun/java2d/x11/XSurfaceData.java + src/solaris/classes/sun/java2d/xr/DirtyRegion.java + src/solaris/classes/sun/java2d/xr/GrowableByteArray.java + src/solaris/classes/sun/java2d/xr/GrowableEltArray.java + src/solaris/classes/sun/java2d/xr/GrowableIntArray.java + src/solaris/classes/sun/java2d/xr/GrowablePointArray.java + src/solaris/classes/sun/java2d/xr/GrowableRectArray.java + src/solaris/classes/sun/java2d/xr/MaskTile.java + src/solaris/classes/sun/java2d/xr/MaskTileManager.java + src/solaris/classes/sun/java2d/xr/MutableInteger.java + src/solaris/classes/sun/java2d/xr/XIDGenerator.java + src/solaris/classes/sun/java2d/xr/XRBackend.java + src/solaris/classes/sun/java2d/xr/XRBackendNative.java + src/solaris/classes/sun/java2d/xr/XRColor.java + src/solaris/classes/sun/java2d/xr/XRCompositeManager.java + src/solaris/classes/sun/java2d/xr/XRDrawImage.java + src/solaris/classes/sun/java2d/xr/XRGraphicsConfig.java + src/solaris/classes/sun/java2d/xr/XRMaskBlit.java + src/solaris/classes/sun/java2d/xr/XRMaskFill.java + src/solaris/classes/sun/java2d/xr/XRMaskImage.java + src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java + src/solaris/classes/sun/java2d/xr/XRPaints.java + src/solaris/classes/sun/java2d/xr/XRRenderer.java + src/solaris/classes/sun/java2d/xr/XRSurfaceData.java + src/solaris/classes/sun/java2d/xr/XRSurfaceDataProxy.java + src/solaris/classes/sun/java2d/xr/XRUtils.java + src/solaris/classes/sun/java2d/xr/XRVolatileSurfaceManager.java + src/solaris/classes/sun/java2d/xr/XcbRequestCounter.java ! src/solaris/native/sun/java2d/x11/X11SurfaceData.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.h + src/solaris/native/sun/java2d/x11/XRBackendNative.c + src/solaris/native/sun/java2d/x11/XRSurfaceData.c Changeset: be6f14f83ea7 Author: lana Date: 2010-05-29 23:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/be6f14f83ea7 Merge ! make/common/Defs-solaris.gmk ! make/sun/awt/mapfile-mawt-vers ! make/sun/awt/mapfile-vers-linux ! make/sun/headless/mapfile-vers ! make/sun/jawt/Makefile ! make/sun/xawt/FILES_c_unix.gmk ! make/sun/xawt/Makefile ! make/sun/xawt/mapfile-vers ! src/share/classes/java/awt/Font.java ! src/share/classes/sun/font/StrikeCache.java ! src/share/classes/sun/font/SunFontManager.java ! src/share/classes/sun/java2d/pipe/BufferedPaints.java ! src/share/classes/sun/java2d/pipe/RenderBuffer.java ! src/share/native/sun/font/AccelGlyphCache.c ! src/share/native/sun/font/fontscalerdefs.h ! src/share/native/sun/font/freetypeScaler.c ! src/share/native/sun/font/sunFont.c ! src/share/native/sun/java2d/opengl/OGLTextRenderer.c ! src/solaris/classes/sun/awt/X11GraphicsDevice.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/solaris/classes/sun/java2d/UnixSurfaceManagerFactory.java ! src/solaris/classes/sun/java2d/x11/X11SurfaceData.java ! src/solaris/native/sun/java2d/x11/X11SurfaceData.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.h Changeset: 3b909e2e2131 Author: rupashka Date: 2010-05-17 17:23 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3b909e2e2131 6938481: 4906607 is not fixed for NIMBUS L&F Reviewed-by: alexp ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Changeset: 57d7b80faad8 Author: peytoia Date: 2010-05-18 16:40 +0900 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/57d7b80faad8 6953294: Fix for 6909002 was incorrectly merged Reviewed-by: okutsu ! make/com/sun/Makefile - make/com/sun/inputmethods/Makefile - make/com/sun/inputmethods/indicim/Makefile - make/com/sun/inputmethods/thaiim/Makefile - src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java - src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java - src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java - src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java - src/share/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_fr.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_it.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ko.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_sv.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_CN.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java - src/share/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor - src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties Changeset: a71c27e3ec4a Author: malenkov Date: 2010-05-20 18:44 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a71c27e3ec4a 6479191: LTP: XMLEncoder does not update initialized property of GridBagConstraints type Reviewed-by: rupashka ! src/share/classes/java/beans/DefaultPersistenceDelegate.java ! src/share/classes/java/beans/MetaData.java ! src/share/classes/java/beans/XMLEncoder.java ! test/java/beans/XMLEncoder/java_awt_GridBagConstraints.java Changeset: bbd5a5a4e64f Author: malenkov Date: 2010-05-20 20:42 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bbd5a5a4e64f 6910490: MatteBorder JScrollpane interaction Reviewed-by: alexp ! src/share/classes/javax/swing/border/MatteBorder.java + test/javax/swing/border/Test6910490.html + test/javax/swing/border/Test6910490.java Changeset: 3a19541d8119 Author: alexp Date: 2010-05-21 22:04 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3a19541d8119 6953396: javax.swing.plaf.basic.BasicViewportUI.uninstallDefaults() is not called when UI is uninstalled Reviewed-by: rupashka ! src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java + test/javax/swing/JViewport/6953396/bug6953396.java Changeset: a0c6dae0f173 Author: lana Date: 2010-05-21 17:49 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a0c6dae0f173 Merge Changeset: 3de717f6ddab Author: alexp Date: 2010-05-25 20:22 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3de717f6ddab 6786238: api/javax_swing/DefaultDesktopManager/descriptions.html#xxxFrame Fails with NPE since 6u12 b02 Reviewed-by: rupashka ! src/share/classes/javax/swing/DefaultDesktopManager.java Changeset: 1297a41dbb47 Author: alexp Date: 2010-05-25 20:30 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1297a41dbb47 6937798: Nimbus: Issues with JTable grid Reviewed-by: rupashka ! src/share/classes/javax/swing/plaf/synth/SynthTableUI.java + test/javax/swing/JTable/6937798/bug6937798.java Changeset: 8d59b361635f Author: alexp Date: 2010-05-25 20:39 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8d59b361635f 6768387: REGRESSION: JTable no longer serializable Reviewed-by: rupashka ! src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java + test/javax/swing/JTable/6768387/bug6768387.java Changeset: d540eeccf73a Author: alexp Date: 2010-05-25 20:54 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d540eeccf73a 6884066: JTableHeader listens mouse in disabled state and doesn't work when not attached to a table Reviewed-by: rupashka ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java ! src/share/classes/sun/swing/SwingUtilities2.java + test/javax/swing/JTableHeader/6884066/bug6884066.java Changeset: fc1ac6ea933c Author: peterz Date: 2010-05-26 20:22 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fc1ac6ea933c 6632959: swing html parser doesn't know € or › Reviewed-by: alexp ! make/javax/swing/FILES.gmk ! make/javax/swing/Makefile - src/share/classes/javax/swing/text/html/parser/html32.bdtd Changeset: e821a3568b0a Author: rupashka Date: 2010-05-26 22:02 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e821a3568b0a 6925473: REGRESSION: JOptionPane in dialog is full-screen height Reviewed-by: peterz ! src/share/classes/javax/swing/text/WrappedPlainView.java + test/javax/swing/JTextArea/6925473/bug6925473.java + test/javax/swing/JTextArea/6940863/bug6940863.java ! test/javax/swing/JTextArea/Test6593649.java Changeset: 824b0f8b68f6 Author: peterz Date: 2010-05-28 13:31 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/824b0f8b68f6 6929507: Build error on file swing.plaf.synth.SynthUI Reviewed-by: rupashka ! make/common/Release.gmk ! make/tools/sharing/classlist.linux ! make/tools/sharing/classlist.solaris Changeset: e2b1bab101d2 Author: peterz Date: 2010-05-28 13:32 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e2b1bab101d2 6954231: SynthTextPaneUI.installUI() doesn't set component to opaque even if prop was not set by client progr Reviewed-by: alexp ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java Changeset: 9b247a6290a4 Author: alexp Date: 2010-05-28 19:46 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9b247a6290a4 6889007: No resize cursor during hovering mouse over JTable Reviewed-by: rupashka ! src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java + test/javax/swing/JTableHeader/6889007/bug6889007.java Changeset: 82524b068f77 Author: alexp Date: 2010-05-28 19:55 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/82524b068f77 6670274: Incorrect tab titles for JTabbedPane if using HTML (BasicTabbedPanelUI problem) Reviewed-by: rupashka ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java + test/javax/swing/JTabbedPane/6670274/bug6670274.java Changeset: be03f9a285f0 Author: lana Date: 2010-06-01 14:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/be03f9a285f0 Merge ! make/com/sun/Makefile ! make/common/Release.gmk ! make/javax/swing/FILES.gmk ! make/javax/swing/Makefile ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java ! src/share/classes/java/beans/DefaultPersistenceDelegate.java ! src/share/classes/java/beans/MetaData.java ! src/share/classes/java/beans/XMLEncoder.java ! src/share/classes/javax/swing/DefaultDesktopManager.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/border/MatteBorder.java ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/share/classes/javax/swing/plaf/basic/BasicViewportUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java ! src/share/classes/javax/swing/text/WrappedPlainView.java ! src/share/classes/sun/swing/SwingUtilities2.java ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java ! src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java ! test/java/beans/XMLEncoder/java_awt_GridBagConstraints.java ! test/javax/swing/JTextArea/Test6593649.java Changeset: 18ee3c1b9143 Author: lana Date: 2010-06-01 21:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/18ee3c1b9143 Merge - make/com/sun/inputmethods/Makefile - make/com/sun/inputmethods/indicim/Makefile - make/com/sun/inputmethods/thaiim/Makefile - src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java - src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java - src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java - src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java - src/share/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_fr.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_it.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ko.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_sv.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_CN.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java - src/share/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor - src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties - src/share/classes/javax/swing/text/html/parser/html32.bdtd Changeset: 05c9ff89bcdc Author: mchung Date: 2010-05-12 14:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/05c9ff89bcdc 6951661: Eliminate jvmstat dependency on sun.management.counter Summary: jvmstat keeps its own copy of Units and Variability class Reviewed-by: alanb ! src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java ! src/share/classes/sun/jvmstat/monitor/Monitor.java + src/share/classes/sun/jvmstat/monitor/Units.java + src/share/classes/sun/jvmstat/monitor/Variability.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfIntegerMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfLongMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringConstantMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringVariableMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java ! src/share/classes/sun/tools/jstat/ExpressionResolver.java ! src/share/classes/sun/tools/jstat/JStatLogger.java ! src/share/classes/sun/tools/jstat/Jstat.java Changeset: 2d54e4cae441 Author: ohair Date: 2010-05-12 21:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2d54e4cae441 6943915: Adjust jdk/test/Makefile to deal with .dll and .so libraries needing execute permissions Summary: And adjustments to test problem list. Reviewed-by: jjg ! test/Makefile ! test/ProblemList.txt ! test/java/lang/ProcessBuilder/Basic.java ! test/java/lang/Runtime/exec/ExecWithDir.java Changeset: f6b72c9023f4 Author: ptisnovs Date: 2010-05-13 10:11 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f6b72c9023f4 6951887: Wrong redirection useage in test sun/nio/cs/Test4200310.sh Summary: Testcase correction. Reviewed-by: sherman ! test/sun/nio/cs/Test4200310.sh Changeset: aa1b15bdbf2b Author: sherman Date: 2010-05-13 21:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/aa1b15bdbf2b 6951064: Typo in javadoc for ZipException ctors Summary: fixed the doc typo Reviewed-by: martin ! src/share/classes/java/util/zip/ZipException.java Changeset: e85e03ef61c1 Author: martin Date: 2010-05-13 21:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e85e03ef61c1 6952330: Fix for 6933217 broke contract of StringBuffer.ensureCapacity Summary: make sure to grow with size => size * 2 + 2 Reviewed-by: dholmes, chegar, ohair ! src/share/classes/java/lang/AbstractStringBuilder.java + test/java/lang/StringBuffer/Capacity.java Changeset: ac74c3b96e49 Author: sherman Date: 2010-05-14 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ac74c3b96e49 6952701: Use http://www.ietf.org/rfc for rfc references in jdk public APIs Summary: replace www.isi.edu/in-notes with www.ietf.org/rfc Reviewed-by: martin ! src/share/classes/java/util/zip/package.html ! src/share/classes/javax/naming/event/EventDirContext.java ! src/share/classes/javax/naming/ldap/Control.java ! src/share/classes/javax/naming/ldap/ControlFactory.java ! src/share/classes/javax/naming/ldap/ExtendedRequest.java ! src/share/classes/javax/naming/ldap/ExtendedResponse.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotification.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotificationListener.java ! src/share/classes/javax/print/DocFlavor.java Changeset: 2fb3d7dbaa32 Author: sherman Date: 2010-05-14 13:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2fb3d7dbaa32 4263582: RFE: GZIPInputStream throws IOException on non-gzipped data Summary: throw ZipException instead of IOException Reviewed-by: martin ! src/share/classes/java/util/zip/GZIPInputStream.java Changeset: 91bcd8fc04f2 Author: sherman Date: 2010-05-16 21:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/91bcd8fc04f2 4465490: Suspicious about double-check locking idiom being used in the code Summary: to use volatile for the double-checked object Reviewed-by: weijun ! src/share/classes/java/util/jar/JarVerifier.java Changeset: 43f83a2cf5b5 Author: sherman Date: 2010-05-17 12:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/43f83a2cf5b5 4813885: RFE: GZIPOutputStream should implement flush using Z_SYNC_FLUSH Summary: Added new constructors to allow flush() work in Z_SYNC_FLUSH mode Reviewed-by: martin ! src/share/classes/java/util/zip/GZIPOutputStream.java ! test/java/util/zip/InflateIn_DeflateOut.java Changeset: 1e0c3e864fb1 Author: sherman Date: 2010-05-17 16:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1e0c3e864fb1 4853493: GZIPOutputStream passes a reference to a private array into an untrusted method Summary: create a new header byte array for each header writeout Reviewed-by: martin ! src/share/classes/java/util/zip/GZIPOutputStream.java Changeset: b3466e2c3819 Author: mchung Date: 2010-05-18 13:12 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b3466e2c3819 6951599: Rename package of security tools for modularization Summary: Move PolicyTool to sun.security.tools.policytool package Reviewed-by: weijun ! make/modules/modules.config ! make/sun/security/tools/Makefile - src/share/classes/sun/security/tools/PolicyTool.java + src/share/classes/sun/security/tools/policytool/PolicyTool.java Changeset: 33409b9b0f49 Author: sherman Date: 2010-05-18 15:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/33409b9b0f49 6945564: Unicode script support in Character class 6948903: Make Unicode scripts available for use in regular expressions Summary: added Unicode script suport Reviewed-by: martin ! make/java/java/FILES_java.gmk ! make/java/java/Makefile + make/tools/UnicodeData/Scripts.txt + make/tools/src/build/tools/generatecharacter/CharacterName.java + make/tools/src/build/tools/generatecharacter/CharacterScript.java ! make/tools/src/build/tools/generatecharacter/GenerateCharacter.java ! src/share/classes/java/lang/Character.java + src/share/classes/java/lang/CharacterName.java ! src/share/classes/java/util/regex/Pattern.java + test/java/lang/Character/CheckScript.java + test/java/lang/Character/Scripts.txt ! test/java/util/regex/RegExTest.java Changeset: 70e25a57fd02 Author: ohair Date: 2010-05-20 13:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/70e25a57fd02 6954064: Fix the windows arch settings in the makefiles and chmod logic in test/Makefile Reviewed-by: wetmore ! make/common/shared/Platform.gmk ! test/Makefile ! test/ProblemList.txt Changeset: 67ea299d5501 Author: michaelm Date: 2010-05-21 07:29 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/67ea299d5501 6773270: java.net.URI fails to escape \u0000 Summary: check for \u0000 Reviewed-by: alanb ! src/share/classes/java/net/URI.java ! test/java/net/URI/Test.java Changeset: d01726854317 Author: weijun Date: 2010-05-24 09:28 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d01726854317 6948803: CertPath validation regression caused by SHA1 replacement root and MD2 disable feature Reviewed-by: xuelei, mullan ! src/share/classes/sun/security/validator/PKIXValidator.java + test/sun/security/validator/CertReplace.java + test/sun/security/validator/certreplace.sh Changeset: c36617d0dae7 Author: weijun Date: 2010-05-24 09:28 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c36617d0dae7 6954621: small error in 6948909 Reviewed-by: xuelei ! src/share/classes/sun/security/tools/JarSigner.java Changeset: ff9cc9789bb3 Author: weijun Date: 2010-05-24 09:37 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ff9cc9789bb3 6882687: KerberosTime too imprecise Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/internal/KerberosTime.java + test/sun/security/krb5/MicroTime.java Changeset: 625c75559b0d Author: weijun Date: 2010-05-24 09:37 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/625c75559b0d 6948781: CertificateFactory.generateCertificate doesn't throw CertificateException for malformed certificate Reviewed-by: mullan ! src/share/classes/sun/security/provider/X509Factory.java + test/java/security/cert/CertificateFactory/openssl/BadFooter.java Changeset: ba95fd03440b Author: weijun Date: 2010-05-24 10:05 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ba95fd03440b 6932525: Incorrect encryption types of KDC_REQ_BODY of AS-REQ with pre-authentication Reviewed-by: valeriep ! src/share/classes/sun/security/krb5/KrbAsReq.java ! test/sun/security/krb5/auto/KDC.java Changeset: 41a5722e6e10 Author: sherman Date: 2010-05-24 00:39 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/41a5722e6e10 4691425: GZIPInputStream fails to read concatenated .gz files Summary: to support concatenated .gz streams Reviewed-by: martin ! src/share/classes/java/util/zip/GZIPInputStream.java + test/java/util/zip/GZIP/GZIPInputStreamRead.java Changeset: dd41a79890c3 Author: lana Date: 2010-05-24 09:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/dd41a79890c3 Merge ! make/common/shared/Platform.gmk Changeset: 6df25b528926 Author: sherman Date: 2010-05-24 15:20 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6df25b528926 4690407: JAR tool: option -i can't be combined with other options Summary: -i can't combined with cxut, do sanity check on options Reviewed-by: martin ! src/share/classes/sun/tools/jar/Main.java Changeset: d1cf79e27365 Author: sherman Date: 2010-05-24 16:41 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d1cf79e27365 Merge Changeset: 2306564dea3a Author: weijun Date: 2010-05-25 18:20 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2306564dea3a 6948287: KDC test strange knvo Reviewed-by: xuelei ! test/sun/security/krb5/auto/KDC.java Changeset: dfa98add4ad0 Author: jjg Date: 2010-05-25 15:39 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/dfa98add4ad0 6934615: Relative classpaths in jarfile manifests are handled inefficiently by rmic Reviewed-by: darcy ! src/share/classes/sun/rmi/rmic/BatchEnvironment.java ! test/sun/rmi/rmic/manifestClassPath/run.sh Changeset: d5939d20b762 Author: weijun Date: 2010-05-27 17:24 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d5939d20b762 6955783: ServiceUnavailableException caught even the secondary DNS is available Reviewed-by: vinnie ! src/share/classes/com/sun/jndi/dns/DnsClient.java Changeset: 0454cb04a407 Author: andrew Date: 2010-05-28 16:59 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0454cb04a407 6956840: (ch) Rawtype warning when compiling sun.nio.ch.CompletedFuture Summary: Add missing generic type to CompletedFuture construction and remove unneeded SuppressWarnings annotations. Reviewed-by: alanb ! src/share/classes/sun/nio/ch/CompletedFuture.java Changeset: 0f58be815a2e Author: andrew Date: 2010-05-28 17:01 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0f58be815a2e Merge Changeset: 6bc450d87125 Author: lana Date: 2010-05-28 12:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6bc450d87125 Merge ! make/common/shared/Platform.gmk ! make/java/java/FILES_java.gmk ! make/java/java/Makefile ! make/modules/modules.config ! make/sun/security/tools/Makefile ! make/tools/src/build/tools/generatecharacter/GenerateCharacter.java ! src/share/classes/com/sun/jndi/dns/DnsClient.java ! src/share/classes/java/lang/AbstractStringBuilder.java ! src/share/classes/java/lang/Character.java ! src/share/classes/java/net/URI.java ! src/share/classes/java/util/jar/JarVerifier.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/zip/GZIPInputStream.java ! src/share/classes/java/util/zip/GZIPOutputStream.java ! src/share/classes/java/util/zip/ZipException.java ! src/share/classes/java/util/zip/package.html ! src/share/classes/javax/naming/event/EventDirContext.java ! src/share/classes/javax/naming/ldap/Control.java ! src/share/classes/javax/naming/ldap/ControlFactory.java ! src/share/classes/javax/naming/ldap/ExtendedRequest.java ! src/share/classes/javax/naming/ldap/ExtendedResponse.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotification.java ! src/share/classes/javax/naming/ldap/UnsolicitedNotificationListener.java ! src/share/classes/javax/print/DocFlavor.java ! src/share/classes/sun/jvmstat/monitor/AbstractMonitor.java ! src/share/classes/sun/jvmstat/monitor/Monitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfByteArrayMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfIntegerMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfLongMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringConstantMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/PerfStringVariableMonitor.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v1_0/PerfDataBuffer.java ! src/share/classes/sun/jvmstat/perfdata/monitor/v2_0/PerfDataBuffer.java ! src/share/classes/sun/nio/ch/CompletedFuture.java ! src/share/classes/sun/rmi/rmic/BatchEnvironment.java ! src/share/classes/sun/security/krb5/KrbAsReq.java ! src/share/classes/sun/security/krb5/internal/KerberosTime.java ! src/share/classes/sun/security/provider/X509Factory.java ! src/share/classes/sun/security/tools/JarSigner.java ! src/share/classes/sun/security/tools/policytool/PolicyTool.java ! src/share/classes/sun/security/validator/PKIXValidator.java ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/jstat/ExpressionResolver.java ! src/share/classes/sun/tools/jstat/JStatLogger.java ! src/share/classes/sun/tools/jstat/Jstat.java ! test/Makefile ! test/ProblemList.txt ! test/java/lang/ProcessBuilder/Basic.java ! test/java/lang/Runtime/exec/ExecWithDir.java ! test/java/net/URI/Test.java ! test/java/util/regex/RegExTest.java ! test/java/util/zip/InflateIn_DeflateOut.java ! test/sun/nio/cs/Test4200310.sh ! test/sun/rmi/rmic/manifestClassPath/run.sh ! test/sun/security/krb5/auto/KDC.java Changeset: f3189453d134 Author: weijun Date: 2010-06-01 10:52 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f3189453d134 6950931: test fails on windows sun/security/tools/jarsigner/crl.sh Reviewed-by: wetmore, xuelei ! test/sun/security/tools/jarsigner/crl.sh Changeset: 31a7a323a604 Author: lana Date: 2010-06-01 21:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/31a7a323a604 Merge - src/share/classes/sun/security/tools/PolicyTool.java Changeset: 962608ee8cdb Author: lana Date: 2010-06-07 15:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/962608ee8cdb 6888130: SwingSet2: Demo is not launching and throwing NPE. Reviewed-by: prr ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java Changeset: 7140b5759b63 Author: lana Date: 2010-06-07 17:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7140b5759b63 Merge - make/com/sun/inputmethods/Makefile - make/com/sun/inputmethods/indicim/Makefile - make/com/sun/inputmethods/thaiim/Makefile ! make/common/Release.gmk - src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariInputMethodDescriptor.java - src/share/classes/com/sun/inputmethods/internal/indicim/DevanagariTables.java - src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethod.java - src/share/classes/com/sun/inputmethods/internal/indicim/IndicInputMethodImpl.java - src/share/classes/com/sun/inputmethods/internal/indicim/java.awt.im.spi.InputMethodDescriptor - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_de.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_es.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_fr.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_it.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ja.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_ko.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_sv.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_CN.properties - src/share/classes/com/sun/inputmethods/internal/indicim/resources/DisplayNames_zh_TW.properties - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethod.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodDescriptor.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiInputMethodImpl.java - src/share/classes/com/sun/inputmethods/internal/thaiim/ThaiRules.java - src/share/classes/com/sun/inputmethods/internal/thaiim/java.awt.im.spi.InputMethodDescriptor - src/share/classes/com/sun/inputmethods/internal/thaiim/resources/DisplayNames.properties ! src/share/classes/java/util/zip/package.html - src/share/classes/javax/swing/text/html/parser/html32.bdtd - src/share/classes/sun/security/tools/PolicyTool.java Changeset: fb56f86642d6 Author: andrew Date: 2010-06-03 18:49 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fb56f86642d6 6958257: Add support for alpha Summary: Allow the Zero port to be built on alpha architectures Reviewed-by: ohair ! make/common/Defs-linux.gmk Changeset: be0d055db574 Author: ohair Date: 2010-06-07 12:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/be0d055db574 6959116: Fix regression in make/jdk_generic_profile.sh (PROCESSOR_IDENTIFIER) Reviewed-by: alanb ! make/jdk_generic_profile.sh Changeset: b1903d7528d3 Author: mikejwre Date: 2010-06-09 18:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b1903d7528d3 Merge Changeset: 6568c84116bb Author: mikejwre Date: 2010-06-10 13:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6568c84116bb Added tag jdk7-b97 for changeset b1903d7528d3 ! .hgtags From maurizio.cimadamore at oracle.com Tue Jun 15 06:45:27 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 15 Jun 2010 13:45:27 +0000 Subject: hg: lambda/lambda/langtools: 17 new changesets Message-ID: <20100615134558.633444725B@hg.openjdk.java.net> Changeset: 9d9f26857129 Author: ohair Date: 2010-05-25 15:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9d9f26857129 6943119: Rebrand source copyright notices Reviewed-by: darcy ! make/Makefile ! make/Makefile-classic ! make/build.properties ! make/build.xml ! make/jprt.properties ! make/netbeans/langtools/build.xml ! make/netbeans/langtools/nbproject/project.xml ! make/netbeans/langtools/nbproject/standard-context-menu-items.ent ! make/netbeans/langtools/nbproject/standard-ide-actions.ent ! make/test/HelloWorld.java ! make/test/bootstrap/javac.sh ! make/test/bootstrap/javadoc.sh ! make/test/bootstrap/javah.sh ! make/test/contents.sh ! make/test/lib/apt.sh ! make/test/lib/classes.sh ! make/test/lib/javac.sh ! make/test/lib/javadoc.sh ! make/test/lib/javah.sh ! make/test/lib/javap.sh ! make/test/lib/src.sh ! make/tools/CompileProperties/CompileProperties.java ! make/tools/CompileProperties/CompilePropertiesTask.java ! make/tools/GenStubs/GenStubs.java ! make/tools/SelectTool/SelectToolTask.java ! src/share/bin/launcher.sh-template ! src/share/classes/com/sun/javadoc/AnnotationDesc.java ! src/share/classes/com/sun/javadoc/AnnotationTypeDoc.java ! src/share/classes/com/sun/javadoc/AnnotationTypeElementDoc.java ! src/share/classes/com/sun/javadoc/AnnotationValue.java ! src/share/classes/com/sun/javadoc/ClassDoc.java ! src/share/classes/com/sun/javadoc/ConstructorDoc.java ! src/share/classes/com/sun/javadoc/Doc.java ! src/share/classes/com/sun/javadoc/DocErrorReporter.java ! src/share/classes/com/sun/javadoc/Doclet.java ! src/share/classes/com/sun/javadoc/ExecutableMemberDoc.java ! src/share/classes/com/sun/javadoc/FieldDoc.java ! src/share/classes/com/sun/javadoc/LanguageVersion.java ! src/share/classes/com/sun/javadoc/MemberDoc.java ! src/share/classes/com/sun/javadoc/MethodDoc.java ! src/share/classes/com/sun/javadoc/PackageDoc.java ! src/share/classes/com/sun/javadoc/ParamTag.java ! src/share/classes/com/sun/javadoc/Parameter.java ! src/share/classes/com/sun/javadoc/ParameterizedType.java ! src/share/classes/com/sun/javadoc/ProgramElementDoc.java ! src/share/classes/com/sun/javadoc/RootDoc.java ! src/share/classes/com/sun/javadoc/SeeTag.java ! src/share/classes/com/sun/javadoc/SerialFieldTag.java ! src/share/classes/com/sun/javadoc/SourcePosition.java ! src/share/classes/com/sun/javadoc/Tag.java ! src/share/classes/com/sun/javadoc/ThrowsTag.java ! src/share/classes/com/sun/javadoc/Type.java ! src/share/classes/com/sun/javadoc/TypeVariable.java ! src/share/classes/com/sun/javadoc/WildcardType.java ! src/share/classes/com/sun/javadoc/package.html ! src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java ! src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java ! src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java ! src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java ! src/share/classes/com/sun/mirror/apt/AnnotationProcessors.java ! src/share/classes/com/sun/mirror/apt/Filer.java ! src/share/classes/com/sun/mirror/apt/Messager.java ! src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java ! src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java ! src/share/classes/com/sun/mirror/apt/RoundState.java ! src/share/classes/com/sun/mirror/apt/package-info.java ! src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java ! src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java ! src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java ! src/share/classes/com/sun/mirror/declaration/AnnotationValue.java ! src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java ! src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java ! src/share/classes/com/sun/mirror/declaration/Declaration.java ! src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java ! src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java ! src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java ! src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java ! src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java ! src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java ! src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java ! src/share/classes/com/sun/mirror/declaration/Modifier.java ! src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java ! src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java ! src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java ! src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java ! src/share/classes/com/sun/mirror/declaration/package-info.java ! src/share/classes/com/sun/mirror/overview.html ! src/share/classes/com/sun/mirror/type/AnnotationType.java ! src/share/classes/com/sun/mirror/type/ArrayType.java ! src/share/classes/com/sun/mirror/type/ClassType.java ! src/share/classes/com/sun/mirror/type/DeclaredType.java ! src/share/classes/com/sun/mirror/type/EnumType.java ! src/share/classes/com/sun/mirror/type/InterfaceType.java ! src/share/classes/com/sun/mirror/type/MirroredTypeException.java ! src/share/classes/com/sun/mirror/type/MirroredTypesException.java ! src/share/classes/com/sun/mirror/type/PrimitiveType.java ! src/share/classes/com/sun/mirror/type/ReferenceType.java ! src/share/classes/com/sun/mirror/type/TypeMirror.java ! src/share/classes/com/sun/mirror/type/TypeVariable.java ! src/share/classes/com/sun/mirror/type/VoidType.java ! src/share/classes/com/sun/mirror/type/WildcardType.java ! src/share/classes/com/sun/mirror/type/package-info.java ! src/share/classes/com/sun/mirror/util/DeclarationFilter.java ! src/share/classes/com/sun/mirror/util/DeclarationScanner.java ! src/share/classes/com/sun/mirror/util/DeclarationVisitor.java ! src/share/classes/com/sun/mirror/util/DeclarationVisitors.java ! src/share/classes/com/sun/mirror/util/Declarations.java ! src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java ! src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java ! src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java ! src/share/classes/com/sun/mirror/util/SourcePosition.java ! src/share/classes/com/sun/mirror/util/TypeVisitor.java ! src/share/classes/com/sun/mirror/util/Types.java ! src/share/classes/com/sun/mirror/util/package-info.java ! src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java ! src/share/classes/com/sun/source/tree/AnnotationTree.java ! src/share/classes/com/sun/source/tree/ArrayAccessTree.java ! src/share/classes/com/sun/source/tree/ArrayTypeTree.java ! src/share/classes/com/sun/source/tree/AssertTree.java ! src/share/classes/com/sun/source/tree/AssignmentTree.java ! src/share/classes/com/sun/source/tree/BinaryTree.java ! src/share/classes/com/sun/source/tree/BlockTree.java ! src/share/classes/com/sun/source/tree/BreakTree.java ! src/share/classes/com/sun/source/tree/CaseTree.java ! src/share/classes/com/sun/source/tree/CatchTree.java ! src/share/classes/com/sun/source/tree/ClassTree.java ! src/share/classes/com/sun/source/tree/CompilationUnitTree.java ! src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java ! src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java ! src/share/classes/com/sun/source/tree/ContinueTree.java ! src/share/classes/com/sun/source/tree/DoWhileLoopTree.java ! src/share/classes/com/sun/source/tree/EmptyStatementTree.java ! src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java ! src/share/classes/com/sun/source/tree/ErroneousTree.java ! src/share/classes/com/sun/source/tree/ExpressionStatementTree.java ! src/share/classes/com/sun/source/tree/ExpressionTree.java ! src/share/classes/com/sun/source/tree/ForLoopTree.java ! src/share/classes/com/sun/source/tree/IdentifierTree.java ! src/share/classes/com/sun/source/tree/IfTree.java ! src/share/classes/com/sun/source/tree/ImportTree.java ! src/share/classes/com/sun/source/tree/InstanceOfTree.java ! src/share/classes/com/sun/source/tree/LabeledStatementTree.java ! src/share/classes/com/sun/source/tree/LineMap.java ! src/share/classes/com/sun/source/tree/LiteralTree.java ! src/share/classes/com/sun/source/tree/MemberSelectTree.java ! src/share/classes/com/sun/source/tree/MethodInvocationTree.java ! src/share/classes/com/sun/source/tree/MethodTree.java ! src/share/classes/com/sun/source/tree/ModifiersTree.java ! src/share/classes/com/sun/source/tree/NewArrayTree.java ! src/share/classes/com/sun/source/tree/NewClassTree.java ! src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java ! src/share/classes/com/sun/source/tree/ParenthesizedTree.java ! src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java ! src/share/classes/com/sun/source/tree/ReturnTree.java ! src/share/classes/com/sun/source/tree/Scope.java ! src/share/classes/com/sun/source/tree/StatementTree.java ! src/share/classes/com/sun/source/tree/SwitchTree.java ! src/share/classes/com/sun/source/tree/SynchronizedTree.java ! src/share/classes/com/sun/source/tree/ThrowTree.java ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/tree/TryTree.java ! src/share/classes/com/sun/source/tree/TypeCastTree.java ! src/share/classes/com/sun/source/tree/TypeParameterTree.java ! src/share/classes/com/sun/source/tree/UnaryTree.java ! src/share/classes/com/sun/source/tree/VariableTree.java ! src/share/classes/com/sun/source/tree/WhileLoopTree.java ! src/share/classes/com/sun/source/tree/WildcardTree.java ! src/share/classes/com/sun/source/tree/package-info.java ! src/share/classes/com/sun/source/util/AbstractTypeProcessor.java ! src/share/classes/com/sun/source/util/JavacTask.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/SourcePositions.java ! src/share/classes/com/sun/source/util/TaskEvent.java ! src/share/classes/com/sun/source/util/TaskListener.java ! src/share/classes/com/sun/source/util/TreePath.java ! src/share/classes/com/sun/source/util/TreePathScanner.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/source/util/Trees.java ! src/share/classes/com/sun/source/util/package-info.java ! src/share/classes/com/sun/tools/apt/Main.java ! src/share/classes/com/sun/tools/apt/comp/AnnotationProcessingError.java ! src/share/classes/com/sun/tools/apt/comp/Apt.java ! src/share/classes/com/sun/tools/apt/comp/BootstrapAPF.java ! src/share/classes/com/sun/tools/apt/comp/PrintAP.java ! src/share/classes/com/sun/tools/apt/comp/UsageMessageNeededException.java ! src/share/classes/com/sun/tools/apt/main/CommandLine.java ! src/share/classes/com/sun/tools/apt/main/JavaCompiler.java ! src/share/classes/com/sun/tools/apt/main/Main.java ! src/share/classes/com/sun/tools/apt/mirror/AptEnv.java ! src/share/classes/com/sun/tools/apt/mirror/apt/AnnotationProcessorEnvironmentImpl.java ! src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java ! src/share/classes/com/sun/tools/apt/mirror/apt/MessagerImpl.java ! src/share/classes/com/sun/tools/apt/mirror/apt/RoundCompleteEventImpl.java ! src/share/classes/com/sun/tools/apt/mirror/apt/RoundStateImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationMirrorImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeElementDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationValueImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/ClassDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/Constants.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/ConstructorDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationMaker.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/EnumConstantDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/EnumDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/ExecutableDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/FieldDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/InterfaceDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/MemberDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/MethodDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/PackageDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/ParameterDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/TypeDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/declaration/TypeParameterDeclarationImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/AnnotationTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/ArrayTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/ClassTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/DeclaredTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/EnumTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/InterfaceTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/PrimitiveTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/TypeMaker.java ! src/share/classes/com/sun/tools/apt/mirror/type/TypeMirrorImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/TypeVariableImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/VoidTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/type/WildcardTypeImpl.java ! src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java ! src/share/classes/com/sun/tools/apt/mirror/util/SourcePositionImpl.java ! src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java ! src/share/classes/com/sun/tools/apt/resources/apt.properties ! src/share/classes/com/sun/tools/apt/resources/apt_ja.properties ! src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties ! src/share/classes/com/sun/tools/apt/util/Bark.java ! src/share/classes/com/sun/tools/classfile/AccessFlags.java ! src/share/classes/com/sun/tools/classfile/Annotation.java ! src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java ! src/share/classes/com/sun/tools/classfile/Attribute.java ! src/share/classes/com/sun/tools/classfile/AttributeException.java ! src/share/classes/com/sun/tools/classfile/Attributes.java ! src/share/classes/com/sun/tools/classfile/CharacterRangeTable_attribute.java ! src/share/classes/com/sun/tools/classfile/ClassFile.java ! src/share/classes/com/sun/tools/classfile/ClassReader.java ! src/share/classes/com/sun/tools/classfile/ClassTranslator.java ! src/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/share/classes/com/sun/tools/classfile/Code_attribute.java ! src/share/classes/com/sun/tools/classfile/CompilationID_attribute.java ! src/share/classes/com/sun/tools/classfile/ConstantPool.java ! src/share/classes/com/sun/tools/classfile/ConstantPoolException.java ! src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java ! src/share/classes/com/sun/tools/classfile/DefaultAttribute.java ! src/share/classes/com/sun/tools/classfile/Dependencies.java ! src/share/classes/com/sun/tools/classfile/Dependency.java ! src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java ! src/share/classes/com/sun/tools/classfile/Descriptor.java ! src/share/classes/com/sun/tools/classfile/DescriptorException.java ! src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java ! src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java ! src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java ! src/share/classes/com/sun/tools/classfile/Field.java ! src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java ! src/share/classes/com/sun/tools/classfile/Instruction.java ! src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java ! src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java ! src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java ! src/share/classes/com/sun/tools/classfile/Method.java ! src/share/classes/com/sun/tools/classfile/Opcode.java ! src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeInvisibleTypeAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeTypeAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/RuntimeVisibleTypeAnnotations_attribute.java ! src/share/classes/com/sun/tools/classfile/Signature.java ! src/share/classes/com/sun/tools/classfile/Signature_attribute.java ! src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java ! src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java ! src/share/classes/com/sun/tools/classfile/SourceID_attribute.java ! src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java ! src/share/classes/com/sun/tools/classfile/StackMap_attribute.java ! src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java ! src/share/classes/com/sun/tools/classfile/Type.java ! src/share/classes/com/sun/tools/doclets/Taglet.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkOutputImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/StylesheetWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/TagletOutputImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/WriterFactoryImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/package.html ! src/share/classes/com/sun/tools/doclets/formats/html/package.html ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeOptionalMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/ConstructorWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/EnumConstantWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/FieldWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/MethodWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/NestedClassWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/BuilderFactory.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package.html ! src/share/classes/com/sun/tools/doclets/internal/toolkit/package.html ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseExecutableMemberTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseInlineTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DocRootTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritDocTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritableTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SimpleTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletOutput.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package.html ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMapper.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/CommentedMethodFinder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DirectoryManager.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletAbortException.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletConstants.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MessageRetriever.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodFinder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourcePath.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/SourceToHTMLConverter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/TaggedMethodFinder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/TextTag.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkInfo.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkOutput.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package.html ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/package.html ! src/share/classes/com/sun/tools/doclets/package.html ! src/share/classes/com/sun/tools/doclets/standard/Standard.java ! src/share/classes/com/sun/tools/javac/Launcher.java ! src/share/classes/com/sun/tools/javac/Main.java ! src/share/classes/com/sun/tools/javac/Server.java ! src/share/classes/com/sun/tools/javac/api/DiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/api/Formattable.java ! src/share/classes/com/sun/tools/javac/api/JavacScope.java ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/api/JavacTool.java ! src/share/classes/com/sun/tools/javac/api/JavacTrees.java ! src/share/classes/com/sun/tools/javac/api/Messages.java ! src/share/classes/com/sun/tools/javac/api/WrappingJavaFileManager.java ! src/share/classes/com/sun/tools/javac/code/Attribute.java ! src/share/classes/com/sun/tools/javac/code/BoundKind.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Kinds.java ! src/share/classes/com/sun/tools/javac/code/Lint.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Scope.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/TargetType.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/code/TypeTags.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/share/classes/com/sun/tools/javac/comp/AttrContextEnv.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/ConstFold.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Env.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/Todo.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/file/BaseFileObject.java ! src/share/classes/com/sun/tools/javac/file/CacheFSInfo.java ! src/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/share/classes/com/sun/tools/javac/file/Paths.java ! src/share/classes/com/sun/tools/javac/file/RegularFileObject.java ! src/share/classes/com/sun/tools/javac/file/RelativePath.java ! src/share/classes/com/sun/tools/javac/file/SymbolArchive.java ! src/share/classes/com/sun/tools/javac/file/ZipArchive.java ! src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java ! src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java ! src/share/classes/com/sun/tools/javac/jvm/ByteCodes.java ! src/share/classes/com/sun/tools/javac/jvm/CRTFlags.java ! src/share/classes/com/sun/tools/javac/jvm/CRTable.java ! src/share/classes/com/sun/tools/javac/jvm/ClassFile.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Code.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/jvm/Items.java ! src/share/classes/com/sun/tools/javac/jvm/Pool.java ! src/share/classes/com/sun/tools/javac/jvm/Target.java ! src/share/classes/com/sun/tools/javac/jvm/UninitializedType.java ! src/share/classes/com/sun/tools/javac/main/CommandLine.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/main/JavacOption.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/main/OptionName.java ! src/share/classes/com/sun/tools/javac/main/RecognizedOptions.java ! src/share/classes/com/sun/tools/javac/model/AnnotationProxyMaker.java ! src/share/classes/com/sun/tools/javac/model/FilteredMemberList.java ! src/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/share/classes/com/sun/tools/javac/model/JavacSourcePosition.java ! src/share/classes/com/sun/tools/javac/model/JavacTypes.java ! src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java ! src/share/classes/com/sun/tools/javac/nio/PathFileManager.java ! src/share/classes/com/sun/tools/javac/nio/PathFileObject.java ! src/share/classes/com/sun/tools/javac/parser/DocCommentScanner.java ! src/share/classes/com/sun/tools/javac/parser/EndPosParser.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/parser/Keywords.java ! src/share/classes/com/sun/tools/javac/parser/Lexer.java ! src/share/classes/com/sun/tools/javac/parser/Parser.java ! src/share/classes/com/sun/tools/javac/parser/ParserFactory.java ! src/share/classes/com/sun/tools/javac/parser/Scanner.java ! src/share/classes/com/sun/tools/javac/parser/Token.java ! src/share/classes/com/sun/tools/javac/processing/AnnotationProcessingError.java ! src/share/classes/com/sun/tools/javac/processing/JavacFiler.java ! src/share/classes/com/sun/tools/javac/processing/JavacMessager.java ! src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java ! src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java ! src/share/classes/com/sun/tools/javac/processing/ServiceProxy.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/javac.properties ! src/share/classes/com/sun/tools/javac/resources/javac_ja.properties ! src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/legacy.properties ! src/share/classes/com/sun/tools/javac/resources/version.properties-template ! src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java ! src/share/classes/com/sun/tools/javac/util/Abort.java ! src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/AbstractLog.java ! src/share/classes/com/sun/tools/javac/util/BaseFileManager.java ! src/share/classes/com/sun/tools/javac/util/BasicDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/Bits.java ! src/share/classes/com/sun/tools/javac/util/ByteBuffer.java ! src/share/classes/com/sun/tools/javac/util/ClientCodeException.java ! src/share/classes/com/sun/tools/javac/util/CloseableURLClassLoader.java ! src/share/classes/com/sun/tools/javac/util/Constants.java ! src/share/classes/com/sun/tools/javac/util/Context.java ! src/share/classes/com/sun/tools/javac/util/Convert.java ! src/share/classes/com/sun/tools/javac/util/DiagnosticSource.java ! src/share/classes/com/sun/tools/javac/util/FatalError.java ! src/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java ! src/share/classes/com/sun/tools/javac/util/JavacMessages.java ! src/share/classes/com/sun/tools/javac/util/LayoutCharacters.java ! src/share/classes/com/sun/tools/javac/util/List.java ! src/share/classes/com/sun/tools/javac/util/ListBuffer.java ! src/share/classes/com/sun/tools/javac/util/Log.java ! src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java ! src/share/classes/com/sun/tools/javac/util/Name.java ! src/share/classes/com/sun/tools/javac/util/Names.java ! src/share/classes/com/sun/tools/javac/util/Options.java ! src/share/classes/com/sun/tools/javac/util/Pair.java ! src/share/classes/com/sun/tools/javac/util/Position.java ! src/share/classes/com/sun/tools/javac/util/PropagatedException.java ! src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/SharedNameTable.java ! src/share/classes/com/sun/tools/javac/util/UnsharedNameTable.java ! src/share/classes/com/sun/tools/javac/util/Warner.java ! src/share/classes/com/sun/tools/javadoc/AbstractTypeImpl.java ! src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java ! src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java ! src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java ! src/share/classes/com/sun/tools/javadoc/AnnotationValueImpl.java ! src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java ! src/share/classes/com/sun/tools/javadoc/Comment.java ! src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java ! src/share/classes/com/sun/tools/javadoc/DocEnv.java ! src/share/classes/com/sun/tools/javadoc/DocImpl.java ! src/share/classes/com/sun/tools/javadoc/DocLocale.java ! src/share/classes/com/sun/tools/javadoc/DocletInvoker.java ! src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java ! src/share/classes/com/sun/tools/javadoc/FieldDocImpl.java ! src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java ! src/share/classes/com/sun/tools/javadoc/JavadocEnter.java ! src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java ! src/share/classes/com/sun/tools/javadoc/JavadocTodo.java ! src/share/classes/com/sun/tools/javadoc/JavadocTool.java ! src/share/classes/com/sun/tools/javadoc/Main.java ! src/share/classes/com/sun/tools/javadoc/MemberDocImpl.java ! src/share/classes/com/sun/tools/javadoc/Messager.java ! src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java ! src/share/classes/com/sun/tools/javadoc/ModifierFilter.java ! src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java ! src/share/classes/com/sun/tools/javadoc/ParamTagImpl.java ! src/share/classes/com/sun/tools/javadoc/ParameterImpl.java ! src/share/classes/com/sun/tools/javadoc/ParameterizedTypeImpl.java ! src/share/classes/com/sun/tools/javadoc/PrimitiveType.java ! src/share/classes/com/sun/tools/javadoc/ProgramElementDocImpl.java ! src/share/classes/com/sun/tools/javadoc/RootDocImpl.java ! src/share/classes/com/sun/tools/javadoc/SeeTagImpl.java ! src/share/classes/com/sun/tools/javadoc/SerialFieldTagImpl.java ! src/share/classes/com/sun/tools/javadoc/SerializedForm.java ! src/share/classes/com/sun/tools/javadoc/SourcePositionImpl.java ! src/share/classes/com/sun/tools/javadoc/Start.java ! src/share/classes/com/sun/tools/javadoc/TagImpl.java ! src/share/classes/com/sun/tools/javadoc/ThrowsTagImpl.java ! src/share/classes/com/sun/tools/javadoc/TypeMaker.java ! src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java ! src/share/classes/com/sun/tools/javadoc/WildcardTypeImpl.java ! src/share/classes/com/sun/tools/javadoc/resources/javadoc.properties ! src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties ! src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties ! src/share/classes/com/sun/tools/javah/Gen.java ! src/share/classes/com/sun/tools/javah/InternalError.java ! src/share/classes/com/sun/tools/javah/JNI.java ! src/share/classes/com/sun/tools/javah/JavahFileManager.java ! src/share/classes/com/sun/tools/javah/JavahTask.java ! src/share/classes/com/sun/tools/javah/JavahTool.java ! src/share/classes/com/sun/tools/javah/LLNI.java ! src/share/classes/com/sun/tools/javah/Main.java ! src/share/classes/com/sun/tools/javah/Mangle.java ! src/share/classes/com/sun/tools/javah/NativeHeaderTool.java ! src/share/classes/com/sun/tools/javah/TypeSignature.java ! src/share/classes/com/sun/tools/javah/Util.java ! src/share/classes/com/sun/tools/javah/resources/l10n.properties ! src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties ! src/share/classes/com/sun/tools/javah/resources/l10n_zh_CN.properties ! src/share/classes/com/sun/tools/javap/AnnotationWriter.java ! src/share/classes/com/sun/tools/javap/AttributeWriter.java ! src/share/classes/com/sun/tools/javap/BasicWriter.java ! src/share/classes/com/sun/tools/javap/ClassWriter.java ! src/share/classes/com/sun/tools/javap/CodeWriter.java ! src/share/classes/com/sun/tools/javap/ConstantWriter.java ! src/share/classes/com/sun/tools/javap/Context.java ! src/share/classes/com/sun/tools/javap/DisassemblerTool.java ! src/share/classes/com/sun/tools/javap/InstructionDetailWriter.java ! src/share/classes/com/sun/tools/javap/InternalError.java ! src/share/classes/com/sun/tools/javap/JavapFileManager.java ! src/share/classes/com/sun/tools/javap/JavapTask.java ! src/share/classes/com/sun/tools/javap/LocalVariableTableWriter.java ! src/share/classes/com/sun/tools/javap/LocalVariableTypeTableWriter.java ! src/share/classes/com/sun/tools/javap/Main.java ! src/share/classes/com/sun/tools/javap/Messages.java ! src/share/classes/com/sun/tools/javap/Options.java ! src/share/classes/com/sun/tools/javap/SourceWriter.java ! src/share/classes/com/sun/tools/javap/StackMapWriter.java ! src/share/classes/com/sun/tools/javap/TryBlockWriter.java ! src/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java ! src/share/classes/com/sun/tools/javap/resources/version.properties-template ! src/share/classes/javax/annotation/processing/AbstractProcessor.java ! src/share/classes/javax/annotation/processing/Completion.java ! src/share/classes/javax/annotation/processing/Completions.java ! src/share/classes/javax/annotation/processing/Filer.java ! src/share/classes/javax/annotation/processing/FilerException.java ! src/share/classes/javax/annotation/processing/Messager.java ! src/share/classes/javax/annotation/processing/ProcessingEnvironment.java ! src/share/classes/javax/annotation/processing/Processor.java ! src/share/classes/javax/annotation/processing/RoundEnvironment.java ! src/share/classes/javax/annotation/processing/SupportedAnnotationTypes.java ! src/share/classes/javax/annotation/processing/SupportedOptions.java ! src/share/classes/javax/annotation/processing/SupportedSourceVersion.java ! src/share/classes/javax/annotation/processing/package-info.java ! src/share/classes/javax/lang/model/SourceVersion.java ! src/share/classes/javax/lang/model/UnknownEntityException.java ! src/share/classes/javax/lang/model/element/AnnotationMirror.java ! src/share/classes/javax/lang/model/element/AnnotationValue.java ! src/share/classes/javax/lang/model/element/AnnotationValueVisitor.java ! src/share/classes/javax/lang/model/element/Element.java ! src/share/classes/javax/lang/model/element/ElementKind.java ! src/share/classes/javax/lang/model/element/ElementVisitor.java ! src/share/classes/javax/lang/model/element/ExecutableElement.java ! src/share/classes/javax/lang/model/element/Modifier.java ! src/share/classes/javax/lang/model/element/Name.java ! src/share/classes/javax/lang/model/element/NestingKind.java ! src/share/classes/javax/lang/model/element/PackageElement.java ! src/share/classes/javax/lang/model/element/Parameterizable.java ! src/share/classes/javax/lang/model/element/QualifiedNameable.java ! src/share/classes/javax/lang/model/element/TypeElement.java ! src/share/classes/javax/lang/model/element/TypeParameterElement.java ! src/share/classes/javax/lang/model/element/UnknownAnnotationValueException.java ! src/share/classes/javax/lang/model/element/UnknownElementException.java ! src/share/classes/javax/lang/model/element/VariableElement.java ! src/share/classes/javax/lang/model/element/package-info.java ! src/share/classes/javax/lang/model/overview.html ! src/share/classes/javax/lang/model/package-info.java ! src/share/classes/javax/lang/model/type/ArrayType.java ! src/share/classes/javax/lang/model/type/DeclaredType.java ! src/share/classes/javax/lang/model/type/ErrorType.java ! src/share/classes/javax/lang/model/type/ExecutableType.java ! src/share/classes/javax/lang/model/type/MirroredTypeException.java ! src/share/classes/javax/lang/model/type/MirroredTypesException.java ! src/share/classes/javax/lang/model/type/NoType.java ! src/share/classes/javax/lang/model/type/NullType.java ! src/share/classes/javax/lang/model/type/PrimitiveType.java ! src/share/classes/javax/lang/model/type/ReferenceType.java ! src/share/classes/javax/lang/model/type/TypeKind.java ! src/share/classes/javax/lang/model/type/TypeMirror.java ! src/share/classes/javax/lang/model/type/TypeVariable.java ! src/share/classes/javax/lang/model/type/TypeVisitor.java ! src/share/classes/javax/lang/model/type/UnknownTypeException.java ! src/share/classes/javax/lang/model/type/WildcardType.java ! src/share/classes/javax/lang/model/type/package-info.java ! src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor6.java ! src/share/classes/javax/lang/model/util/AbstractElementVisitor6.java ! src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java ! src/share/classes/javax/lang/model/util/ElementFilter.java ! src/share/classes/javax/lang/model/util/ElementKindVisitor6.java ! src/share/classes/javax/lang/model/util/ElementScanner6.java ! src/share/classes/javax/lang/model/util/Elements.java ! src/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor6.java ! src/share/classes/javax/lang/model/util/SimpleElementVisitor6.java ! src/share/classes/javax/lang/model/util/SimpleTypeVisitor6.java ! src/share/classes/javax/lang/model/util/TypeKindVisitor6.java ! src/share/classes/javax/lang/model/util/Types.java ! src/share/classes/javax/lang/model/util/package-info.java ! src/share/classes/javax/tools/Diagnostic.java ! src/share/classes/javax/tools/DiagnosticCollector.java ! src/share/classes/javax/tools/DiagnosticListener.java ! src/share/classes/javax/tools/FileObject.java ! src/share/classes/javax/tools/ForwardingFileObject.java ! src/share/classes/javax/tools/ForwardingJavaFileManager.java ! src/share/classes/javax/tools/ForwardingJavaFileObject.java ! src/share/classes/javax/tools/JavaCompiler.java ! src/share/classes/javax/tools/JavaFileManager.java ! src/share/classes/javax/tools/JavaFileObject.java ! src/share/classes/javax/tools/OptionChecker.java ! src/share/classes/javax/tools/SimpleJavaFileObject.java ! src/share/classes/javax/tools/StandardJavaFileManager.java ! src/share/classes/javax/tools/StandardLocation.java ! src/share/classes/javax/tools/Tool.java ! src/share/classes/javax/tools/ToolProvider.java ! src/share/classes/javax/tools/package-info.java ! src/share/sample/javac/processing/src/CheckNamesProcessor.java ! test/com/sun/javadoc/5093723/DocumentedClass.java ! test/com/sun/javadoc/5093723/T5093723.java ! test/com/sun/javadoc/5093723/UndocumentedClass.java ! test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java ! test/com/sun/javadoc/AccessAsciiArt/p1/C.java ! test/com/sun/javadoc/AccessAsciiArt/p1/I.java ! test/com/sun/javadoc/AccessAsciiArt/p1/SC.java ! test/com/sun/javadoc/AccessAsciiArt/p1/SI.java ! test/com/sun/javadoc/AccessAsciiArt/p1/subpkg/SSC.java ! test/com/sun/javadoc/AccessFrameTitle/AccessFrameTitle.java ! test/com/sun/javadoc/AccessFrameTitle/p1/C1.java ! test/com/sun/javadoc/AccessFrameTitle/p2/C2.java ! test/com/sun/javadoc/AccessH1/AccessH1.java ! test/com/sun/javadoc/AccessH1/p1/C.java ! test/com/sun/javadoc/AccessH1/p2/C2.java ! test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java ! test/com/sun/javadoc/AccessSkipNav/p1/C1.java ! test/com/sun/javadoc/AccessSkipNav/p2/C2.java ! test/com/sun/javadoc/AccessSummary/AccessSummary.java ! test/com/sun/javadoc/AccessSummary/p1/C1.java ! test/com/sun/javadoc/AccessSummary/p2/C2.java ! test/com/sun/javadoc/AuthorDD/AuthorDD.java ! test/com/sun/javadoc/AuthorDD/p1/C1.java ! test/com/sun/javadoc/DocRootSlash/DocRootSlash.java ! test/com/sun/javadoc/DocRootSlash/p1/C1.java ! test/com/sun/javadoc/DocRootSlash/p2/C2.java ! test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java ! test/com/sun/javadoc/JavascriptWinTitle/p1/C.java ! test/com/sun/javadoc/JavascriptWinTitle/p2/C2.java ! test/com/sun/javadoc/MetaTag/MetaTag.java ! test/com/sun/javadoc/MetaTag/p1/C1.java ! test/com/sun/javadoc/MetaTag/p2/C2.java ! test/com/sun/javadoc/PackagesHeader/PackagesHeader.java ! test/com/sun/javadoc/PackagesHeader/p1/C1.java ! test/com/sun/javadoc/PackagesHeader/p2/C2.java ! test/com/sun/javadoc/ValidHtml/ValidHtml.java ! test/com/sun/javadoc/ValidHtml/p1/C.java ! test/com/sun/javadoc/ValidHtml/p2/C2.java ! test/com/sun/javadoc/VersionNumber/VersionNumber.java ! test/com/sun/javadoc/VersionNumber/p1/C.java ! test/com/sun/javadoc/WindowTitles/WindowTitles.java ! test/com/sun/javadoc/WindowTitles/p1/C1.java ! test/com/sun/javadoc/WindowTitles/p2/C2.java ! test/com/sun/javadoc/_template/Template.java ! test/com/sun/javadoc/_template/TemplateComplete.java ! test/com/sun/javadoc/constantValues/A.java ! test/com/sun/javadoc/constantValues/TestConstantValues.java ! test/com/sun/javadoc/constantValues/TestConstantValues2.java ! test/com/sun/javadoc/constantValues/TestConstantValuesDriver.java ! test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java ! test/com/sun/javadoc/lib/JavadocTester.java ! test/com/sun/javadoc/testAbsLinkPath/TestAbsLinkPath.java ! test/com/sun/javadoc/testAbsLinkPath/pkg1/C1.java ! test/com/sun/javadoc/testAbsLinkPath/pkg2/C2.java ! test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java ! test/com/sun/javadoc/testAnnotationTypes/pkg/AnnotationType.java ! test/com/sun/javadoc/testBackSlashInLink/TestBackSlashInLink.java ! test/com/sun/javadoc/testBadPackageFileInJar/TestBadPackageFileInJar.java ! test/com/sun/javadoc/testBadPackageFileInJar/pkg/C.java ! test/com/sun/javadoc/testBadSourceFile/C1.java ! test/com/sun/javadoc/testBadSourceFile/C2.java ! test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java ! test/com/sun/javadoc/testBaseClass/Bar.java ! test/com/sun/javadoc/testBaseClass/BaseClass.java ! test/com/sun/javadoc/testBaseClass/TestBaseClass.java ! test/com/sun/javadoc/testBaseClass/baz/Foo.java ! test/com/sun/javadoc/testBreakIterator/TestBreakIterator.java ! test/com/sun/javadoc/testBreakIterator/pkg/BreakIteratorTest.java ! test/com/sun/javadoc/testCRLineSeparator/TestCRLineSeparator.java ! test/com/sun/javadoc/testCRLineSeparator/pkg/MyClass.java ! test/com/sun/javadoc/testClassCrossReferences/C.java ! test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java ! test/com/sun/javadoc/testClassTree/TestClassTree.java ! test/com/sun/javadoc/testClassTree/pkg/AnnotationType.java ! test/com/sun/javadoc/testClassTree/pkg/ChildClass.java ! test/com/sun/javadoc/testClassTree/pkg/Coin.java ! test/com/sun/javadoc/testClassTree/pkg/ParentClass.java ! test/com/sun/javadoc/testCmndLineClass/C5.java ! test/com/sun/javadoc/testCmndLineClass/TestCmndLineClass.java ! test/com/sun/javadoc/testCmndLineClass/pkg1/C1.java ! test/com/sun/javadoc/testCmndLineClass/pkg1/C2.java ! test/com/sun/javadoc/testCmndLineClass/pkg2/C3.java ! test/com/sun/javadoc/testCmndLineClass/pkg2/C4.java ! test/com/sun/javadoc/testConstantValuesPage/TestConstantValuesPage.java ! test/com/sun/javadoc/testConstructorIndent/C.java ! test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java ! test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/DeprecatedClassByAnnotation.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/TestAnnotationType.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/TestClass.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/TestEnum.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/TestError.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/TestException.java ! test/com/sun/javadoc/testDeprecatedDocs/pkg/TestInterface.java ! test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java ! test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java ! test/com/sun/javadoc/testDocFileDir/pkg/C.java ! test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java ! test/com/sun/javadoc/testDocRootInlineTag/TestDocRootTag.java ! test/com/sun/javadoc/testDocRootInlineTag/pkg/C.java ! test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java ! test/com/sun/javadoc/testDupParamWarn/pkg/Bar.java ! test/com/sun/javadoc/testDupParamWarn/pkg/Foo.java ! test/com/sun/javadoc/testEmptyClass/TestEmptyClass.java ! test/com/sun/javadoc/testEmptyClass/src/Empty.java ! test/com/sun/javadoc/testEnclosingClass/TestEnclosingClass.java ! test/com/sun/javadoc/testEnclosingClass/pkg/MyClass.java ! test/com/sun/javadoc/testEncoding/EncodeTest.java ! test/com/sun/javadoc/testEncoding/TestEncoding.java ! test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java ! test/com/sun/javadoc/testExternalOverridenMethod/pkg/XReader.java ! test/com/sun/javadoc/testGroupOption/TestGroupOption.java ! test/com/sun/javadoc/testGroupOption/pkg1/C.java ! test/com/sun/javadoc/testGroupOption/pkg2/C.java ! test/com/sun/javadoc/testGroupOption/pkg3/C.java ! test/com/sun/javadoc/testHeadings/TestHeadings.java ! test/com/sun/javadoc/testHeadings/pkg1/C1.java ! test/com/sun/javadoc/testHeadings/pkg2/C2.java ! test/com/sun/javadoc/testHelpOption/TestHelpOption.java ! test/com/sun/javadoc/testHiddenMembers/TestHiddenMembers.java ! test/com/sun/javadoc/testHiddenMembers/pkg/BaseClass.java ! test/com/sun/javadoc/testHiddenMembers/pkg/SubClass.java ! test/com/sun/javadoc/testHref/TestHref.java ! test/com/sun/javadoc/testHref/pkg/C1.java ! test/com/sun/javadoc/testHref/pkg/C2.java ! test/com/sun/javadoc/testHref/pkg/C3.java ! test/com/sun/javadoc/testHref/pkg/C4.java ! test/com/sun/javadoc/testHrefInDocComment/TestHrefInDocComment.java ! test/com/sun/javadoc/testHrefInDocComment/pkg/I1.java ! test/com/sun/javadoc/testHrefInDocComment/pkg/I2.java ! test/com/sun/javadoc/testHtmlComments/C.java ! test/com/sun/javadoc/testHtmlComments/TestHtmlComments.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/package-info.java ! test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java ! test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java ! test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java ! test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java ! test/com/sun/javadoc/testHtmlTableTags/pkg1/C1.java ! test/com/sun/javadoc/testHtmlTableTags/pkg1/I1.java ! test/com/sun/javadoc/testHtmlTableTags/pkg1/package-info.java ! test/com/sun/javadoc/testHtmlTableTags/pkg2/C2.java ! test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java ! test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java ! test/com/sun/javadoc/testHtmlTableTags/pkg2/package-info.java ! test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java ! test/com/sun/javadoc/testHtmlTag/pkg1/C1.java ! test/com/sun/javadoc/testHtmlTag/pkg2/C2.java ! test/com/sun/javadoc/testIndex/NoPackage.java ! test/com/sun/javadoc/testIndex/TestIndex.java ! test/com/sun/javadoc/testIndex/pkg/AnnotationType.java ! test/com/sun/javadoc/testIndex/pkg/C.java ! test/com/sun/javadoc/testIndex/pkg/Coin.java ! test/com/sun/javadoc/testIndex/pkg/Interface.java ! test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java ! test/com/sun/javadoc/testInlineLinkLabel/pkg/C1.java ! test/com/sun/javadoc/testInlineLinkLabel/pkg/C2.java ! test/com/sun/javadoc/testInterface/TestInterface.java ! test/com/sun/javadoc/testInterface/pkg/Child.java ! test/com/sun/javadoc/testInterface/pkg/Interface.java ! test/com/sun/javadoc/testInterface/pkg/Parent.java ! test/com/sun/javadoc/testJavascript/TestJavascript.java ! test/com/sun/javadoc/testJavascript/pkg/C.java ! test/com/sun/javadoc/testLeadingSpaces/LeadingSpaces.java ! test/com/sun/javadoc/testLegacyTaglet/C.java ! test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java ! test/com/sun/javadoc/testLegacyTaglet/ToDoTaglet.java ! test/com/sun/javadoc/testLegacyTaglet/UnderlineTaglet.java ! test/com/sun/javadoc/testLinkOption/TestBadLinkOption.java ! test/com/sun/javadoc/testLinkOption/TestLinkOption.java ! test/com/sun/javadoc/testLinkOption/TestNewLineInLink.java ! test/com/sun/javadoc/testLinkOption/java/lang/StringBuilderChild.java ! test/com/sun/javadoc/testLinkOption/pkg/C.java ! test/com/sun/javadoc/testLinkOption/pkg2/C2.java ! test/com/sun/javadoc/testLinkOption/testNewLineInLink/C.java ! test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java ! test/com/sun/javadoc/testLinkTaglet/checkPkg/A.java ! test/com/sun/javadoc/testLinkTaglet/checkPkg/B.java ! test/com/sun/javadoc/testLinkTaglet/pkg/C.java ! test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java ! test/com/sun/javadoc/testLinkToSerialForm/pkg/C.java ! test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java ! test/com/sun/javadoc/testMemberInheritence/diamond/A.java ! test/com/sun/javadoc/testMemberInheritence/diamond/B.java ! test/com/sun/javadoc/testMemberInheritence/diamond/C.java ! test/com/sun/javadoc/testMemberInheritence/diamond/X.java ! test/com/sun/javadoc/testMemberInheritence/diamond/Z.java ! test/com/sun/javadoc/testMemberInheritence/inheritDist/A.java ! test/com/sun/javadoc/testMemberInheritence/inheritDist/B.java ! test/com/sun/javadoc/testMemberInheritence/inheritDist/C.java ! test/com/sun/javadoc/testMemberInheritence/pkg/BaseClass.java ! test/com/sun/javadoc/testMemberInheritence/pkg/BaseInterface.java ! test/com/sun/javadoc/testMemberInheritence/pkg/SubClass.java ! test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java ! test/com/sun/javadoc/testMemberSummary/pkg/PrivateParent.java ! test/com/sun/javadoc/testMemberSummary/pkg/PublicChild.java ! test/com/sun/javadoc/testMemberSummary/pkg2/A.java ! test/com/sun/javadoc/testModifier/Interface.java ! test/com/sun/javadoc/testModifier/ModifierAbstract.java ! test/com/sun/javadoc/testModifier/Test.java ! test/com/sun/javadoc/testModifier/TestModifier.java ! test/com/sun/javadoc/testNavagation/TestNavagation.java ! test/com/sun/javadoc/testNavagation/pkg/A.java ! test/com/sun/javadoc/testNavagation/pkg/C.java ! test/com/sun/javadoc/testNavagation/pkg/E.java ! test/com/sun/javadoc/testNavagation/pkg/I.java ! test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java ! test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java ! test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java ! test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java ! test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationType.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUndocumented.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUsage.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/Coin.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/MultiTypeParameters.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/SubInterface.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/SuperInterface.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSubClass.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSuperClass.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameters.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/VarArgs.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/Wildcards.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg/package-info.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg1/A.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg1/B.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest1.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest2.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest3.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo2.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo3.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo4.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ParamTest.java ! test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ParamTest2.java ! test/com/sun/javadoc/testNoPackagesFile/C.java ! test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java ! test/com/sun/javadoc/testNotifications/TestNotifications.java ! test/com/sun/javadoc/testNotifications/pkg/C.java ! test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java ! test/com/sun/javadoc/testOverridenMethods/pkg1/BaseClass.java ! test/com/sun/javadoc/testOverridenMethods/pkg1/SubClass.java ! test/com/sun/javadoc/testOverridenMethods/pkg2/SubClass.java ! test/com/sun/javadoc/testOverridenMethods/pkg3/I0.java ! test/com/sun/javadoc/testOverridenMethods/pkg3/I1.java ! test/com/sun/javadoc/testOverridenMethods/pkg3/I2.java ! test/com/sun/javadoc/testOverridenMethods/pkg3/I3.java ! test/com/sun/javadoc/testOverridenMethods/pkg3/I4.java ! test/com/sun/javadoc/testPackagePage/TestPackagePage.java ! test/com/sun/javadoc/testPackagePage/com/pkg/C.java ! test/com/sun/javadoc/testPackagePage/pkg2/C.java ! test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java ! test/com/sun/javadoc/testParamTaglet/pkg/C.java ! test/com/sun/javadoc/testParamTaglet/pkg/Parent.java ! test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ! test/com/sun/javadoc/testPrivateClasses/pkg/PrivateInterface.java ! test/com/sun/javadoc/testPrivateClasses/pkg/PrivateParent.java ! test/com/sun/javadoc/testPrivateClasses/pkg/PublicChild.java ! test/com/sun/javadoc/testPrivateClasses/pkg/PublicInterface.java ! test/com/sun/javadoc/testPrivateClasses/pkg2/C.java ! test/com/sun/javadoc/testPrivateClasses/pkg2/I.java ! test/com/sun/javadoc/testRecurseSubPackages/TestRecurseSubPackages.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/C1.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/C2.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C3.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C4.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/packageToExclude/DummyClass.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/pkg3/C5.java ! test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/pkg3/C6.java ! test/com/sun/javadoc/testRelativeLinks/TestRelativeLinks.java ! test/com/sun/javadoc/testRelativeLinks/pkg/C.java ! test/com/sun/javadoc/testRelativeLinks/pkg2/Foo.java ! test/com/sun/javadoc/testReturnTag/TestReturnTag.java ! test/com/sun/javadoc/testSerialVersionUID/C.java ! test/com/sun/javadoc/testSerialVersionUID/TestSerialVersionUID.java ! test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java ! test/com/sun/javadoc/testSimpleTag/C.java ! test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java ! test/com/sun/javadoc/testSimpleTagExclude/DummyClass.java ! test/com/sun/javadoc/testSimpleTagExclude/TestSimpleTagExclude.java ! test/com/sun/javadoc/testSourceTab/DoubleTab/C.java ! test/com/sun/javadoc/testSourceTab/SingleTab/C.java ! test/com/sun/javadoc/testSourceTab/TestSourceTab.java ! test/com/sun/javadoc/testStylesheet/TestStylesheet.java ! test/com/sun/javadoc/testStylesheet/pkg/A.java ! test/com/sun/javadoc/testSummaryHeading/C.java ! test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java ! test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java ! test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SubClass.java ! test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SuperClass.java ! test/com/sun/javadoc/testSupplementary/TestSupplementary.java ! test/com/sun/javadoc/testTagHolderMethod/TestTagHolderMethod.java ! test/com/sun/javadoc/testTagHolderMethod/pkg/C.java ! test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java ! test/com/sun/javadoc/testTagInheritence/firstSentence/A.java ! test/com/sun/javadoc/testTagInheritence/firstSentence/B.java ! test/com/sun/javadoc/testTagInheritence/firstSentence2/A.java ! test/com/sun/javadoc/testTagInheritence/firstSentence2/B.java ! test/com/sun/javadoc/testTagInheritence/firstSentence2/C.java ! test/com/sun/javadoc/testTagInheritence/pkg/TestAbstractClass.java ! test/com/sun/javadoc/testTagInheritence/pkg/TestInterface.java ! test/com/sun/javadoc/testTagInheritence/pkg/TestInterfaceForAbstractClass.java ! test/com/sun/javadoc/testTagInheritence/pkg/TestSuperSuperClass.java ! test/com/sun/javadoc/testTagInheritence/pkg/TestSuperSuperInterface.java ! test/com/sun/javadoc/testTagInheritence/pkg/TestTagInheritence.java ! test/com/sun/javadoc/testTagMisuse/TestTagMisuse.java ! test/com/sun/javadoc/testTaglets/C.java ! test/com/sun/javadoc/testTaglets/Child.java ! test/com/sun/javadoc/testTaglets/Parent.java ! test/com/sun/javadoc/testTaglets/TestTaglets.java ! test/com/sun/javadoc/testTaglets/taglets/Foo.java ! test/com/sun/javadoc/testThrowsHead/C.java ! test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java ! test/com/sun/javadoc/testThrowsInheritence/C.java ! test/com/sun/javadoc/testThrowsInheritence/Foo.java ! test/com/sun/javadoc/testThrowsInheritence/I.java ! test/com/sun/javadoc/testThrowsInheritence/Iface.java ! test/com/sun/javadoc/testThrowsInheritence/TestThrowsTagInheritence.java ! test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java ! test/com/sun/javadoc/testThrowsTag/pkg/C.java ! test/com/sun/javadoc/testThrowsTag/pkg/P.java ! test/com/sun/javadoc/testThrowsTag/pkg/T1.java ! test/com/sun/javadoc/testThrowsTag/pkg/T2.java ! test/com/sun/javadoc/testThrowsTag/pkg/T3.java ! test/com/sun/javadoc/testThrowsTag/pkg/T4.java ! test/com/sun/javadoc/testThrowsTag/pkg/T5.java ! test/com/sun/javadoc/testThrowsTag/pkg/T6.java ! test/com/sun/javadoc/testThrowsTag/pkg/T7.java ! test/com/sun/javadoc/testThrowsTag/pkg/T8.java ! test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java ! test/com/sun/javadoc/testTitleInHref/pkg/Class.java ! test/com/sun/javadoc/testTitleInHref/pkg/Interface.java ! test/com/sun/javadoc/testTitleInHref/pkg/Links.java ! test/com/sun/javadoc/testTopOption/TestTopOption.java ! test/com/sun/javadoc/testTopOption/pkg/AnnotationType.java ! test/com/sun/javadoc/testTopOption/pkg/Cl.java ! test/com/sun/javadoc/testTypeParams/TestTypeParameters.java ! test/com/sun/javadoc/testTypeParams/pkg/C.java ! test/com/sun/javadoc/testTypeParams/pkg/Parent.java ! test/com/sun/javadoc/testUnnamedPackage/BadSource.java ! test/com/sun/javadoc/testUnnamedPackage/C.java ! test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java ! test/com/sun/javadoc/testUseOption/TestUseOption.java ! test/com/sun/javadoc/testUseOption/pkg1/C1.java ! test/com/sun/javadoc/testUseOption/pkg1/C2.java ! test/com/sun/javadoc/testUseOption/pkg1/C4.java ! test/com/sun/javadoc/testUseOption/pkg1/C5.java ! test/com/sun/javadoc/testUseOption/pkg1/C6.java ! test/com/sun/javadoc/testUseOption/pkg1/C7.java ! test/com/sun/javadoc/testUseOption/pkg1/C8.java ! test/com/sun/javadoc/testUseOption/pkg1/UsedClass.java ! test/com/sun/javadoc/testUseOption/pkg2/C3.java ! test/com/sun/javadoc/testValueTag/TestValueTag.java ! test/com/sun/javadoc/testValueTag/pkg1/Class1.java ! test/com/sun/javadoc/testValueTag/pkg1/Class2.java ! test/com/sun/javadoc/testValueTag/pkg1/CustomTagUsage.java ! test/com/sun/javadoc/testValueTag/pkg2/Class3.java ! test/com/sun/javadoc/testWarnBadParamNames/C.java ! test/com/sun/javadoc/testWarnBadParamNames/TestWarnBadParamNames.java ! test/com/sun/javadoc/testWarnings/TestWarnings.java ! test/jprt.config ! test/tools/apt/Basics/Aggregate.java ! test/tools/apt/Basics/ClassAnnotations.java ! test/tools/apt/Basics/FreshnessApf.java ! test/tools/apt/Basics/GenClass.java ! test/tools/apt/Basics/Indirect.java ! test/tools/apt/Basics/Lacuna.java ! test/tools/apt/Basics/MethodAnnotations.java ! test/tools/apt/Basics/Milk.java ! test/tools/apt/Basics/MisMatch.java ! test/tools/apt/Basics/Misc.java ! test/tools/apt/Basics/MyMarker.java ! test/tools/apt/Basics/MySimple.java ! test/tools/apt/Basics/NestedClassAnnotations.java ! test/tools/apt/Basics/NullAPF.java ! test/tools/apt/Basics/ParameterAnnotations.java ! test/tools/apt/Basics/StaticFieldAnnotations.java ! test/tools/apt/Basics/StaticMethodAnnotations.java ! test/tools/apt/Basics/TestGetPackageApf.java ! test/tools/apt/Basics/TestGetTypeDeclarationApf.java ! test/tools/apt/Basics/annot/AnnotMarker.java ! test/tools/apt/Basics/annot/AnnotShangri_la.java ! test/tools/apt/Basics/annot/AnnotSimple.java ! test/tools/apt/Basics/annot/annot2/AnnotMarker2.java ! test/tools/apt/Basics/annot/annot2/AnnotSimple2.java ! test/tools/apt/Basics/apt.sh ! test/tools/apt/Basics/foo/bar/Baz.java ! test/tools/apt/Basics/foo/bar/Quux.java ! test/tools/apt/Basics/p1/p2.java ! test/tools/apt/Basics/p1/p2/C1.java ! test/tools/apt/Basics/print.sh ! test/tools/apt/Compile/ClassDeclApf.java ! test/tools/apt/Compile/ClassDeclApf2.java ! test/tools/apt/Compile/Dummy1.java ! test/tools/apt/Compile/ErrorAPF.java ! test/tools/apt/Compile/Round1Apf.java ! test/tools/apt/Compile/Round2Apf.java ! test/tools/apt/Compile/Round3Apf.java ! test/tools/apt/Compile/Round4Apf.java ! test/tools/apt/Compile/Rounds.java ! test/tools/apt/Compile/StaticApf.java ! test/tools/apt/Compile/WarnAPF.java ! test/tools/apt/Compile/WrappedStaticApf.java ! test/tools/apt/Compile/compile.sh ! test/tools/apt/Compile/src/AhOneClass.java ! test/tools/apt/Compile/src/AndAhTwoClass.java ! test/tools/apt/Compile/src/Round1Class.java ! test/tools/apt/Discovery/Dee.java ! test/tools/apt/Discovery/Dum.java ! test/tools/apt/Discovery/Empty.java ! test/tools/apt/Discovery/PhantomTouch.java ! test/tools/apt/Discovery/PhantomUpdate.java ! test/tools/apt/Discovery/Touch.java ! test/tools/apt/Discovery/discovery.sh ! test/tools/apt/Misc/Marked.java ! test/tools/apt/Misc/Marker.java ! test/tools/apt/Misc/Misc.java ! test/tools/apt/Misc/misc.sh ! test/tools/apt/Options/Marked.java ! test/tools/apt/Options/Marker.java ! test/tools/apt/Options/OptionChecker.java ! test/tools/apt/Options/options.sh ! test/tools/apt/Scanners/Counter.java ! test/tools/apt/Scanners/MemberOrderApf.java ! test/tools/apt/Scanners/Order.java ! test/tools/apt/Scanners/Scanner.java ! test/tools/apt/Scanners/TestEnum.java ! test/tools/apt/Scanners/VisitOrder.java ! test/tools/apt/Scanners/scanner.sh ! test/tools/apt/lib/Ignore.java ! test/tools/apt/lib/Test.java ! test/tools/apt/lib/TestProcessor.java ! test/tools/apt/lib/TestProcessorFactory.java ! test/tools/apt/lib/Tester.java ! test/tools/apt/mirror/declaration/AnnoMirror.java ! test/tools/apt/mirror/declaration/AnnoTypeDecl.java ! test/tools/apt/mirror/declaration/AnnoTypeElemDecl.java ! test/tools/apt/mirror/declaration/AnnoVal.java ! test/tools/apt/mirror/declaration/ClassDecl.java ! test/tools/apt/mirror/declaration/ConstExpr.java ! test/tools/apt/mirror/declaration/ConstructorDecl.java ! test/tools/apt/mirror/declaration/EnumDecl.java ! test/tools/apt/mirror/declaration/FieldDecl.java ! test/tools/apt/mirror/declaration/GetAnno.java ! test/tools/apt/mirror/declaration/InterfaceDecl.java ! test/tools/apt/mirror/declaration/MethodDecl.java ! test/tools/apt/mirror/declaration/PackageDecl.java ! test/tools/apt/mirror/declaration/ParameterDecl.java ! test/tools/apt/mirror/declaration/pkg1/AClass.java ! test/tools/apt/mirror/declaration/pkg1/AnAnnoType.java ! test/tools/apt/mirror/declaration/pkg1/AnEnum.java ! test/tools/apt/mirror/declaration/pkg1/AnInterface.java ! test/tools/apt/mirror/declaration/pkg1/package-info.java ! test/tools/apt/mirror/declaration/pkg1/pkg2/AnInterface.java ! test/tools/apt/mirror/declaration/pkg1/pkg2/package.html ! test/tools/apt/mirror/type/AnnoTyp.java ! test/tools/apt/mirror/type/ArrayTyp.java ! test/tools/apt/mirror/type/ClassTyp.java ! test/tools/apt/mirror/type/EnumTyp.java ! test/tools/apt/mirror/type/InterfaceTyp.java ! test/tools/apt/mirror/type/PrimitiveTyp.java ! test/tools/apt/mirror/type/TypeVar.java ! test/tools/apt/mirror/type/WildcardTyp.java ! test/tools/apt/mirror/util/Overrides.java ! test/tools/apt/mirror/util/TypeCreation.java ! test/tools/apt/verifyVariables.sh ! test/tools/javac/4241573/T4241573.java ! test/tools/javac/4846262/Test.sh ! test/tools/javac/4980495/static/p1/A1.java ! test/tools/javac/4980495/static/p2/A2.java ! test/tools/javac/4980495/std/p1/A1.java ! test/tools/javac/4980495/std/p2/A2.java ! test/tools/javac/5005368.java ! test/tools/javac/5045412/Bar.java ! test/tools/javac/5045412/Foo.java ! test/tools/javac/6199662/Tree.java ! test/tools/javac/6199662/TreeInfo.java ! test/tools/javac/6199662/TreeScanner.java ! test/tools/javac/6257443/T6257443.java ! test/tools/javac/6257443/package-info.java ! test/tools/javac/6302184/T6302184.java ! test/tools/javac/6302184/T6302184.sh ! test/tools/javac/6304921/TestLog.java ! test/tools/javac/6330997/T1.java ! test/tools/javac/6330997/T2.java ! test/tools/javac/6330997/T6330997.java ! test/tools/javac/6341866/A.java ! test/tools/javac/6341866/Anno.java ! test/tools/javac/6341866/B.java ! test/tools/javac/6341866/T6341866.java ! test/tools/javac/6342411/T6342411.java ! test/tools/javac/6342411/a/Base.java ! test/tools/javac/6342411/a/Pub.java ! test/tools/javac/6390045/T6390045a.java ! test/tools/javac/6390045/T6390045b.java ! test/tools/javac/6394683/A.java ! test/tools/javac/6394683/B.java ! test/tools/javac/6394683/T6394683.java ! test/tools/javac/6400383/T6400383.java ! test/tools/javac/6400872/A.java ! test/tools/javac/6400872/B.java ! test/tools/javac/6400872/C.java ! test/tools/javac/6400872/T6400872.java ! test/tools/javac/6402516/A.java ! test/tools/javac/6402516/CheckClass.java ! test/tools/javac/6402516/CheckIsAccessible.java ! test/tools/javac/6402516/CheckLocalElements.java ! test/tools/javac/6402516/CheckMethod.java ! test/tools/javac/6402516/Checker.java ! test/tools/javac/6402516/TestClass.java ! test/tools/javac/6402516/TestIsAccessible.java ! test/tools/javac/6402516/TestLocalElements.java ! test/tools/javac/6402516/TestMethod.java ! test/tools/javac/6403424/A.java ! test/tools/javac/6403424/B.java ! test/tools/javac/6403424/T6403424.java ! test/tools/javac/6410653/T6410653.java ! test/tools/javac/6440583/A.java ! test/tools/javac/6440583/T6440583.java ! test/tools/javac/6457284/T6457284.java ! test/tools/javac/6464451/BigFinally.java ! test/tools/javac/6464451/DeepNestedFinally.java ! test/tools/javac/6464451/ManyExitsInTry.java ! test/tools/javac/6508981/TestInferBinaryName.java ! test/tools/javac/6508981/p/A.java ! test/tools/javac/6521805/T6521805b.java ! test/tools/javac/6521805/T6521805c.java ! test/tools/javac/6521805/T6521805e.java ! test/tools/javac/6627362/T6627362.java ! test/tools/javac/6627362/x/E.java ! test/tools/javac/6627362/x/Object.java ! test/tools/javac/6668794/badClass/A.java ! test/tools/javac/6668794/badClass/Test.java ! test/tools/javac/6668794/badSource/p/A.java ! test/tools/javac/6734819/T6734819a.java ! test/tools/javac/6734819/T6734819b.java ! test/tools/javac/6835430/A.java ! test/tools/javac/6835430/T6835430.java ! test/tools/javac/6889255/T6889255.java ! test/tools/javac/6902720/E1.java ! test/tools/javac/6902720/E2.java ! test/tools/javac/6902720/Test.java ! test/tools/javac/AbstractOverride.java ! test/tools/javac/AccessMethods/AccessMethodsLHS.java ! test/tools/javac/AccessMethods/BitwiseAssignment.java ! test/tools/javac/AccessMethods/ChainedAssignment.java ! test/tools/javac/AccessMethods/ConstructorAccess.java ! test/tools/javac/AccessMethods/InternalHandshake.java ! test/tools/javac/AccessMethods/LateAddition.java ! test/tools/javac/AccessMethods/UplevelPrivateConstants.java ! test/tools/javac/AddReferenceThis.java ! test/tools/javac/Ambig3.java ! test/tools/javac/AnonClsInIntf.java ! test/tools/javac/AnonInnerException_1.java ! test/tools/javac/AnonInnerException_2.java ! test/tools/javac/AnonInnerException_3.java ! test/tools/javac/AnonStaticMember_1.java ! test/tools/javac/AnonStaticMember_2.java ! test/tools/javac/AnonStaticMember_3.java ! test/tools/javac/AnonymousConstructorExceptions.java ! test/tools/javac/AnonymousNull.java ! test/tools/javac/AnonymousProtect/AnonymousProtect.java ! test/tools/javac/AnonymousProtect/P1/priv.java ! test/tools/javac/AnonymousProtect/P1/pub.java ! test/tools/javac/AnonymousProtect/P1/pubExposePriv.java ! test/tools/javac/AnonymousProtect/P2/usePub.java ! test/tools/javac/AnonymousType.java ! test/tools/javac/ArrayCast.java ! test/tools/javac/ArrayCloneCodeGen.java ! test/tools/javac/BadAnnotation.java ! test/tools/javac/BadBreak.java ! test/tools/javac/BadCovar.java ! test/tools/javac/BadHexConstant.java ! test/tools/javac/BadOptimization/DeadCode1.java ! test/tools/javac/BadOptimization/DeadCode2.java ! test/tools/javac/BadOptimization/DeadCode3.java ! test/tools/javac/BadOptimization/DeadCode4.java ! test/tools/javac/BadOptimization/DeadCode5.java ! test/tools/javac/BadOptimization/DeadCode6.java ! test/tools/javac/BadOptimization/Switch1.java ! test/tools/javac/BadOptimization/Switch2.java ! test/tools/javac/BoolArray.java ! test/tools/javac/BoundClassError.java ! test/tools/javac/BreakAcrossClass.java ! test/tools/javac/Capture.java ! test/tools/javac/CaptureInSubtype.java ! test/tools/javac/CascadedInnerNewInstance.java ! test/tools/javac/CastInterface2Array.java ! test/tools/javac/ClassCycle/ClassCycle1a.java ! test/tools/javac/ClassCycle/ClassCycle1b.java ! test/tools/javac/ClassCycle/ClassCycle2a.java ! test/tools/javac/ClassCycle/ClassCycle2b.java ! test/tools/javac/ClassCycle/ClassCycle3a.java ! test/tools/javac/ClassCycle/ClassCycle3b.java ! test/tools/javac/ClassFileModifiers/ClassModifiers.java ! test/tools/javac/ClassFileModifiers/MemberModifiers.java ! test/tools/javac/ClassIsAbstract.java ! test/tools/javac/ClassLit.java ! test/tools/javac/ClassLiterals/ClassLiteralHelperContext.java ! test/tools/javac/ClassLiterals/InitializeOuter.java ! test/tools/javac/ClassLiterals/InitializeTarget.java ! test/tools/javac/ClassLiterals/InnerClassLiterals.java ! test/tools/javac/ClassLiterals/LiteralInterfaceImpl.java ! test/tools/javac/ClassLiterals/LiteralInterface_1.java ! test/tools/javac/ClassLiterals/LiteralInterface_2.java ! test/tools/javac/ClassLiterals/LiteralInterface_3.java ! test/tools/javac/ClassLiterals/evalinit/ClassLiteralEvalInit.java ! test/tools/javac/ClassLiterals/evalinit/java/lang/Integer.java ! test/tools/javac/ClassLiterals/p1/C.java ! test/tools/javac/ClassLiterals/p1/SuperClass.java ! test/tools/javac/ClassModifiers/InterfaceAndInnerClsCtor.java ! test/tools/javac/ClassPathTest/ClassPathTest.sh ! test/tools/javac/ClassPathTest/ClassPathTest1.java ! test/tools/javac/ClassPathTest/ClassPathTest2.java ! test/tools/javac/ClassPathTest/ClassPathTest3.java ! test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java ! test/tools/javac/ClassPathTest/foo/pkg/ClassPathTestAux1.java ! test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java ! test/tools/javac/ClassToTypeParm.java ! test/tools/javac/CloneableProblem.java ! test/tools/javac/Closure1.java ! test/tools/javac/Closure2.java ! test/tools/javac/Closure3.java ! test/tools/javac/Closure4.java ! test/tools/javac/Closure5.java ! test/tools/javac/Closure6.java ! test/tools/javac/CompoundBox.java ! test/tools/javac/ConditionalArgTypes_1.java ! test/tools/javac/ConditionalArgTypes_2.java ! test/tools/javac/ConditionalClass.java ! test/tools/javac/ConditionalInline.java ! test/tools/javac/ConditionalWithVoid.java ! test/tools/javac/ConstBoolAppend.java ! test/tools/javac/ConstCharAppend.java ! test/tools/javac/ConstantValues/ConstValInit.java ! test/tools/javac/ConstantValues/ConstValInlining.java ! test/tools/javac/ConstantValues/test_ff1.java ! test/tools/javac/ConstantValues/test_ff2.java ! test/tools/javac/CyclicInheritance2.java ! test/tools/javac/CyclicInheritance4.java ! test/tools/javac/CyclicInheritance6/Main.java ! test/tools/javac/CyclicInheritance6/p1/A.java ! test/tools/javac/CyclicInheritance6/p1/B.java ! test/tools/javac/CyclicInheritance6/p1/C.java ! test/tools/javac/CyclicScoping/CyclicScoping_1.java ! test/tools/javac/CyclicScoping/CyclicScoping_2.java ! test/tools/javac/DeadInnerClass.java ! test/tools/javac/DeclarationStatementInline.java ! test/tools/javac/DeepStringConcat.java ! test/tools/javac/DefiniteAssignment/ConstantInfiniteWhile.java ! test/tools/javac/DefiniteAssignment/DABlock.java ! test/tools/javac/DefiniteAssignment/DALoop1.java ! test/tools/javac/DefiniteAssignment/DASwitch.java ! test/tools/javac/DefiniteAssignment/DUAssert.java ! test/tools/javac/DefiniteAssignment/DUBeforeDefined1.java ! test/tools/javac/DefiniteAssignment/DUBeforeDefined2.java ! test/tools/javac/DefiniteAssignment/DUParam1.java ! test/tools/javac/DefiniteAssignment/DUParam2.java ! test/tools/javac/DefiniteAssignment/DUSwitch.java ! test/tools/javac/DefiniteAssignment/DUSwitch2.java ! test/tools/javac/DefiniteAssignment/DUTry.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterIf_1.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterIf_2.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterThis_1.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterThis_2.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterTry1.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterTry2.java ! test/tools/javac/DefiniteAssignment/DefAssignAfterTry3.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_1.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_10.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_11.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_12.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_13.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_14.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_15.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_16.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_2.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_3.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_4.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_5.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_6.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_7.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_8.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignBoolean_9.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignCond.java ! test/tools/javac/DefiniteAssignment/DefAssignBoolean/DefAssignConstantBoolean.java ! test/tools/javac/DefiniteAssignment/DefAssignNestedArg.java ! test/tools/javac/DefiniteAssignment/T4704365.java ! test/tools/javac/DefiniteAssignment/T4717164.java ! test/tools/javac/DefiniteAssignment/T4717165.java ! test/tools/javac/DefiniteAssignment/T4718134.java ! test/tools/javac/DefiniteAssignment/T4718142.java ! test/tools/javac/DefiniteAssignment/T4718142a.java ! test/tools/javac/DefiniteAssignment/T4718708.java ! test/tools/javac/DefiniteAssignment/T4720379.java ! test/tools/javac/DefiniteAssignment/T4720751.java ! test/tools/javac/DefiniteAssignment/T4721062a.java ! test/tools/javac/DefiniteAssignment/T4721062b.java ! test/tools/javac/DefiniteAssignment/T4721076.java ! test/tools/javac/DefiniteAssignment/T4721998.java ! test/tools/javac/DefiniteAssignment/T4725725.java ! test/tools/javac/DefiniteAssignment/ThrowBeforeTryFinally.java ! test/tools/javac/DefiniteAssignment/UncaughtException.java ! test/tools/javac/DepParam.java ! test/tools/javac/Diagnostics/6769027/T6769027.java ! test/tools/javac/DivByZero.java ! test/tools/javac/DuplicateClass.java ! test/tools/javac/DuplicateClass2.java ! test/tools/javac/DuplicateImport.java ! test/tools/javac/EOI.java ! test/tools/javac/EarlyAssert.java ! test/tools/javac/EarlyAssertWrapper.java ! test/tools/javac/EmptyArray.java ! test/tools/javac/EmptyBreak.java ! test/tools/javac/EmptyDocComments.java ! test/tools/javac/EmptySwitch.java ! test/tools/javac/EnclosingAccessCheck.java ! test/tools/javac/Enum1.java ! test/tools/javac/ExceptionalFinally.java ! test/tools/javac/ExceptionalFinally2.java ! test/tools/javac/ExprQualifiedType.java ! test/tools/javac/ExtDirs/ExtDirTest_1.java ! test/tools/javac/ExtDirs/ExtDirTest_2.java ! test/tools/javac/ExtDirs/ExtDirTest_3.java ! test/tools/javac/ExtDirs/ExtDirs.sh ! test/tools/javac/ExtendsAccess/p/ExtendsAccess.java ! test/tools/javac/ExtendsScope.java ! test/tools/javac/ExtraneousEquals.java ! test/tools/javac/FaultySignature.java ! test/tools/javac/FinalInitializer.java ! test/tools/javac/FinalInitializer_2.java ! test/tools/javac/FinalIntConcatenation.java ! test/tools/javac/FinalThisReference.java ! test/tools/javac/FinallyWarn.java ! test/tools/javac/FlatnameClash.java ! test/tools/javac/FlatnameClash2.java ! test/tools/javac/FloatingPointChanges/Test.java ! test/tools/javac/FoldConditional.java ! test/tools/javac/ForwardReference/ForwardReference_2.java ! test/tools/javac/ForwardReference/ForwardReference_4.java ! test/tools/javac/ForwardReference/ForwardReference_5.java ! test/tools/javac/ForwardReference/T6676362a.java ! test/tools/javac/ForwardReference/T6676362b.java ! test/tools/javac/ForwardReference/UseBeforeDeclaration.java ! test/tools/javac/GoodCovar.java ! test/tools/javac/HexFloatLiterals.java ! test/tools/javac/HexThree.java ! test/tools/javac/HiddenAbstractMethod/one/Parent.java ! test/tools/javac/HiddenAbstractMethod/two/Child.java ! test/tools/javac/IllDefinedOrderOfInit.java ! test/tools/javac/IllegallyOptimizedException.java ! test/tools/javac/ImplicitToString.java ! test/tools/javac/ImportCycle/Dummy.java ! test/tools/javac/ImportCycle/foo/Bottom.java ! test/tools/javac/ImportCycle/foo/Bottom2.java ! test/tools/javac/ImportCycle/foo/Middle.java ! test/tools/javac/ImportCycle/foo/Middle2.java ! test/tools/javac/ImportCycle/foo/Top.java ! test/tools/javac/ImportCycle/foo/Top2.java ! test/tools/javac/ImportPackagePrivateInner/Dummy.java ! test/tools/javac/ImportPackagePrivateInner/foo/Accessee.java ! test/tools/javac/ImportPackagePrivateInner/foo/Accessor.java ! test/tools/javac/ImportUnnamed/Dummy.java ! test/tools/javac/ImportUnnamed/foo/A.java ! test/tools/javac/InconsistentInheritedSignature.java ! test/tools/javac/InconsistentStack.java ! test/tools/javac/Increment.java ! test/tools/javac/InheritedPrivateImpl.java ! test/tools/javac/InitializerCompletion_1.java ! test/tools/javac/InitializerCompletion_2.java ! test/tools/javac/InitializerCompletion_3.java ! test/tools/javac/InitializerCompletion_4.java ! test/tools/javac/InnerClassesAttribute/Test.java ! test/tools/javac/InnerMemberRegression.java ! test/tools/javac/InnerMethSig.java ! test/tools/javac/InnerNamedConstant_1.java ! test/tools/javac/InnerTruth.java ! test/tools/javac/InstanceInitException_1.java ! test/tools/javac/InstanceInitException_2.java ! test/tools/javac/InterfaceAssert.java ! test/tools/javac/InterfaceFieldParsing_1.java ! test/tools/javac/InterfaceInInner.java ! test/tools/javac/InterfaceObjectIncompatibility.java ! test/tools/javac/InterfaceObjectInheritance.java ! test/tools/javac/InterfaceOverrideCheck.java ! test/tools/javac/InterfaceOverrideFinal.java ! test/tools/javac/InterfaceOverrideObject.java ! test/tools/javac/InvalidIntfCast.java ! test/tools/javac/JsrRet.java ! test/tools/javac/LabelHiding_1.java ! test/tools/javac/LabeledDeclaration.java ! test/tools/javac/LocalClasses_1.java ! test/tools/javac/ManyMembers2.java ! test/tools/javac/MemberTypeInheritance.java ! test/tools/javac/MissingInclude.java ! test/tools/javac/MissingInclude.sh ! test/tools/javac/NameClash/One.java ! test/tools/javac/NameClash/a/One.java ! test/tools/javac/NameClash/b/One.java ! test/tools/javac/NameCollision2.java ! test/tools/javac/NestedDuplicateLabels.java ! test/tools/javac/NestedFinallyReturn.java ! test/tools/javac/NewGeneric.java ! test/tools/javac/NoClass.java ! test/tools/javac/NoNoClassDefFoundErrorError.java ! test/tools/javac/NonAmbiguousField/one/Parent.java ! test/tools/javac/NonAmbiguousField/one/Parent2.java ! test/tools/javac/NonAmbiguousField/two/Child.java ! test/tools/javac/NonAmbiguousField/two/Child2.java ! test/tools/javac/NonStaticFieldExpr4c.java ! test/tools/javac/NonStaticFieldExpr4d.java ! test/tools/javac/NonStaticFinalVar.java ! test/tools/javac/Null2DArray.java ! test/tools/javac/NullQualifiedNew.java ! test/tools/javac/NullQualifiedNew2.java ! test/tools/javac/NullQualifiedSuper1.java ! test/tools/javac/NullQualifiedSuper2.java ! test/tools/javac/NullStaticQualifier.java ! test/tools/javac/Object1.java ! test/tools/javac/Object2.java ! test/tools/javac/ObjectIncompatibleInterface.java ! test/tools/javac/ObjectMethodRefFromInterface.java ! test/tools/javac/OuterParameter_1.java ! test/tools/javac/OverrideChecks/6400189/T6400189c.java ! test/tools/javac/OverrideChecks/6400189/T6400189d.java ! test/tools/javac/OverrideChecks/6738538/T6738538a.java ! test/tools/javac/OverrideChecks/6738538/T6738538b.java ! test/tools/javac/OverrideChecks/InconsistentReturn.java ! test/tools/javac/OverrideChecks/InterfaceImplements.java ! test/tools/javac/OverrideChecks/InterfaceOverride.java ! test/tools/javac/OverrideChecks/Private.java ! test/tools/javac/OverrideChecks/StaticOverride.java ! test/tools/javac/OverrideChecks/T4720356a.java ! test/tools/javac/OverrideChecks/T4720356b.java ! test/tools/javac/OverrideChecks/T4720359a.java ! test/tools/javac/OverrideChecks/T4720359b.java ! test/tools/javac/OverrideChecks/T4721069.java ! test/tools/javac/OverrideChecks/T6326485.java ! test/tools/javac/OverrideChecks/T6399361.java ! test/tools/javac/OverrideChecks/ThrowsConflict.java ! test/tools/javac/PackageClassAmbiguity/Bad.java ! test/tools/javac/PackageClassAmbiguity/util.java ! test/tools/javac/PackageClassClash/PackageClassClash.java ! test/tools/javac/Parens1.java ! test/tools/javac/Parens2.java ! test/tools/javac/Parens3.java ! test/tools/javac/Parens4.java ! test/tools/javac/ParseConditional.java ! test/tools/javac/Paths/6638501/HelloLib/test/HelloImpl.java ! test/tools/javac/Paths/6638501/JarFromManifestFailure.java ! test/tools/javac/Paths/6638501/WsCompileExample.java ! test/tools/javac/Paths/6638501/test/SayHello.java ! test/tools/javac/Paths/6638501/test1/SayHelloToo.java ! test/tools/javac/Paths/Class-Path.sh ! test/tools/javac/Paths/CompileClose.java ! test/tools/javac/Paths/Diagnostics.sh ! test/tools/javac/Paths/Help.sh ! test/tools/javac/Paths/MineField.sh ! test/tools/javac/Paths/SameJVM.java ! test/tools/javac/Paths/Util.sh ! test/tools/javac/Paths/wcMineField.sh ! test/tools/javac/PrivateLocalConstructor.java ! test/tools/javac/PrivateUplevelConstant.java ! test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh ! test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java ! test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java ! test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass2.java ! test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass3.java ! test/tools/javac/QualifiedAccess/QualifiedAccess_4.java ! test/tools/javac/QualifiedAccess/pack1/P1.java ! test/tools/javac/QualifiedAccess/pack1/P2.java ! test/tools/javac/QualifiedConstant.java ! test/tools/javac/QualifiedNew.java ! test/tools/javac/QualifiedNewScope.java ! test/tools/javac/QualifiedOuterThis.java ! test/tools/javac/QualifiedOuterThis2.java ! test/tools/javac/QualifiedThisAndSuper_1.java ! test/tools/javac/QualifiedThisAndSuper_2.java ! test/tools/javac/QualifiedThisAndSuper_3.java ! test/tools/javac/QualifiedThisExactMatch.java ! test/tools/javac/RawCrash.java ! test/tools/javac/ReturnAfterIfThenElse.java ! test/tools/javac/SerialWarn.java ! test/tools/javac/ShiftExpressionTest.java ! test/tools/javac/Source5.java ! test/tools/javac/StandaloneQualifiedSuper.java ! test/tools/javac/StaticBlockScope.java ! test/tools/javac/StoreClass.java ! test/tools/javac/StrictAbstract.java ! test/tools/javac/StringAppendAccessMethodOnLHS.java ! test/tools/javac/StringConversion.java ! test/tools/javac/StringConversion2.java ! test/tools/javac/StringsInSwitch/OneCaseSwitches.java ! test/tools/javac/StringsInSwitch/StringSwitches.java ! test/tools/javac/SuperField.java ! test/tools/javac/SuperMeth.java ! test/tools/javac/SuperMethodResolve.java ! test/tools/javac/SuperNew.java ! test/tools/javac/SuperNew2.java ! test/tools/javac/SuperNew3.java ! test/tools/javac/SuperNew4.java ! test/tools/javac/SuperclassConstructorException.java ! test/tools/javac/SwitchFence.java ! test/tools/javac/SwitchScope.java ! test/tools/javac/SynthName1.java ! test/tools/javac/SynthName2.java ! test/tools/javac/T4848619/T4848619a.java ! test/tools/javac/T4848619/T4848619b.java ! test/tools/javac/T4994049/DeprecatedNOT.java ! test/tools/javac/T4994049/DeprecatedYES.java ! test/tools/javac/T5090006/T5090006.java ! test/tools/javac/T5090006/compiler.sh ! test/tools/javac/T5092545.java ! test/tools/javac/T5105890.java ! test/tools/javac/T6180021/AbstractSub.java ! test/tools/javac/T6180021/Sub.java ! test/tools/javac/T6180021/Super.java ! test/tools/javac/T6231246/T6231246.java ! test/tools/javac/T6232928.java ! test/tools/javac/T6232928/package-info.java ! test/tools/javac/T6234077.java ! test/tools/javac/T6238612.java ! test/tools/javac/T6265400.java ! test/tools/javac/T6266772.java ! test/tools/javac/T6294589.java ! test/tools/javac/T6304128.java ! test/tools/javac/T6306967.java ! test/tools/javac/T6326754.java ! test/tools/javac/T6341023.java ! test/tools/javac/T6351767.java ! test/tools/javac/T6356217/T6356217.java ! test/tools/javac/T6358024.java ! test/tools/javac/T6358166.java ! test/tools/javac/T6358168.java ! test/tools/javac/T6361619.java ! test/tools/javac/T6366196.java ! test/tools/javac/T6370653.java ! test/tools/javac/T6379327.java ! test/tools/javac/T6395974.java ! test/tools/javac/T6397044.java ! test/tools/javac/T6397286.java ! test/tools/javac/T6403466.java ! test/tools/javac/T6404756.java ! test/tools/javac/T6405099.java ! test/tools/javac/T6407066.java ! test/tools/javac/T6407257.java ! test/tools/javac/T6410706.java ! test/tools/javac/T6411379.java ! test/tools/javac/T6413876.java ! test/tools/javac/T6423583.java ! test/tools/javac/T6435291/T6435291.java ! test/tools/javac/T6472751.java ! test/tools/javac/T6534287.java ! test/tools/javac/T6557865.java ! test/tools/javac/T6558476.java ! test/tools/javac/T6595666.java ! test/tools/javac/T6625520.java ! test/tools/javac/T6654037.java ! test/tools/javac/T6663588.java ! test/tools/javac/T6665791.java ! test/tools/javac/T6668802.java ! test/tools/javac/T6705935.java ! test/tools/javac/T6725036.java ! test/tools/javac/T6759996.java ! test/tools/javac/T6794959.java ! test/tools/javac/T6855236.java ! test/tools/javac/T6873849.java ! test/tools/javac/T6881645.java ! test/tools/javac/T6942649.java ! test/tools/javac/ThrowNull.java ! test/tools/javac/ThrowsIntersection_1.java ! test/tools/javac/ThrowsIntersection_2.java ! test/tools/javac/ThrowsIntersection_3.java ! test/tools/javac/ThrowsIntersection_4.java ! test/tools/javac/TryInInstanceInit.java ! test/tools/javac/UncaughtOverflow.java ! test/tools/javac/UncaughtOverflow2.java ! test/tools/javac/UnreachableVar.java ! test/tools/javac/UnterminatedLineComment.java ! test/tools/javac/UplevelFromAnonInSuperCall.java ! test/tools/javac/UseEnum.java ! test/tools/javac/VarDeclarationWithAssignment.java ! test/tools/javac/Verify.java ! test/tools/javac/VerifyDA.java ! test/tools/javac/VersionOpt.java ! test/tools/javac/VoidArray.java ! test/tools/javac/abstract/T1.java ! test/tools/javac/abstract/T2.java ! test/tools/javac/abstract/T3.java ! test/tools/javac/abstract/T4717181a.java ! test/tools/javac/abstract/T4717181b.java ! test/tools/javac/abstract/U1.java ! test/tools/javac/abstract/U2.java ! test/tools/javac/abstract/U3.java ! test/tools/javac/accessVirtualInner/Main.java ! test/tools/javac/accessVirtualInner/a/A.java ! test/tools/javac/accessVirtualInner/b/B.java ! test/tools/javac/accessVirtualInner/c/C.java ! test/tools/javac/annotations/6214965/CompilerAnnotationTest.java ! test/tools/javac/annotations/6214965/CompilerAnnotationTest2.java ! test/tools/javac/annotations/6214965/CompilerAnnotationTest2bad.java ! test/tools/javac/annotations/6214965/T6214965.java ! test/tools/javac/annotations/6359949/T6359949.java ! test/tools/javac/annotations/6359949/T6359949a.java ! test/tools/javac/annotations/6365854/T6365854.java ! test/tools/javac/annotations/6365854/TestAnnotation.java ! test/tools/javac/annotations/6365854/TestCore.java ! test/tools/javac/annotations/6365854/evolve/TestAnnotation.java ! test/tools/javac/annotations/default/A.java ! test/tools/javac/annotations/default/B.java ! test/tools/javac/annotations/default/C.java ! test/tools/javac/annotations/default/Derr.java ! test/tools/javac/annotations/default/Eerr.java ! test/tools/javac/annotations/neg/AnnComma.java ! test/tools/javac/annotations/neg/ArrayLit.java ! test/tools/javac/annotations/neg/Constant.java ! test/tools/javac/annotations/neg/Cycle1.java ! test/tools/javac/annotations/neg/Cycle2.java ! test/tools/javac/annotations/neg/Cycle3.java ! test/tools/javac/annotations/neg/Dep.java ! test/tools/javac/annotations/neg/Dup.java ! test/tools/javac/annotations/neg/DupTarget.java ! test/tools/javac/annotations/neg/MemberOver.java ! test/tools/javac/annotations/neg/MixedSource.java ! test/tools/javac/annotations/neg/NoAnnotationMethods.java ! test/tools/javac/annotations/neg/NoClone.java ! test/tools/javac/annotations/neg/NoObjectMethods.java ! test/tools/javac/annotations/neg/ObjectMembers.java ! test/tools/javac/annotations/neg/OverrideNo.java ! test/tools/javac/annotations/neg/Package.java ! test/tools/javac/annotations/neg/Recovery.java ! test/tools/javac/annotations/neg/Recovery1.java ! test/tools/javac/annotations/neg/Scope.java ! test/tools/javac/annotations/neg/Syntax1.java ! test/tools/javac/annotations/neg/WrongTarget.java ! test/tools/javac/annotations/neg/WrongTarget2.java ! test/tools/javac/annotations/neg/WrongValue.java ! test/tools/javac/annotations/neg/Z1.java ! test/tools/javac/annotations/neg/Z10.java ! test/tools/javac/annotations/neg/Z11.java ! test/tools/javac/annotations/neg/Z12.java ! test/tools/javac/annotations/neg/Z13.java ! test/tools/javac/annotations/neg/Z14.java ! test/tools/javac/annotations/neg/Z15.java ! test/tools/javac/annotations/neg/Z16.java ! test/tools/javac/annotations/neg/Z2.java ! test/tools/javac/annotations/neg/Z3.java ! test/tools/javac/annotations/neg/Z4.java ! test/tools/javac/annotations/neg/Z5.java ! test/tools/javac/annotations/neg/Z8.java ! test/tools/javac/annotations/neg/Z9.java ! test/tools/javac/annotations/pos/AnnotationMethods.java ! test/tools/javac/annotations/pos/AnnoteElideBraces.java ! test/tools/javac/annotations/pos/ClassA.java ! test/tools/javac/annotations/pos/ClassB.java ! test/tools/javac/annotations/pos/Dep.java ! test/tools/javac/annotations/pos/Enum1.java ! test/tools/javac/annotations/pos/Local.java ! test/tools/javac/annotations/pos/Members.java ! test/tools/javac/annotations/pos/NType.java ! test/tools/javac/annotations/pos/OverrideCheck.java ! test/tools/javac/annotations/pos/OverrideOK.java ! test/tools/javac/annotations/pos/Parameter.java ! test/tools/javac/annotations/pos/Primitives.java ! test/tools/javac/annotations/pos/RightTarget.java ! test/tools/javac/annotations/pos/TrailingComma.java ! test/tools/javac/annotations/pos/Z1.java ! test/tools/javac/annotations/pos/Z2.java ! test/tools/javac/annotations/pos/Z3.java ! test/tools/javac/annotations/pos/Z4.java ! test/tools/javac/annotations/pos/package-info.java ! test/tools/javac/api/6400303/T6400303.java ! test/tools/javac/api/6400303/Test1.java ! test/tools/javac/api/6400303/Test2.java ! test/tools/javac/api/6406133/T6406133.java ! test/tools/javac/api/6410643/T6410643.java ! test/tools/javac/api/6411310/T6411310.java ! test/tools/javac/api/6411310/Test.java ! test/tools/javac/api/6411333/T6411333.java ! test/tools/javac/api/6412656/T6412656.java ! test/tools/javac/api/6415780/T6415780.java ! test/tools/javac/api/6418694/T6418694.java ! test/tools/javac/api/6420409/T6420409.java ! test/tools/javac/api/6420464/T6420464.java ! test/tools/javac/api/6421111/T6421111.java ! test/tools/javac/api/6421756/T6421756.java ! test/tools/javac/api/6422215/T6422215.java ! test/tools/javac/api/6422327/T6422327.java ! test/tools/javac/api/6423003/T6423003.java ! test/tools/javac/api/6431257/T6431257.java ! test/tools/javac/api/6431257/package-info.java ! test/tools/javac/api/6431435/A.java ! test/tools/javac/api/6431435/T6431435.java ! test/tools/javac/api/6431435/p/B.java ! test/tools/javac/api/6437349/T6437349.java ! test/tools/javac/api/6437999/T6437999.java ! test/tools/javac/api/6437999/Utf8.java ! test/tools/javac/api/6440333/T6440333.java ! test/tools/javac/api/6440528/T6440528.java ! test/tools/javac/api/6440528/package-info.java ! test/tools/javac/api/6452876/T6452876.java ! test/tools/javac/api/6468404/T6468404.java ! test/tools/javac/api/6471599/Main.java ! test/tools/javac/api/6557752/T6557752.java ! test/tools/javac/api/6608214/T6608214.java ! test/tools/javac/api/6731573/T6731573.java ! test/tools/javac/api/6733837/T6733837.java ! test/tools/javac/api/6852595/T6852595.java ! test/tools/javac/api/Sibling.java ! test/tools/javac/api/T6257235.java ! test/tools/javac/api/T6258271.java ! test/tools/javac/api/T6265137.java ! test/tools/javac/api/T6265137a.java ! test/tools/javac/api/T6306137.java ! test/tools/javac/api/T6345974.java ! test/tools/javac/api/T6357331.java ! test/tools/javac/api/T6358786.java ! test/tools/javac/api/T6358955.java ! test/tools/javac/api/T6392782.java ! test/tools/javac/api/T6395981.java ! test/tools/javac/api/T6397104.java ! test/tools/javac/api/T6400205.java ! test/tools/javac/api/T6400207.java ! test/tools/javac/api/T6407011.java ! test/tools/javac/api/T6412669.java ! test/tools/javac/api/T6431879.java ! test/tools/javac/api/T6483788.java ! test/tools/javac/api/T6501502.java ! test/tools/javac/api/T6838467.java ! test/tools/javac/api/T6877206.java ! test/tools/javac/api/TestEvalExpression.java ! test/tools/javac/api/TestGetTree.java ! test/tools/javac/api/TestJavacTask.java ! test/tools/javac/api/TestJavacTaskScanner.java ! test/tools/javac/api/TestOperators.java ! test/tools/javac/api/TestResolveError.java ! test/tools/javac/api/TestResolveIdent.java ! test/tools/javac/api/TestTreePath.java ! test/tools/javac/api/TestTrees.java ! test/tools/javac/api/evalexpr/ByteArrayClassLoader.java ! test/tools/javac/api/evalexpr/CompileFromString.java ! test/tools/javac/api/evalexpr/MemoryFileManager.java ! test/tools/javac/api/guide/Test.java ! test/tools/javac/api/guide/TestMe.java ! test/tools/javac/api/lib/ToolTester.java ! test/tools/javac/apt.sh ! test/tools/javac/assert/Attach.java ! test/tools/javac/assert/DU1.java ! test/tools/javac/assert/DU2.java ! test/tools/javac/binaryCompat/T1.java ! test/tools/javac/binaryCompat/T2.java ! test/tools/javac/binaryCompat/T3.java ! test/tools/javac/boxing/BoxedForeach.java ! test/tools/javac/boxing/Boxing1.java ! test/tools/javac/boxing/Boxing2.java ! test/tools/javac/boxing/Boxing4.java ! test/tools/javac/boxing/BoxingCaching.java ! test/tools/javac/boxing/NoBoxingBool.java ! test/tools/javac/boxing/NoBoxingByte.java ! test/tools/javac/boxing/NoBoxingChar.java ! test/tools/javac/boxing/NoBoxingDouble.java ! test/tools/javac/boxing/NoBoxingFloat.java ! test/tools/javac/boxing/NoBoxingInt.java ! test/tools/javac/boxing/NoBoxingLong.java ! test/tools/javac/boxing/NoBoxingShort.java ! test/tools/javac/boxing/T5082929.java ! test/tools/javac/boxing/T6348760.java ! test/tools/javac/boxing/T6369051.java ! test/tools/javac/boxing/T6614974.java ! test/tools/javac/boxing/T6816548.java ! test/tools/javac/capture/Capture1.java ! test/tools/javac/capture/Capture2.java ! test/tools/javac/capture/Capture3.java ! test/tools/javac/capture/Capture5.java ! test/tools/javac/capture/Martin.java ! test/tools/javac/capture/T6594284.java ! test/tools/javac/cast/4916620/T4916620.java ! test/tools/javac/cast/5034609/T5034609.java ! test/tools/javac/cast/5043020/T5043020.java ! test/tools/javac/cast/5064736/T5064736.java ! test/tools/javac/cast/5065215/T5065215.java ! test/tools/javac/cast/6211853/T6211853.java ! test/tools/javac/cast/6219964/T6219964.java ! test/tools/javac/cast/6256789/T6256789.java ! test/tools/javac/cast/6286112/T6286112.java ! test/tools/javac/cast/6295056/T6295056.java ! test/tools/javac/cast/6302214/T6302214.java ! test/tools/javac/cast/6302214/T6302214a.java ! test/tools/javac/cast/6302956/T6302956.java ! test/tools/javac/cast/6358534/T6358534.java ! test/tools/javac/cast/6467183/T6467183b.java ! test/tools/javac/cast/6548436/T6548436a.java ! test/tools/javac/cast/6548436/T6548436b.java ! test/tools/javac/cast/6548436/T6548436c.java ! test/tools/javac/cast/6548436/T6548436d.java ! test/tools/javac/cast/6558559/T6558559a.java ! test/tools/javac/cast/6558559/T6558559b.java ! test/tools/javac/cast/6586091/T6586091.java ! test/tools/javac/cast/BoxedArray.java ! test/tools/javac/cast/forum/T654170.java ! test/tools/javac/code/ArrayClone.java ! test/tools/javac/completion/C.java ! test/tools/javac/conditional/6500343/T6500343a.java ! test/tools/javac/conditional/6500343/T6500343b.java ! test/tools/javac/conditional/Conditional.java ! test/tools/javac/constDebug/ConstDebug.java ! test/tools/javac/constDebug/ConstDebug.sh ! test/tools/javac/crossPackageImpl/CrossPackageImplA.java ! test/tools/javac/crossPackageImpl/CrossPackageImplB.java ! test/tools/javac/danglingDep/DepX.java ! test/tools/javac/danglingDep/NoDepX.java ! test/tools/javac/danglingDep/RefX.java ! test/tools/javac/danglingDep/Test1.java ! test/tools/javac/depDocComment/DeprecatedDocComment2.java ! test/tools/javac/depOverrides/annotation/B3.java ! test/tools/javac/depOverrides/annotation/I.java ! test/tools/javac/depOverrides/annotation/P.java ! test/tools/javac/depOverrides/annotation/Test1.java ! test/tools/javac/depOverrides/annotation/Test2.java ! test/tools/javac/depOverrides/doccomment/B3.java ! test/tools/javac/depOverrides/doccomment/I.java ! test/tools/javac/depOverrides/doccomment/P.java ! test/tools/javac/depOverrides/doccomment/Test1.java ! test/tools/javac/depOverrides/doccomment/Test2.java ! test/tools/javac/enum/6350057/T6350057.java ! test/tools/javac/enum/6350057/TestEnum.java ! test/tools/javac/enum/6424358/T6424358.java ! test/tools/javac/enum/AbstractEmptyEnum.java ! test/tools/javac/enum/AbstractEnum1.java ! test/tools/javac/enum/DA1.java ! test/tools/javac/enum/DA2.java ! test/tools/javac/enum/DA3.java ! test/tools/javac/enum/Def.java ! test/tools/javac/enum/Enum1.java ! test/tools/javac/enum/Enum2.java ! test/tools/javac/enum/Enum3.java ! test/tools/javac/enum/EnumImplicitPrivateConstructor.java ! test/tools/javac/enum/EnumInit.java ! test/tools/javac/enum/EnumPrivateConstructor.java ! test/tools/javac/enum/EnumProtectedConstructor.java ! test/tools/javac/enum/EnumPublicConstructor.java ! test/tools/javac/enum/EnumSwitch1.java ! test/tools/javac/enum/EnumSwitch2.java ! test/tools/javac/enum/EnumSwitch3.java ! test/tools/javac/enum/EnumSwitch4.java ! test/tools/javac/enum/ExplicitlyAbstractEnum1.java ! test/tools/javac/enum/ExplicitlyAbstractEnum2.java ! test/tools/javac/enum/ExplicitlyFinalEnum1.java ! test/tools/javac/enum/ExplicitlyFinalEnum2.java ! test/tools/javac/enum/FauxEnum1.java ! test/tools/javac/enum/FauxEnum2.java ! test/tools/javac/enum/FauxEnum3.java ! test/tools/javac/enum/FauxSpecialEnum1.java ! test/tools/javac/enum/FauxSpecialEnum2.java ! test/tools/javac/enum/LocalEnum.java ! test/tools/javac/enum/NestedEnum.java ! test/tools/javac/enum/NoFinal.java ! test/tools/javac/enum/NoFinal2.java ! test/tools/javac/enum/NoFinal3.java ! test/tools/javac/enum/NoFinal4.java ! test/tools/javac/enum/NoFinal5.java ! test/tools/javac/enum/OkFinal.java ! test/tools/javac/enum/SynthValues.java ! test/tools/javac/enum/T5075242.java ! test/tools/javac/enum/T5081785.java ! test/tools/javac/enum/T5081785a.java ! test/tools/javac/enum/T5081785b.java ! test/tools/javac/enum/T5081785c.java ! test/tools/javac/enum/T6509042.java ! test/tools/javac/enum/T6675483.java ! test/tools/javac/enum/T6724345.java ! test/tools/javac/enum/TrailingComma.java ! test/tools/javac/enum/UserValue.java ! test/tools/javac/enum/ValueOf.java ! test/tools/javac/enum/enumSwitch/Color2.java ! test/tools/javac/enum/enumSwitch/EnumSwitch.java ! test/tools/javac/enum/forwardRef/TestEnum1.java ! test/tools/javac/enum/forwardRef/TestEnum2.java ! test/tools/javac/enum/forwardRef/TestEnum3.java ! test/tools/javac/enum/forwardRef/TestEnum4.java ! test/tools/javac/enum/forwardRef/TestEnum5.java ! test/tools/javac/enum/forwardRef/TestEnum6.java ! test/tools/javac/expression/NullAppend.java ! test/tools/javac/expression/NullAppend2.java ! test/tools/javac/falseCycle/FalseCycle.java ! test/tools/javac/falseCycle/FalseCycleBase.java ! test/tools/javac/fatalErrors/NoJavaLang.java ! test/tools/javac/fatalErrors/NoJavaLang.sh ! test/tools/javac/foreach/Foreach.java ! test/tools/javac/foreach/GenericIterator.java ! test/tools/javac/foreach/IntersectIterator.java ! test/tools/javac/foreach/ListOfListTest.java ! test/tools/javac/foreach/SpecIterable.java ! test/tools/javac/foreach/StaticBlock.java ! test/tools/javac/foreach/SuperfluousAbstract.java ! test/tools/javac/foreach/T6500701.java ! test/tools/javac/foreach/T6682380.java ! test/tools/javac/generics/5066774/T5066774.java ! test/tools/javac/generics/5086027/T5086027.java ! test/tools/javac/generics/5086027/T5086027pos.java ! test/tools/javac/generics/6182950/T6182950c.java ! test/tools/javac/generics/6192945/Method.java ! test/tools/javac/generics/6192945/MethodNeg.java ! test/tools/javac/generics/6192945/Neg.java ! test/tools/javac/generics/6192945/Neg2.java ! test/tools/javac/generics/6192945/Neg3.java ! test/tools/javac/generics/6192945/T6192945.java ! test/tools/javac/generics/6207386/Test.java ! test/tools/javac/generics/6213818/T6213818.java ! test/tools/javac/generics/6218229/T6218229.java ! test/tools/javac/generics/6227936/Orig.java ! test/tools/javac/generics/6227936/T6227936.java ! test/tools/javac/generics/6245699/T6245699.java ! test/tools/javac/generics/6245699/T6245699a.java ! test/tools/javac/generics/6245699/T6245699b.java ! test/tools/javac/generics/6245699/T6245699c.java ! test/tools/javac/generics/6268476/T6268476.java ! test/tools/javac/generics/6292765/T6292765.java ! test/tools/javac/generics/6294779/T6294779a.java ! test/tools/javac/generics/6294779/T6294779b.java ! test/tools/javac/generics/6294779/T6294779c.java ! test/tools/javac/generics/6332204/T6332204.java ! test/tools/javac/generics/6332204/T6346876.java ! test/tools/javac/generics/6356636/T6356636.java ! test/tools/javac/generics/6356636/a/AbstractFoo.java ! test/tools/javac/generics/6356636/a/Bar.java ! test/tools/javac/generics/6372782/AbstractElement.java ! test/tools/javac/generics/6372782/AbstractPlanarVector.java ! test/tools/javac/generics/6372782/AbstractVector.java ! test/tools/javac/generics/6372782/AdditionDefined.java ! test/tools/javac/generics/6372782/AdditiveClosure.java ! test/tools/javac/generics/6372782/Element.java ! test/tools/javac/generics/6372782/MultiplicationDefined.java ! test/tools/javac/generics/6372782/PlainForm.java ! test/tools/javac/generics/6372782/PlainPlanarVector.java ! test/tools/javac/generics/6372782/PlanarVector.java ! test/tools/javac/generics/6372782/PlanarVectorVariable.java ! test/tools/javac/generics/6372782/Ring.java ! test/tools/javac/generics/6372782/Scalar.java ! test/tools/javac/generics/6372782/State.java ! test/tools/javac/generics/6372782/T6372782.java ! test/tools/javac/generics/6372782/Value.java ! test/tools/javac/generics/6372782/VariableForm.java ! test/tools/javac/generics/6372782/Vector.java ! test/tools/javac/generics/6413682/T6413682.java ! test/tools/javac/generics/6413682/TestPos.java ! test/tools/javac/generics/6487370/T6487370.java ! test/tools/javac/generics/6495506/A.java ! test/tools/javac/generics/6495506/T6495506.java ! test/tools/javac/generics/6531075/T6531075.java ! test/tools/javac/generics/6531090/T6531090a.java ! test/tools/javac/generics/6531090/T6531090b.java ! test/tools/javac/generics/6729401/T6729401.java ! test/tools/javac/generics/ArrayClone.java ! test/tools/javac/generics/ArrayTypearg.java ! test/tools/javac/generics/BridgeClash.java ! test/tools/javac/generics/BridgeOrder.java ! test/tools/javac/generics/BridgeRestype.java ! test/tools/javac/generics/CastCrash.java ! test/tools/javac/generics/Casting.java ! test/tools/javac/generics/Casting2.java ! test/tools/javac/generics/Casting3.java ! test/tools/javac/generics/Casting4.java ! test/tools/javac/generics/Casting5.java ! test/tools/javac/generics/CatchTyparam.java ! test/tools/javac/generics/Conditional.java ! test/tools/javac/generics/Covar2.java ! test/tools/javac/generics/Covar3.java ! test/tools/javac/generics/Covar4.java ! test/tools/javac/generics/Crash01.java ! test/tools/javac/generics/Crash02.java ! test/tools/javac/generics/CyclicInheritance3.java ! test/tools/javac/generics/CyclicInheritance5.java ! test/tools/javac/generics/ErasureClashCrash.java ! test/tools/javac/generics/ExtendedRaw1.java ! test/tools/javac/generics/ExtendedRaw2.java ! test/tools/javac/generics/ExtendedRaw3.java ! test/tools/javac/generics/ExtendedRaw4.java ! test/tools/javac/generics/FinalBridge.java ! test/tools/javac/generics/GenLit1.java ! test/tools/javac/generics/GenLit2.java ! test/tools/javac/generics/GenericAnonCtor.java ! test/tools/javac/generics/GenericMerge.java ! test/tools/javac/generics/GenericOverride.java ! test/tools/javac/generics/GenericThrowable.java ! test/tools/javac/generics/GetClass.java ! test/tools/javac/generics/GetClass2.java ! test/tools/javac/generics/InheritanceConflict.java ! test/tools/javac/generics/InheritanceConflict2.java ! test/tools/javac/generics/InheritanceConflict3.java ! test/tools/javac/generics/InnerInterface1.java ! test/tools/javac/generics/InnerInterface2.java ! test/tools/javac/generics/InstanceOf1.java ! test/tools/javac/generics/InstanceOf2.java ! test/tools/javac/generics/InstanceOf3.java ! test/tools/javac/generics/InterfaceCast1.java ! test/tools/javac/generics/LoadOrder.java ! test/tools/javac/generics/MissingBridge.java ! test/tools/javac/generics/MissingCast.java ! test/tools/javac/generics/Multibound1.java ! test/tools/javac/generics/MultipleInheritance.java ! test/tools/javac/generics/NameOrder.java ! test/tools/javac/generics/Nonlinear.java ! test/tools/javac/generics/ParametricException.java ! test/tools/javac/generics/ParenVerify.java ! test/tools/javac/generics/PermuteBound.java ! test/tools/javac/generics/PrimitiveClass.java ! test/tools/javac/generics/PrimitiveVariant.java ! test/tools/javac/generics/RawClient.java ! test/tools/javac/generics/RefEqual.java ! test/tools/javac/generics/RelaxedArrays.java ! test/tools/javac/generics/ReverseOrder.java ! test/tools/javac/generics/SelfImplement.java ! test/tools/javac/generics/SilentUnchecked.java ! test/tools/javac/generics/SuperTypeargs.java ! test/tools/javac/generics/T4661029.java ! test/tools/javac/generics/T4683314.java ! test/tools/javac/generics/T4684378.java ! test/tools/javac/generics/T4695348.java ! test/tools/javac/generics/T4695415.java ! test/tools/javac/generics/T4695847.java ! test/tools/javac/generics/T4711570.java ! test/tools/javac/generics/T4711572.java ! test/tools/javac/generics/T4711694.java ! test/tools/javac/generics/T4738171.java ! test/tools/javac/generics/T4739399.java ! test/tools/javac/generics/T4757416.java ! test/tools/javac/generics/T4784207a.java ! test/tools/javac/generics/T4784207b.java ! test/tools/javac/generics/T4784219.java ! test/tools/javac/generics/T5011073.java ! test/tools/javac/generics/T5094318.java ! test/tools/javac/generics/T6391995.java ! test/tools/javac/generics/T6481655.java ! test/tools/javac/generics/T6507024.java ! test/tools/javac/generics/T6557954.java ! test/tools/javac/generics/T6657499.java ! test/tools/javac/generics/T6660289.java ! test/tools/javac/generics/T6751514.java ! test/tools/javac/generics/T6869075.java ! test/tools/javac/generics/TyparamLit.java ! test/tools/javac/generics/TyparamStaticScope.java ! test/tools/javac/generics/TyparamStaticScope2.java ! test/tools/javac/generics/UncheckedArray.java ! test/tools/javac/generics/UncheckedConstructor.java ! test/tools/javac/generics/UncheckedCovariance.java ! test/tools/javac/generics/UnsoundInference.java ! test/tools/javac/generics/Varargs.java ! test/tools/javac/generics/Varargs2.java ! test/tools/javac/generics/WrongNew.java ! test/tools/javac/generics/abstract/T4717181c.java ! test/tools/javac/generics/bridge1/A.java ! test/tools/javac/generics/bridge1/C.java ! test/tools/javac/generics/bridge1/D.java ! test/tools/javac/generics/bridge1/E.java ! test/tools/javac/generics/classreader/HArrayMethod.java ! test/tools/javac/generics/classreader/HMember.java ! test/tools/javac/generics/classreader/HMethod.java ! test/tools/javac/generics/classreader/HMethodImpl.java ! test/tools/javac/generics/compat/CovariantCompat1.java ! test/tools/javac/generics/compat/CovariantCompat2.java ! test/tools/javac/generics/compat/OverrideBridge1.java ! test/tools/javac/generics/compat/OverrideBridge2.java ! test/tools/javac/generics/compat/OverrideBridge3.java ! test/tools/javac/generics/compat/VisibleBridge.java ! test/tools/javac/generics/diamond/pos/Pos01.java ! test/tools/javac/generics/diamond/pos/Pos02.java ! test/tools/javac/generics/diamond/pos/Pos03.java ! test/tools/javac/generics/diamond/pos/Pos04.java ! test/tools/javac/generics/diamond/pos/Pos05.java ! test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound1.java ! test/tools/javac/generics/forwardSeparateBound/ForwardSeparateBound2.java ! test/tools/javac/generics/genericAbstract/A.java ! test/tools/javac/generics/genericAbstract/B.java ! test/tools/javac/generics/inference/4941882/T4941882.java ! test/tools/javac/generics/inference/4942040/T4942040.java ! test/tools/javac/generics/inference/4954546/T4954546.java ! test/tools/javac/generics/inference/4972073/T4972073.java ! test/tools/javac/generics/inference/4972073/T4972073a.java ! test/tools/javac/generics/inference/4972073/T4972073b.java ! test/tools/javac/generics/inference/5003431/T5003431.java ! test/tools/javac/generics/inference/5021635/T5021635.java ! test/tools/javac/generics/inference/5021635/T6299211.java ! test/tools/javac/generics/inference/5034571/T5034571.java ! test/tools/javac/generics/inference/5042462/T5042462.java ! test/tools/javac/generics/inference/5044646/T5044646.java ! test/tools/javac/generics/inference/5044646/p1/A1.java ! test/tools/javac/generics/inference/5044646/p1/B.java ! test/tools/javac/generics/inference/5044646/p1/C.java ! test/tools/javac/generics/inference/5044646/p2/A2.java ! test/tools/javac/generics/inference/5049523/T5049523.java ! test/tools/javac/generics/inference/5070671/T5070671.java ! test/tools/javac/generics/inference/5073060/GenericsAndPackages.java ! test/tools/javac/generics/inference/5073060/Neg.java ! test/tools/javac/generics/inference/5073060/NegHelper.java ! test/tools/javac/generics/inference/5073060/T5073060.java ! test/tools/javac/generics/inference/5073060/T5073060a.java ! test/tools/javac/generics/inference/5080917/T5080917.java ! test/tools/javac/generics/inference/5081782/Neg.java ! test/tools/javac/generics/inference/5081782/Pos.java ! test/tools/javac/generics/inference/6215213/T6215213.java ! test/tools/javac/generics/inference/6222762/T6222762.java ! test/tools/javac/generics/inference/6240565/T6240565.java ! test/tools/javac/generics/inference/6273455/T6273455.java ! test/tools/javac/generics/inference/6278587/T6278587.java ! test/tools/javac/generics/inference/6278587/T6278587Neg.java ! test/tools/javac/generics/inference/6302954/T6456971.java ! test/tools/javac/generics/inference/6302954/T6476073.java ! test/tools/javac/generics/inference/6302954/X.java ! test/tools/javac/generics/inference/6356673/T6365166.java ! test/tools/javac/generics/inference/6356673/Test.java ! test/tools/javac/generics/inference/6359106/Orig.java ! test/tools/javac/generics/inference/6359106/T6359106.java ! test/tools/javac/generics/inference/6365166/NewTest.java ! test/tools/javac/generics/inference/6468384/T6468384.java ! test/tools/javac/generics/inference/6569789/T6569789.java ! test/tools/javac/generics/inference/6650759/T6650759a.java ! test/tools/javac/generics/inference/6650759/T6650759b.java ! test/tools/javac/generics/inference/6650759/T6650759c.java ! test/tools/javac/generics/inference/6650759/T6650759d.java ! test/tools/javac/generics/inference/6650759/T6650759e.java ! test/tools/javac/generics/inference/6650759/T6650759f.java ! test/tools/javac/generics/inference/6650759/T6650759g.java ! test/tools/javac/generics/inference/6650759/T6650759h.java ! test/tools/javac/generics/inference/6650759/T6650759i.java ! test/tools/javac/generics/inference/6650759/T6650759j.java ! test/tools/javac/generics/inference/6650759/T6650759k.java ! test/tools/javac/generics/inference/6650759/T6650759l.java ! test/tools/javac/generics/inference/6650759/T6650759m.java ! test/tools/javac/generics/inference/T6835428.java ! test/tools/javac/generics/odersky/BadTest.java ! test/tools/javac/generics/odersky/BadTest2.java ! test/tools/javac/generics/odersky/BadTest3.java ! test/tools/javac/generics/odersky/BadTest4.java ! test/tools/javac/generics/odersky/Cell.java ! test/tools/javac/generics/odersky/List.java ! test/tools/javac/generics/odersky/Test.java ! test/tools/javac/generics/odersky/Test2.java ! test/tools/javac/generics/odersky/Test3.java ! test/tools/javac/generics/odersky/Test4.java ! test/tools/javac/generics/parametricException/J.java ! test/tools/javac/generics/parametricException/K.java ! test/tools/javac/generics/rare/Rare1.java ! test/tools/javac/generics/rare/Rare10.java ! test/tools/javac/generics/rare/Rare11.java ! test/tools/javac/generics/rare/Rare2.java ! test/tools/javac/generics/rare/Rare3.java ! test/tools/javac/generics/rare/Rare4.java ! test/tools/javac/generics/rare/Rare5.java ! test/tools/javac/generics/rare/Rare6.java ! test/tools/javac/generics/rare/Rare7.java ! test/tools/javac/generics/rare/Rare8.java ! test/tools/javac/generics/rare/Rare9.java ! test/tools/javac/generics/rawOverride/AttributeSet.java ! test/tools/javac/generics/rawOverride/Fail1.java ! test/tools/javac/generics/rawOverride/T6178365.java ! test/tools/javac/generics/rawOverride/T6846972.java ! test/tools/javac/generics/rawOverride/Warn1.java ! test/tools/javac/generics/rawOverride/Warn2.java ! test/tools/javac/generics/rawSeparate/CharScanner.java ! test/tools/javac/generics/rawSeparate/Hashtable.java ! test/tools/javac/generics/rawSeparate/RetroLexer.java ! test/tools/javac/generics/syntax/6318240/Bar.java ! test/tools/javac/generics/syntax/6318240/BarNeg1.java ! test/tools/javac/generics/syntax/6318240/BarNeg1a.java ! test/tools/javac/generics/syntax/6318240/BarNeg2.java ! test/tools/javac/generics/syntax/6318240/BarNeg2a.java ! test/tools/javac/generics/syntax/6318240/Foo.java ! test/tools/javac/generics/typeargs/Basic.java ! test/tools/javac/generics/typeargs/Metharg1.java ! test/tools/javac/generics/typeargs/Metharg2.java ! test/tools/javac/generics/typeargs/Newarg1.java ! test/tools/javac/generics/typeargs/Newarg2.java ! test/tools/javac/generics/typeargs/Superarg1.java ! test/tools/javac/generics/typeargs/Superarg2.java ! test/tools/javac/generics/typeargs/ThisArg.java ! test/tools/javac/generics/typevars/4856983/T4856983.java ! test/tools/javac/generics/typevars/4856983/T4856983a.java ! test/tools/javac/generics/typevars/4856983/T4856983b.java ! test/tools/javac/generics/typevars/5060485/Compatibility.java ! test/tools/javac/generics/typevars/5060485/Method.java ! test/tools/javac/generics/typevars/5060485/Neg1.java ! test/tools/javac/generics/typevars/5060485/Neg2.java ! test/tools/javac/generics/typevars/5060485/Pos.java ! test/tools/javac/generics/typevars/5060485/T5060485.java ! test/tools/javac/generics/typevars/5061359/Base.java ! test/tools/javac/generics/typevars/5061359/Intf.java ! test/tools/javac/generics/typevars/5061359/T5061359.java ! test/tools/javac/generics/typevars/5061359/T5061359a.java ! test/tools/javac/generics/typevars/5061359/T5061359b.java ! test/tools/javac/generics/typevars/6182630/T6182630.java ! test/tools/javac/generics/typevars/6182630/T6182630a.java ! test/tools/javac/generics/typevars/6182630/T6182630b.java ! test/tools/javac/generics/typevars/6182630/T6182630c.java ! test/tools/javac/generics/typevars/6182630/T6182630d.java ! test/tools/javac/generics/typevars/6182630/T6182630e.java ! test/tools/javac/generics/typevars/6182630/T6182630f.java ! test/tools/javac/generics/typevars/6199146/T6199146.java ! test/tools/javac/generics/typevars/6486430/T6486430.java ! test/tools/javac/generics/typevars/6486430/T6486430a.java ! test/tools/javac/generics/typevars/6569404/T6569404a.java ! test/tools/javac/generics/typevars/6569404/T6569404c.java ! test/tools/javac/generics/wildcards/6320612/T6320612.java ! test/tools/javac/generics/wildcards/6330931/T6330931.java ! test/tools/javac/generics/wildcards/6437894/A.java ! test/tools/javac/generics/wildcards/6437894/B.java ! test/tools/javac/generics/wildcards/6651719/T6651719a.java ! test/tools/javac/generics/wildcards/6762569/T6762569a.java ! test/tools/javac/generics/wildcards/6762569/T6762569b.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes1.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes2.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes3.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes4.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes5.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes6.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes7.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes8.java ! test/tools/javac/generics/wildcards/AssignmentDifferentTypes9.java ! test/tools/javac/generics/wildcards/AssignmentSameType1.java ! test/tools/javac/generics/wildcards/AssignmentSameType2.java ! test/tools/javac/generics/wildcards/AssignmentSameType3.java ! test/tools/javac/generics/wildcards/AssignmentSameType4.java ! test/tools/javac/generics/wildcards/AssignmentSameType5.java ! test/tools/javac/generics/wildcards/AssignmentSameType6.java ! test/tools/javac/generics/wildcards/AssignmentSameType7.java ! test/tools/javac/generics/wildcards/AssignmentSameType8.java ! test/tools/javac/generics/wildcards/BoundBug.java ! test/tools/javac/generics/wildcards/ContraArg.java ! test/tools/javac/generics/wildcards/T5097548.java ! test/tools/javac/generics/wildcards/T5097548b.java ! test/tools/javac/generics/wildcards/T6450290.java ! test/tools/javac/generics/wildcards/T6732484.java ! test/tools/javac/generics/wildcards/UnboundArray.java ! test/tools/javac/generics/wildcards/neg/AmbiguousCast.java ! test/tools/javac/generics/wildcards/neg/Capture.java ! test/tools/javac/generics/wildcards/neg/CastFail1.java ! test/tools/javac/generics/wildcards/neg/CastFail10.java ! test/tools/javac/generics/wildcards/neg/CastFail11.java ! test/tools/javac/generics/wildcards/neg/CastFail12.java ! test/tools/javac/generics/wildcards/neg/CastFail13.java ! test/tools/javac/generics/wildcards/neg/CastFail14.java ! test/tools/javac/generics/wildcards/neg/CastFail15.java ! test/tools/javac/generics/wildcards/neg/CastFail16.java ! test/tools/javac/generics/wildcards/neg/CastFail17.java ! test/tools/javac/generics/wildcards/neg/CastFail18.java ! test/tools/javac/generics/wildcards/neg/CastFail19.java ! test/tools/javac/generics/wildcards/neg/CastFail2.java ! test/tools/javac/generics/wildcards/neg/CastFail20.java ! test/tools/javac/generics/wildcards/neg/CastFail21.java ! test/tools/javac/generics/wildcards/neg/CastFail3.java ! test/tools/javac/generics/wildcards/neg/CastFail4.java ! test/tools/javac/generics/wildcards/neg/CastFail5.java ! test/tools/javac/generics/wildcards/neg/CastFail6.java ! test/tools/javac/generics/wildcards/neg/CastFail7.java ! test/tools/javac/generics/wildcards/neg/CastFail8.java ! test/tools/javac/generics/wildcards/neg/CastFail9.java ! test/tools/javac/generics/wildcards/neg/CastWarn10.java ! test/tools/javac/generics/wildcards/neg/CastWarn11.java ! test/tools/javac/generics/wildcards/neg/CastWarn12.java ! test/tools/javac/generics/wildcards/neg/CastWarn13.java ! test/tools/javac/generics/wildcards/neg/CastWarn14.java ! test/tools/javac/generics/wildcards/neg/CastWarn2.java ! test/tools/javac/generics/wildcards/neg/CastWarn3.java ! test/tools/javac/generics/wildcards/neg/CastWarn4.java ! test/tools/javac/generics/wildcards/neg/CastWarn5.java ! test/tools/javac/generics/wildcards/neg/CastWarn6.java ! test/tools/javac/generics/wildcards/neg/CastWarn7.java ! test/tools/javac/generics/wildcards/neg/CastWarn8.java ! test/tools/javac/generics/wildcards/neg/CastWarn9.java ! test/tools/javac/generics/wildcards/neg/ParamCast.java ! test/tools/javac/generics/wildcards/neg/Readonly.java ! test/tools/javac/generics/wildcards/neg/Unbounded.java ! test/tools/javac/generics/wildcards/pos/AmbiguousCast2.java ! test/tools/javac/generics/wildcards/pos/BoundsCollision.java ! test/tools/javac/generics/wildcards/pos/Capture.java ! test/tools/javac/generics/wildcards/pos/CastTest.java ! test/tools/javac/generics/wildcards/pos/InstanceOf.java ! test/tools/javac/generics/wildcards/pos/ParamCast.java ! test/tools/javac/generics/wildcards/pos/RvalConversion.java ! test/tools/javac/generics/wildcards/pos/UncheckedCast1.java ! test/tools/javac/implicitThis/NewBeforeOuterConstructed.java ! test/tools/javac/implicitThis/NewBeforeOuterConstructed2.java ! test/tools/javac/implicitThis/NewBeforeOuterConstructed3.java ! test/tools/javac/implicitThis/WhichImplicitThis1.java ! test/tools/javac/implicitThis/WhichImplicitThis10.java ! test/tools/javac/implicitThis/WhichImplicitThis11.java ! test/tools/javac/implicitThis/WhichImplicitThis2.java ! test/tools/javac/implicitThis/WhichImplicitThis3.java ! test/tools/javac/implicitThis/WhichImplicitThis4.java ! test/tools/javac/implicitThis/WhichImplicitThis5.java ! test/tools/javac/implicitThis/WhichImplicitThis6.java ! test/tools/javac/implicitThis/WhichImplicitThis7.java ! test/tools/javac/implicitThis/WhichImplicitThis9.java ! test/tools/javac/importChecks/ImportCanonical1.java ! test/tools/javac/importChecks/ImportCanonical2.java ! test/tools/javac/importChecks/ImportIsFullyQualified.java ! test/tools/javac/importChecks/ImportOfOwnClass.java ! test/tools/javac/importChecks/InvalidImportsNoClasses.java ! test/tools/javac/importContext/anonPackage/Foo.java ! test/tools/javac/importContext/anonPackage/bar/Baz.java ! test/tools/javac/importContext/namedPackage/Dummy.java ! test/tools/javac/importContext/namedPackage/bar/Baz.java ! test/tools/javac/importContext/namedPackage/foo/Foo.java ! test/tools/javac/importscope/A.java ! test/tools/javac/importscope/B.java ! test/tools/javac/incompatibleNoninherited/A.java ! test/tools/javac/incompatibleNoninherited/B.java ! test/tools/javac/inheritAccess/PvtMbrsNotInherit1.java ! test/tools/javac/inheritedAccess/MethodReferenceQualification_1.java ! test/tools/javac/inheritedAccess/P1/priv.java ! test/tools/javac/inheritedAccess/P1/pub.java ! test/tools/javac/innerClassFile/Driver.sh ! test/tools/javac/innerClassFile/x/B.java ! test/tools/javac/innerClassFile/x/C.java ! test/tools/javac/innerClassFile/y/Main.java ! test/tools/javac/innerClassFile/y/R1.java ! test/tools/javac/innerClassFile/y/R2.java ! test/tools/javac/innerClassFile/y/R3.java ! test/tools/javac/javazip/A.java ! test/tools/javac/javazip/Test.sh ! test/tools/javac/javazip/bad/B.java ! test/tools/javac/javazip/good/B.java ! test/tools/javac/jvm/6397652/T6397652.java ! test/tools/javac/jvm/6397652/com/test/Test.java ! test/tools/javac/limits/ArrayDims1.java ! test/tools/javac/limits/ArrayDims2.java ! test/tools/javac/limits/ArrayDims3.java ! test/tools/javac/limits/ArrayDims4.java ! test/tools/javac/limits/ArrayDims5.java ! test/tools/javac/limits/CodeSize.java ! test/tools/javac/limits/FinallyNesting.java ! test/tools/javac/limits/LongName.java ! test/tools/javac/limits/NumArgs1.java ! test/tools/javac/limits/NumArgs2.java ! test/tools/javac/limits/NumArgs3.java ! test/tools/javac/limits/NumArgs4.java ! test/tools/javac/limits/PoolSize1.java ! test/tools/javac/limits/PoolSize2.java ! test/tools/javac/limits/StringLength.java ! test/tools/javac/links/T.java ! test/tools/javac/links/b/B.java ! test/tools/javac/links/links.sh ! test/tools/javac/lint/Deprecation.java ! test/tools/javac/lint/FallThrough.java ! test/tools/javac/lint/Unchecked.java ! test/tools/javac/literals/BinaryLiterals.java ! test/tools/javac/literals/UnderscoreLiterals.java ! test/tools/javac/mandatoryWarnings/deprecated/Test.java ! test/tools/javac/mandatoryWarnings/unchecked/Test.java ! test/tools/javac/meth/InvokeDyn.java ! test/tools/javac/meth/InvokeMH.java ! test/tools/javac/meth/MakeNegTests.sh ! test/tools/javac/miranda/4686148/AbstractTest.java ! test/tools/javac/miranda/4686148/ConcreteTest.java ! test/tools/javac/miranda/4686148/Test.java ! test/tools/javac/miranda/4686811/Tryit.java ! test/tools/javac/miranda/4686811/p1/A.java ! test/tools/javac/miranda/4686811/p1/C.java ! test/tools/javac/miranda/4686811/p2/B.java ! test/tools/javac/miranda/4711056/T1.java ! test/tools/javac/miranda/4711056/T2.java ! test/tools/javac/miranda/4711056/T3.java ! test/tools/javac/miranda/4711056/T4.java ! test/tools/javac/miranda/T4279316a.java ! test/tools/javac/miranda/T4279316b.java ! test/tools/javac/miranda/T4279316c.java ! test/tools/javac/miranda/T4279316d.java ! test/tools/javac/miranda/T4528315.java ! test/tools/javac/miranda/T4711325.java ! test/tools/javac/missingClass/A.java ! test/tools/javac/missingClass/B.java ! test/tools/javac/mixedTarget/CompatibleAbstracts1.java ! test/tools/javac/mixedTarget/CompatibleAbstracts2.java ! test/tools/javac/mixedTarget/CompatibleAbstracts3.java ! test/tools/javac/mixedTarget/CompatibleAbstracts4.java ! test/tools/javac/mixedTarget/CompatibleAbstracts5.java ! test/tools/javac/mixedTarget/ExtendCovariant1.java ! test/tools/javac/mixedTarget/ExtendCovariant2.java ! test/tools/javac/multicatch/Pos01.java ! test/tools/javac/multicatch/Pos02.java ! test/tools/javac/multicatch/Pos03.java ! test/tools/javac/multicatch/Pos04.java ! test/tools/javac/multicatch/Pos05.java ! test/tools/javac/nested/4903103/T4903103.java ! test/tools/javac/nested/5009484/X.java ! test/tools/javac/nested/5009484/Y.java ! test/tools/javac/newlines/Newlines.sh ! test/tools/javac/nio/compileTest/CompileTest.java ! test/tools/javac/nio/compileTest/HelloPathWorld.java ! test/tools/javac/overload/T4494762.java ! test/tools/javac/overload/T4723909.java ! test/tools/javac/overload/T4743490.java ! test/tools/javac/overload/T5090220.java ! test/tools/javac/overload/T6776289.java ! test/tools/javac/overrridecrash/A.java ! test/tools/javac/overrridecrash/B.java ! test/tools/javac/p1/AS.java ! test/tools/javac/p1/BS.java ! test/tools/javac/p1/CS.java ! test/tools/javac/packone/Mediator.java ! test/tools/javac/packone/Secret.java ! test/tools/javac/policy/test1/A.java ! test/tools/javac/policy/test1/D.java ! test/tools/javac/policy/test1/Test1a.java ! test/tools/javac/policy/test1/Test1b.java ! test/tools/javac/policy/test2/A.java ! test/tools/javac/policy/test2/B.java ! test/tools/javac/policy/test2/Test.java ! test/tools/javac/policy/test3/Test.java ! test/tools/javac/positions/T6402077.java ! test/tools/javac/positions/T6404194.java ! test/tools/javac/processing/6348193/T6348193.java ! test/tools/javac/processing/6348499/A.java ! test/tools/javac/processing/6348499/T6348499.java ! test/tools/javac/processing/6350124/HelloWorldAP.java ! test/tools/javac/processing/6350124/Marked.java ! test/tools/javac/processing/6350124/Marker.java ! test/tools/javac/processing/6350124/T6350124.java ! test/tools/javac/processing/6359313/Foo.java ! test/tools/javac/processing/6359313/T6359313.java ! test/tools/javac/processing/6359313/package-info.java ! test/tools/javac/processing/6365040/ProcBar.java ! test/tools/javac/processing/6365040/ProcFoo.java ! test/tools/javac/processing/6365040/T6365040.java ! test/tools/javac/processing/6378728/T6378728.java ! test/tools/javac/processing/6413690/T6413690.java ! test/tools/javac/processing/6413690/TestMe.java ! test/tools/javac/processing/6413690/src/Super.java ! test/tools/javac/processing/6414633/A.java ! test/tools/javac/processing/6414633/T6414633.java ! test/tools/javac/processing/6430209/T6430209.java ! test/tools/javac/processing/6430209/b6341534.java ! test/tools/javac/processing/6430209/test0.java ! test/tools/javac/processing/6430209/test1.java ! test/tools/javac/processing/6499119/ClassProcessor.java ! test/tools/javac/processing/6499119/package-info.java ! test/tools/javac/processing/6511613/DummyProcessor.java ! test/tools/javac/processing/6511613/clss41701.java ! test/tools/javac/processing/6512707/T6512707.java ! test/tools/javac/processing/6512707/TestAnnotation.java ! test/tools/javac/processing/6512707/TestEnum.java ! test/tools/javac/processing/6634138/Dummy.java ! test/tools/javac/processing/6634138/ExerciseDependency.java ! test/tools/javac/processing/6634138/T6634138.java ! test/tools/javac/processing/T6439826.java ! test/tools/javac/processing/T6920317.java ! test/tools/javac/processing/Xprint.java ! test/tools/javac/processing/completion/TestCompletions.java ! test/tools/javac/processing/environment/HelloWorld.java ! test/tools/javac/processing/environment/TestSourceVersion.java ! test/tools/javac/processing/environment/round/AnnotatedElementInfo.java ! test/tools/javac/processing/environment/round/BuriedAnnotations.java ! test/tools/javac/processing/environment/round/C1.java ! test/tools/javac/processing/environment/round/C2.java ! test/tools/javac/processing/environment/round/Foo.java ! test/tools/javac/processing/environment/round/InheritedAnnotation.java ! test/tools/javac/processing/environment/round/Part1.java ! test/tools/javac/processing/environment/round/Part2.java ! test/tools/javac/processing/environment/round/SurfaceAnnotations.java ! test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java ! test/tools/javac/processing/errors/Foo.java ! test/tools/javac/processing/errors/TestFatalityOfParseErrors.java ! test/tools/javac/processing/errors/TestOptionSyntaxErrors.java ! test/tools/javac/processing/errors/TestReturnCode.java ! test/tools/javac/processing/filer/TestFilerConstraints.java ! test/tools/javac/processing/filer/TestGetResource.java ! test/tools/javac/processing/filer/TestPackageInfo.java ! test/tools/javac/processing/filer/foo/Foo.java ! test/tools/javac/processing/filer/foo/bar/FuBar.java ! test/tools/javac/processing/filer/foo/bar/package-info.java ! test/tools/javac/processing/messager/MessagerBasics.java ! test/tools/javac/processing/model/6194785/T6194785.java ! test/tools/javac/processing/model/6194785/T6194785a.java ! test/tools/javac/processing/model/6341534/T6341534.java ! test/tools/javac/processing/model/6341534/dir/Foo.java ! test/tools/javac/processing/model/6341534/dir/package-info.java ! test/tools/javac/processing/model/TestExceptions.java ! test/tools/javac/processing/model/element/TestAnonClassNames.java ! test/tools/javac/processing/model/element/TestAnonSourceNames.java ! test/tools/javac/processing/model/element/TestElement.java ! test/tools/javac/processing/model/element/TestNames.java ! test/tools/javac/processing/model/element/TestPackageElement.java ! test/tools/javac/processing/model/element/TypeParamBounds.java ! test/tools/javac/processing/model/testgetallmembers/Main.java ! test/tools/javac/processing/model/type/MirroredTypeEx/NpeTest.java ! test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java ! test/tools/javac/processing/model/type/NoTypes.java ! test/tools/javac/processing/model/type/TestTypeKind.java ! test/tools/javac/processing/model/util/BinaryName.java ! test/tools/javac/processing/model/util/GetTypeElemBadArg.java ! test/tools/javac/processing/model/util/NoSupers.java ! test/tools/javac/processing/model/util/OverridesSpecEx.java ! test/tools/javac/processing/model/util/Superless.java ! test/tools/javac/processing/model/util/TypesBadArg.java ! test/tools/javac/processing/model/util/deprecation/Dep1.java ! test/tools/javac/processing/model/util/deprecation/ExpectedDeprecation.java ! test/tools/javac/processing/model/util/deprecation/TestDeprecation.java ! test/tools/javac/processing/model/util/directSupersOfErr/C1.java ! test/tools/javac/processing/model/util/directSupersOfErr/DirectSupersOfErr.java ! test/tools/javac/processing/model/util/elements/Foo.java ! test/tools/javac/processing/model/util/elements/TestGetConstantExpression.java ! test/tools/javac/processing/model/util/elements/TestGetPackageOf.java ! test/tools/javac/processing/model/util/elements/VacuousEnum.java ! test/tools/javac/processing/model/util/filter/ExpectedElementCounts.java ! test/tools/javac/processing/model/util/filter/Foo1.java ! test/tools/javac/processing/model/util/filter/TestIterables.java ! test/tools/javac/processing/warnings/HelloWorld.java ! test/tools/javac/processing/warnings/TestSourceVersionWarnings.java ! test/tools/javac/proprietary/WarnClass.java ! test/tools/javac/proprietary/WarnImport.java ! test/tools/javac/proprietary/WarnMethod.java ! test/tools/javac/proprietary/WarnStaticImport.java ! test/tools/javac/proprietary/WarnVariable.java ! test/tools/javac/proprietary/WarnWildcard.java ! test/tools/javac/protectedAccess/ProtectedAccess_1.java ! test/tools/javac/protectedAccess/ProtectedAccess_2.java ! test/tools/javac/protectedAccess/ProtectedAccess_3.java ! test/tools/javac/protectedAccess/ProtectedMemberAccess1.java ! test/tools/javac/protectedAccess/ProtectedMemberAccess5/Main.java ! test/tools/javac/protectedAccess/ProtectedMemberAccess5/z1/Z1.java ! test/tools/javac/protectedAccess/ProtectedMemberAccess5/z2/Z2.java ! test/tools/javac/protectedAccess/p/SuperClass.java ! test/tools/javac/protectedAccess/pkg/SuperClass.java ! test/tools/javac/protectedInner/AnonInnerClass.java ! test/tools/javac/protectedInner/InnerClass.java ! test/tools/javac/protectedInner/Outerclass.java ! test/tools/javac/protectedInner/mypackage/Superclass.java ! test/tools/javac/protectedInner/pkg1/Base.java ! test/tools/javac/protectedInner/pkg2/Sub.java ! test/tools/javac/quid/MakeNegTests.sh ! test/tools/javac/quid/QuotedIdent.java ! test/tools/javac/quid/QuotedIdent2.java ! test/tools/javac/rawDiags/Note.java ! test/tools/javac/scope/6225935/Bar.java ! test/tools/javac/scope/6225935/Baz.java ! test/tools/javac/scope/6225935/Estatico4.java ! test/tools/javac/scope/6225935/StaticImportAccess.java ! test/tools/javac/scope/6225935/T6214959.java ! test/tools/javac/scope/6225935/T6225935.java ! test/tools/javac/scope/6225935/T6381787.java ! test/tools/javac/scope/6225935/Test.java ! test/tools/javac/scope/6225935/a/Ambiguous.java ! test/tools/javac/scope/6225935/a/Named.java ! test/tools/javac/scope/6225935/a/Private.java ! test/tools/javac/scope/6225935/a/Star.java ! test/tools/javac/scope/6392998/T6392998.java ! test/tools/javac/sourcePath/SourcePath.java ! test/tools/javac/sourcePath/SourcePathA.java ! test/tools/javac/sourcePath2/SourcePath2.java ! test/tools/javac/sourcePath2/p/SourcePath2A.java ! test/tools/javac/stackmap/T4955930.java ! test/tools/javac/stackmap/T4955930.sh ! test/tools/javac/stackmap/UninitThis.java ! test/tools/javac/staticImport/6665223/T6665223.java ! test/tools/javac/staticImport/6665223/pkg/A.java ! test/tools/javac/staticImport/6665223/pkg/B.java ! test/tools/javac/staticImport/6695838/T6695838.java ! test/tools/javac/staticImport/6695838/a/Foo.java ! test/tools/javac/staticImport/6695838/a/FooInterface.java ! test/tools/javac/staticImport/Ambig1.java ! test/tools/javac/staticImport/ImportInherit.java ! test/tools/javac/staticImport/ImportPrivate.java ! test/tools/javac/staticImport/PrivateStaticImport.java ! test/tools/javac/staticImport/Shadow.java ! test/tools/javac/staticImport/StaticImport.java ! test/tools/javac/staticImport/StaticImport2.java ! test/tools/javac/staticQualifiedNew/StaticQualifiedNew.java ! test/tools/javac/staticQualifiedNew/p2/X.java ! test/tools/javac/synthesize/Boolean.java ! test/tools/javac/synthesize/Byte.java ! test/tools/javac/synthesize/Character.java ! test/tools/javac/synthesize/Cloneable.java ! test/tools/javac/synthesize/Integer.java ! test/tools/javac/synthesize/Long.java ! test/tools/javac/synthesize/Main.java ! test/tools/javac/synthesize/Number.java ! test/tools/javac/synthesize/Object.java ! test/tools/javac/synthesize/Serializable.java ! test/tools/javac/synthesize/Short.java ! test/tools/javac/synthesize/Test.java ! test/tools/javac/synthesize/Void.java ! test/tools/javac/tree/T6923080.java ! test/tools/javac/tree/TestAnnotatedAnonClass.java ! test/tools/javac/tree/TreePosTest.java ! test/tools/javac/tree/TreeScannerTest.java ! test/tools/javac/treeannotests/AnnoTreeTests.java ! test/tools/javac/treeannotests/DA.java ! test/tools/javac/treeannotests/TA.java ! test/tools/javac/treeannotests/Test.java ! test/tools/javac/treeannotests/TestProcessor.java ! test/tools/javac/typeAnnotations/InnerClass.java ! test/tools/javac/typeAnnotations/MultipleTargets.java ! test/tools/javac/typeAnnotations/TypeParameterTarget.java ! test/tools/javac/typeAnnotations/TypeUseTarget.java ! test/tools/javac/typeAnnotations/attribution/Scopes.java ! test/tools/javac/typeAnnotations/classfile/DeadCode.java ! test/tools/javac/typeAnnotations/failures/OldArray.java ! test/tools/javac/typeAnnotations/failures/VoidGenericMethod.java ! test/tools/javac/typeAnnotations/newlocations/BasicTest.java ! test/tools/javac/typeAnnotations/newlocations/ClassExtends.java ! test/tools/javac/typeAnnotations/newlocations/ClassLiterals.java ! test/tools/javac/typeAnnotations/newlocations/ClassParameters.java ! test/tools/javac/typeAnnotations/newlocations/ConstructorTypeArgs.java ! test/tools/javac/typeAnnotations/newlocations/Expressions.java ! test/tools/javac/typeAnnotations/newlocations/Fields.java ! test/tools/javac/typeAnnotations/newlocations/LocalVariables.java ! test/tools/javac/typeAnnotations/newlocations/MethodReturnType.java ! test/tools/javac/typeAnnotations/newlocations/MethodTypeArgs.java ! test/tools/javac/typeAnnotations/newlocations/MethodTypeParameters.java ! test/tools/javac/typeAnnotations/newlocations/Parameters.java ! test/tools/javac/typeAnnotations/newlocations/Receivers.java ! test/tools/javac/typeAnnotations/newlocations/Throws.java ! test/tools/javac/typeAnnotations/newlocations/TypeCasts.java ! test/tools/javac/typeAnnotations/newlocations/TypeParameters.java ! test/tools/javac/typeAnnotations/newlocations/Wildcards.java ! test/tools/javac/unicode/FirstChar.java ! test/tools/javac/unicode/FirstChar2.java ! test/tools/javac/unicode/NonasciiDigit.java ! test/tools/javac/unicode/NonasciiDigit2.java ! test/tools/javac/unicode/SubChar.java ! test/tools/javac/unicode/SupplementaryJavaID1.java ! test/tools/javac/unicode/SupplementaryJavaID2.java ! test/tools/javac/unicode/SupplementaryJavaID3.java ! test/tools/javac/unicode/SupplementaryJavaID4.java ! test/tools/javac/unicode/SupplementaryJavaID5.java ! test/tools/javac/unicode/SupplementaryJavaID6.java ! test/tools/javac/unicode/SupplementaryJavaID6.sh ! test/tools/javac/unicode/TripleQuote.java ! test/tools/javac/unicode/UnicodeAtEOL.java ! test/tools/javac/unicode/UnicodeCommentDelimiter.java ! test/tools/javac/unicode/UnicodeUnicode.java ! test/tools/javac/unicode/Unmappable.java ! test/tools/javac/unit/T6198196.java ! test/tools/javac/unit/util/convert/EnclosingCandidates.java ! test/tools/javac/unit/util/list/AbstractList.java ! test/tools/javac/unit/util/list/FromArray.java ! test/tools/javac/util/filemanager/TestName.java ! test/tools/javac/util/list/TList.java ! test/tools/javac/varargs/6730476/T6730476a.java ! test/tools/javac/varargs/6730476/T6730476b.java ! test/tools/javac/varargs/Anon.java ! test/tools/javac/varargs/BadSyntax2.java ! test/tools/javac/varargs/T6746184.java ! test/tools/javac/varargs/Varargs1.java ! test/tools/javac/varargs/VarargsOverride.java ! test/tools/javac/varargs/Warn1.java ! test/tools/javac/varargs/Warn2.java ! test/tools/javac/varargs/warning/Warn1.java ! test/tools/javac/varargs/warning/Warn2.java ! test/tools/javac/varargs/warning/Warn3.java ! test/tools/javac/versions/CheckClassFileVersion.java ! test/tools/javac/versions/check.sh ! test/tools/javac/warnings/DepAnn.java ! test/tools/javac/warnings/Finally.java ! test/tools/javac/warnings/Serial.java ! test/tools/javac/warnings/T6763518.java ! test/tools/javadoc/6176978/T6176978.java ! test/tools/javadoc/6176978/X.java ! test/tools/javadoc/BooleanConst.java ! test/tools/javadoc/BreakIteratorWarning.java ! test/tools/javadoc/FlagsTooEarly.java ! test/tools/javadoc/InlineTagsWithBraces.java ! test/tools/javadoc/LangVers.java ! test/tools/javadoc/MethodLinks.java ! test/tools/javadoc/NoStar.java ! test/tools/javadoc/T4994049/FileWithTabs.java ! test/tools/javadoc/T4994049/T4994049.java ! test/tools/javadoc/XWerror.java ! test/tools/javadoc/annotations/annotateMethodsFields/Main.java ! test/tools/javadoc/annotations/annotateMethodsFields/pkg1/A.java ! test/tools/javadoc/annotations/annotateMethodsFields/pkg1/B.java ! test/tools/javadoc/annotations/annotateMethodsFields/pkg1/E.java ! test/tools/javadoc/annotations/annotatePackage/Main.java ! test/tools/javadoc/annotations/annotatePackage/pkg1/A.java ! test/tools/javadoc/annotations/annotatePackage/pkg1/package-info.java ! test/tools/javadoc/annotations/annotatePackage/pkg2/B.java ! test/tools/javadoc/annotations/annotateParams/Main.java ! test/tools/javadoc/annotations/annotateParams/pkg1/A.java ! test/tools/javadoc/annotations/annotateParams/pkg1/C.java ! test/tools/javadoc/annotations/badVals/Main.java ! test/tools/javadoc/annotations/badVals/pkg1/A.java ! test/tools/javadoc/annotations/defaults/Main.java ! test/tools/javadoc/annotations/defaults/pkg1/A.java ! test/tools/javadoc/annotations/defaults/pkg1/B.java ! test/tools/javadoc/annotations/elementTypes/Main.java ! test/tools/javadoc/annotations/elementTypes/pkg1/A.java ! test/tools/javadoc/annotations/elementTypes/pkg1/B.java ! test/tools/javadoc/annotations/missing/Main.java ! test/tools/javadoc/annotations/missing/somepackage/MissingAnnotationClass.java ! test/tools/javadoc/annotations/shortcuts/Main.java ! test/tools/javadoc/annotations/shortcuts/pkg1/A.java ! test/tools/javadoc/annotations/shortcuts/pkg1/Array.java ! test/tools/javadoc/annotations/shortcuts/pkg1/Marker.java ! test/tools/javadoc/annotations/shortcuts/pkg1/Value.java ! test/tools/javadoc/badSuper/BadSuper.java ! test/tools/javadoc/badSuper/p/A.java ! test/tools/javadoc/badSuper/p/B.java ! test/tools/javadoc/completionFailure/CompletionFailure.java ! test/tools/javadoc/completionFailure/pkg/A.java ! test/tools/javadoc/completionFailure/pkg/B.java ! test/tools/javadoc/dupOk/DupOk.java ! test/tools/javadoc/dupOk/sp1/p/A.java ! test/tools/javadoc/dupOk/sp2/p/A.java ! test/tools/javadoc/dupOk/sp2/p/B.java ! test/tools/javadoc/enum/docComments/Main.java ! test/tools/javadoc/enum/docComments/pkg1/Operation.java ! test/tools/javadoc/enum/enumType/Main.java ! test/tools/javadoc/enum/enumType/pkg1/QuotablePerson.java ! test/tools/javadoc/generics/genericClass/Main.java ! test/tools/javadoc/generics/genericClass/pkg1/A.java ! test/tools/javadoc/generics/genericInnerAndOuter/Main.java ! test/tools/javadoc/generics/genericInnerAndOuter/pkg1/O.java ! test/tools/javadoc/generics/genericInnerAndOuter/pkg1/X.java ! test/tools/javadoc/generics/genericInterface/Main.java ! test/tools/javadoc/generics/genericInterface/pkg1/A.java ! test/tools/javadoc/generics/genericMethod/Main.java ! test/tools/javadoc/generics/genericMethod/pkg1/A.java ! test/tools/javadoc/generics/genericSuper/Main.java ! test/tools/javadoc/generics/genericSuper/pkg1/A.java ! test/tools/javadoc/generics/supertypes/Main.java ! test/tools/javadoc/generics/supertypes/pkg1/A.java ! test/tools/javadoc/generics/supertypes/pkg1/B.java ! test/tools/javadoc/generics/throwsGeneric/Main.java ! test/tools/javadoc/generics/throwsGeneric/pkg1/A.java ! test/tools/javadoc/generics/tparamCycle/Main.java ! test/tools/javadoc/generics/tparamCycle/pkg1/LikeEnum.java ! test/tools/javadoc/generics/tparamTagOnMethod/Main.java ! test/tools/javadoc/generics/tparamTagOnMethod/pkg1/A.java ! test/tools/javadoc/generics/tparamTagOnType/Main.java ! test/tools/javadoc/generics/tparamTagOnType/pkg1/A.java ! test/tools/javadoc/generics/wildcards/Main.java ! test/tools/javadoc/generics/wildcards/pkg1/A.java ! test/tools/javadoc/imports/I.java ! test/tools/javadoc/imports/MissingImport.java ! test/tools/javadoc/lib/Tester.java ! test/tools/javadoc/nestedClass/NestedClass.java ! test/tools/javadoc/nestedClass/NestedClassB.java ! test/tools/javadoc/outputRedirect/Test.java ! test/tools/javadoc/outputRedirect/p/OutputRedirect.java ! test/tools/javadoc/sourceOnly/Test.java ! test/tools/javadoc/sourceOnly/p/SourceOnly.java ! test/tools/javadoc/sourceOption/SourceOption.java ! test/tools/javadoc/sourceOption/p/A.java ! test/tools/javadoc/subpackageIgnore/SubpackageIgnore.java ! test/tools/javadoc/subpackageIgnore/pkg1/not-subpkg/SomeJavaFile.java ! test/tools/javadoc/varArgs/Main.java ! test/tools/javadoc/varArgs/pkg1/A.java ! test/tools/javah/6257087/foo.java ! test/tools/javah/6257087/foo.sh ! test/tools/javah/6572945/T6572945.java ! test/tools/javah/6572945/TestClass1.java ! test/tools/javah/6572945/TestClass2.java ! test/tools/javah/6572945/TestClass3.java ! test/tools/javah/ConstMacroTest.sh ! test/tools/javah/MissingParamClassException.java ! test/tools/javah/MissingParamClassTest.sh ! test/tools/javah/ParamClassTest.java ! test/tools/javah/ReadOldClass.sh ! test/tools/javah/SubClassConsts.java ! test/tools/javah/SuperClassConsts.java ! test/tools/javah/T5070898.java ! test/tools/javah/T6893943.java ! test/tools/javah/compareTest/CompareTest.java ! test/tools/javah/compareTest/CompareTest.sh ! test/tools/javah/compareTest/FindNativeFiles.java ! test/tools/javap/4111861/T4111861.java ! test/tools/javap/4870651/T4870651.java ! test/tools/javap/4870651/Test.java ! test/tools/javap/6937244/T6937244.java ! test/tools/javap/6937244/T6937244A.java ! test/tools/javap/ExtPath.java ! test/tools/javap/NotPackagePrivateInterface.java ! test/tools/javap/PublicInterfaceTest.sh ! test/tools/javap/T4075403.java ! test/tools/javap/T4459541.java ! test/tools/javap/T4501660.java ! test/tools/javap/T4501661.java ! test/tools/javap/T4777949.java ! test/tools/javap/T4876942.java ! test/tools/javap/T4880663.java ! test/tools/javap/T4880672.java ! test/tools/javap/T4884240.java ! test/tools/javap/T4975569.java ! test/tools/javap/T6271787.java ! test/tools/javap/T6474890.java ! test/tools/javap/T6587786.java ! test/tools/javap/T6622216.java ! test/tools/javap/T6622232.java ! test/tools/javap/T6622260.java ! test/tools/javap/T6715251.java ! test/tools/javap/T6715753.java ! test/tools/javap/T6715767.java ! test/tools/javap/T6716452.java ! test/tools/javap/T6729471.java ! test/tools/javap/T6824493.java ! test/tools/javap/T6863746.java ! test/tools/javap/T6866657.java ! test/tools/javap/T6868539.java ! test/tools/javap/T6879371.java ! test/tools/javap/classfile/6888367/T6888367.java ! test/tools/javap/classfile/T6887895.java ! test/tools/javap/classfile/deps/GetDeps.java ! test/tools/javap/classfile/deps/T6907575.java ! test/tools/javap/classfile/deps/p/C1.java ! test/tools/javap/pathsep.sh ! test/tools/javap/stackmap/T6271292.java ! test/tools/javap/stackmap/T6271292.sh ! test/tools/javap/typeAnnotations/ArrayClassLiterals.java ! test/tools/javap/typeAnnotations/ArrayClassLiterals2.java ! test/tools/javap/typeAnnotations/ClassLiterals.java ! test/tools/javap/typeAnnotations/JSR175Annotations.java ! test/tools/javap/typeAnnotations/NewArray.java ! test/tools/javap/typeAnnotations/Presence.java ! test/tools/javap/typeAnnotations/PresenceInner.java ! test/tools/javap/typeAnnotations/T6855990.java ! test/tools/javap/typeAnnotations/Visibility.java Changeset: 752bb790fc2d Author: ohair Date: 2010-05-26 10:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/752bb790fc2d Merge Changeset: 637c646c6412 Author: mikejwre Date: 2010-05-27 10:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/637c646c6412 Added tag jdk7-b95 for changeset 752bb790fc2d ! .hgtags Changeset: 9c2d50e46e31 Author: ohair Date: 2010-05-26 20:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9c2d50e46e31 6956202: Fix a few missed rebranding issues, please contact lines etc. Reviewed-by: darcy, jjg, weijun ! src/share/classes/com/sun/javadoc/package.html ! src/share/classes/com/sun/mirror/overview.html ! src/share/classes/com/sun/source/tree/DisjointTypeTree.java ! src/share/classes/javax/lang/model/overview.html ! test/tools/apt/mirror/declaration/pkg1/pkg2/package.html Changeset: 89cd267c2167 Author: mikejwre Date: 2010-06-02 15:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/89cd267c2167 Merge Changeset: aecce211bc6f Author: mikejwre Date: 2010-06-03 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/aecce211bc6f Added tag jdk7-b96 for changeset 89cd267c2167 ! .hgtags Changeset: ebf09be0222c Author: jjg Date: 2010-05-13 11:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/ebf09be0222c 6952188: update timeout for langtools jtreg tests on JPRT Reviewed-by: ohair ! test/Makefile Changeset: e9ef849ae0ed Author: mcimadamore Date: 2010-05-19 16:41 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/e9ef849ae0ed 6880344: Recursive type parameters do not compile Summary: Issue in type-variable substitution causes valid code to be rejected Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/generics/typevars/T6880344.java Changeset: 2881b376a689 Author: mcimadamore Date: 2010-05-19 16:42 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2881b376a689 6946618: sqe test fails: javac/generics/NewOnTypeParm in pit jdk7 b91 in all platforms. Summary: Bad cast to ClassType in the new diamond implementation fails if the target type of the instance creation expression is a type-variable Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/generics/6946618/T6946618a.java + test/tools/javac/generics/6946618/T6946618a.out + test/tools/javac/generics/6946618/T6946618b.java + test/tools/javac/generics/6946618/T6946618b.out + test/tools/javac/generics/6946618/T6946618c.java + test/tools/javac/generics/6946618/T6946618c.out Changeset: eb849389ae2c Author: mcimadamore Date: 2010-05-19 16:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/eb849389ae2c 6948381: javac Null Pointer Exception in Types.makeCompoundType Summary: Race condition between symbol completion and attribution of import statements causes NPE when creating intersection type Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/6948381/T6948381.java + test/tools/javac/6948381/npe/A.java + test/tools/javac/6948381/npe/B.java Changeset: 1d587ef8bf56 Author: mcimadamore Date: 2010-05-19 16:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1d587ef8bf56 6951833: latest diamond implementation generates spurious raw type warnings Summary: Raw warning checks should be disabled in the presence of a diamond AST node Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/generics/diamond/T6951833.java Changeset: e9d66d392a8d Author: jjg Date: 2010-05-21 17:32 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/e9d66d392a8d 6954901: langtools/test/Makefile should check for bin/javac(.exe) instead of lib/tools.jar Reviewed-by: ohair ! test/Makefile Changeset: 16efe627290e Author: lana Date: 2010-05-24 09:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/16efe627290e Merge Changeset: 593a59e40bdb Author: lana Date: 2010-05-28 12:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/593a59e40bdb Merge ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java Changeset: c0a41294297e Author: lana Date: 2010-06-07 17:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/c0a41294297e Merge Changeset: 3b38f3aa3dc3 Author: mikejwre Date: 2010-06-10 13:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/3b38f3aa3dc3 Added tag jdk7-b97 for changeset c0a41294297e ! .hgtags Changeset: 77f10f22c3e4 Author: mcimadamore Date: 2010-06-15 14:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/77f10f22c3e4 merge with b97 ! make/build.properties ! make/build.xml ! src/share/bin/launcher.sh-template ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Scope.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/TypeTags.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/AttrContext.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Code.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/parser/Lexer.java ! src/share/classes/com/sun/tools/javac/parser/Scanner.java ! src/share/classes/com/sun/tools/javac/parser/Token.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/tree/TreeScanner.java ! src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java ! src/share/classes/com/sun/tools/javac/util/Bits.java ! src/share/classes/com/sun/tools/javac/util/Names.java ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java From david at davidflanagan.com Wed Jun 16 11:51:52 2010 From: david at davidflanagan.com (David Flanagan) Date: Wed, 16 Jun 2010 11:51:52 -0700 Subject: Virtual extension methods: don't call them defender methods, please References: 4BEDD9E9.7050300@oracle.com Message-ID: <4C191D48.2090802@davidflanagan.com> Brian, I'm not qualified to comment on the technical aspects of this proposal, but I did want to point out that the "public defender" metaphor only works in the US and if the name "defender method" sticks, it will be a mystery to most of the world. Given that Java is not likely to have both static and virtual extension methods, I think these could more simply be called "extension methods". And given that your proposal points out that they can be used not as extensions but as an alternative to abstract classes, an even simpler name would be "default methods". David Flanagan P.S. I'm assuming that my post to lambda-dev will be rejected since I'm not a subscriber, so I've cc'ed you directly. From brian.goetz at oracle.com Wed Jun 16 12:13:27 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 16 Jun 2010 15:13:27 -0400 Subject: Virtual extension methods: don't call them defender methods, please In-Reply-To: <4C191D48.2090802@davidflanagan.com> References: 4BEDD9E9.7050300@oracle.com <4C191D48.2090802@davidflanagan.com> Message-ID: <4C192257.3080602@oracle.com> Yes, of course. As has been stated before, we're openly sharing big chunks of design processes that have historically been private. As a result, ideas are being exposed in their raw state, and one should not conclude that the final product will look like the raw ideas being thrown around. "Extension methods" is a better name for public consumption (hey, that's even what the strawman syntax used.) But there's no rule against having some fun at work (and maybe even internally within the VM/compiler code and comments.) Cheers, -Brian On 6/16/2010 2:51 PM, David Flanagan wrote: > Brian, > > I'm not qualified to comment on the technical aspects of this proposal, > but I did want to point out that the "public defender" metaphor only > works in the US and if the name "defender method" sticks, it will be a > mystery to most of the world. > > Given that Java is not likely to have both static and virtual extension > methods, I think these could more simply be called "extension methods". > > And given that your proposal points out that they can be used not as > extensions but as an alternative to abstract classes, an even simpler > name would be "default methods". > > David Flanagan > > P.S. I'm assuming that my post to lambda-dev will be rejected since I'm > not a subscriber, so I've cc'ed you directly. From neal at gafter.com Wed Jun 16 14:50:33 2010 From: neal at gafter.com (Neal Gafter) Date: Wed, 16 Jun 2010 14:50:33 -0700 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: On Wed, Jun 16, 2010 at 9:41 AM, Reinier Zwitserloot wrote: > Joe posted something relevant on the topic just now: > > http://blogs.sun.com/darcy/entry/syntax_sin_tax > > It's as usual a bit more complicated than this. > > Comments along the line of: > > * "#void(int, int)" is ugly, we should use: "#(int, int)void" instead! > > or: > > * "method.()" 'isn't Java' and should either be just "method()" or > "method.invoke()". > > are indeed painting the bikeshed. they ARE pointless, in that now is not the > time to make these decisions, and it is clear that from the "method.()" > syntax you can move to either "method()" or "method.invoke()" with the same > effort all throughout the process. While this may be clear to you, it isn't true. Moving to function.invoke() is easy, but moving to function() requires an overhaul of the Java namespaces and name resolution rules. It is the time to decide which of these approaches will be taken, but my understanding is that the current decision is that there will not be an overhaul of the name resolution rules. That means function() is ruled out as an option. > On the other hand, some discussions are focussed around syntax but in such a > way that NOT changing the outlook becomes more expensive over time. For > example, blazing forward with the exception transparency proposal as it was > written (with and friends) is a lot of work, which would all have > to be tossed if the Pure/Impure closures alternative is used instead (which > is good, then that time can be invested in writing a spec and implementation > for detecting pure and impure closures!), or lone throws. Indeed, this is not an issue of syntax, but one of semantics (although the two options do have different surface syntax too). So now is the time to examine such alternatives. But there is no coherent proposal for an alternative way of doing exception transparency for us to consider (I am aware that you don't acknowledge the failures of the lone throws approach). > It would all be fair game if the argument "well, we don't have the time to > do this anymore" is never uttered, but clearly it will (in fact, it already > HAS, when full reification came up. I get why there's no time for that, but > it does prove by default that time is a factor). Are you saying that you and/or Colebourne don't have the time to specify a coherent alternative that both supports exception transparency (even in APIs that must store the functions in variables) and does not undermine exception checking? Cheers, Neal From neal at gafter.com Wed Jun 16 15:10:40 2010 From: neal at gafter.com (Neal Gafter) Date: Wed, 16 Jun 2010 15:10:40 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: On Wed, Jun 16, 2010 at 10:03 AM, Reinier Zwitserloot wrote: => Neal, I've admitted that the syntax-based exception transparency plan no > doubt handles the most use cases of the 3 solutions offered (explicit, > implicit-for-impure, lone throws) However, I've also said that the frequency > of cases that it can handle that my pure/impure concept can't is most likely > rather small, whereas the extra complexity required is enormous, and not > just for the compiler builders - generics is still a source of never-ending > puzzlers. It's not merely a matter of not handling the cases, notwithstanding the inaccuracy of your guesses about their frequency. Undermining compile-time exception checking is a nonstarter. > In the case of generics I don't know of any proposal that gave us > most of the power without most of the complexity, but if it HAD come along > it might well have been the better choice. There was no such proposal, the > considerable added complexity was nevertheless worth doing because the added > expressiveness outpaced the complexity. The alternative was called declaration-site variance, but because it would not have allowed the existing collection classes to be retrofitted it was rejected as an option. > Incidentally, pure/impure closures make adding return/break/continue > transparency very simple; all that needs to be done then is invent new > syntax to be able to specify the target of a return statement, somehow, > either by letting you explicitly target them e.g. with labels like you can > with breaks/continues, or by inventing a new syntax for local return. This paragraph doesn't make sense. I suspect you don't know what "transparency" means in the context in which you are attempting to use it. From neal at gafter.com Wed Jun 16 15:19:28 2010 From: neal at gafter.com (Neal Gafter) Date: Wed, 16 Jun 2010 15:19:28 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: On Wed, Jun 16, 2010 at 10:03 AM, Reinier Zwitserloot wrote: => Neal, I've admitted that the syntax-based exception transparency plan no > doubt handles the most use cases of the 3 solutions offered (explicit, > implicit-for-impure, lone throws) However, I've also said that the frequency > of cases that it can handle that my pure/impure concept can't is most likely > rather small, whereas the extra complexity required is enormous, and not > just for the compiler builders - generics is still a source of never-ending > puzzlers. Setting aside the inaccuracy of your guesses about their frequency, It's not merely a matter of not handling some use cases. Undermining compile-time exception checking is a nonstarter. > In the case of generics I don't know of any proposal that gave us > most of the power without most of the complexity, but if it HAD come along > it might well have been the better choice. There was no such proposal, the > considerable added complexity was nevertheless worth doing because the added > expressiveness outpaced the complexity. The alternative was called declaration-site variance, but because it would not have allowed the existing collection classes to be retrofitted it was rejected as an option. > Incidentally, pure/impure closures make adding return/break/continue > transparency very simple; all that needs to be done then is invent new > syntax to be able to specify the target of a return statement, somehow, > either by letting you explicitly target them e.g. with labels like you can > with breaks/continues, or by inventing a new syntax for local return. This paragraph doesn't make sense. I suspect you don't know what "transparency" means in the context in which you are attempting to use it. From reinier at zwitserloot.com Wed Jun 16 15:36:10 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 16 Jun 2010 23:36:10 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: transparency as in the ability to let the boundaries of the closure not affect the meaning or runtime execution of break, continue, and return statements, often referred to as "long" return/break/continue. I have no idea what the Neal Gafter Dictionary says. Perhaps you can send me a copy. Your declaration that undermining compile-time exception checking is a non-starter is somewhat odd in two different ways: 1) Why is that a non-starter, exactly? Would it help if I claimed that the apparent amount of syntax required (whatever it ends up looking like) to support explicit exception transparency is a non-starter? Now we have two claims of non-starter-ness. 2) It doesn't undermine compile-time exception checking. Perhaps you do not understand the proposal. Simplifying considerably, the proposal is built around the notion that *IF* the lexical scope matches the runtime stack (that is, the location of a closure in the source file actually matches a stack frame that's guaranteed to still be on the stack anytime the closure is executed), then one can treat checked exceptions thrown in closures no different form how a for loop would handle them - i.e., not at all. They fall through all by themselves, checked exception constraints are preserved. It offers no solution whatsoever for when this principle (lexical scope matches runtime stack) does not hold, other than the observation that exception transparency isn't usually a requirement when that happens. The proposal also does not exclude other exception transparency solutions to handle such cases. Exactly how does treating closures that work like, say, a for loop's body does, as inherently exception transparent undermine compile-time exception checking? Lots of use-cases where explicit exception checking seems to be the right answer won't actually work that way. See the part about how "throws E" seems impossible to retrofit onto e.g. a TreeSet's Comparator instance in the post to this mailing list introducing the concept. If truly you believe full exception transparency done in a way that supports all these use cases is required (I don't think you do, but then I'm a bit confused as to where you've drawn the lines), then there is no closure proposal that's anywhere near acceptable and I don't see how one could create such a thing without breaking backwards compatibility. --Reinier Zwitserloot On Wed, Jun 16, 2010 at 11:10 PM, Neal Gafter wrote: > On Wed, Jun 16, 2010 at 10:03 AM, Reinier Zwitserloot > wrote: > => Neal, I've admitted that the syntax-based exception transparency plan no > > doubt handles the most use cases of the 3 solutions offered (explicit, > > implicit-for-impure, lone throws) However, I've also said that the > frequency > > of cases that it can handle that my pure/impure concept can't is most > likely > > rather small, whereas the extra complexity required is enormous, and not > > just for the compiler builders - generics is still a source of > never-ending > > puzzlers. > > It's not merely a matter of not handling the cases, notwithstanding > the inaccuracy of your guesses about their frequency. Undermining > compile-time exception checking is a nonstarter. > > > In the case of generics I don't know of any proposal that gave us > > most of the power without most of the complexity, but if it HAD come > along > > it might well have been the better choice. There was no such proposal, > the > > considerable added complexity was nevertheless worth doing because the > added > > expressiveness outpaced the complexity. > > The alternative was called declaration-site variance, but because it > would not have allowed the existing collection classes to be > retrofitted it was rejected as an option. > > > Incidentally, pure/impure closures make adding return/break/continue > > transparency very simple; all that needs to be done then is invent new > > syntax to be able to specify the target of a return statement, somehow, > > either by letting you explicitly target them e.g. with labels like you > can > > with breaks/continues, or by inventing a new syntax for local return. > > This paragraph doesn't make sense. I suspect you don't know what > "transparency" means in the context in which you are attempting to use > it. > From jkuhnert at gmail.com Wed Jun 16 15:43:33 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Wed, 16 Jun 2010 18:43:33 -0400 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C12797E.4080904@oracle.com> Message-ID: Can't someone just kick ban him? I mean really.. If he were standing in front of me I think I'd probably be tempted to hit him. On Wed, Jun 16, 2010 at 6:36 PM, Reinier Zwitserloot wrote: > transparency as in the ability to let the boundaries of the closure not > affect the meaning or runtime execution of break, continue, and return > statements, often referred to as "long" return/break/continue. > > I have no idea what the Neal Gafter Dictionary says. Perhaps you can send me > a copy. > > Your declaration that undermining compile-time exception checking is a > non-starter is somewhat odd in two different ways: > > 1) Why is that a non-starter, exactly? Would it help if I claimed that the > apparent amount of syntax required (whatever it ends up looking like) to > support explicit exception transparency is a non-starter? Now we have two > claims of non-starter-ness. > > 2) It doesn't undermine compile-time exception checking. Perhaps you do not > understand the proposal. Simplifying considerably, the proposal is built > around the notion that *IF* the lexical scope matches the runtime stack > (that is, the location of a closure in the source file actually matches a > stack frame that's guaranteed to still be on the stack anytime the closure > is executed), then one can treat checked exceptions thrown in closures no > different form how a for loop would handle them - i.e., not at all. They > fall through all by themselves, checked exception constraints are preserved. > It offers no solution whatsoever for when this principle (lexical scope > matches runtime stack) does not hold, other than the observation that > exception transparency isn't usually a requirement when that happens. The > proposal also does not exclude other exception transparency solutions to > handle such cases. Exactly how does treating closures that work like, say, a > for loop's body does, as inherently exception transparent undermine > compile-time exception checking? Lots of use-cases where explicit exception > checking seems to be the right answer won't actually work that way. See the > part about how "throws E" seems impossible to retrofit onto e.g. a TreeSet's > Comparator instance in the post to this mailing list introducing the > concept. If truly you believe full exception transparency done in a way that > supports all these use cases is required (I don't think you do, but then I'm > a bit confused as to where you've drawn the lines), then there is no closure > proposal that's anywhere near acceptable and I don't see how one could > create such a thing without breaking backwards compatibility. > > --Reinier Zwitserloot > > > > On Wed, Jun 16, 2010 at 11:10 PM, Neal Gafter wrote: > >> On Wed, Jun 16, 2010 at 10:03 AM, Reinier Zwitserloot >> wrote: >> => Neal, I've admitted that the syntax-based exception transparency plan no >> > doubt handles the most use cases of the 3 solutions offered (explicit, >> > implicit-for-impure, lone throws) However, I've also said that the >> frequency >> > of cases that it can handle that my pure/impure concept can't is most >> likely >> > rather small, whereas the extra complexity required is enormous, and not >> > just for the compiler builders - generics is still a source of >> never-ending >> > puzzlers. >> >> It's not merely a matter of not handling the cases, notwithstanding >> the inaccuracy of your guesses about their frequency. ?Undermining >> compile-time exception checking is a nonstarter. >> >> > In the case of generics I don't know of any proposal that gave us >> > most of the power without most of the complexity, but if it HAD come >> along >> > it might well have been the better choice. There was no such proposal, >> the >> > considerable added complexity was nevertheless worth doing because the >> added >> > expressiveness outpaced the complexity. >> >> The alternative was called declaration-site variance, but because it >> would not have allowed the existing collection classes to be >> retrofitted it was rejected as an option. >> >> > Incidentally, pure/impure closures make adding return/break/continue >> > transparency very simple; all that needs to be done then is invent new >> > syntax to be able to specify the target of a return statement, somehow, >> > either by letting you explicitly target them e.g. with labels like you >> can >> > with breaks/continues, or by inventing a new syntax for local return. >> >> This paragraph doesn't make sense. ?I suspect you don't know what >> "transparency" means in the context in which you are attempting to use >> it. >> > > From reinier at zwitserloot.com Wed Jun 16 15:48:52 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 16 Jun 2010 23:48:52 +0100 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: You clearly didn't understand my point. Of course I know "closure()" requires lots of work; I was the one originally highlighting again and again how difficult it is to make "closure()" work on your pet closure mailing list (closure-dev) a few months ago. What I said was that whatever effort is required to make "closure()" work, proceeding for now with "closure.()" will not increase that workload. None of the steps taken in implementing the straw man so far somehow get in the way of that considerable workload (of writing a spec + implementation of somehow deciding which namespace is intended anytime the compiler sees "foo.bar.baz()"). I believe the decision has mostly been made (fortunately) that foo() will NOT be the closure invocation syntax. Nevertheless, for those who strongly feel foo() is the right way forward, right now is probably not the best of times to raise this point. We've got bigger fish to fry right now, things that cannot wait. Either way, a syntax discussion on that topic, especially without prototypes, doesn't seem to be nearly as fruitful as e.g. sorting out checked exceptions vs. closures, which looks like quite a bit of mutually exclusive work between the current 3 proposals. I've written down an alternative exception transparency proposal in this mailing list based on pure/impure closures. It even lists the constraints. It does not support exception transparency in certain seemingly rare use cases, which is a hefty price to pay, perhaps, but, on the other hand, it gets rid of a _LOT_ of complexity and syntax. Your continued absolute position on this remains wholly unsupported. I presume Brian, Mark, Alex, and friends do not take the gospel of Neal as enough proof. Perhaps you can show us a set of examples that will suggest that this use case isn't nearly as rare as I think it is. Either way the decision isn't black and white; it's a matter of how many use cases are "lost" (can no longer be done cleanly) compared to exactly how syntactically and semantically complex one considers the explicit "throws E" concept. --Reinier Zwitserloot On Wed, Jun 16, 2010 at 10:50 PM, Neal Gafter wrote: > On Wed, Jun 16, 2010 at 9:41 AM, Reinier Zwitserloot > wrote: > > Joe posted something relevant on the topic just now: > > > > http://blogs.sun.com/darcy/entry/syntax_sin_tax > > > > It's as usual a bit more complicated than this. > > > > Comments along the line of: > > > > * "#void(int, int)" is ugly, we should use: "#(int, int)void" instead! > > > > or: > > > > * "method.()" 'isn't Java' and should either be just "method()" or > > "method.invoke()". > > > > are indeed painting the bikeshed. they ARE pointless, in that now is not > the > > time to make these decisions, and it is clear that from the "method.()" > > syntax you can move to either "method()" or "method.invoke()" with the > same > > effort all throughout the process. > > While this may be clear to you, it isn't true. Moving to > function.invoke() is easy, but moving to function() requires an > overhaul of the Java namespaces and name resolution rules. It is the > time to decide which of these approaches will be taken, but my > understanding is that the current decision is that there will not be > an overhaul of the name resolution rules. That means function() is > ruled out as an option. > > > On the other hand, some discussions are focussed around syntax but in > such a > > way that NOT changing the outlook becomes more expensive over time. For > > example, blazing forward with the exception transparency proposal as it > was > > written (with and friends) is a lot of work, which would all > have > > to be tossed if the Pure/Impure closures alternative is used instead > (which > > is good, then that time can be invested in writing a spec and > implementation > > for detecting pure and impure closures!), or lone throws. > > Indeed, this is not an issue of syntax, but one of semantics (although > the two options do have different surface syntax too). So now is the > time to examine such alternatives. But there is no coherent proposal > for an alternative way of doing exception transparency for us to > consider (I am aware that you don't acknowledge the failures of the > lone throws approach). > > > It would all be fair game if the argument "well, we don't have the time > to > > do this anymore" is never uttered, but clearly it will (in fact, it > already > > HAS, when full reification came up. I get why there's no time for that, > but > > it does prove by default that time is a factor). > > Are you saying that you and/or Colebourne don't have the time to > specify a coherent alternative that both supports exception > transparency (even in APIs that must store the functions in variables) > and does not undermine exception checking? > > Cheers, > Neal > From int19h at gmail.com Wed Jun 16 15:58:35 2010 From: int19h at gmail.com (Pavel Minaev) Date: Wed, 16 Jun 2010 15:58:35 -0700 Subject: Maintaining civil discussion Message-ID: Ladies and gentlemen, if I may have a minute of your time for a somewhat off-topic post that I nonetheless feel to be sorely needed... I've been subscribed to this mailing list pretty much since it was created, because I am interested in the evolution of the design of this feature. What makes me extremely uncomfortable, however, is the amount of veiled personal attacks in the discussions going on here. I don't want to point fingers at anyone in particular, but overall, I feel that the resulting atmosphere is not particularly conductive to rational discussion on the topic - and, while this has been the case very early on already, it has really blown up recently. IMO, the noise-to-substance ratio now is at the point where the usefulness of the list is rapidly diminishing; furthermore, I suspect that some people may be intentionally refraining from posting anything so as to not get insults in response (I do, for one). Can we please have some respect towards fellow posters, and maintain a polite, civil and professional discussion on the topic of the list, without snarky sidelines and thinly veiled claims that "I'm smarter than you" (regardless of your credentials, professional level, experience etc)? And even when you feel that the other person does not return that courtesy, give them the benefit of the doubt - it may be a misunderstanding on your behalf, or even an accidental bad choice of words on theirs - especially as some participants are not native English speakers. Thank you, and I hope no-one gets offended any further over my post. From jkuhnert at gmail.com Wed Jun 16 16:14:32 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Wed, 16 Jun 2010 19:14:32 -0400 Subject: Maintaining civil discussion In-Reply-To: References: Message-ID: If it helps, I've never witnessed any open source development mailing list discussion where tones like this (which the developers committing changes didn't themselves agree with) were tolerated. Incidents happen all the time, but I guess they generally don't feel as obligated to be nice to people that aren't being nice to them. A little mailing list moderation might be additionally worthwhile if order can't be maintained voluntarily.. On Wed, Jun 16, 2010 at 6:58 PM, Pavel Minaev wrote: > Ladies and gentlemen, if I may have a minute of your time for a somewhat > off-topic post that I nonetheless feel to be sorely needed... > > I've been subscribed to this mailing list pretty much since it was created, > because I am interested in the evolution of the design of this feature. What > makes me extremely uncomfortable, however, is the amount of veiled personal > attacks in the discussions going on here. I don't want to point fingers at > anyone in particular, but overall, I feel that the resulting atmosphere is > not particularly conductive to rational discussion on the topic - and, while > this has been the case very early on already, it has really blown up > recently. IMO, the noise-to-substance ratio now is at the point where the > usefulness of the list is rapidly diminishing; furthermore, I suspect that > some people may be intentionally refraining from posting anything so as to > not get insults in response (I do, for one). > > Can we please have some respect towards fellow posters, and maintain a > polite, civil and professional discussion on the topic of the list, without > snarky sidelines and thinly veiled claims that "I'm smarter than you" > (regardless of your credentials, professional level, experience etc)? And > even when you feel that the other person does not return that courtesy, give > them the benefit of the doubt - it may be a misunderstanding on your behalf, > or even an accidental bad choice of words on theirs - especially as some > participants are not native English speakers. > > Thank you, and I hope no-one gets offended any further over my post. > > From alex.buckley at oracle.com Wed Jun 16 17:38:42 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Wed, 16 Jun 2010 17:38:42 -0700 Subject: Maintaining civil discussion In-Reply-To: References: Message-ID: <4C196E92.9040805@oracle.com> There are strong differences on technical opinion, but I really don't feel anyone has lowered the tone of the list to a level where they must be removed. Discussion is brisk but orderly. I've said before that Oracle reads all the mails and it truly informs our thinking when clear differences of opinion are explored. For example, all the questions over checked exception transparency will eventually be raised in a JavaOne-like setting, so it's good to work out our answers now. (I'm sure you'll all get a mention in the JLS preface one day.) The worst thing would be to stop the exploration. If someone uses derogatory terms or is personally aggressive, that's a different story, and Oracle will not tolerate that traffic on its lists. Alex On 6/16/2010 4:14 PM, Jesse Kuhnert wrote: > If it helps, I've never witnessed any open source development mailing > list discussion where tones like this (which the developers committing > changes didn't themselves agree with) were tolerated. > > Incidents happen all the time, but I guess they generally don't feel > as obligated to be nice to people that aren't being nice to them. A > little mailing list moderation might be additionally worthwhile if > order can't be maintained voluntarily.. > > On Wed, Jun 16, 2010 at 6:58 PM, Pavel Minaev wrote: >> Ladies and gentlemen, if I may have a minute of your time for a somewhat >> off-topic post that I nonetheless feel to be sorely needed... >> >> I've been subscribed to this mailing list pretty much since it was created, >> because I am interested in the evolution of the design of this feature. What >> makes me extremely uncomfortable, however, is the amount of veiled personal >> attacks in the discussions going on here. I don't want to point fingers at >> anyone in particular, but overall, I feel that the resulting atmosphere is >> not particularly conductive to rational discussion on the topic - and, while >> this has been the case very early on already, it has really blown up >> recently. IMO, the noise-to-substance ratio now is at the point where the >> usefulness of the list is rapidly diminishing; furthermore, I suspect that >> some people may be intentionally refraining from posting anything so as to >> not get insults in response (I do, for one). >> >> Can we please have some respect towards fellow posters, and maintain a >> polite, civil and professional discussion on the topic of the list, without >> snarky sidelines and thinly veiled claims that "I'm smarter than you" >> (regardless of your credentials, professional level, experience etc)? And >> even when you feel that the other person does not return that courtesy, give >> them the benefit of the doubt - it may be a misunderstanding on your behalf, >> or even an accidental bad choice of words on theirs - especially as some >> participants are not native English speakers. >> >> Thank you, and I hope no-one gets offended any further over my post. >> >> > From jkuhnert at gmail.com Wed Jun 16 17:46:02 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Wed, 16 Jun 2010 20:46:02 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: You know the old saying "talk is cheap" probably directly applies here. Neal has the BGGA implementation, Oracle has their current in-development version. (although to be fair it sounds like the minds at oracle/Neal both have years and years of formal training and real field experience doing this..even with lowly general API design I've rarely found many "easy" large changes where backwards compatibility and public API use are involved..ok maybe never ;) ) Since you are the only one convinced of how easy it is, why don't you just show us? Any more talk at this point on your part without evidence to back it up would surely just make the talker look more and more foolish and possibly troubled.. On Wednesday, June 16, 2010, Reinier Zwitserloot wrote: > You clearly didn't understand my point. Of course I know "closure()" > requires lots of work; I was the one originally highlighting again and again > how difficult it is to make "closure()" work on your pet closure mailing > list (closure-dev) a few months ago. > > What I said was that whatever effort is required to make "closure()" work, > proceeding for now with "closure.()" will not increase that workload. None > of the steps taken in implementing the straw man so far somehow get in the > way of that considerable workload (of writing a spec + implementation of > somehow deciding which namespace is intended anytime the compiler sees > "foo.bar.baz()"). I believe the decision has mostly been made (fortunately) > that foo() will NOT be the closure invocation syntax. Nevertheless, for > those who strongly feel foo() is the right way forward, right now is > probably not the best of times to raise this point. We've got bigger fish to > fry right now, things that cannot wait. Either way, a syntax discussion on > that topic, especially without prototypes, doesn't seem to be nearly as > fruitful as e.g. sorting out checked exceptions vs. closures, which looks > like quite a bit of mutually exclusive work between the current 3 proposals. > > > I've written down an alternative exception transparency proposal in this > mailing list based on pure/impure closures. It even lists the constraints. > It does not support exception transparency in certain seemingly rare use > cases, which is a hefty price to pay, perhaps, but, on the other hand, it > gets rid of a _LOT_ of complexity and syntax. Your continued absolute > position on this remains wholly unsupported. I presume Brian, Mark, Alex, > and friends do not take the gospel of Neal as enough proof. Perhaps you can > show us a set of examples that will suggest that this use case isn't nearly > as rare as I think it is. Either way the decision isn't black and white; > it's a matter of how many use cases are "lost" (can no longer be done > cleanly) compared to exactly how syntactically and semantically complex one > considers the explicit "throws E" concept. > > --Reinier Zwitserloot > > > > On Wed, Jun 16, 2010 at 10:50 PM, Neal Gafter wrote: > >> On Wed, Jun 16, 2010 at 9:41 AM, Reinier Zwitserloot >> wrote: >> > Joe posted something relevant on the topic just now: >> > >> > http://blogs.sun.com/darcy/entry/syntax_sin_tax >> > >> > It's as usual a bit more complicated than this. >> > >> > Comments along the line of: >> > >> > * "#void(int, int)" is ugly, we should use: "#(int, int)void" instead! >> > >> > or: >> > >> > * "method.()" 'isn't Java' and should either be just "method()" or >> > "method.invoke()". >> > >> > are indeed painting the bikeshed. they ARE pointless, in that now is not >> the >> > time to make these decisions, and it is clear that from the "method.()" >> > syntax you can move to either "method()" or "method.invoke()" with the >> same >> > effort all throughout the process. >> >> While this may be clear to you, it isn't true. ?Moving to >> function.invoke() is easy, but moving to function() requires an >> overhaul of the Java namespaces and name resolution rules. ?It is the >> time to decide which of these approaches will be taken, but my >> understanding is that the current decision is that there will not be >> an overhaul of the name resolution rules. ?That means function() is >> ruled out as an option. >> >> > On the other hand, some discussions are focussed around syntax but in >> such a >> > way that NOT changing the outlook becomes more expensive over time. For >> > example, blazing forward with the exception transparency proposal as it >> was >> > written (with and friends) is a lot of work, which would all >> have >> > to be tossed if the Pure/Impure closures alternative is used instead >> (which >> > is good, then that time can be invested in writing a spec and >> implementation >> > for detecting pure and impure closures!), or lone throws. >> >> Indeed, this is not an issue of syntax, but one of semantics (although >> the two options do have different surface syntax too). ?So now is the >> time to examine such alternatives. ?But there is no coherent proposal >> for an alternative way of doing exception transparency for us to >> consider (I am aware that you don't acknowledge the failures of the >> lone throws approach). >> >> > It would all be fair game if the argument "well, we don't have the time >> to >> > do this anymore" is never uttered, but clearly it will (in fact, it >> already >> > HAS, when full reification came up. I get why there's no time for that, >> but >> > it does prove by default that time is a factor). >> >> Are you saying that you and/or Colebourne don't have the time to >> specify a coherent alternative that both supports exception >> transparency (even in APIs that must store the functions in variables) >> and does not undermine exception checking? >> >> Cheers, >> Neal >> > > From reinier at zwitserloot.com Wed Jun 16 19:06:31 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Thu, 17 Jun 2010 03:06:31 +0100 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: As I understand it, exception transparency is still in the "writing a spec" phase. I've written a spec for it. --Reinier Zwitserloot On Thu, Jun 17, 2010 at 1:46 AM, Jesse Kuhnert wrote: > You know the old saying "talk is cheap" probably directly applies here. > > Neal has the BGGA implementation, Oracle has their current > in-development version. (although to be fair it sounds like the minds > at oracle/Neal both have years and years of formal training and real > field experience doing this..even with lowly general API design I've > rarely found many "easy" large changes where backwards compatibility > and public API use are involved..ok maybe never ;) ) > > Since you are the only one convinced of how easy it is, why don't you > just show us? Any more talk at this point on your part without > evidence to back it up would surely just make the talker look more and > more foolish and possibly troubled.. > > On Wednesday, June 16, 2010, Reinier Zwitserloot > wrote: > > You clearly didn't understand my point. Of course I know "closure()" > > requires lots of work; I was the one originally highlighting again and > again > > how difficult it is to make "closure()" work on your pet closure mailing > > list (closure-dev) a few months ago. > > > > What I said was that whatever effort is required to make "closure()" > work, > > proceeding for now with "closure.()" will not increase that workload. > None > > of the steps taken in implementing the straw man so far somehow get in > the > > way of that considerable workload (of writing a spec + implementation of > > somehow deciding which namespace is intended anytime the compiler sees > > "foo.bar.baz()"). I believe the decision has mostly been made > (fortunately) > > that foo() will NOT be the closure invocation syntax. Nevertheless, for > > those who strongly feel foo() is the right way forward, right now is > > probably not the best of times to raise this point. We've got bigger fish > to > > fry right now, things that cannot wait. Either way, a syntax discussion > on > > that topic, especially without prototypes, doesn't seem to be nearly as > > fruitful as e.g. sorting out checked exceptions vs. closures, which looks > > like quite a bit of mutually exclusive work between the current 3 > proposals. > > > > > > I've written down an alternative exception transparency proposal in this > > mailing list based on pure/impure closures. It even lists the > constraints. > > It does not support exception transparency in certain seemingly rare use > > cases, which is a hefty price to pay, perhaps, but, on the other hand, it > > gets rid of a _LOT_ of complexity and syntax. Your continued absolute > > position on this remains wholly unsupported. I presume Brian, Mark, Alex, > > and friends do not take the gospel of Neal as enough proof. Perhaps you > can > > show us a set of examples that will suggest that this use case isn't > nearly > > as rare as I think it is. Either way the decision isn't black and white; > > it's a matter of how many use cases are "lost" (can no longer be done > > cleanly) compared to exactly how syntactically and semantically complex > one > > considers the explicit "throws E" concept. > > > > --Reinier Zwitserloot > > > > > > > > On Wed, Jun 16, 2010 at 10:50 PM, Neal Gafter wrote: > > > >> On Wed, Jun 16, 2010 at 9:41 AM, Reinier Zwitserloot > >> wrote: > >> > Joe posted something relevant on the topic just now: > >> > > >> > http://blogs.sun.com/darcy/entry/syntax_sin_tax > >> > > >> > It's as usual a bit more complicated than this. > >> > > >> > Comments along the line of: > >> > > >> > * "#void(int, int)" is ugly, we should use: "#(int, int)void" instead! > >> > > >> > or: > >> > > >> > * "method.()" 'isn't Java' and should either be just "method()" or > >> > "method.invoke()". > >> > > >> > are indeed painting the bikeshed. they ARE pointless, in that now is > not > >> the > >> > time to make these decisions, and it is clear that from the > "method.()" > >> > syntax you can move to either "method()" or "method.invoke()" with the > >> same > >> > effort all throughout the process. > >> > >> While this may be clear to you, it isn't true. Moving to > >> function.invoke() is easy, but moving to function() requires an > >> overhaul of the Java namespaces and name resolution rules. It is the > >> time to decide which of these approaches will be taken, but my > >> understanding is that the current decision is that there will not be > >> an overhaul of the name resolution rules. That means function() is > >> ruled out as an option. > >> > >> > On the other hand, some discussions are focussed around syntax but in > >> such a > >> > way that NOT changing the outlook becomes more expensive over time. > For > >> > example, blazing forward with the exception transparency proposal as > it > >> was > >> > written (with and friends) is a lot of work, which would > all > >> have > >> > to be tossed if the Pure/Impure closures alternative is used instead > >> (which > >> > is good, then that time can be invested in writing a spec and > >> implementation > >> > for detecting pure and impure closures!), or lone throws. > >> > >> Indeed, this is not an issue of syntax, but one of semantics (although > >> the two options do have different surface syntax too). So now is the > >> time to examine such alternatives. But there is no coherent proposal > >> for an alternative way of doing exception transparency for us to > >> consider (I am aware that you don't acknowledge the failures of the > >> lone throws approach). > >> > >> > It would all be fair game if the argument "well, we don't have the > time > >> to > >> > do this anymore" is never uttered, but clearly it will (in fact, it > >> already > >> > HAS, when full reification came up. I get why there's no time for > that, > >> but > >> > it does prove by default that time is a factor). > >> > >> Are you saying that you and/or Colebourne don't have the time to > >> specify a coherent alternative that both supports exception > >> transparency (even in APIs that must store the functions in variables) > >> and does not undermine exception checking? > >> > >> Cheers, > >> Neal > >> > > > > > From jkuhnert at gmail.com Wed Jun 16 19:27:50 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Wed, 16 Jun 2010 22:27:50 -0400 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: I must have missed it then, my gmail search for "Reiner exception" only turned up a 60 reply thread conversation stemming from a proposal Brian put forth. Maybe if your ideas were more easily summarized in to something that stands alone it would be easier to consume and reference for discussion. Possibly even a link? I'm sure it wouldn't be expected to be a conpletely thorough academic exercise but the realities of the existing/in process jdk/vm would certainly have to align with what you wanted to do..as well as the even sneakier forwards compatible ramifications. On Wednesday, June 16, 2010, Reinier Zwitserloot wrote: > As I understand it, exception transparency is still in the "writing a spec" phase. I've written a spec for it. --Reinier Zwitserloot > > > > On Thu, Jun 17, 2010 at 1:46 AM, Jesse Kuhnert wrote: > > You know the old saying "talk is cheap" probably directly applies here. > > Neal has the BGGA implementation, Oracle has their current > in-development version. (although to be fair it sounds like the minds > at oracle/Neal both have years and years of formal training and real > field experience doing this..even with lowly general API design I've > rarely found many "easy" large changes where backwards compatibility > and public API use are involved..ok maybe never ;) ) > > Since you are the only one convinced of how easy it is, why don't you > just show us? Any more talk at this point on your part without > evidence to back it up would surely just make the talker look more and > more foolish and possibly troubled.. > > On Wednesday, June 16, 2010, Reinier Zwitserloot > wrote: >> You clearly didn't understand my point. Of course I know "closure()" >> requires lots of work; I was the one originally highlighting again and again >> how difficult it is to make "closure()" work on your pet closure mailing >> list (closure-dev) a few months ago. >> >> What I said was that whatever effort is required to make "closure()" work, >> proceeding for now with "closure.()" will not increase that workload. None >> of the steps taken in implementing the straw man so far somehow get in the >> way of that considerable workload (of writing a spec + implementation of >> somehow deciding which namespace is intended anytime the compiler sees >> "foo.bar.baz()"). I believe the decision has mostly been made (fortunately) >> that foo() will NOT be the closure invocation syntax. Nevertheless, for >> those who strongly feel foo() is the right way forward, right now is >> probably not the best of times to raise this point. We've got bigger fish to >> fry right now, things that cannot wait. Either way, a syntax discussion on >> that topic, especially without prototypes, doesn't seem to be nearly as >> fruitful as e.g. sorting out checked exceptions vs. closures, which looks >> like quite a bit of mutually exclusive work between the current 3 proposals. >> >> >> I've written down an alternative exception transparency proposal in this >> mailing list based on pure/impure closures. It even lists the constraints. >> It does not support exception transparency in certain seemingly rare use >> cases, which is a hefty price to pay, perhaps, but, on the other hand, it >> gets rid of a _LOT_ of complexity and syntax. Your continued absolute >> position on this remains wholly unsupported. I presume Brian, Mark, Alex, >> and friends do not take the gospel of Neal as enough proof. Perhaps you can >> show us a set of examples that will suggest that this use case isn't nearly >> as rare as I think it is. Either way the decision isn't black and white; >> it's a matter of how many use cases are "lost" (can no longer be done >> cleanly) compared to exactly how syntactically and semantically complex one >> considers the explicit "throws E" concept. >> >> --Reinier Zwitserloot >> >> >> >> On Wed, Jun 16, 2010 at 10:50 PM, Neal Gafter wrote: >> >>> On Wed, Jun 16, 2010 at 9:41 AM, Reinier Zwitserloot >>> wrote: >>> > Joe posted something relevant on the topic just now: >>> > >>> > http://blogs.sun.com/darcy/entry/syntax_sin_tax >>> > >>> > It's as usual a bit more complicated than this. >>> > >>> > Comments along the line of: >>> > >>> > * "#void(int, int)" is ugly, we should use: "#(int, int)void" instead! >>> > >>> > or: >>> > >>> > * "method.()" 'isn't Java' and should either be just "method()" or >>> > "method.invoke()". >>> > >>> > are indeed painting the bikeshed. they ARE pointless, in that now is From scolebourne at joda.org Wed Jun 16 20:08:39 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 17 Jun 2010 04:08:39 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: For completeness, I spent a couple of hours tonight implementing lone-throws and catch-throws. It was pretty easy. The patch is below. (This patch is based on an old version of the JDK, originally based on the FCM branch of Kijaro. Applying it to the current head will almost certainly fail) Stephen http://www.jroller.com/scolebourne/entry/exception_transparency_and_lone_throws Index: langtools/src/share/classes/com/sun/source/tree/CatchTree.java =================================================================== --- . (revision 109) +++ . (working copy) @@ -43,4 +43,5 @@ public interface CatchTree extends Tree { VariableTree getParameter(); BlockTree getBlock(); + boolean getCatchThrows(); // LONE-THROWS } Index: langtools/src/share/classes/com/sun/source/tree/MethodTree.java =================================================================== --- . (revision 109) +++ . (working copy) @@ -54,6 +54,7 @@ List getTypeParameters(); List getParameters(); List getThrows(); + boolean getThrowAny(); // LONE-THROWS BlockTree getBody(); Tree getDefaultValue(); // for annotation types } Index: langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java =================================================================== --- . (revision 131) +++ . (working copy) @@ -657,7 +657,12 @@ for (List l = tree.defs; l.nonEmpty(); l = l.tail) { if (l.head.getTag() == JCTree.METHODDEF) { scan(l.head); - errorUncaught(); + if (!((JCMethodDecl) l.head).throwAny) { // LONE-THROWS + errorUncaught(); + } else { + pendingExits = ListBuffer.lb(); + System.out.println("Checked to Unchecked"); + } } } @@ -793,6 +798,8 @@ pendingExits.append(exit); } } + errorUncaught(); + } finally { classDef = classDefPrev; thrown = thrownPrev; @@ -1045,6 +1052,7 @@ log.error(l.head.pos(), "except.already.caught", exc); } else if (!chk.isUnchecked(l.head.pos(), exc) && + !l.head.catchThrows && // LONE-THROWS exc.tsym != syms.throwableType.tsym && exc.tsym != syms.exceptionType.tsym && !chk.intersects(exc, thrownInTry)) { Index: langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java =================================================================== --- . (revision 141) +++ . (working copy) @@ -442,7 +442,7 @@ syms.noSuchFieldErrorType, syms.noSymbol), null), - make.Block(0, List.nil()))); + make.Block(0, List.nil()), false)); // LONE-THROWS for (Map.Entry e : values.entrySet()) { VarSymbol enumerator = e.getKey(); Integer mappedValue = e.getValue(); @@ -1644,7 +1644,7 @@ // catchBlock := "catch ($catchParam) $rethrowStmt" JCCatch catchBlock = make.Catch(make.VarDef(catchParam, null), - rethrowStmt); + rethrowStmt, false); // LONE-THROWS // tryCatch := "try $returnResult $catchBlock" JCStatement tryCatch = make.Try(returnResult, Index: langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java =================================================================== --- . (revision 115) +++ . (working copy) @@ -436,6 +436,7 @@ List.nil(), List.nil(), List.nil(), // thrown + false, // LONE-THROWS null, //make.Block(0, Tree.emptyList.prepend(make.Return(make.Ident(names._null)))), null); memberEnter(values, env); @@ -450,6 +451,7 @@ names.fromString("name"), make.Type(syms.stringType), null)), List.nil(), // thrown + false, // LONE-THROWS null, //make.Block(0, Tree.emptyList.prepend(make.Return(make.Ident(names._null)))), null); memberEnter(valueOf, env); @@ -465,6 +467,7 @@ List.nil(), List.nil(), List.nil(), + false, // LONE-THROWS null, null); memberEnter(ordinal, env); @@ -477,6 +480,7 @@ List.nil(), List.nil(), List.nil(), + false, // LONE-THROWS null, null); memberEnter(name, env); @@ -1070,6 +1074,7 @@ make.TypeParams(typarams), params, make.Types(thrown), + false, // LONE-THROWS make.Block(0, stats), null); return result; Index: langtools/src/share/classes/com/sun/tools/javac/parser/Parser.java =================================================================== --- . (revision 131) +++ . (working copy) @@ -1933,6 +1933,12 @@ JCCatch catchClause() { int pos = S.pos(); accept(CATCH); + boolean catchThrows = false; + if (S.token() == THROWS) { + catchThrows = true; + accept(THROWS); + System.out.println("Found catch throws"); + } accept(LPAREN); JCVariableDecl formal = variableDeclaratorId(optFinal(Flags.PARAMETER), qualident(), false); // FCM-MREF @@ -1938,7 +1944,7 @@ variableDeclaratorId(optFinal(Flags.PARAMETER), qualident(), false); // FCM-MREF accept(RPAREN); JCBlock body = block(); - return F.at(pos).Catch(formal, body); + return F.at(pos).Catch(formal, body, catchThrows); // LONE-THROWS } /** SwitchBlockStatementGroups = { SwitchBlockStatementGroup } @@ -2674,7 +2680,7 @@ pos = S.pos(); List err = isVoid ? List.of(toP(F.at(pos).MethodDef(mods, name, type, typarams, - List.nil(), List.nil(), null, null))) + List.nil(), List.nil(), false, null, null))) // LONE-THROWS : null; return List.of(syntaxError(S.pos(), err, "expected", keywords.token2string(LPAREN))); } @@ -2709,9 +2715,15 @@ // throws clause List thrown = List.nil(); + boolean throwAny = false; if (S.token() == THROWS) { S.nextToken(); - thrown = qualidentList(); + if (S.token() == LBRACE) { + System.out.println("Found lone-throws"); + throwAny = true; + } else { + thrown = qualidentList(); + } } // main body @@ -2740,7 +2752,7 @@ } JCMethodDecl result = toP(F.at(pos).MethodDef(mods, name, type, typarams, - params, thrown, + params, thrown, throwAny, body, defaultValue)); attach(result, dc); return result; Index: langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java =================================================================== --- . (revision 141) +++ . (working copy) @@ -649,6 +649,7 @@ public List typarams; public List params; public List thrown; + public boolean throwAny; // LONE-THROWS public JCBlock body; public JCExpression defaultValue; // for annotation types public MethodSymbol sym; @@ -658,6 +659,7 @@ List typarams, List params, List thrown, + boolean throwAny, // LONE-THROWS JCBlock body, JCExpression defaultValue, MethodSymbol sym) @@ -668,6 +670,7 @@ this.typarams = typarams; this.params = params; this.thrown = thrown; + this.throwAny = throwAny; // LONE-THROWS this.body = body; this.defaultValue = defaultValue; this.sym = sym; @@ -688,6 +691,7 @@ public List getThrows() { return thrown; } + public boolean getThrowAny() { return throwAny; } public JCBlock getBody() { return body; } public JCTree getDefaultValue() { // for annotation types return defaultValue; @@ -1067,9 +1071,11 @@ public static class JCCatch extends JCTree implements CatchTree { public JCVariableDecl param; public JCBlock body; - protected JCCatch(JCVariableDecl param, JCBlock body) { + public boolean catchThrows; // LONE-THROWS + protected JCCatch(JCVariableDecl param, JCBlock body, boolean catchThrows) { this.param = param; this.body = body; + this.catchThrows = catchThrows; // LONE-THROWS } @Override public void accept(Visitor v) { v.visitCatch(this); } @@ -1077,6 +1083,7 @@ public Kind getKind() { return Kind.CATCH; } public JCVariableDecl getParameter() { return param; } public JCBlock getBlock() { return body; } + public boolean getCatchThrows() { return catchThrows; } // LONE-THROWS @Override public R accept(TreeVisitor v, D d) { return v.visitCatch(this, d); @@ -2233,6 +2240,7 @@ List typarams, List params, List thrown, + boolean throwAny, // LONE-THROWS JCBlock body, JCExpression defaultValue); JCVariableDecl VarDef(JCModifiers mods, @@ -2253,7 +2261,7 @@ JCCase Case(JCExpression pat, List stats); JCSynchronized Synchronized(JCExpression lock, JCBlock body); JCTry Try(JCBlock body, List catchers, JCBlock finalizer); - JCCatch Catch(JCVariableDecl param, JCBlock body); + JCCatch Catch(JCVariableDecl param, JCBlock body, boolean catchThrows); JCConditional Conditional(JCExpression cond, JCExpression thenpart, JCExpression elsepart); Index: langtools/src/share/classes/com/sun/tools/javac/tree/Pretty.java =================================================================== --- . (revision 131) +++ . (working copy) @@ -461,7 +461,9 @@ print(")"); if (tree.thrown.nonEmpty()) { print(" throws "); - printExprs(tree.thrown); + if (!tree.throwAny) { + printExprs(tree.thrown); // LONE-THROWS + } } if (tree.body != null) { print(" "); @@ -683,7 +685,7 @@ public void visitCatch(JCCatch tree) { try { - print(" catch ("); + print(tree.catchThrows ? " catch throws (" : " catch ("); // LONE-THROWS printExpr(tree.param); print(") "); printStat(tree.body); Index: langtools/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java =================================================================== --- . (revision 131) +++ . (working copy) @@ -133,7 +133,7 @@ JCCatch t = (JCCatch) node; JCVariableDecl param = copy(t.param, p); JCBlock body = copy(t.body, p); - return M.at(t.pos).Catch(param, body); + return M.at(t.pos).Catch(param, body, t.catchThrows); // LONE-THROWS } public JCTree visitClass(ClassTree node, P p) { @@ -241,7 +241,7 @@ List thrown = copy(t.thrown, p); JCBlock body = copy(t.body, p); JCExpression defaultValue = copy(t.defaultValue, p); - return M.at(t.pos).MethodDef(mods, t.name, restype, typarams, params, thrown, body, defaultValue); + return M.at(t.pos).MethodDef(mods, t.name, restype, typarams, params, thrown, t.throwAny, body, defaultValue); // LONE-THROWS } public JCTree visitMethodInvocation(MethodInvocationTree node, P p) { Index: langtools/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java =================================================================== --- . (revision 131) +++ . (working copy) @@ -171,6 +171,7 @@ List typarams, List params, List thrown, + boolean throwAny, // LONE-THROWS JCBlock body, JCExpression defaultValue) { @@ -180,6 +181,7 @@ typarams, params, thrown, + throwAny, // LONE-THROWS body, defaultValue, null); @@ -263,8 +265,8 @@ return tree; } - public JCCatch Catch(JCVariableDecl param, JCBlock body) { - JCCatch tree = new JCCatch(param, body); + public JCCatch Catch(JCVariableDecl param, JCBlock body, boolean catchThrows) { // LONE-THROWS + JCCatch tree = new JCCatch(param, body, catchThrows); tree.pos = pos; return tree; } @@ -801,6 +803,7 @@ TypeParams(mtype.getTypeArguments()), Params(mtype.getParameterTypes(), m), Types(mtype.getThrownTypes()), + false, // LONE-THROWS body, null, m).setPos(pos).setType(mtype); From alex.buckley at oracle.com Wed Jun 16 20:37:26 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Wed, 16 Jun 2010 20:37:26 -0700 Subject: Reminder on OpenJDK Web Site Terms of Use Message-ID: <4C199876.2050205@oracle.com> (The Terms apply to OpenJDK mailing lists too.) http://openjdk.java.net/legal/terms.html 3. ACCESS TO THE SITE AND THINGS YOU FIND HERE. b. Use at Your Own Risk. "If Hosts become aware of Submissions that violate these Terms or that Hosts believe to be obscene, lewd, lascivious, excessively violent, harassing, or otherwise objectionable, they may act in good faith to restrict access to or availability of the material. If You notice that any other User's Submissions appear to violate these Terms, or if any other User makes You feel harassed or unsafe, You agree to contact us immediately." In the view of the Hosts (Oracle), some recent mails to the list have sailed dangerously close to violating these Terms. There is no harm in being silent on lambda-dev most days. As Mark Twain said, it is better to keep your mouth closed and let people think you are a fool than to open it and remove all doubt. Alex From reinier at zwitserloot.com Wed Jun 16 21:18:55 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Thu, 17 Jun 2010 05:18:55 +0100 Subject: stack-bound vs. travelling closures proposal. Message-ID: >From a private email conversation I've been informed this proposal was hard to find. I've also updated it slightly. PROPOSAL: Restricted vs. Portable closures - in regards to Exception Transparency. # Example Use-Case This use-case directs the remainder of the proposal. In java6, we have: Collections.sort(List a, Comparator c) { ...}, as well as: new TreeSet(Comparator c) { ... } It would be nice if Collections.sort did indeed support exception transparency, letting a user throw a checked exception from within the comparator and handle it from outside the sort() call. However, doing something similar to TreeSet is clearly impossible without breaking backwards compatibility: If the Comparator can throw, say, IOException, then TreeSet's add and addAll methods, at the very least, must also declare that they can throw this exception. However, doing so is not compatible with the java.util.Set interface. # Closure Literals There are portable closures which have no restrictions of any kind but which are truly like portable code blocks; a simpler syntax for today's anonymous inner classes. They cannot capture (mutable) variables, do not and will never support long return/break/continue, have no exception transparency of any kind, but you can store them for later, move them to another thread, and otherwise treat them as one would any random object. The other kind of closure is a restricted closure: The compiler will ensure that if the closure is run at all, it is run in such a way that the runtime stack matches lexical scope. Such a closure can capture any variable, mutable or not (because threading cannot possibly be an issue, by definition - the stack is still there, so it must be the same thread), when java 8 rolls around, will support transfers (long break/continue/return), and has automagical exception transparency; it just works, no need for a variadic type parameter. By example: TreeSet's constructor remains as it is now, as by default all parameters are NOT restricted. Exception transparency for TreeSet's Comparator will not be supported, but we've already seen that supporting it is not feasible anyway. For Collections.sort, on the other hand, we mark it as restricted, like so: public static void sort(List a, do Comparator c) { ... } note the "do" keyword there. It can be any keyword, such as "restricted", that's a detail that can be decided on later. What this does is two things: First of all, the compiler will ensure that the "c" variable is not assigned to anything (be it a field or a local variable), is not captured by a non-restricted closure, is not captured by a method local class, is not returned, and is not passed as variable to another method (with one exception: It's okay to pass c as a closure to another method that also has a 'do' keyword for that parameter). Secondly, that parameter is marked (via an extended field) as supporting a restricted closure. Then, IF a closure is passed directly as parameter, one gets hassle-free exception transparency, and one can legally write this: public void test() throws IOException { Collections.sort(someList, #(String a, String b) { if (a == null) throw new IOException(); return a.length() - b.length(); }); } It'll work because the compiler first realizes that the closure throws an IOException which isn't caught/declared anywhere in its own lexical scope, but it IS caught/declared in its containing scope, thus the exception itself is marked as "legal, but only if restricted". During the resolution phase, the compiler figures out that this closure is being passed in the position of a restricted parameter and just compiles it without complaining about not handling a checked exception. The JVM already supports this (checked exceptions are checked by javac, the jvm or the class verifier don't care - see any alternative JVM language, which all let you throw checked exceptions without declaring that you do). There's only one caveat: The author of the Collections.sort method may presume that any call to Comparator.compare() couldn't possibly throw, say, an IOException, because "compare()" does not declare this. And that would be a mistake - this entire concept is predicated on the notion that any checked exception not explicitly declared by that closure falls "through" all intermediate methods right back to the original lexical scope, at which point it'll be handled. This fall-through scheme can only work if none of the intermediate methods catch the exception. Example: public static void sort(List a, do Comparator c) { try { c.compare(null, null); new FileInputStream("foo.bar"); } catch (IOException e) { //I'll just presume this must have been the FileInputStream! } } would be a coding mistake - it'll fail because it'll catch any transparent IOExceptions from the closure as well. However, this is in practice not a problem at all, for two reasons: (1) Any java program that works like the above and assumes that IOException must have come from the FileInputStream is already buggy. It's the JVM you're coding for and not java (the language) programs; class files produced by jython, scalac, jruby, and just about any other alternative language routinely throw checked exceptions "sneakily". Even within the constraints of java itself, sneaky exceptions can happen. If not explicitly (via e.g. someClass.newInstance() which can sneaky throw), then implicitly, by mixing class files from different compile runs. Thus, this isn't really a new caveat. (2) Existing code will NEVER be bit with this. The author has to step in and add a do keyword to one of the parameters. When doing so the author assumes the responsibility of checking that his code doesn't make this assumption. Such a system is also backwards compatible. You can never remove a "do" keyword from a signature, but you can add it. One could for example add the 'do' keyword to the Comparator parameter in Collections.sort. End of Official Proposal. # Clarifications Just to highlight how exception transparency is completely free in this system, at least for restricted closures: By definition the original stack is still intact, therefore, whatever construct (a catch or a throws clause) made it legal to throw a certain checked exception at the lexical location where the closure is defined is still "live" on the stack. Exceptions, by definition, walk up the stack until they find the nearest handler. Assuming all code in between the closure definition and its execution leave it alone, the exception will always end up at a point where it'll be handled (or thrown onwards but explicitly declared with a "throws" clause, which is ok). # Restricted closures for fork/join and ParallelArray. This proposal only adds exception transparency for restricted closures; unrestricted closures don't get any exception transparency, but just about every instance of unrestricted closure usage in libraries I can think of doesn't really need exception transparency; see for example new TreeSet(Comparator). The rare case where ET would be useful is mostly focussed around ParallelArrays and fork/join - parallelizing operations which freeze the caller thread until they complete. This case isn't supported well, but isn't hopeless either: A. Add an 'unshackle' utility method that takes in any parameter (even a restricted one) and returns it. There's no way to write such a method in javac (as returning a restricted parameter is not legal), but as restricted parameters is purely a concept enforced by javac, it is possible to produce a class file with this method in it. It can be part of the standard libraries. It should clearly document the process of transporting exceptions. B. Add a sneaky throws method to this library. fork/join can then be written to still support restricted closures, though at the cost of less help from the type system: // Intentionally stupid implementation, its only purpose is to show that the above will suffice to create a somewhat hacky way to make PA/forkjoin work with restricted closures. public static void forEachParallelized(List list, do #void(T) restricted) { ThreadPool pool = new ThreadPool(10); #void(T) unrestricted = unshackle(restricted); for (int i = 0; i < list.size(); i++) { pool.get(i % 10).addToQueue(unrestricted, list.get(i)); } pool.start(); pool.join(); for (int i = 0; i < 10; i++) { Throwable t = pool.getThrowableFor(i); if (t != null) sneakyThrow(t); } } Another use case involves delayed execution. This use-case isn't supported at all with this proposal. You could not do something along the lines of: DelayedOperation op = new DelayedOperation(#Integer() (reallySlowRandomizerThatThrowsIOExceptions.nextInt(20))); op.begin(); // Do something else that'll take a while. try { System.out.println(op.get()); } catch (IOException e) { System.out.println("Hardware randomness source has been disconnected."); } --Reinier Zwitserloot From brian.goetz at oracle.com Wed Jun 16 22:21:17 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Thu, 17 Jun 2010 01:21:17 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: Message-ID: <4C19B0CD.6030402@oracle.com> Overall, there's a lot to like about the "stack-bound vs traveling" distinction. As pointed out earlier, this is the gating concern on nonlocal control flow, as well as what enables mutable local capture to not be nearly guaranteed to be racy. Having said that, I am not convinced it is the right vehicle for exception transparency, because it violates a basic principle: that method signatures declare the checked exceptions they throw. (Yes, I know about many ways exceptions can be thrown sneakily.) > note the "do" keyword there. It can be any keyword, such as "restricted", > that's a detail that can be decided on later. What this does is two things: > First of all, the compiler will ensure that the "c" variable is not assigned > to anything (be it a field or a local variable), is not captured by a > non-restricted closure, is not captured by a method local class, is not > returned, and is not passed as variable to another method (with one > exception: It's okay to pass c as a closure to another method that also has > a 'do' keyword for that parameter). This is similar to the treatment of const in C++. To make this safe, this really has to be part of the type system, where the restricted-ness is incorporated into the function type (so function types would subsume return type, argument types, exception types, and restricted-ness.) And the restricted-ness for a closure argument has to become part of the method signature. And switching a closure parameter between restricted and not becomes a binary-incompatible change. And it doesn't stop at function types; the restricted-ness bit has to stick to any SAM reference type. Note there's really two aspects here to restricted-ness; the first is that you can't intermix restricted and nonrestricted closures; the second is a requirement for a form of non-escapingness. Note that neither "restricted T->U" and "unrestricted T->U" are subclasses of each other; if either direction held, either you'd be able to pass a restricted closure to a unrestricted parameter (allows escape) or an unrestricted closure to a restricted parameter (safety violation.) > Then, IF a closure is passed directly as parameter, one gets hassle-free > exception transparency, and one can legally write this: > > public void test() throws IOException { > Collections.sort(someList, #(String a, String b) { > if (a == null) throw new IOException(); > return a.length() - b.length(); > }); > } So, are you basically saying that "for methods taking restricted closure parameters, the method is considered to throw any exceptions that might be thrown by the restricted closure(s)." But this isn't embodied in the method signature; its as if the method does not have a choice whether to catch or expose those exceptions. You might call this "forced exception transparency", since methods like sort() are forced to expose any of the exceptions that might be thrown by their closure arguments (even if they intend to catch them.) > There's only one caveat: The author of the Collections.sort method may > presume that any call to Comparator.compare() couldn't possibly throw, say, > an IOException, because "compare()" does not declare this. And that would be > a mistake - this entire concept is predicated on the notion that any checked > exception not explicitly declared by that closure falls "through" all > intermediate methods right back to the original lexical scope, at which > point it'll be handled. This fall-through scheme can only work if none of > the intermediate methods catch the exception. This is a pretty big deal! > (1) Any java program that works like the above and assumes that IOException > must have come from the FileInputStream is already buggy. It's the JVM > you're coding for and not java (the language) programs; class files produced > by jython, scalac, jruby, and just about any other alternative language > routinely throw checked exceptions "sneakily". Even within the constraints > of java itself, sneaky exceptions can happen. If not explicitly (via e.g. > someClass.newInstance() which can sneaky throw), then implicitly, by mixing > class files from different compile runs. Thus, this isn't really a new > caveat. This is a pretty shaky argument. Theft happens in the real world; the cure is not to declare that property rights are an untenable abstraction. > A. Add an 'unshackle' utility method that takes in any parameter (even a > restricted one) and returns it. Much like casting away constness in C++. Overall I like the restrictedness concept for its other valuable properties, but I am not so hot on piling on exception transparency. Bottom line: method signatures should declare their checked exceptions. From brian.goetz at oracle.com Wed Jun 16 22:28:32 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Thu, 17 Jun 2010 01:28:32 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <4C19B0CD.6030402@oracle.com> References: <4C19B0CD.6030402@oracle.com> Message-ID: <4C19B280.8030009@oracle.com> This part of my note was wrong: we can allow unrestricted T->U <: restricted T->U > Note that neither "restricted T->U" and "unrestricted T->U" are subclasses of > each other; if either direction held, either you'd be able to pass a > restricted closure to a unrestricted parameter (allows escape) or an > unrestricted closure to a restricted parameter (safety violation.) From reinier at zwitserloot.com Wed Jun 16 23:52:16 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Thu, 17 Jun 2010 07:52:16 +0100 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <4C19B0CD.6030402@oracle.com> References: <4C19B0CD.6030402@oracle.com> Message-ID: replies inline. On Thu, Jun 17, 2010 at 6:21 AM, Brian Goetz wrote: > > Having said that, I am not convinced it is the right vehicle for exception > transparency, because it violates a basic principle: that method signatures > declare the checked exceptions they throw. (Yes, I know about many ways > exceptions can be thrown sneakily.) > > Hmm. How crucial is this idea? The straw man proposal doesn't actually involve closures declaring what exceptions they throw; it's inferred. Closures aren't method signatures, but, they're close to it. The mental thought process here is that the e.g. "forEach" method does NOT in fact throw that exception. It's the closure, which is transferring the exception back to its declaration site, passing through all intermediate stack frames as it goes. A rhetorical point perhaps (technically there's certainly no way to tell the difference). Nevertheless, there's an alternative that avoids the need to silently transparently propagate exceptions from a closure's execution back to its declaration site, later in this post. And the restricted-ness for a closure argument has to become part of the > method signature. And switching a closure parameter between restricted and > not becomes a binary-incompatible change. Your follow-up post's correction also means that changing a parameter from normal to restricted is backwards compatible. Going back from restricted to normal wouldn't be. This is a major argument in favour of the restricted/portable proposal. Comparator can never be retrofitted with a "throws E". Collections.sort() CAN however be retrofitted with an "I take restricted closures" flag. The number of SAM types that are going to have to fall by the wayside with a @Deprecated mark on them, along with the overloading of common java runtime library methods, is rather large if Comparator has to then be retired in favour of #int(T, T)(throws E). restricted/portable for exception transparency works in my opinion far better with existing java code. No need to retire Comparator yet still able to add exception transparency to Collections.sort. So, are you basically saying that "for methods taking restricted closure > parameters, the method is considered to throw any exceptions that might be > thrown by the restricted closure(s)." But this isn't embodied in the method > signature; its as if the method does not have a choice whether to catch or > expose those exceptions. But how would this concept work, in practice, with the strawman? If the idea is that a certain closure may freely throw IOExceptions, and they will be handled by the method, then, either proposal has an obvious and uncomplicated solution to convey this: Have the function type (or the SAM's one method) actually include "throws IOException" in its signature. Once a closure can itself legally throw an exception, exception transparency is no longer needed. The alternative is working with abstracted exception types, but that cannot possibly work either. How would you even do that? "catch (T foo)" does not seem to be possible given the concept of erasure. The only pragmatic thing one might catch, then, is Throwable or Exception, which one can also do with the restricted/portable proposal. Said differently, "public void foo() throws E" is not much better than "public void foo() throws Throwable" for all code that hasn't bound the E to something, which is a lot of code, exactly the code we're talking about in fact (code on the stack in between execution and definition of the closure). Many of the arguments I've heard so far against portable/restricted aren't realistic in strawman either. > You might call this "forced exception transparency", since methods like > sort() are forced to expose any of the exceptions that might be thrown by > their closure arguments (even if they intend to catch them.) > > Not necessarily - one could also catch all of them, and document that this happens. The true point is that restricted closures must be presumed to be capable of throwing anything, but, then, isn't the same true of a closure with signature "throws E"? That E could stand for anything. One of the aspects lost by portable/restricted is that effectively the bound on E is always "Throwable", whereas in the "throws E" syntax it is configurable. How much use will the ability to set E's bound to something other than a catch-all be? I can't think of very many cases where actually specifying that exception verbatim ("throws ActualType" instead of "") is not sufficient. The biggest hole in portable/restricted in this matter is that its not possible to declare that you catch all exceptions. In strawman you can do: public void executeAndEatAllExceptions(#()(throws E) closure) { try { closure.(); } catch (Exception e) {} } and from the signature it is clear. In portable/restricted: public void executeAndEatAllExceptions(do #() closure) { try { closure.(); } catch (Exception e) {} } this is not clear from the signature. However, given the lack of reification of the E in "throws E", it's always all or nothing: Throw onwards everything the closure declared, or, eat all of them. Is the ability to declare eating all exceptions worth all that boilerplate and complexity? > This is a pretty shaky argument. Theft happens in the real world; the cure > is not to declare that property rights are an untenable abstraction. > > This analogy would suggest adding a verifier check to the JVM itself to crosscheck the type at the top of the stack when an ATHROW opcode occurs against the exception handler tables and a method's throws clause, thus immediately causing serious problems for most of the alternative languages on the JVM. However, I don't think that's feasible or desired. Nevertheless, rolling with it: In the BGGA proposal, non-local transfer was handled by throwing a Transfer throwable, which is then caught in the same scope the closure is defined, and turned back into an actual break, letting the exception clean up the intermediate stack. The same trick can be used to handle transparent exceptions WITHOUT requiring intermediate code (all stack frames in between the closure's definition and the closure's execution) to take care to not catch any such exceptions - wrap the exception into a special "Transfer"-esque throwable which are unpacked at the declaration site. I'm not sure this extra complication is required, but it would certainly help avoid issues where intermediate code accidentally catches exceptions that it wasn't meant to catch. I'm mildly in favour of not wrapping them (overkill), but there's plenty of benefits to doing so. Methods that actually _want_ to intercept exceptions thrown by a closure can simply catch the transfer, for example. It's certainly safer. From neal at gafter.com Thu Jun 17 00:42:47 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 00:42:47 -0700 Subject: Virtual extension methods - syntax options In-Reply-To: References: Message-ID: On Wed, Jun 16, 2010 at 3:48 PM, Reinier Zwitserloot wrote: > I've written down an alternative exception transparency proposal in this > mailing list based on pure/impure closures. I don't remember anything like a draft specification for the approach you're suggesting, which perhaps explains why I thought that it undermines exception checking. Can you please provide a link to the archived message in which you posted it? > Perhaps you can > show us a set of examples that will suggest that this use case isn't nearly > as rare as I think it is. Either way the decision isn't black and white; > it's a matter of how many use cases are "lost" (can no longer be done > cleanly) compared to exactly how syntactically and semantically complex one > considers the explicit "throws E" concept. You're trying to draw me into a language design exercise based on inappropriate criteria. We cannot know ahead of time how many uses of the language feature will depend critically on which aspects of the feature. See . Still, I've built a generic visitor-like framework in BGGA that is an API to which one adds filter-processor pairs, and at the end applies the whole set to an input object. The framework supports exception transparency. Since the filter-processor pairs must be stored, the only way to support checked exceptions throwing through the API is for the type system to express them. From neal at gafter.com Thu Jun 17 00:53:56 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 00:53:56 -0700 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <4C19B0CD.6030402@oracle.com> References: <4C19B0CD.6030402@oracle.com> Message-ID: On Wed, Jun 16, 2010 at 10:21 PM, Brian Goetz wrote: > Overall, there's a lot to like about the "stack-bound vs traveling" > distinction. ?As pointed out earlier, this is the gating concern on nonlocal > control flow, as well as what enables mutable local capture to not be nearly > guaranteed to be racy. I beg to differ. Exception transparency is critical in the concurrent loops API described here: but cannot be implementing in a stack-bound way. From neal at gafter.com Thu Jun 17 01:02:41 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 01:02:41 -0700 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: Message-ID: On Wed, Jun 16, 2010 at 9:18 PM, Reinier Zwitserloot wrote: > There's only one caveat: The author of the Collections.sort method may > presume that any call to Comparator.compare() couldn't possibly throw, say, > an IOException, because "compare()" does not declare this. And that would be > a mistake - this entire concept is predicated on the notion that any checked > exception not explicitly declared by that closure falls "through" all > intermediate methods right back to the original lexical scope, at which > point it'll be handled. This fall-through scheme can only work if none of > the intermediate methods catch the exception. It is legal for an invocation of the comparator to be contained within a try block for which there is a catch block for IOException, as the language specification enumerates precisely those positions within the try block from which an IOException can occur. If the comparator is not one of those positions, then an IOException must not be propogated out from an invocation of the comparator or the invariants of the language are undermined. From peter.levart at marand.si Thu Jun 17 01:47:58 2010 From: peter.levart at marand.si (Peter Levart) Date: Thu, 17 Jun 2010 10:47:58 +0200 Subject: Can't get lambda forest to work In-Reply-To: <4C18BED0.5010809@oracle.com> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> Message-ID: <201006171047.58510.peter.levart@marand.si> Hello Maurizio, I'm very eager to try this out (and that's the 1st time I did a build of OpenJDK myself) so please bear with me if I ask questions that don't belong to this list. 1st I tried some naive "patching" of hostspot myself: diff -r b0e7cd862748 src/share/vm/classfile/javaClasses.cpp --- a/src/share/vm/classfile/javaClasses.cpp Thu Jun 10 13:58:59 2010 -0700 +++ b/src/share/vm/classfile/javaClasses.cpp Wed Jun 16 15:05:16 2010 +0200 @@ -2454,9 +2454,9 @@ if (!EnableInvokeDynamic) return; klassOop k = SystemDictionary::CallSite_klass(); if (k != NULL) { - compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature()); - compute_offset(_caller_method_offset, k, vmSymbols::vmmethod_name(), vmSymbols::sun_dyn_MemberName_signature()); - compute_offset(_caller_bci_offset, k, vmSymbols::vmindex_name(), vmSymbols::int_signature()); + compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature(), true); + compute_offset(_caller_method_offset, k, vmSymbols::vmmethod_name(), vmSymbols::object_signature(), true); + compute_offset(_caller_bci_offset, k, vmSymbols::callerBCI_name(), vmSymbols::int_signature(), true); } } diff -r b0e7cd862748 src/share/vm/classfile/vmSymbols.hpp --- a/src/share/vm/classfile/vmSymbols.hpp Thu Jun 10 13:58:59 2010 -0700 +++ b/src/share/vm/classfile/vmSymbols.hpp Wed Jun 16 15:05:16 2010 +0200 @@ -344,6 +344,7 @@ template(form_name, "form") \ template(erasedType_name, "erasedType") \ template(append_name, "append") \ + template(callerBCI_name, "callerBCI") \ \ /* non-intrinsic name/signature pairs: */ \ template(register_method_name, "register") \ diff -r b0e7cd862748 src/share/vm/prims/methodHandles.cpp --- a/src/share/vm/prims/methodHandles.cpp Thu Jun 10 13:58:59 2010 -0700 +++ b/src/share/vm/prims/methodHandles.cpp Wed Jun 16 15:05:16 2010 +0200 @@ -2564,9 +2564,10 @@ // More entry points specifically for EnableInvokeDynamic. static JNINativeMethod methods2[] = { - {CC"registerBootstrap", CC"("CLS MH")V", FN_PTR(MHI_registerBootstrap)}, - {CC"getBootstrap", CC"("CLS")"MH, FN_PTR(MHI_getBootstrap)}, - {CC"setCallSiteTarget", CC"("CST MH")V", FN_PTR(MHI_setCallSiteTarget)} +// these are all removed from MethodHandleNatives (where have they gone?) +// {CC"registerBootstrap", CC"("CLS MH")V", FN_PTR(MHI_registerBootstrap)}, +// {CC"getBootstrap", CC"("CLS")"MH, FN_PTR(MHI_getBootstrap)}, +// {CC"setCallSiteTarget", CC"("CST MH")V", FN_PTR(MHI_setCallSiteTarget)} }; ... and JVM didn't crash any more but when I tried to run the "Closures.java" example I got the following: Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) at sun.dyn.Invokers.exactInvoker(Invokers.java:66) at sun.dyn.Invokers.genericInvoker(Invokers.java:74) at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) at closures.Closures.main(Closures.java:9) so I thought that there are obviously other things that need to be sorted out in hotspot and supporting java.dyn classes to make it run correctly (or, which is unlikely, the bytecode generated by latest lambda prototype is wrong?). Then I saw your Email about possible work-arrounds and here's what I tried: I reverted my JVM "patch" and: 1st I tried building clean/all with ALT_JDK_IMPORT_PATH set to b97 and BUILD_HOTSPOT=flase and that didn't work - still crashing on java.dyn.CallSite offset calculations (b97 seems to have newer hotspot which is not compatible with java.dyn classes any more) - with your latest patch to java launcher such jdk is unusable even for normal programs because it always tries to initialize method handles eagerly and crashes... 2nd I tried building with ALT_JDK_IMPORT_PATH set to b95 (which should be the same as b94 apart from SUN->Oracle re-branding according to change-log) and I get the same VM crash. I even tried to run the compiled class with stock binary distributed b95 and b97 JDKs with same results. Unfortunately I don't have any earlier JDK7 release to try and Oracle made sure that b94 and earlier releases are not accessible any more (those damn lawyers)... It seems I will have to wait for John Rose to push a working hotspot/jdk combo... Regards, Peter On 06/16/10, Maurizio Cimadamore wrote: > I recently pushed some changes that should improve the usability of the > javac/java artifacts generated during a full build of the lambda > repository. Now it is not necessary to manually specify the -XX VM > options (the launcher adds them for you); classes that are required > during compilation/execution (e.g. com/sun/runtime/ProxyHelper) are now > added to rt.jar so that they are automatically found by the jdk. > > The only problem that needs to be fixed now is the VM crash. We are > working on a patch that I will push it in the lambda-repo; meanwhile you > might want to build the repo with the ALT_JDK_IMPORT_PATH option set (to > point to a JDK distro, b94 is fine), and also BUILD_HOTSPOT=false. > > Alternatively you can use the workaround suggested in this email, as > Remi pointed out: > > http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001727.html > > with one caveat: if you build hotspot from the sources in the lambda > repo, you will need to add the patch to the bootclasspath of the VM used > for launching javac. This is done by invoking javac as follows: > > javac -J-Xbootclasspath/p:$DOWNLOADS$/hs19-b01-jsr292-patch.jar > > I apologize for the inconvenient. > > Maurizio > > > > On 15/06/10 17:58, Maurizio Cimadamore wrote: > > On 15/06/10 17:57, Andrew Haley wrote: > > > >> On 06/15/2010 02:49 PM, Maurizio Cimadamore wrote: > >> > >> > >>> I did a merge with b97, I hope that helps. > >>> > >>> > >> Not exactly, sorry. > >> > >> I still get > >> > >> > > Noticed that me too - we are working to fix this issue. > > > > Maurizio > > > >> happy:local $ hg fclone http://hg.openjdk.java.net/lambda/lambda > >> > >> ... make ... > >> > >> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Closures > >> Invalid layout of java.dyn.CallSite at target > >> > >> Andrew. > >> > >> > > > > > > > From neal at gafter.com Thu Jun 17 02:20:07 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 02:20:07 -0700 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: On Wed, Jun 16, 2010 at 11:52 PM, Reinier Zwitserloot wrote: > The alternative is working with abstracted exception types, but that cannot > possibly work either. How would you even do that? "catch (T foo)" does not > seem to be possible given the concept of erasure. The only pragmatic thing > one might catch, then, is Throwable or Exception, which one can also do with > the restricted/portable proposal. Right. The main thing one wants to do with exception transparency is not to catch the exception in the generic code, but to express in the type system that those exceptions are propogated out to the caller. It can be caught at a place where the type parameter takes on a concrete type. That place might or might not be higher on the call stack of the same thread. Consider the sort() method you described. How does one use concurrency in the implementation without undermining exception safety? Passing the comparator to another thread requires storing it in a variable, and that variable has to have a type. From maurizio.cimadamore at oracle.com Thu Jun 17 03:01:25 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 11:01:25 +0100 Subject: Can't get lambda forest to work In-Reply-To: <201006171047.58510.peter.levart@marand.si> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> Message-ID: <4C19F275.40307@oracle.com> Hi The "Closures.java" example works as expected, but you need a b93 hotspot to run it. I'm now trying to sort this out using a slightly different approach (reverting hotspot source to b93 and then do a full build). If this happens to work, I will post detailed instructions on how to get the lambda-repo up and running while we wait for a complete 292 fix (which, btw is on its way). Maurizio On 17/06/10 09:47, Peter Levart wrote: > Hello Maurizio, > > I'm very eager to try this out (and that's the 1st time I did a build of OpenJDK myself) so please bear with me if I ask questions that don't belong to this list. > > 1st I tried some naive "patching" of hostspot myself: > > > diff -r b0e7cd862748 src/share/vm/classfile/javaClasses.cpp > --- a/src/share/vm/classfile/javaClasses.cpp Thu Jun 10 13:58:59 2010 -0700 > +++ b/src/share/vm/classfile/javaClasses.cpp Wed Jun 16 15:05:16 2010 +0200 > @@ -2454,9 +2454,9 @@ > if (!EnableInvokeDynamic) return; > klassOop k = SystemDictionary::CallSite_klass(); > if (k != NULL) { > - compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature()); > - compute_offset(_caller_method_offset, k, vmSymbols::vmmethod_name(), vmSymbols::sun_dyn_MemberName_signature()); > - compute_offset(_caller_bci_offset, k, vmSymbols::vmindex_name(), vmSymbols::int_signature()); > + compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature(), true); > + compute_offset(_caller_method_offset, k, vmSymbols::vmmethod_name(), vmSymbols::object_signature(), true); > + compute_offset(_caller_bci_offset, k, vmSymbols::callerBCI_name(), vmSymbols::int_signature(), true); > } > } > > diff -r b0e7cd862748 src/share/vm/classfile/vmSymbols.hpp > --- a/src/share/vm/classfile/vmSymbols.hpp Thu Jun 10 13:58:59 2010 -0700 > +++ b/src/share/vm/classfile/vmSymbols.hpp Wed Jun 16 15:05:16 2010 +0200 > @@ -344,6 +344,7 @@ > template(form_name, "form") \ > template(erasedType_name, "erasedType") \ > template(append_name, "append") \ > + template(callerBCI_name, "callerBCI") \ > \ > /* non-intrinsic name/signature pairs: */ \ > template(register_method_name, "register") \ > diff -r b0e7cd862748 src/share/vm/prims/methodHandles.cpp > --- a/src/share/vm/prims/methodHandles.cpp Thu Jun 10 13:58:59 2010 -0700 > +++ b/src/share/vm/prims/methodHandles.cpp Wed Jun 16 15:05:16 2010 +0200 > @@ -2564,9 +2564,10 @@ > > // More entry points specifically for EnableInvokeDynamic. > static JNINativeMethod methods2[] = { > - {CC"registerBootstrap", CC"("CLS MH")V", FN_PTR(MHI_registerBootstrap)}, > - {CC"getBootstrap", CC"("CLS")"MH, FN_PTR(MHI_getBootstrap)}, > - {CC"setCallSiteTarget", CC"("CST MH")V", FN_PTR(MHI_setCallSiteTarget)} > +// these are all removed from MethodHandleNatives (where have they gone?) > +// {CC"registerBootstrap", CC"("CLS MH")V", FN_PTR(MHI_registerBootstrap)}, > +// {CC"getBootstrap", CC"("CLS")"MH, FN_PTR(MHI_getBootstrap)}, > +// {CC"setCallSiteTarget", CC"("CST MH")V", FN_PTR(MHI_setCallSiteTarget)} > }; > > > ... and JVM didn't crash any more but when I tried to run the "Closures.java" example I got the following: > > Exception in thread "main" java.dyn.NoAccessException: cannot access: *.java.dyn.MethodHandle.invoke()int > at sun.dyn.MemberName.newNoAccessException(MemberName.java:421) > at sun.dyn.MemberName.newNoAccessException(MemberName.java:412) > at sun.dyn.MemberName$Factory.resolveOrFail(MemberName.java:517) > at java.dyn.MethodHandles$Lookup.findVirtual(MethodHandles.java:268) > at sun.dyn.Invokers.exactInvoker(Invokers.java:66) > at sun.dyn.Invokers.genericInvoker(Invokers.java:74) > at java.dyn.MethodHandle.invokeVarargs(MethodHandle.java:354) > at closures.Closures.main(Closures.java:9) > > so I thought that there are obviously other things that need to be sorted out in hotspot and supporting java.dyn classes to make it run correctly (or, which is unlikely, the bytecode generated by latest lambda prototype is wrong?). > > Then I saw your Email about possible work-arrounds and here's what I tried: > > I reverted my JVM "patch" and: > > 1st I tried building clean/all with ALT_JDK_IMPORT_PATH set to b97 and BUILD_HOTSPOT=flase and that didn't work - still crashing on java.dyn.CallSite offset calculations (b97 seems to have newer hotspot which is not compatible with java.dyn classes any more) - with your latest patch to java launcher such jdk is unusable even for normal programs because it always tries to initialize method handles eagerly and crashes... > > 2nd I tried building with ALT_JDK_IMPORT_PATH set to b95 (which should be the same as b94 apart from SUN->Oracle re-branding according to change-log) and I get the same VM crash. > > I even tried to run the compiled class with stock binary distributed b95 and b97 JDKs with same results. > > Unfortunately I don't have any earlier JDK7 release to try and Oracle made sure that b94 and earlier releases are not accessible any more (those damn lawyers)... > > > It seems I will have to wait for John Rose to push a working hotspot/jdk combo... > > > Regards, Peter > > On 06/16/10, Maurizio Cimadamore wrote: > >> I recently pushed some changes that should improve the usability of the >> javac/java artifacts generated during a full build of the lambda >> repository. Now it is not necessary to manually specify the -XX VM >> options (the launcher adds them for you); classes that are required >> during compilation/execution (e.g. com/sun/runtime/ProxyHelper) are now >> added to rt.jar so that they are automatically found by the jdk. >> >> The only problem that needs to be fixed now is the VM crash. We are >> working on a patch that I will push it in the lambda-repo; meanwhile you >> might want to build the repo with the ALT_JDK_IMPORT_PATH option set (to >> point to a JDK distro, b94 is fine), and also BUILD_HOTSPOT=false. >> >> Alternatively you can use the workaround suggested in this email, as >> Remi pointed out: >> >> http://mail.openjdk.java.net/pipermail/mlvm-dev/2010-May/001727.html >> >> with one caveat: if you build hotspot from the sources in the lambda >> repo, you will need to add the patch to the bootclasspath of the VM used >> for launching javac. This is done by invoking javac as follows: >> >> javac -J-Xbootclasspath/p:$DOWNLOADS$/hs19-b01-jsr292-patch.jar >> >> I apologize for the inconvenient. >> >> Maurizio >> >> >> >> On 15/06/10 17:58, Maurizio Cimadamore wrote: >> >>> On 15/06/10 17:57, Andrew Haley wrote: >>> >>> >>>> On 06/15/2010 02:49 PM, Maurizio Cimadamore wrote: >>>> >>>> >>>> >>>>> I did a merge with b97, I hope that helps. >>>>> >>>>> >>>>> >>>> Not exactly, sorry. >>>> >>>> I still get >>>> >>>> >>>> >>> Noticed that me too - we are working to fix this issue. >>> >>> Maurizio >>> >>> >>>> happy:local $ hg fclone http://hg.openjdk.java.net/lambda/lambda >>>> >>>> ... make ... >>>> >>>> happy:~ $ /local/lambda/build/linux-amd64/j2sdk-image/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableMethodHandles -XX:+EnableInvokeDynamic Closures >>>> Invalid layout of java.dyn.CallSite at target >>>> >>>> Andrew. >>>> >>>> >>>> >>> >>> >> >> >> From maurizio.cimadamore at oracle.com Thu Jun 17 03:42:31 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 11:42:31 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C19F275.40307@oracle.com> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> <4C19F275.40307@oracle.com> Message-ID: <4C19FC17.4020004@oracle.com> Hi as you might now, there are problems in compiling and running code containing lambda. Those problems are not due to the lambda prototype itself; rather, they are caused by some missing bits in the jdk repository that we are going to push soon (those are required for hotspot to work correctly). As a result, any hotspot build >= b94 will fail with the following message: Invalid layout of java.dyn.CallSite at target # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 # fatal error: Invalid layout of preloaded class # # JRE version: 7.0 # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) # An error report file with more information is saved as: # /home/aph/hs_err_pid10544.log # # If you would like to submit a bug report, please visit: #http://java.sun.com/webapps/bugreport/crash.jsp # In order to get rid of this problem, an earlier hotspot (b93) needs to be used. A simple way to workaround this issue is to follow the procedure below: *) 'cd' to the 'hotspot' folder of the lambda repository *) type 'hg update jdk7-b93' *) now 'cd' to the root of the lambda repository *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' is set to 'true') When the build completes you will have a full working lambda repository. I hope this helps. Maurizio Aborted From aph at redhat.com Thu Jun 17 03:48:00 2010 From: aph at redhat.com (Andrew Haley) Date: Thu, 17 Jun 2010 11:48:00 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C19FC17.4020004@oracle.com> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> Message-ID: <4C19FD60.9040000@redhat.com> On 06/17/2010 11:42 AM, Maurizio Cimadamore wrote: > Hi > as you might now, there are problems in compiling and running code > containing lambda. Those problems are not due to the lambda prototype > itself; rather, they are caused by some missing bits in the jdk > repository that we are going to push soon (those are required for > hotspot to work correctly). As a result, any hotspot build >= b94 will > fail with the following message: > > Invalid layout of java.dyn.CallSite at target > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 > # fatal error: Invalid layout of preloaded class > # > # JRE version: 7.0 > # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) > # An error report file with more information is saved as: > # /home/aph/hs_err_pid10544.log > # > # If you would like to submit a bug report, please visit: > #http://java.sun.com/webapps/bugreport/crash.jsp > # > > > In order to get rid of this problem, an earlier hotspot (b93) needs to > be used. A simple way to workaround this issue is to follow the > procedure below: > > *) 'cd' to the 'hotspot' folder of the lambda repository > *) type 'hg update jdk7-b93' > *) now 'cd' to the root of the lambda repository > *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' > is set to 'true') > > When the build completes you will have a full working lambda repository. > > I hope this helps. Thanks; your help is much appreciated. Andrew. From peter.levart at marand.si Thu Jun 17 04:59:12 2010 From: peter.levart at marand.si (Peter Levart) Date: Thu, 17 Jun 2010 13:59:12 +0200 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C19FC17.4020004@oracle.com> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> Message-ID: <201006171359.12984.peter.levart@marand.si> Hello, World!42 It works! Peter On 06/17/10, Maurizio Cimadamore wrote: > Hi > as you might now, there are problems in compiling and running code > containing lambda. Those problems are not due to the lambda prototype > itself; rather, they are caused by some missing bits in the jdk > repository that we are going to push soon (those are required for > hotspot to work correctly). As a result, any hotspot build >= b94 will > fail with the following message: > > Invalid layout of java.dyn.CallSite at target > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 > # fatal error: Invalid layout of preloaded class > # > # JRE version: 7.0 > # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) > # An error report file with more information is saved as: > # /home/aph/hs_err_pid10544.log > # > # If you would like to submit a bug report, please visit: > #http://java.sun.com/webapps/bugreport/crash.jsp > # > > > In order to get rid of this problem, an earlier hotspot (b93) needs to > be used. A simple way to workaround this issue is to follow the > procedure below: > > *) 'cd' to the 'hotspot' folder of the lambda repository > *) type 'hg update jdk7-b93' > *) now 'cd' to the root of the lambda repository > *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' > is set to 'true') > > When the build completes you will have a full working lambda repository. > > I hope this helps. > Maurizio > > > Aborted > > > From dl at cs.oswego.edu Thu Jun 17 05:01:36 2010 From: dl at cs.oswego.edu (Doug Lea) Date: Thu, 17 Jun 2010 08:01:36 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: Message-ID: <4C1A0EA0.2090506@cs.oswego.edu> I haven't been following this discussion very closely, but I think something along the lines of this proposal seems plausible. Backing up a little, three observations: 1. In practice, the majority of checked exceptions most developers use/see are IOExceptions. 2. Code doing IO is not very amenable to "lightweight" closure processing, either in sequentially or in parallel. (You need heavier OS support to cope with blocked IO etc.) We effectively ban IO in ForkJoin framework by ... not allowing actions to throw checked exceptions! This is a little annoying for those people who either use non-IO-based checked exceptions, or use well-behaved cancellable etc IO. But no one has ever complained to us about needing to occasionally tunnel or escalate. (Aside: More generally, closures are all about "lightweight". When code requires a lot of state or helper methods etc., people define classes; they don't pass around closures. Even though they of course could. Closures and Objects are isomorphic at some level). 3. In most programs using ForkJoin, Futures, Callables etc., exact task/function types quickly wash out, so people end up writing many full generic generic declarations that would not be commonly inferable even with better type inference. So if exception params are added, many people will need to type the whole ugly version most of the time, and will not be happy about it. This all leads me to think that the main focus for language support should be for usages without checked exceptions, with at best limited support for checked forms. Reinier's proposal seems to be one of a few plausible approaches to this. -Doug From maurizio.cimadamore at oracle.com Thu Jun 17 05:03:13 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 13:03:13 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <201006171359.12984.peter.levart@marand.si> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> Message-ID: <4C1A0F01.3020602@oracle.com> On 17/06/10 12:59, Peter Levart wrote: > Hello, World!42 > > It works! > Phew! Thanks for the test! Maurizio > Peter > > On 06/17/10, Maurizio Cimadamore wrote: > >> Hi >> as you might now, there are problems in compiling and running code >> containing lambda. Those problems are not due to the lambda prototype >> itself; rather, they are caused by some missing bits in the jdk >> repository that we are going to push soon (those are required for >> hotspot to work correctly). As a result, any hotspot build>= b94 will >> fail with the following message: >> >> Invalid layout of java.dyn.CallSite at target >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 >> # fatal error: Invalid layout of preloaded class >> # >> # JRE version: 7.0 >> # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) >> # An error report file with more information is saved as: >> # /home/aph/hs_err_pid10544.log >> # >> # If you would like to submit a bug report, please visit: >> #http://java.sun.com/webapps/bugreport/crash.jsp >> # >> >> >> In order to get rid of this problem, an earlier hotspot (b93) needs to >> be used. A simple way to workaround this issue is to follow the >> procedure below: >> >> *) 'cd' to the 'hotspot' folder of the lambda repository >> *) type 'hg update jdk7-b93' >> *) now 'cd' to the root of the lambda repository >> *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' >> is set to 'true') >> >> When the build completes you will have a full working lambda repository. >> >> I hope this helps. >> Maurizio >> >> >> Aborted >> >> >> >> From ahughes at redhat.com Thu Jun 17 05:06:54 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Thu, 17 Jun 2010 13:06:54 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C1A0F01.3020602@oracle.com> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> Message-ID: On 17 June 2010 13:03, Maurizio Cimadamore wrote: > On 17/06/10 12:59, Peter Levart wrote: >> Hello, World!42 >> >> It works! >> > Phew! Thanks for the test! > > Maurizio >> Peter >> >> On 06/17/10, Maurizio Cimadamore wrote: >> >>> Hi >>> as you might now, there are problems in compiling and running code >>> containing lambda. Those problems are not due to the lambda prototype >>> itself; rather, they are caused by some missing bits in the jdk >>> repository that we are going to push soon (those are required for >>> hotspot to work correctly). As a result, any hotspot build>= b94 will >>> fail with the following message: >>> >>> Invalid layout of java.dyn.CallSite at target >>> # >>> # A fatal error has been detected by the Java Runtime Environment: >>> # >>> # ?Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 >>> # ?fatal error: Invalid layout of preloaded class >>> # >>> # JRE version: 7.0 >>> # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) >>> # An error report file with more information is saved as: >>> # /home/aph/hs_err_pid10544.log >>> # >>> # If you would like to submit a bug report, please visit: >>> #http://java.sun.com/webapps/bugreport/crash.jsp >>> # >>> >>> >>> In order to get rid of this problem, an earlier hotspot (b93) needs to >>> be used. A simple way to workaround this issue is to follow the >>> procedure below: >>> >>> *) 'cd' to the 'hotspot' folder of the lambda repository >>> *) type 'hg update jdk7-b93' >>> *) now 'cd' to the root of the lambda repository >>> *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' >>> is set to 'true') >>> >>> When the build completes you will have a full working lambda repository. >>> >>> I hope this helps. >>> Maurizio >>> >>> >>> Aborted >>> >>> >>> >>> > > > Worked for me too with that simple example, but still needs some work. The following crashes javac: public static void main(String[] args) { #int(int) square = #(int x)(x * x); #int() fortyTwo = #()(42); Integer y = Integer.parseInt(args[0]); System.out.println("Hello, the meaning of life is " + fortyTwo.()); System.out.println(y + " squared is " + square.(y)); An exception has occurred in the compiler (1.7.0-internal). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you. java.lang.AssertionError at com.sun.tools.javac.comp.Resolve.findImplicitMethod(Resolve.java:963) at com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod(Resolve.java:1362) at com.sun.tools.javac.comp.Attr.selectSym(Attr.java:2342) } Making y an int works. Seems it doesn't like having to unbox y. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From maurizio.cimadamore at oracle.com Thu Jun 17 05:14:06 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 13:14:06 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> Message-ID: <4C1A118E.8020000@oracle.com> On 17/06/10 13:06, Andrew John Hughes wrote: > public static void main(String[] args) > { > #int(int) square = #(int x)(x * x); > #int() fortyTwo = #()(42); > Integer y = Integer.parseInt(args[0]); > System.out.println("Hello, the meaning of life is " + fortyTwo.()); > System.out.println(y + " squared is " + square.(y)); > > This is a straight prototype bug ;-) I have a fix for it will be pushing it soon. The problem is the boxing (you are passing a Integer where the closure accepts a 'int'). The prototype works ok, but an assertion causes the crash (disabling assertions also works fine). Maurizio From neal at gafter.com Thu Jun 17 05:19:00 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 05:19:00 -0700 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <4C1A0EA0.2090506@cs.oswego.edu> References: <4C1A0EA0.2090506@cs.oswego.edu> Message-ID: You're observing that people don't use checked exceptions much today, and they aren't well supported (e.g. in concurrency scenarios). That's true, but it is due in part to the shortcomings that exception transparency aims to fix. Your conclusion is that they don't need to be supported because they aren't widely used, but that reasoning is backwards: they aren't widely used in part because they aren't well supported. Failing to support them well means that people will be forced to choose between avoiding checked exceptions or avoiding higher-order programming. On Thu, Jun 17, 2010 at 5:01 AM, Doug Lea
wrote: > > I haven't been following this discussion very closely, but > I think something along the lines of this proposal seems > plausible. > > Backing up a little, three observations: > > 1. In practice, the majority of checked exceptions most > developers use/see are IOExceptions. > > 2. Code doing IO is not very amenable to "lightweight" > closure processing, either in sequentially or in parallel. > (You need heavier OS support to cope with blocked IO etc.) > We effectively ban IO in ForkJoin framework by ... > not allowing actions to throw checked exceptions! > This is a little annoying for those people who either > use non-IO-based checked exceptions, or use well-behaved > cancellable etc IO. But no one has ever complained to us > about needing to occasionally tunnel or escalate. > (Aside: ?More generally, closures are all about "lightweight". > When code requires a lot of state or helper methods etc., > people define classes; they don't pass around closures. > Even though they of course could. Closures and Objects > are isomorphic at some level). > > 3. In most programs using ForkJoin, Futures, Callables etc., > exact task/function types quickly wash out, so people > end up writing many full generic generic declarations > that would not be commonly inferable even with better > type inference. So if exception params are added, > many people will need to type the whole ugly version > most of the time, and will not be happy about it. > > This all leads me to think that the main focus for > language support should be for usages without checked > exceptions, with at best limited support for checked forms. > Reinier's proposal seems to be one of a few plausible > approaches to this. > > -Doug > > > > > > From maurizio.cimadamore at oracle.com Thu Jun 17 05:25:37 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Thu, 17 Jun 2010 12:25:37 +0000 Subject: hg: lambda/lambda/langtools: Fixed spurious assertion error when lambda invocation expression requires boxing Message-ID: <20100617122541.5025647314@hg.openjdk.java.net> Changeset: 0bed895ea4d1 Author: mcimadamore Date: 2010-06-17 13:24 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/0bed895ea4d1 Fixed spurious assertion error when lambda invocation expression requires boxing ! src/share/classes/com/sun/tools/javac/comp/Resolve.java From maurizio.cimadamore at oracle.com Thu Jun 17 05:28:21 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 13:28:21 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C1A118E.8020000@oracle.com> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> <4C1A118E.8020000@oracle.com> Message-ID: <4C1A14E5.603@oracle.com> This is fixed now. Thanks Maurizio On 17/06/10 13:14, Maurizio Cimadamore wrote: > On 17/06/10 13:06, Andrew John Hughes wrote: > >> public static void main(String[] args) >> { >> #int(int) square = #(int x)(x * x); >> #int() fortyTwo = #()(42); >> Integer y = Integer.parseInt(args[0]); >> System.out.println("Hello, the meaning of life is " + fortyTwo.()); >> System.out.println(y + " squared is " + square.(y)); >> >> >> > This is a straight prototype bug ;-) > I have a fix for it will be pushing it soon. The problem is the boxing > (you are passing a Integer where the closure accepts a 'int'). The > prototype works ok, but an assertion causes the crash (disabling > assertions also works fine). > > Maurizio > > From dl at cs.oswego.edu Thu Jun 17 05:31:39 2010 From: dl at cs.oswego.edu (Doug Lea) Date: Thu, 17 Jun 2010 08:31:39 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C1A0EA0.2090506@cs.oswego.edu> Message-ID: <4C1A15AB.1080108@cs.oswego.edu> On 06/17/10 08:19, Neal Gafter wrote: > You're observing that people don't use checked exceptions much today, > and they aren't well supported (e.g. in concurrency scenarios). That was one of the observations. The short version of the second one is that * We don't know how to efficiently process closures performing blocking or failing IO. * We don't have a reasonable way to ban only IO (or force explicit evasion of the ban) without banning all checked exceptions. -Doug From ahughes at redhat.com Thu Jun 17 05:42:50 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Thu, 17 Jun 2010 13:42:50 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C1A14E5.603@oracle.com> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> <4C1A118E.8020000@oracle.com> <4C1A14E5.603@oracle.com> Message-ID: On 17 June 2010 13:28, Maurizio Cimadamore wrote: > This is fixed now. > > Thanks > Maurizio > Thanks for the quick fix. I noticed an #int(int) won't accept an Integer. Was this a deliberate design decision? > > On 17/06/10 13:14, Maurizio Cimadamore wrote: >> On 17/06/10 13:06, Andrew John Hughes wrote: >> >>> public static void main(String[] args) >>> ? ? { >>> ? ? ? #int(int) square = #(int x)(x * x); >>> ? ? ? #int() fortyTwo = #()(42); >>> ? ? ? Integer y = Integer.parseInt(args[0]); >>> ? ? ? System.out.println("Hello, the meaning of life is " + fortyTwo.()); >>> ? ? ? System.out.println(y + " squared is " + square.(y)); >>> >>> >>> >> This is a straight prototype bug ;-) >> I have a fix for it will be pushing it soon. The problem is the boxing >> (you are passing a Integer where the closure accepts a 'int'). The >> prototype works ok, but an assertion causes the crash (disabling >> assertions also works fine). >> >> Maurizio >> >> > > > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From maurizio.cimadamore at oracle.com Thu Jun 17 06:10:05 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 14:10:05 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> <4C1A118E.8020000@oracle.com> <4C1A14E5.603@oracle.com> Message-ID: <4C1A1EAD.6030906@oracle.com> On 17/06/10 13:42, Andrew John Hughes wrote: > On 17 June 2010 13:28, Maurizio Cimadamore > wrote: > >> This is fixed now. >> >> Thanks >> Maurizio >> >> > Thanks for the quick fix. I noticed an #int(int) won't accept an > Integer. Was this a deliberate design decision? > What do you mean? #int(int) square = #(int x)(x * x); ... Integer y = ... System.out.println(y + " squared is " + square.(y)); This seems to work just fine... Or you mean the #(int)int type won't accept a #(Integer)int type? The spec (in their current form) doesn't allow for such interoperability (argument types on the RHS need to be supertypes of argument types on the LHS). Maurizio > >> On 17/06/10 13:14, Maurizio Cimadamore wrote: >> >>> On 17/06/10 13:06, Andrew John Hughes wrote: >>> >>> >>>> public static void main(String[] args) >>>> { >>>> #int(int) square = #(int x)(x * x); >>>> #int() fortyTwo = #()(42); >>>> Integer y = Integer.parseInt(args[0]); >>>> System.out.println("Hello, the meaning of life is " + fortyTwo.()); >>>> System.out.println(y + " squared is " + square.(y)); >>>> >>>> >>>> >>>> >>> This is a straight prototype bug ;-) >>> I have a fix for it will be pushing it soon. The problem is the boxing >>> (you are passing a Integer where the closure accepts a 'int'). The >>> prototype works ok, but an assertion causes the crash (disabling >>> assertions also works fine). >>> >>> Maurizio >>> >>> >>> >> >> >> > > > From peter.levart at marand.si Thu Jun 17 06:11:11 2010 From: peter.levart at marand.si (Peter Levart) Date: Thu, 17 Jun 2010 15:11:11 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <4C1A15AB.1080108@cs.oswego.edu> References: <4C1A15AB.1080108@cs.oswego.edu> Message-ID: <201006171511.11493.peter.levart@marand.si> On 06/17/10, Doug Lea wrote: > On 06/17/10 08:19, Neal Gafter wrote: > > You're observing that people don't use checked exceptions much today, > > and they aren't well supported (e.g. in concurrency scenarios). > > That was one of the observations. The short version of the > second one is that > * We don't know how to efficiently process closures performing > blocking or failing IO. > * We don't have a reasonable way to ban only IO (or force > explicit evasion of the ban) without banning all checked exceptions. > > -Doug > > The last one could (speculating) be supported by introducing "negated types" and combining them with "conjunction types"... An API could restrict the passed in closures to ever throw IOException like this: public static List parallelMap(List

elements, #R(P)(throws E) mapFunction) throws E {...} Regards, Peter From ahughes at redhat.com Thu Jun 17 06:35:17 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Thu, 17 Jun 2010 14:35:17 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C1A1EAD.6030906@oracle.com> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> <4C1A118E.8020000@oracle.com> <4C1A14E5.603@oracle.com> <4C1A1EAD.6030906@oracle.com> Message-ID: On 17 June 2010 14:10, Maurizio Cimadamore wrote: > On 17/06/10 13:42, Andrew John Hughes wrote: >> On 17 June 2010 13:28, Maurizio Cimadamore >> ?wrote: >> >>> This is fixed now. >>> >>> Thanks >>> Maurizio >>> >>> >> Thanks for the quick fix. ?I noticed an #int(int) won't accept an >> Integer. ?Was this a deliberate design decision? >> > What do you mean? > > #int(int) square = #(int x)(x * x); > ... > Integer y = ... > System.out.println(y + " squared is " + square.(y)); > > This seems to work just fine... > Yeah, I saw your fix. > Or you mean the #(int)int type won't accept a #(Integer)int type? The > spec (in their current form) doesn't allow for such interoperability > (argument types on the RHS need to be supertypes of argument types on > the LHS). > This is what I was referring to. It means to use a map function like that in the strawman proposal, you need functions which use the boxed types, not the more usual ones using primitive types. See http://blog.fuseyism.com/index.php/2010/06/17/higher-level-functions-in-java/ where I did a quick basic implementation of map as a test and run into this issue. > Maurizio >> >>> On 17/06/10 13:14, Maurizio Cimadamore wrote: >>> >>>> On 17/06/10 13:06, Andrew John Hughes wrote: >>>> >>>> >>>>> public static void main(String[] args) >>>>> ? ? ?{ >>>>> ? ? ? ?#int(int) square = #(int x)(x * x); >>>>> ? ? ? ?#int() fortyTwo = #()(42); >>>>> ? ? ? ?Integer y = Integer.parseInt(args[0]); >>>>> ? ? ? ?System.out.println("Hello, the meaning of life is " + fortyTwo.()); >>>>> ? ? ? ?System.out.println(y + " squared is " + square.(y)); >>>>> >>>>> >>>>> >>>>> >>>> This is a straight prototype bug ;-) >>>> I have a fix for it will be pushing it soon. The problem is the boxing >>>> (you are passing a Integer where the closure accepts a 'int'). The >>>> prototype works ok, but an assertion causes the crash (disabling >>>> assertions also works fine). >>>> >>>> Maurizio >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From maurizio.cimadamore at oracle.com Thu Jun 17 06:45:45 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Thu, 17 Jun 2010 14:45:45 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> <4C1A118E.8020000@oracle.com> <4C1A14E5.603@oracle.com> <4C1A1EAD.6030906@oracle.com> Message-ID: <4C1A2709.5010700@oracle.com> > This is what I was referring to. It means to use a map function like > that in the strawman proposal, you need functions which use the boxed > types, not the more usual ones using primitive types. > See http://blog.fuseyism.com/index.php/2010/06/17/higher-level-functions-in-java/ > where I did a quick basic implementation of map as a test and run into > this issue. > I suggest you correct your post, since javac is not crashing anymore ;-) Your request seems fair enough; I will discuss this with my team and see if there are some lurking unsafety issues that justify the lack of boxing support in the current spec. Maurizio From pbenedict at apache.org Thu Jun 17 07:57:21 2010 From: pbenedict at apache.org (Paul Benedict) Date: Thu, 17 Jun 2010 09:57:21 -0500 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <201006171511.11493.peter.levart@marand.si> References: <4C1A15AB.1080108@cs.oswego.edu> <201006171511.11493.peter.levart@marand.si> Message-ID: Is there any merit to borrowing the idiom of InvocationTargetException? Clients usually discard that exception and take the wrapped exception and bubble that up. I wonder if all closure exceptions could be wrapped by a unchecked runtime exception, and leave it to the caller to do the unwrapping. On Thu, Jun 17, 2010 at 8:11 AM, Peter Levart wrote: > On 06/17/10, Doug Lea wrote: >> On 06/17/10 08:19, Neal Gafter wrote: >> > You're observing that people don't use checked exceptions much today, >> > and they aren't well supported (e.g. in concurrency scenarios). >> >> That was one of the observations. The short version of the >> second one is that >> ? ?* We don't know how to efficiently process closures performing >> ? ? ?blocking or failing IO. >> ? ?* We don't have a reasonable way to ban only IO (or force >> ? ? ?explicit evasion of the ban) without banning all checked exceptions. >> >> -Doug >> From peter.levart at marand.si Thu Jun 17 08:19:49 2010 From: peter.levart at marand.si (Peter Levart) Date: Thu, 17 Jun 2010 17:19:49 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <201006171511.11493.peter.levart@marand.si> Message-ID: <201006171719.49820.peter.levart@marand.si> On 06/17/10, Paul Benedict wrote: > Is there any merit to borrowing the idiom of > InvocationTargetException? Clients usually discard that exception and > take the wrapped exception and bubble that up. I wonder if all closure > exceptions could be wrapped by a unchecked runtime exception, and > leave it to the caller to do the unwrapping. I don't understand how that would solve the concerns that Doug Lea raised below... Peter > > On Thu, Jun 17, 2010 at 8:11 AM, Peter Levart wrote: > > On 06/17/10, Doug Lea wrote: > >> On 06/17/10 08:19, Neal Gafter wrote: > >> > You're observing that people don't use checked exceptions much today, > >> > and they aren't well supported (e.g. in concurrency scenarios). > >> > >> That was one of the observations. The short version of the > >> second one is that > >> * We don't know how to efficiently process closures performing > >> blocking or failing IO. > >> * We don't have a reasonable way to ban only IO (or force > >> explicit evasion of the ban) without banning all checked exceptions. > >> > >> -Doug > >> > From brian.goetz at oracle.com Thu Jun 17 08:28:18 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Thu, 17 Jun 2010 11:28:18 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: <4C1A3F12.9040607@oracle.com> I think we're saying the same thing. Exception transparency is needed in the within-thread case too, but I think the more attractive aspects of what Reinier is proposing are the other aspects -- nonlocal control flow and mutable local capture. On 6/17/2010 3:53 AM, Neal Gafter wrote: > On Wed, Jun 16, 2010 at 10:21 PM, Brian Goetz wrote: >> Overall, there's a lot to like about the "stack-bound vs traveling" >> distinction. As pointed out earlier, this is the gating concern on nonlocal >> control flow, as well as what enables mutable local capture to not be nearly >> guaranteed to be racy. > > I beg to differ. Exception transparency is critical in the concurrent > loops API described here: > > but cannot be implementing in a stack-bound way. From pbenedict at apache.org Thu Jun 17 14:52:28 2010 From: pbenedict at apache.org (Paul Benedict) Date: Thu, 17 Jun 2010 16:52:28 -0500 Subject: Exception transparency - lone throws (no checked exceptions) Message-ID: Stephen, I think your implementation and explanation was thought provoking and clever. I like what you did. My only comment is on the the "catch throws" clause. It allows checked exceptions to be handled in an unchecked manner, but I would rather solve the root problem. Today, the compiler forces you to catch declared checked exceptions, and will not allow you to catch undeclared checked exceptions. For example, if I try to catch IOException but the try/catch body has nothing that provably throws IOExceptions, I cannot compile. It's the latter that is the stumbling block here. Why doesn't Java relax its exception catching rules so that it's legal to catch undeclared checked exceptions? So the compiler cannot definitively prove the exception will be thrown, so what? It should be backwards compatible since it is illegal today, and it takes away this "catch throws" clause that is a bit hackish -- albeit necessary. Thoughts? Paul From scolebourne at joda.org Thu Jun 17 15:47:12 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Thu, 17 Jun 2010 23:47:12 +0100 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: On 17 June 2010 22:52, Paul Benedict wrote: > My only comment is on the the "catch throws" clause. ... > Why doesn't Java relax its exception catching rules so that it's legal > to catch undeclared checked exceptions? So the compiler cannot > definitively prove the exception will be thrown, so what? It should be > backwards compatible since it is illegal today, and it takes away this > "catch throws" clause that is a bit hackish -- albeit necessary. This is perfectly possible and not backwards incompatible as far as I can see (it simply makes code that wouldn't compile today start to compile.) I would note that the catch side of checked exceptions is just as important as the throws side to those that favour checked. Thats why I chose the slightly less aggressive change with an additional keyword. Were this proposal to be seriously considered, I'd expect that this option would be very much on the table. Stephen From forax at univ-mlv.fr Thu Jun 17 15:58:49 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Fri, 18 Jun 2010 00:58:49 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: <4C1AA8A9.3090806@univ-mlv.fr> Le 18/06/2010 00:47, Stephen Colebourne a ?crit : > On 17 June 2010 22:52, Paul Benedict wrote: > >> My only comment is on the the "catch throws" clause. >> > ... > >> Why doesn't Java relax its exception catching rules so that it's legal >> to catch undeclared checked exceptions? So the compiler cannot >> definitively prove the exception will be thrown, so what? It should be >> backwards compatible since it is illegal today, and it takes away this >> "catch throws" clause that is a bit hackish -- albeit necessary. >> > This is perfectly possible and not backwards incompatible as far as I > can see (it simply makes code that wouldn't compile today start to > compile.) > It's possible but stupid. My students must be able to write webservers and without checked exceptions, it's hard to be done right. No one want a server that stop if a client shutdown the connection randomly. Checked exception is a good way to say You must do something here to deal with this uncommon case. > I would note that the catch side of checked exceptions is just as > important as the throws side to those that favour checked. Thats why I > chose the slightly less aggressive change with an additional keyword. > Were this proposal to be seriously considered, I'd expect that this > option would be very much on the table. > > Stephen > R?mi From forax at univ-mlv.fr Thu Jun 17 16:05:10 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Fri, 18 Jun 2010 01:05:10 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <4C1A15AB.1080108@cs.oswego.edu> References: <4C1A0EA0.2090506@cs.oswego.edu> <4C1A15AB.1080108@cs.oswego.edu> Message-ID: <4C1AAA26.7000003@univ-mlv.fr> Le 17/06/2010 14:31, Doug Lea a ?crit : > On 06/17/10 08:19, Neal Gafter wrote: > >> You're observing that people don't use checked exceptions much today, >> and they aren't well supported (e.g. in concurrency scenarios). >> > That was one of the observations. The short version of the > second one is that > * We don't know how to efficiently process closures performing > blocking or failing IO. > What if VMs have continuation or coroutine support ? see http://weblogs.java.net/blog/forax/archive/2009/11/22/nio-server-continuation-java > * We don't have a reasonable way to ban only IO (or force > explicit evasion of the ban) without banning all checked exceptions. > > -Doug > R?mi From lk at teamten.com Thu Jun 17 16:17:54 2010 From: lk at teamten.com (Lawrence Kesteloot) Date: Thu, 17 Jun 2010 16:17:54 -0700 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: Message-ID: Stephen wrote: > I would note that the catch side of checked exceptions is just as > important as the throws side to those that favour checked. Right. My team has been using Spring for three years and I frequently see bugs like this: try { return simpleJdbcTemplate.queryForList( ... ); } catch (EmptyResultDataAccessException e) { return null; } The idea is to return null if the result set is empty, but queryForList() doesn't throw that exception; it just returns an empty list. I may as well take this opportunity to say that three years of using Spring has convinced me that unchecked exceptions lead to many more bugs than checked. I'm strongly in favor of them (and static checks of all kind) and I'm willing to pay the verbosity tax. I hope this point of view isn't lost in the sea of claims that "everyone hates checked exceptions". Lawrence From pbenedict at apache.org Thu Jun 17 16:37:00 2010 From: pbenedict at apache.org (Paul Benedict) Date: Thu, 17 Jun 2010 18:37:00 -0500 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <4C1AA8A9.3090806@univ-mlv.fr> References: <4C1AA8A9.3090806@univ-mlv.fr> Message-ID: Remi, I am not proposing eliminating checked exceptions. My suggestion is to allow the catching of checked exceptions without the compiler having to prove that it is going to be thrown. Example: try { // do nothing - nothing causes IOException here } catch (IOException e) { } That doesn't compile today. If we allowed it to compile, then checked exceptions could be thrown out of closures without having to be declared. Paul On Thu, Jun 17, 2010 at 5:58 PM, R?mi Forax wrote: > Le 18/06/2010 00:47, Stephen Colebourne a ?crit : >> On 17 June 2010 22:52, Paul Benedict ?wrote: >> >>> My only comment is on the the "catch throws" clause. >>> >> ... >> >>> Why doesn't Java relax its exception catching rules so that it's legal >>> to catch undeclared checked exceptions? So the compiler cannot >>> definitively prove the exception will be thrown, so what? It should be >>> backwards compatible since it is illegal today, and it takes away this >>> "catch throws" clause that is a bit hackish -- albeit necessary. >>> >> This is perfectly possible and not backwards incompatible as far as I >> can see (it simply makes code that wouldn't compile today start to >> compile.) >> > > It's possible but stupid. > My students must be able to write webservers and without checked exceptions, > it's hard to be done right. No one want a server that stop if a client > shutdown the connection randomly. > > Checked exception is a good way to say You must do something here to deal > with this uncommon case. > >> I would note that the catch side of checked exceptions is just as >> important as the throws side to those that favour checked. Thats why I >> chose the slightly less aggressive change with an additional keyword. >> Were this proposal to be seriously considered, I'd expect that this >> option would be very much on the table. >> >> Stephen >> > > R?mi > > > From forax at univ-mlv.fr Thu Jun 17 17:09:06 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Fri, 18 Jun 2010 02:09:06 +0200 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: References: <4C1AA8A9.3090806@univ-mlv.fr> Message-ID: <4C1AB922.4040006@univ-mlv.fr> Paul, this also means that you allow any method that throws a checked exception to be called in the closure body without requiring a catch or a throws. R?mi Le 18/06/2010 01:37, Paul Benedict a ?crit : > Remi, I am not proposing eliminating checked exceptions. My suggestion > is to allow the catching of checked exceptions without the compiler > having to prove that it is going to be thrown. > > Example: > try { > // do nothing - nothing causes IOException here > } catch (IOException e) { } > > That doesn't compile today. If we allowed it to compile, then checked > exceptions could be thrown out of closures without having to be > declared. > > Paul > > On Thu, Jun 17, 2010 at 5:58 PM, R?mi Forax wrote: > >> Le 18/06/2010 00:47, Stephen Colebourne a ?crit : >> >>> On 17 June 2010 22:52, Paul Benedict wrote: >>> >>> >>>> My only comment is on the the "catch throws" clause. >>>> >>>> >>> ... >>> >>> >>>> Why doesn't Java relax its exception catching rules so that it's legal >>>> to catch undeclared checked exceptions? So the compiler cannot >>>> definitively prove the exception will be thrown, so what? It should be >>>> backwards compatible since it is illegal today, and it takes away this >>>> "catch throws" clause that is a bit hackish -- albeit necessary. >>>> >>>> >>> This is perfectly possible and not backwards incompatible as far as I >>> can see (it simply makes code that wouldn't compile today start to >>> compile.) >>> >>> >> It's possible but stupid. >> My students must be able to write webservers and without checked exceptions, >> it's hard to be done right. No one want a server that stop if a client >> shutdown the connection randomly. >> >> Checked exception is a good way to say You must do something here to deal >> with this uncommon case. >> >> >>> I would note that the catch side of checked exceptions is just as >>> important as the throws side to those that favour checked. Thats why I >>> chose the slightly less aggressive change with an additional keyword. >>> Were this proposal to be seriously considered, I'd expect that this >>> option would be very much on the table. >>> >>> Stephen >>> >>> >> R?mi >> >> >> >> From reinier at zwitserloot.com Thu Jun 17 18:12:35 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Fri, 18 Jun 2010 03:12:35 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: Parellizing sort can be done in a similar way to the example implementation of forEachParallelized. Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would work just fine. The alternative is something like this: public void parallelSorter(List list, #int(T, T)(throws E) comparator) throws E { .... } But this is littered with problems as well. For starters, java.util.Comparator must be retired. That's a major smell of the strawman "throws E" syntactic method. There's no need to retire Comparator in the stack-bound proposal. Secondly, the authors of ParallelSorter need to understand exactly how to work with "throws E" which is difficult [*1], and involves loads of boilerplate. The characters "throws E" occur three times in the above snippet! I'm basically trying to argue that the above really doesn't win over unshackle/sneakyThrow in the "that looks pretty" department, stack-bound in general is easier to understand (to date the majority of java programmers still fundamentally cannot fathom why Enum's signature includes >!) and the disadvantages of the strawman[*2] are as bad or worse than the disadvantages of stack-bound[*3]. [*1] It's certainly nothing insurmountable, and plenty of folks are using complicated generics today, but it remains a truism that the majority of java programmers avoid declarative generics like the plague, and simply don't understand them. They love their List and Future, but don't really know why Enum's signature is officially Enum>, nor why sort's signature is void sort(List, Comparator) - and not for example void sort(List, Comparator). [*2] strawman problem: The vast majority of SAM types need to be retired because they can't be retrofitted with "throws E", and their replacements contain lots of boilerplate. [*3] stack-bound problem: See the "Future" snippet at the end of the OP which simply cannot be done given the stack-bound proposal, but is par-for-the-course in strawman. --Reinier Zwitserloot On Thu, Jun 17, 2010 at 11:20 AM, Neal Gafter wrote: > On Wed, Jun 16, 2010 at 11:52 PM, Reinier Zwitserloot > wrote: > > The alternative is working with abstracted exception types, but that > cannot > > possibly work either. How would you even do that? "catch (T foo)" does > not > > seem to be possible given the concept of erasure. The only pragmatic > thing > > one might catch, then, is Throwable or Exception, which one can also do > with > > the restricted/portable proposal. > > Right. The main thing one wants to do with exception transparency is > not to catch the exception in the generic code, but to express in the > type system that those exceptions are propogated out to the caller. > It can be caught at a place where the type parameter takes on a > concrete type. That place might or might not be higher on the call > stack of the same thread. > > Consider the sort() method you described. How does one use > concurrency in the implementation without undermining exception > safety? Passing the comparator to another thread requires storing it > in a variable, and that variable has to have a type. > From pbenedict at apache.org Thu Jun 17 18:33:53 2010 From: pbenedict at apache.org (Paul Benedict) Date: Thu, 17 Jun 2010 20:33:53 -0500 Subject: Exception transparency - lone throws (no checked exceptions) In-Reply-To: <4C1AB922.4040006@univ-mlv.fr> References: <4C1AA8A9.3090806@univ-mlv.fr> <4C1AB922.4040006@univ-mlv.fr> Message-ID: I erred last time I spoke. I don't want to change the semantics of the the thrower; only the receiver. If you call a method that declares a checked exception (in its signature), it/they must be caught or its a compiler error. If you calls a method that declares no checked exceptions, but for some reason manages to throw one anyway, the catch() clause would become valid in JDK 7 -- just unprovable. On Thu, Jun 17, 2010 at 7:09 PM, R?mi Forax wrote: > Paul, > this also means that you allow any method that throws a checked exception > to be called in the closure body without requiring a catch or a throws. > > R?mi > > Le 18/06/2010 01:37, Paul Benedict a ?crit : >> >> Remi, I am not proposing eliminating checked exceptions. My suggestion >> is to allow the catching of checked exceptions without the compiler >> having to prove that it is going to be thrown. >> >> Example: >> try { >> // do nothing - nothing causes IOException here >> } catch (IOException e) { } >> >> That doesn't compile today. If we allowed it to compile, then checked >> exceptions could be thrown out of closures without having to be >> declared. >> >> Paul >> >> On Thu, Jun 17, 2010 at 5:58 PM, R?mi Forax ?wrote: >> >>> >>> Le 18/06/2010 00:47, Stephen Colebourne a ?crit : >>> >>>> >>>> On 17 June 2010 22:52, Paul Benedict ? ?wrote: >>>> >>>> >>>>> >>>>> My only comment is on the the "catch throws" clause. >>>>> >>>>> >>>> >>>> ... >>>> >>>> >>>>> >>>>> Why doesn't Java relax its exception catching rules so that it's legal >>>>> to catch undeclared checked exceptions? So the compiler cannot >>>>> definitively prove the exception will be thrown, so what? It should be >>>>> backwards compatible since it is illegal today, and it takes away this >>>>> "catch throws" clause that is a bit hackish -- albeit necessary. >>>>> >>>>> >>>> >>>> This is perfectly possible and not backwards incompatible as far as I >>>> can see (it simply makes code that wouldn't compile today start to >>>> compile.) >>>> >>>> >>> >>> It's possible but stupid. >>> My students must be able to write webservers and without checked >>> exceptions, >>> it's hard to be done right. No one want a server that stop if a client >>> shutdown the connection randomly. >>> >>> Checked exception is a good way to say You must do something here to deal >>> with this uncommon case. >>> >>> >>>> >>>> I would note that the catch side of checked exceptions is just as >>>> important as the throws side to those that favour checked. Thats why I >>>> chose the slightly less aggressive change with an additional keyword. >>>> Were this proposal to be seriously considered, I'd expect that this >>>> option would be very much on the table. >>>> >>>> Stephen >>>> >>>> >>> >>> R?mi >>> >>> >>> >>> > > From jkuhnert at gmail.com Thu Jun 17 18:55:53 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Thu, 17 Jun 2010 21:55:53 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: It seems to me that even though some of the syntax being paraded around could be better, it is a wholly separate problem than the core goal of this project. The ease with which you can modify things in mercurial to come to your desired results might speak more to the careful thought and purity maintained in the language rather than how easy the temporary solution may seem. I only say this because I've fallen in to the same trap before only to curse my newbie ways later on when I realized what I had done. I had some kind mentors and good code to read from people like Howard Lewis-Ship, but I don't think the language is any place to allow people to make their own mistakes. More or less I think people agree with you that some form of inference would be nice, but it needs to be done broadly and elegantly or else things will start to fall apart. Much like the quarantined sections of my current codebase written in scala. Nice in theory but just give me closures and I can do away with all of it. Also don't agree with all the naysaying with generics. Yes of course I had more than a few puzzling moments adding support for them to my ognl jit extension and whatnot but overall it has been a tremendous blessing. Countless lines of code saved for anyone that hates repeating themselves - thank you for that. Let's continue to attack each problem wholly and one at a time and fit closures in to the language the only current elegant ways that we can. On Thursday, June 17, 2010, Reinier Zwitserloot wrote: > Parellizing sort can be done in a similar way to the example implementation > of forEachParallelized. > > Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would > work just fine. The alternative is something like this: > > ? ?public void parallelSorter(List list, #int(T, T)(throws > E) comparator) throws E { > ? ? ? ?.... > ? ?} > > But this is littered with problems as well. For starters, > java.util.Comparator must be retired. That's a major smell of the strawman > "throws E" syntactic method. There's no need to retire Comparator in the > stack-bound proposal. Secondly, the authors of ParallelSorter need to > understand exactly how to work with "throws E" which is difficult [*1], and > involves loads of boilerplate. The characters "throws E" occur three times > in the above snippet! > > I'm basically trying to argue that the above really doesn't win over > unshackle/sneakyThrow in the "that looks pretty" department, stack-bound in > general is easier to understand (to date the majority of java programmers > still fundamentally cannot fathom why Enum's signature includes Enum>!) and the disadvantages of the strawman[*2] are as bad or worse > than the disadvantages of stack-bound[*3]. > > [*1] It's certainly nothing insurmountable, and plenty of folks are using > complicated generics today, but it remains a truism that the majority of > java programmers avoid declarative generics like the plague, and simply > don't understand them. They love their List and Future, but > don't really know why Enum's signature is officially Enum Enum>, nor why sort's signature is void sort(List, Comparator super T>) - and not for example void sort(List, Comparator). > > [*2] strawman problem: The vast majority of SAM types need to be retired > because they can't be retrofitted with "throws E", and their replacements > contain lots of boilerplate. > > [*3] stack-bound problem: See the "Future" snippet at the end of the OP > which simply cannot be done given the stack-bound proposal, but is > par-for-the-course in strawman. > > > > --Reinier Zwitserloot > > > > On Thu, Jun 17, 2010 at 11:20 AM, Neal Gafter wrote: > >> On Wed, Jun 16, 2010 at 11:52 PM, Reinier Zwitserloot >> wrote: >> > The alternative is working with abstracted exception types, but that >> cannot >> > possibly work either. How would you even do that? "catch (T foo)" does >> not >> > seem to be possible given the concept of erasure. The only pragmatic >> thing >> > one might catch, then, is Throwable or Exception, which one can also do >> with >> > the restricted/portable proposal. >> >> Right. ?The main thing one wants to do with exception transparency is >> not to catch the exception in the generic code, but to express in the >> type system that those exceptions are propogated out to the caller. >> It can be caught at a place where the type parameter takes on a >> concrete type. ?That place might or might not be higher on the call >> stack of the same thread. >> >> Consider the sort() method you described. ?How does one use >> concurrency in the implementation without undermining exception >> safety? ?Passing the comparator to another thread requires storing it >> in a variable, and that variable has to have a type. >> > > From reinier at zwitserloot.com Thu Jun 17 19:16:02 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Fri, 18 Jun 2010 04:16:02 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: Who are you talking to, exactly? I haven't been modifying anything in any mercurial repository. yet. But I don't see what the ease (or lack thereof) of implementing stack-bound in the current nightly has to do with the merits (or lack thereof) of either stack-bound or strawman's ET proposal. My primary concern with strawman's exception transparency system *ISNT* the specific syntax that's on the table today. Rather, I don't see how *ANY* amount of tweaking to the syntax is going to lead to something that's going to (A) avoid the need to deprecate most SAMs, and (B) ugliness, by way of boilerplate (I think we can all agree repeating "throws E" three times in a single method signature is boilerplate). Stack-bound is also quite specifically _NOT_ related to inference. The only inference of note occurring in it, is inferencing that the author of a closure is attempting to handle checked exceptions thrown inside of his closures in a handler outside of it, which only makes sense if said closure is stack-bound. It will therefore infer that you meant for that closure to in fact be stack-bound, and emit compiler errors if you do something with that closure which makes it no longer stack-bound. What it will not do, however, is type inference, which is what I presume you meant with "inference" (as that's usually what that term is used for). That's because "stack-bound" isn't a type property. It's a runtime property, along with an internal annotation used by the compiler to emit errors, analogous to how the assignment state of a variable is tracked internally by the compiler (not via the type system and not runtime-introspectable), so that it can emit "This variable may not have been assigned before you read from it" errors. In case I didn't make myself clear, I love generics. I also believe most generics naysayers simply do not understand that things like co/contravariance are intrinsically difficult. No amount of syntax sugar is going to get rid of the concept, and the concept is inherently hard to understand. Nevertheless we must accept that due to the complexity of generics (as unavoidable as it might be), loads of java programmers do not understand them in depth enough to use them to write their own libraries. Nevertheless your average java joe likes generics because they still get to USE them, and it's not like it's impossible to write utility libraries without them. I was trying to draw the analogy to Exception Transparency: Given nice libraries for fork/join, PA, (parallelizing) filter and map operations and such, Java Joe can use these tools and just have them work, in most cases without requiring many changes to their code, without fully understanding how ET works. This is of course not as good a result as Java Joe understanding them in depth, but we may have to settle for it, just like we did with generics. I was trying to point out that neither stack-bound nor strawman seems to be the kind of proposal where Java Joe easily understands how to write their own parallelizing library function, though at least with stack-bound, Java Joe *CAN* write a sequential function easily, while he can't do so with strawman. Also, unlike strawman, stack-bound allows a much larger chunk of existing SAM classes to support ET, which means there's a lot less code to rewrite for Java Joe, and a lot less new ground to learn. --Reinier Zwitserloot On Fri, Jun 18, 2010 at 3:55 AM, Jesse Kuhnert wrote: > It seems to me that even though some of the syntax being paraded > around could be better, it is a wholly separate problem than the core > goal of this project. > > The ease with which you can modify things in mercurial to come to your > desired results might speak more to the careful thought and purity > maintained in the language rather than how easy the temporary solution > may seem. I only say this because I've fallen in to the same trap > before only to curse my newbie ways later on when I realized what I > had done. I had some kind mentors and good code to read from people > like Howard Lewis-Ship, but I don't think the language is any place to > allow people to make their own mistakes. > > More or less I think people agree with you that some form of inference > would be nice, but it needs to be done broadly and elegantly or else > things will start to fall apart. Much like the quarantined sections of > my current codebase written in scala. Nice in theory but just give me > closures and I can do away with all of it. > > Also don't agree with all the naysaying with generics. Yes of course I > had more than a few puzzling moments adding support for them to my > ognl jit extension and whatnot but overall it has been a tremendous > blessing. Countless lines of code saved for anyone that hates > repeating themselves - thank you for that. > > Let's continue to attack each problem wholly and one at a time and fit > closures in to the language the only current elegant ways that we can. > > On Thursday, June 17, 2010, Reinier Zwitserloot > wrote: > > Parellizing sort can be done in a similar way to the example > implementation > > of forEachParallelized. > > > > Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would > > work just fine. The alternative is something like this: > > > > public void parallelSorter(List list, #int(T, > T)(throws > > E) comparator) throws E { > > .... > > } > > > > But this is littered with problems as well. For starters, > > java.util.Comparator must be retired. That's a major smell of the > strawman > > "throws E" syntactic method. There's no need to retire Comparator in the > > stack-bound proposal. Secondly, the authors of ParallelSorter need to > > understand exactly how to work with "throws E" which is difficult [*1], > and > > involves loads of boilerplate. The characters "throws E" occur three > times > > in the above snippet! > > > > I'm basically trying to argue that the above really doesn't win over > > unshackle/sneakyThrow in the "that looks pretty" department, stack-bound > in > > general is easier to understand (to date the majority of java programmers > > still fundamentally cannot fathom why Enum's signature includes extends > > Enum>!) and the disadvantages of the strawman[*2] are as bad or worse > > than the disadvantages of stack-bound[*3]. > > > > [*1] It's certainly nothing insurmountable, and plenty of folks are using > > complicated generics today, but it remains a truism that the majority of > > java programmers avoid declarative generics like the plague, and simply > > don't understand them. They love their List and Future, but > > don't really know why Enum's signature is officially Enum > Enum>, nor why sort's signature is void sort(List, Comparator > super T>) - and not for example void sort(List, > Comparator). > > > > [*2] strawman problem: The vast majority of SAM types need to be retired > > because they can't be retrofitted with "throws E", and their replacements > > contain lots of boilerplate. > > > > [*3] stack-bound problem: See the "Future" snippet at the end of the OP > > which simply cannot be done given the stack-bound proposal, but is > > par-for-the-course in strawman. > > > > > > > > --Reinier Zwitserloot > > > > > > > > On Thu, Jun 17, 2010 at 11:20 AM, Neal Gafter wrote: > > > >> On Wed, Jun 16, 2010 at 11:52 PM, Reinier Zwitserloot > >> wrote: > >> > The alternative is working with abstracted exception types, but that > >> cannot > >> > possibly work either. How would you even do that? "catch (T foo)" does > >> not > >> > seem to be possible given the concept of erasure. The only pragmatic > >> thing > >> > one might catch, then, is Throwable or Exception, which one can also > do > >> with > >> > the restricted/portable proposal. > >> > >> Right. The main thing one wants to do with exception transparency is > >> not to catch the exception in the generic code, but to express in the > >> type system that those exceptions are propogated out to the caller. > >> It can be caught at a place where the type parameter takes on a > >> concrete type. That place might or might not be higher on the call > >> stack of the same thread. > >> > >> Consider the sort() method you described. How does one use > >> concurrency in the implementation without undermining exception > >> safety? Passing the comparator to another thread requires storing it > >> in a variable, and that variable has to have a type. > >> > > > > > From jkuhnert at gmail.com Thu Jun 17 19:24:47 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Thu, 17 Jun 2010 22:24:47 -0400 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: Wow, those where a lot of words. I feel like you have something to prove but have stumbled in to something over your head. Either that or your delivery is so patronizing:big suv driver-ish that I feel compelled to disagree with anything you say. If you had a point in there somewhere you lost me after the first couple sentences. On Thursday, June 17, 2010, Reinier Zwitserloot wrote: > Who are you talking to, exactly??I haven't been modifying anything in any mercurial repository. yet. But I don't see what the ease (or lack thereof) of implementing stack-bound in the current nightly has to do with the merits (or lack thereof) of either stack-bound or strawman's ET proposal. > > My primary concern with strawman's exception transparency system *ISNT* the specific syntax that's on the table today. Rather, I don't see how *ANY* amount of tweaking to the syntax is going to lead to something that's going to (A) avoid the need to deprecate most SAMs, and (B) ugliness, by way of boilerplate (I think we can all agree repeating "throws E" three times in a single method signature is boilerplate). > > Stack-bound is also quite specifically _NOT_ related to inference. The only inference of note occurring in it, is inferencing that the author of a closure is attempting to handle checked exceptions thrown inside of his closures in a handler outside of it, which only makes sense if said closure is stack-bound. It will therefore infer that you meant for that closure to in fact be stack-bound, and emit compiler errors if you do something with that closure which makes it no longer stack-bound. What it will not do, however, is type inference, which is what I presume you meant with "inference" (as that's usually what that term is used for). That's because "stack-bound" isn't a type property. It's a runtime property, along with an internal annotation used by the compiler to emit errors, analogous to how the assignment state of a variable is tracked internally by the compiler (not via the type system and not runtime-introspectable), so that it can emit "This variable may not have been assigned before you read from it" errors. > > In case I didn't make myself clear, I love generics. I also believe most generics naysayers simply do not understand that things like co/contravariance are intrinsically difficult. No amount of syntax sugar is going to get rid of the concept, and the concept is inherently hard to understand. Nevertheless we must accept that due to the complexity of generics (as unavoidable as it might be), loads of java programmers do not understand them in depth enough to use them to write their own libraries. Nevertheless your average java joe likes generics because they still get to USE them, and it's not like it's impossible to write utility libraries without them. I was trying to draw the analogy to Exception Transparency: Given nice libraries for fork/join, PA, (parallelizing) filter and map operations and such, Java Joe can use these tools and just have them work, in most cases without requiring many changes to their code, without fully understanding how ET works. This is of course not as good a result as Java Joe understanding them in depth, but we may have to settle for it, just like we did with generics. I was trying to point out that neither stack-bound nor strawman seems to be the kind of proposal where Java Joe easily understands how to write their own parallelizing library function, though at least with stack-bound, Java Joe *CAN* write a sequential function easily, while he can't do so with strawman. Also, unlike strawman, stack-bound allows a much larger chunk of existing SAM classes to support ET, which means there's a lot less code to rewrite for Java Joe, and a lot less new ground to learn. > --Reinier Zwitserloot > > > > On Fri, Jun 18, 2010 at 3:55 AM, Jesse Kuhnert wrote: > > It seems to me that even though some of the syntax being paraded > around could be better, it is a wholly separate problem than the core > goal of this project. > > The ease with which you can modify things in mercurial to come to your > desired results might speak more to the careful thought and purity > maintained in the language rather than how easy the temporary solution > may seem. I only say this because I've fallen in to the same trap > before only to curse my newbie ways later on when I realized what I > had done. I had some kind mentors and good code to read from people > like Howard Lewis-Ship, but I don't think the language is any place to > allow people to make their own mistakes. > > More or less I think people agree with you that some form of inference > would be nice, but it needs to be done broadly and elegantly or else > things will start to fall apart. Much like the quarantined sections of > my current codebase written in scala. Nice in theory but just give me > closures and I can do away with all of it. > > Also don't agree with all the naysaying with generics. Yes of course I > had more than a few puzzling moments adding support for them to my > ognl jit extension and whatnot but overall it has been a tremendous > blessing. Countless lines of code saved for anyone that hates > repeating themselves - thank you for that. > > Let's continue to attack each problem wholly and one at a time and fit > closures in to the language the only current elegant ways that we can. > > On Thursday, June 17, 2010, Reinier Zwitserloot wrote: >> Parellizing sort can be done in a similar way to the example implementation >> of forEachParallelized. >> >> Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would >> work just fine. The alternative is something like this: >> >> ?? ?public void parallelSorter(List list, #int(T, T)(throws >> E) comparator) throws E { >> ?? ? ? ?.... >> ?? ?} >> >> But this is littered with problems as well. For starters, >> java.util.Comparator must be retired. That's a major smell of the strawman >> "throws E" syntactic method. There's no need to retire Comparator in the >> stack-bound proposal. Secondly, the authors of ParallelSorter need to >> understand exactly how to work with "throws E" which is difficult [*1], and >> involves loads of boilerplate. The characters "throws E" occur three times >> in the above snippet! >> >> I'm basically trying to argue that the above really doesn't win over >> unshackle/sneakyThrow in the "that looks pretty" department, stack-bound in >> general is easier to understand (to date the majority of java programmers >> still fundamentally cannot fathom why Enum's signature includes > Enum>!) and the disadvantages of the strawman[*2] are as bad or worse >> than the disadvantages of stack-bound[*3]. >> >> [*1] It's certainly nothing insurmountable, and plenty of folks are using >> complicated generics today, but it remains a truism that the majority of >> java programmers avoid declarative generics like the plague, and simply >> don't understand them. They love their List and Future, but >> don't really know why Enum's signature is officially Enum> Enum>, nor why sort's signature is void sort(List, Comparator> super T>) - and not for example void sort(List, Comparator). >> >> [*2] strawman problem: The vast majority of SAM types need to be retired >> because they can't be retrofitted with "throws E", and their replacements >> contain lots of boilerplate. >> >> [*3] stack-bound problem: See the "Future" snippet at the end of the OP >> which simply cannot be done given the stack-bound proposal, but is >> par-for-the-course in strawman. >> >> >> >> --Reinier Zwitserloot >> >> >> >> On Thu, Jun 17, 2010 at 11:20 AM, Neal Gafter wrote: >> >>> On Wed, Jun 16, 2010 at 11:52 PM, Reinier Zwitserloot >>> > From collin.fagan at gmail.com Thu Jun 17 20:09:14 2010 From: collin.fagan at gmail.com (Collin Fagan) Date: Thu, 17 Jun 2010 22:09:14 -0500 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) Message-ID: Hi Everyone, I've put together a second draft of my proposal for virtual extension methods. http://www.box.net/shared/r24vvgma5p And yes *this* time they are really virtual. I welcome all comments. Thanks, Collin From neal at gafter.com Thu Jun 17 21:39:08 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 21:39:08 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: Colin- I like some aspects of this proposal. Compared to defender methods, there is no need for a special InterfaceName.super.method(...) notation. I like that it can be used to extend interfaces over which the programmer does not have control: that enables pattern-based frameworks and language extensions to be more generally useful (ala LINQ). An example of where that would be useful today is in the specification of ARM blocks; if defined in terms of -> instead of ., it can be retrofitted to many more types than would otherwise be possible. Defender methods don't allow that. I don't like the use of annotations (@ExtensionSupport and @ExtensionTarget) to change the meaning of declarations; this could be done with context-sensitive keywords instead. It is a little unfortunate that the syntax is distractingly different from an ordinary method invocation, even though the reader usually doesn't care (now we'd have three different invocation syntax forms). Cheers, Neal On Thu, Jun 17, 2010 at 8:09 PM, Collin Fagan wrote: > Hi Everyone, > > I've put together a second draft of my proposal for virtual extension > methods. > > http://www.box.net/shared/r24vvgma5p > > And yes *this* time they are really virtual. I welcome all comments. > > Thanks, > > Collin > > From neal at gafter.com Thu Jun 17 21:42:39 2010 From: neal at gafter.com (Neal Gafter) Date: Thu, 17 Jun 2010 21:42:39 -0700 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: On Thu, Jun 17, 2010 at 6:12 PM, Reinier Zwitserloot wrote: > Parellizing sort can be done in a similar way to the example implementation > of forEachParallelized. > Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would > work just fine. Recall that better concurrency support is one of the motivations for adding lambda. If the language forces programmers to undermine the type system (or exception checking system) in order to use concurrency, then we've failed. From reinier at zwitserloot.com Thu Jun 17 22:14:16 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Fri, 18 Jun 2010 07:14:16 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: <4C19B0CD.6030402@oracle.com> Message-ID: Using concurrency is not the problem. It's writing the libraries. I'm working on the theory that the number of people engaged in writing low-level concurrency libraries is limited. Get it right once, in other words. strawman makes using these libraries more difficult because most SAM types will have to be retired to support 'throws E'. It also makes writing utility functions that don't themselves engage in concurrency (though they can of course use received closures as arguments to concurrent utilities) far harder than stack-bound; stack-bound actually gives exception transparency to such functions for the mere cost of adding 1 keyword to the appropriate parameter. --Reinier Zwitserloot On Fri, Jun 18, 2010 at 6:42 AM, Neal Gafter wrote: > On Thu, Jun 17, 2010 at 6:12 PM, Reinier Zwitserloot > wrote: > > Parellizing sort can be done in a similar way to the example > implementation > > of forEachParallelized. > > Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would > > work just fine. > > Recall that better concurrency support is one of the motivations for > adding lambda. If the language forces programmers to undermine the > type system (or exception checking system) in order to use > concurrency, then we've failed. > From jkuhnert at gmail.com Thu Jun 17 22:43:42 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Fri, 18 Jun 2010 01:43:42 -0400 Subject: stack-bound vs. travelling closures proposal Message-ID: What are these use cases then which require all of the throws noise which is so troubling? Even back in the day when our using jini based I/o protocol to communicate multiple device node state in a shared environment was supposed to be uber cool top of the line javaspace/jini impl of "grid" computation do I remember exceptions as being anything other than a minor syntax distraction from the general goal. (of never being unavailable and above all never losing data) I'm just curious is all, having implemented life-critical concurrent systems (Doug Lea's library was like a beacon of light at the time) in the most intense/demanding software environments in all hospital operating related areas as to how your silly stack vs some other state approach really resolves the core problem at all or you are just talking to stroke your own ego. Just curious, that's all. It's not like you've had to live by your silly assertions or anything at all yet right? Talk to me when the phone rings at it-doesn't-matter-make-it-work and then I'll believe. On Friday, June 18, 2010, Reinier Zwitserloot wrote: > Using concurrency is not the problem. It's writing the libraries. I'm > working on the theory that the number of people engaged in writing low-level > concurrency libraries is limited. Get it right once, in other words. > > strawman makes using these libraries more difficult because most SAM types > will have to be retired to support 'throws E'. It also makes writing utility > functions that don't themselves engage in concurrency (though they can of > course use received closures as arguments to concurrent utilities) far > harder than stack-bound; stack-bound actually gives exception transparency > to such functions for the mere cost of adding 1 keyword to the appropriate > parameter. > > --Reinier Zwitserloot > > > > On Fri, Jun 18, 2010 at 6:42 AM, Neal Gafter wrote: > >> On Thu, Jun 17, 2010 at 6:12 PM, Reinier Zwitserloot >> wrote: >> > Parellizing sort can be done in a similar way to the example >> implementation >> > of forEachParallelized. >> > Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would >> > work just fine. >> >> Recall that better concurrency support is one of the motivations for >> adding lambda. ?If the language forces programmers to undermine the >> type system (or exception checking system) in order to use >> concurrency, then we've failed. >> > > From howard.lovatt at gmail.com Thu Jun 17 23:57:07 2010 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Fri, 18 Jun 2010 16:57:07 +1000 Subject: stack-bound vs. travelling closures proposal Message-ID: @Jesse, >I'm just curious is all, having implemented life-critical concurrent >systems (Doug Lea's library was like a beacon of light at the time) in >the most intense/demanding software environments in all hospital >operating related areas as to how your silly stack vs some other state >approach really resolves the core problem at all or you are just >talking to stroke your own ego. Just curious, that's all. It's not >like you've had to live by your silly assertions or anything at all >yet right? Talk to me when the phone rings at >it-doesn't-matter-make-it-work and then I'll believe. Doug Lea has already given some examples in this forum of where checked exceptions and parallel don't mix: http://mail.openjdk.java.net/pipermail/lambda-dev/2010-June/001683.html ?-- Howard. From forax at univ-mlv.fr Fri Jun 18 00:38:12 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Fri, 18 Jun 2010 09:38:12 +0200 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C1A2709.5010700@oracle.com> References: <4C1649EB.70405@redhat.com> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <201006171359.12984.peter.levart@marand.si> <4C1A0F01.3020602@oracle.com> <4C1A118E.8020000@oracle.com> <4C1A14E5.603@oracle.com> <4C1A1EAD.6030906@oracle.com> <4C1A2709.5010700@oracle.com> Message-ID: <4C1B2264.6080206@univ-mlv.fr> Le 17/06/2010 15:45, Maurizio Cimadamore a ?crit : > >> This is what I was referring to. It means to use a map function like >> that in the strawman proposal, you need functions which use the boxed >> types, not the more usual ones using primitive types. >> See http://blog.fuseyism.com/index.php/2010/06/17/higher-level-functions-in-java/ >> where I did a quick basic implementation of map as a test and run into >> this issue. >> >> > I suggest you correct your post, since javac is not crashing anymore ;-) > > Your request seems fair enough; I will discuss this with my team and see > if there are some lurking unsafety issues that justify the lack of > boxing support in the current spec. > > Maurizio > I think there is no problem if you don't try to convert primitive type. #double() foo = #() (3); // not legal R?mi From scolebourne at joda.org Fri Jun 18 01:27:51 2010 From: scolebourne at joda.org (Stephen Colebourne) Date: Fri, 18 Jun 2010 09:27:51 +0100 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: This has similarity to my first thoughts on the topic - http://www.jroller.com/scolebourne/entry/java_7_extension_methods I now feel that a key aspect of the problem space is to permit different implementations of an interface like List to provide different implementations of the extension method. Ideally, I'd still like to be able to effectiveyly add to the API as well (as this proposal does). I want to have my cake and eat it. My concern with the current defender methods approach is that it appears to contain a lot of moving parts. As such, I don't currently have a preferred solution to this space - just the requirements listed above. Stephen On 18 June 2010 05:39, Neal Gafter wrote: > Colin- > > I like some aspects of this proposal. ?Compared to defender methods, > there is no need for a special InterfaceName.super.method(...) > notation. ?I like that it can be used to extend interfaces over which > the programmer does not have control: that enables pattern-based > frameworks and language extensions to be more generally useful (ala > LINQ). ?An example of where that would be useful today is in the > specification of ARM blocks; if defined in terms of -> instead of ., > it can be retrofitted to many more types than would otherwise be > possible. ?Defender methods don't allow that. > > I don't like the use of annotations (@ExtensionSupport and > @ExtensionTarget) to change the meaning of declarations; this could be > done with context-sensitive keywords instead. ?It is a little > unfortunate that the syntax is distractingly different from an > ordinary method invocation, even though the reader usually doesn't > care (now we'd have three different invocation syntax forms). > > Cheers, > Neal > > On Thu, Jun 17, 2010 at 8:09 PM, Collin Fagan wrote: >> Hi Everyone, >> >> I've put together a second draft of my proposal for virtual extension >> methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> And yes *this* time they are really virtual. I welcome all comments. >> >> Thanks, >> >> Collin >> >> > > From peter.levart at marand.si Fri Jun 18 02:16:11 2010 From: peter.levart at marand.si (Peter Levart) Date: Fri, 18 Jun 2010 11:16:11 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: References: Message-ID: <201006181116.11283.peter.levart@marand.si> On 06/18/10, Reinier Zwitserloot wrote: > Using concurrency is not the problem. It's writing the libraries. I'm > working on the theory that the number of people engaged in writing low-level > concurrency libraries is limited. Get it right once, in other words. > > strawman makes using these libraries more difficult because most SAM types > will have to be retired to support 'throws E'. You're assuming that those libraries are already written and that they are already using existing SAM types and that nobody is going to adapt them to use function types. Isn't project lambda all about enabling writing those libraries? If those libraries are going to be written after (or with) JDK7, then your concern about old SAM types doesn't apply. Those libraries will use function types. Old platform libraries (ExecutorService & friends) I presume can be extended to support exeption-transparent function types in addition to be backwards compatible with old SAM types. It would be a nice exercise to start thinking about possible ways to extend existing platform concurrent libraries to support and make use of function types. > It also makes writing utility > functions that don't themselves engage in concurrency (though they can of > course use received closures as arguments to concurrent utilities) far > harder than stack-bound; stack-bound actually gives exception transparency > to such functions for the mere cost of adding 1 keyword to the appropriate > parameter. I don't think that adding one more generic parameter to the API method makes it far harder if the API method already uses 2 or more generic parameters. It is more keywords, yes, but as you say, those are "utility functions" and are written once but used multiple times. Regards, Peter > > --Reinier Zwitserloot > > > > On Fri, Jun 18, 2010 at 6:42 AM, Neal Gafter wrote: > > > On Thu, Jun 17, 2010 at 6:12 PM, Reinier Zwitserloot > > wrote: > > > Parellizing sort can be done in a similar way to the example > > implementation > > > of forEachParallelized. > > > Yes, it's ugly, and involves both unshackle and sneakyThrow, but it would > > > work just fine. > > > > Recall that better concurrency support is one of the motivations for > > adding lambda. If the language forces programmers to undermine the > > type system (or exception checking system) in order to use > > concurrency, then we've failed. > > > > From maurizio.cimadamore at oracle.com Fri Jun 18 05:04:43 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 18 Jun 2010 12:04:43 +0000 Subject: hg: lambda/lambda/langtools: Initial push for the 'defender methods' feature. The compiler recognizes and attributes the syntax described in the strawman proposal; defender methods are decorated with a special bytecode attribute called 'Defender'. It is also possible (using the -XDemitDefenderMethodAnnos flag) to have the compiler automatically generate a non-standard annotation called @DefenderMethod which contains information about the default implementation attached to the defender method declaration. Message-ID: <20100618120450.0F4DA47371@hg.openjdk.java.net> Changeset: 9f79be8946c6 Author: mcimadamore Date: 2010-06-18 13:02 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9f79be8946c6 Initial push for the 'defender methods' feature. The compiler recognizes and attributes the syntax described in the strawman proposal; defender methods are decorated with a special bytecode attribute called 'Defender'. It is also possible (using the -XDemitDefenderMethodAnnos flag) to have the compiler automatically generate a non-standard annotation called @DefenderMethod which contains information about the default implementation attached to the defender method declaration. Note: the current prototype doesn't commit to any of the implementation strategies described in the strawman; as such the code the compiler emits will not be executable (calling a defender method will result in an AbstractMethodError). + src/share/classes/com/sun/runtime/DefenderMethod.java ! src/share/classes/com/sun/tools/classfile/Attribute.java ! src/share/classes/com/sun/tools/classfile/ClassWriter.java + src/share/classes/com/sun/tools/classfile/Defender_attribute.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/jvm/Target.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/util/Names.java ! src/share/classes/com/sun/tools/javap/AttributeWriter.java + test/tools/javac/defender/Neg01.java + test/tools/javac/defender/Neg01.out + test/tools/javac/defender/Pos01.java + test/tools/javac/defender/Pos02.java From nathan.bryant at linkshare.com Fri Jun 18 06:24:28 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Fri, 18 Jun 2010 22:24:28 +0900 Subject: stack-bound vs. travelling closures proposal. References: <4C19B0CD.6030402@oracle.com> Message-ID: <7FDA6630E1822F448C97A48D5D733094C08F96@EXVMSTOR302.intra.rakuten.co.jp> Reinier wrote: > Using concurrency is not the problem. It's writing the libraries. I'm You keep reiterating this point, that once the libraries have been written, people won't need to write any more. I don't agree. I've already been forced to write a custom (basically package renamed with a few tweaks) version of one of the nascent frameworks out there, because it just didn't /quite/ do what I needed. More generally, if you can't write your own HOF (whether for parallelization, or simple pattern encapsulation, or any other reason) without becoming a bit of a second class citizen, then something is wrong. From collin.fagan at gmail.com Fri Jun 18 07:00:54 2010 From: collin.fagan at gmail.com (Collin Fagan) Date: Fri, 18 Jun 2010 09:00:54 -0500 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: Neal, I agree keywords would be more elegant. For that matter replacing -> with a . would be even more elegant, if possible. I'll work that into a third draft. The first ones that come to mind are: @ExtensionSupport changes to supports @ExtensionTarget changes to targets Thanks again for your time, Collin On Thu, Jun 17, 2010 at 11:39 PM, Neal Gafter wrote: > Colin- > > I like some aspects of this proposal. ?Compared to defender methods, > there is no need for a special InterfaceName.super.method(...) > notation. ?I like that it can be used to extend interfaces over which > the programmer does not have control: that enables pattern-based > frameworks and language extensions to be more generally useful (ala > LINQ). ?An example of where that would be useful today is in the > specification of ARM blocks; if defined in terms of -> instead of ., > it can be retrofitted to many more types than would otherwise be > possible. ?Defender methods don't allow that. > > I don't like the use of annotations (@ExtensionSupport and > @ExtensionTarget) to change the meaning of declarations; this could be > done with context-sensitive keywords instead. ?It is a little > unfortunate that the syntax is distractingly different from an > ordinary method invocation, even though the reader usually doesn't > care (now we'd have three different invocation syntax forms). > > Cheers, > Neal > > On Thu, Jun 17, 2010 at 8:09 PM, Collin Fagan wrote: >> Hi Everyone, >> >> I've put together a second draft of my proposal for virtual extension >> methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> And yes *this* time they are really virtual. I welcome all comments. >> >> Thanks, >> >> Collin >> >> > From lk at teamten.com Fri Jun 18 09:59:20 2010 From: lk at teamten.com (Lawrence Kesteloot) Date: Fri, 18 Jun 2010 09:59:20 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: Collin wrote: > For that matter replacing -> with a . would be even more elegant, if possible. The -> was my favorite part of your proposal. I want to require as little context as possible when reading code. If magic is happening, I want to know about it. Also, presumably if you're writing code inside a class Foo that has an extension method, with your proposal you'd have to write something like: this->forEach(...); It would be extra weird if you got rid of -> and I were allowed to just write: forEach(...); and have the system magically insert "this" as the first parameter. A better reason to avoid -> is that it might be better used for dynamic dispatch. Lawrence From reinier at zwitserloot.com Fri Jun 18 10:11:12 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Fri, 18 Jun 2010 19:11:12 +0200 Subject: stack-bound vs. travelling closures proposal. In-Reply-To: <7FDA6630E1822F448C97A48D5D733094C08F96@EXVMSTOR302.intra.rakuten.co.jp> References: <4C19B0CD.6030402@oracle.com> <7FDA6630E1822F448C97A48D5D733094C08F96@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: I'm not sure why you generalized to "If you can't write your own HOF without becoming a bit of a second class citizen, then something is wrong". In very rare cases, writing a HOF with stack-bound is slightly more complicated than with strawman. I don't see why this requires "second citizen" hyperbole. The rare case is specifically: You'd like to write a HOF that parallelizes, BUT, you cannot use any of the existing parallelizing libraries such as fork/join and roll your own, AND you'd like to support incoming stack-bound closures. That's the only case where you have to employ unshackle and sneakyThrow to relay ET back to the caller thread. Yes, it is true that strawman handles this particular extremely rare case better than stack-bound does. But this is no different from being forced to use an "instanceof", or a null-check, in a case where in other languages you may have been able to handle the situation with a static instead of a runtime check. This doesn't make you a second class citizen. We don't call folks using a null check a "second class citizen" because in a more extensive type system, nullity might have been expressed as a static type. It seems strange to use that kind of hyperbole here. I fully agree that the language should reduce situations where a runtime check is needed but a static check could have been possible as much as possible, _but_, not at *any* cost. The cost is too high, and the use cases are far too rare. --Reinier Zwitserloot On Fri, Jun 18, 2010 at 3:24 PM, Nathan Bryant wrote: > > > Reinier wrote: > > > Using concurrency is not the problem. It's writing the libraries. I'm > > You keep reiterating this point, that once the libraries have been > written, people won't need to write any more. I don't agree. I've > already been forced to write a custom (basically package renamed with a > few tweaks) version of one of the nascent frameworks out there, because > it just didn't /quite/ do what I needed. > > More generally, if you can't write your own HOF (whether for > parallelization, or simple pattern encapsulation, or any other reason) > without becoming a bit of a second class citizen, then something is > wrong. > From alex.buckley at oracle.com Fri Jun 18 11:58:03 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Fri, 18 Jun 2010 11:58:03 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: <4C1BC1BB.1000107@oracle.com> Hi Collin, If lambda-dev is to discuss your proposal, you will need to send the text of the proposal to lambda-dev, rather than pointing to an external site. Thanks. Alex On 6/17/2010 8:09 PM, Collin Fagan wrote: > Hi Everyone, > > I've put together a second draft of my proposal for virtual extension > methods. > > http://www.box.net/shared/r24vvgma5p > > And yes *this* time they are really virtual. I welcome all comments. > > Thanks, > > Collin > From collin.fagan at gmail.com Fri Jun 18 16:50:08 2010 From: collin.fagan at gmail.com (Collin Fagan) Date: Fri, 18 Jun 2010 18:50:08 -0500 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: <4C1BC1BB.1000107@oracle.com> References: <4C1BC1BB.1000107@oracle.com> Message-ID: Here is a plain text version of my proposal. Also if it maters, I've signed the Sun agreement to contribute to OpenJDK. Thanks, Collin ----------------- Virtual Extension By Inversion of Responsibility Collin Fagan Second draft, Jun 2010 Problem statement Once an API is published and in common use, it is difficult to evolve the very top layers of an abstraction without breaking existing code. Changes that would introduce new methods to an interface or new abstract methods to an abstract class will break both source and binary compatibility. The addition of lambdas to the Java language in JDK 7 presents API designers with this same problem on a much larger scale. Currently in Java the most straightforward approach would be to add new interfaces to the API. These new interfaces can then be implemented by concrete or abstract classes. The downside is that to use this new functionality you must either program to this new interface or play the game of "cast and hope". Neither immediately presents itself as a desirable option. Virtual Extension This document proposes a special "cast with fallback" mechanism. This replaces the "hope" of the "casting and hoping" with the certainty of a default implementation. This inverts the responsibility of providing this new functionality to the extender and not the base class. Example Syntax: List planets = Arrays.asList("Earth","Mars","Venus"); String result = planets->join(?,?); assert(result == "Earth,Mars,Venus"); Here join looks like a method call on the List interface using a funny operator. The -> operator is syntactic sugar for the inconvenient alternative code. The important part however is that the extension method is a separate entity from the interface. Other sugared examples: // groovy style GString.execute() "cp file1.txt file2.txt"->execute(); // log a severe exception ex->severe(); // Null safe isEmpty from Commons Lang String x = null; assert(x->isEmpty()); // Lambda sort: planets->sort(#(String a, String b)(a.length() - b.length())); Possible Desugarings Static Methods: One possible way to translate the -> operator is through delegation to a static method. // Sugared String result = planets->join(?,?); // Unsugared String result = JoinUtils.join(planets, ?,?); Lets assume we have the following interface. public interface Joinable{ String join(String sep); } There needs to exist a mapping between the join method of this interface and the static join method available in JoinUtils. Here is one way one could declare such a relationship. @ExtentionSupport(supports=Joinable.class) public final class JoinUtils{ ... } This could be a new keyword but I've chosen to use an annotation. Next there needs to be a static method whose name and signature matches the join signature with one extra parameter. This extra parameter is the "target" of the method. By convention this could be the very first parameter., otherwise another marker is required. This marker might also be useful for adapting existing static methods. public static String join(@ExtentionTarget List list, String sep){ ... } Now that we've indicated which parameter we want the -> operator to apply to, we need a way to let the compiler know where to look for the join method. Static methods already have a system for including them in the current scope, static import. //Sugared import static JoinUtils.*; ... List planets = Arrays.asList("Earth","Mars","Venus"); String result = planets->join(?,?); assert(result == "Earth,Mars,Venus"); ... // Unsugared import static Utils.*; ... List planets = Arrays.asList("Earth","Mars","Venus"); String result = join(planets, ?,?); assert(result == "Earth,Mars,Venus"); ... Finally there is the possibility that the "target" object might already be an instance of Joinable. To support this case the final unsugared code would need to check. // Unsugared import static Utils.*; ... List planets = Arrays.asList("Earth","Mars","Venus"); String result = null; if(o instanceof Joinable){ result = ((Joinable)o).join(","); }else{ result = join(planets, ?,?); } assert(result == "Earth,Mars,Venus"); ... Pros - No change required to any interface or class. - Adding a keyword is not required. - Many currently static methods could be retrofitted to work. Cons - Encourages static methods. - Requires static import. - Possibly not a huge savings in typing for the conceptual weight. - Requires an instanceof and a cast Delegating to a supporting object: Another possible desugaring of the -> operator is to delegate to a supporting object. Below is an example of a "support object" for the Joinable interface. @ExtentionSupport(supports=Joinable.class) public class JoinableSupport implements Joinable{ private Collection targetCollection; public JoinableSupport(Collection targetCollection) { this.targetCollection = targetCollection; } @Override public String join(String sep) { .. join logic .. } } Each support object would be required to have a single argument constructor. This constructor argument would be a reference to the object this functionality is being "applied" to. // Sugared List planets = Arrays.asList("Earth","Mars","Venus"); String result = planets->Join(?,?); assert(result == "Earth,Mars,Venus"); // Unsugared List planets = Arrays.asList("Earth","Mars","Venus"); String result = new JoinableSupport(planets).join(planets, ?,?); assert(result == "Earth,Mars,Venus"); // Sugared List planets = Arrays.asList("Earth","Mars","Venus"); planets->ForEach(#(String target){ target->Print(); }) // Unsugared (with an SAM style lambda expansion *) new ForEachSupport().invoke(planets, new Block(){ @Override public void invoke(String target) { new Print().invoke(target, Void); } }); * I'm not advocating that lambdas be implemented like this. I just need to translate them to something remotely familiar to talk about extension methods. Again there is the possibility that the "target" object might already be an instance of Joinable. To support this case the final unsugared code would need to check. // Unsugared ... List planets = Arrays.asList("Earth","Mars","Venus"); String result = null; if(o instanceof Joinable){ result = ((Joinable)o).join(","); }else{ result = new JoinableSupport(planets).join(?,?); } assert(result == "Earth,Mars,Venus"); ... Pros - No change required to any interface or class. - Adding a keyword is not required. - Does not encourages static methods. - Does not requires static import. Cons - Need to manage number of objects created. - Assumes that importing a "support class" makes it available to the -> operator. Lambda Delegation If lambdas exist then another desurgaring becomes possible, an Extension Lambda. // Sugared List planets = Arrays.asList("Earth","Mars","Venus"); planets->forEach(#(String target){ target->print(); }); // Unsugared (to lambda): List planets = Arrays.asList("Earth","Mars","Venus"); forEach.(planets, #(String target){ print.(target); }); // Lambda declaration #void(@ExtentionTarget Collection, #(T)) forEach = #(Collection collection, #(T) lambda){ for(T item: collection){ lambda.(item); } }; We again use an annotation on the parameter we want the -> operator to bind to. One thing not explicitly stated in the straw man proposal is whether a lambda is allowed as a top level construct. Currently Java supports class, interfaces and enum. If lambdas are treated as top level constructs then they could be imported directly. If not then we might have to go back to statically importing some public static final fields that refer to lambdas. Also not specified in the straw man proposal is the interaction of lambdas and polymorphism. Is it possible for a subclass to override the default implementation of a lambda? Pros No change required to any interface or class. Adding a keyword is not required. Creates a similar amount of overhead as a lambda. Cons May require static import? How can you override a lambda in a subclass? Final thoughts All three transformations are an attempt to remove the need to evolve interfaces. Each try to push the responsibility into more flexible constructs. I consider nothing final, not the syntax, not the details of the de-sugaring, not anything. I hope this document will spur positive discussion in this direction and I welcome all comments. On Fri, Jun 18, 2010 at 1:58 PM, Alex Buckley wrote: > Hi Collin, > > If lambda-dev is to discuss your proposal, you will need to send the text > of the proposal to lambda-dev, rather than pointing to an external site. > Thanks. > > Alex > > > On 6/17/2010 8:09 PM, Collin Fagan wrote: > >> Hi Everyone, >> >> I've put together a second draft of my proposal for virtual extension >> methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> And yes *this* time they are really virtual. I welcome all comments. >> >> Thanks, >> >> Collin >> >> From alex.buckley at oracle.com Fri Jun 18 17:06:41 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Fri, 18 Jun 2010 17:06:41 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: <4C1BC1BB.1000107@oracle.com> Message-ID: <4C1C0A11.9030503@oracle.com> Thank you Collin. While the Sun Contributor Agreement covers source code submitted to an OpenJDK project, it's important that non-source code submissions also be licensed to Oracle appropriately; see: http://openjdk.java.net/legal/terms.html 4. THINGS YOU SUBMIT TO THE SITE. c. Other Submissions. Without wishing to reprise the debates from December 2009 on use-site v. declaration-site extension, it's interesting that your extension mechanism is a combination: consumers-who-implement must indicate their extension, and consumers-who-invoke must indicate their use of the extension. The only guy left out is the interface being extended, and that means your scheme needs only compiler support. Alex P.S. I assume the 'o' in your unsugared code is meant to be 'planets'. On 6/18/2010 4:50 PM, Collin Fagan wrote: > Here is a plain text version of my proposal. Also if it maters, I've > signed the Sun agreement to contribute to OpenJDK. > > Thanks, > > Collin > > ----------------- > > > Virtual Extension By Inversion of Responsibility > Collin Fagan > Second draft, Jun 2010 > > Problem statement > > Once an API is published and in common use, it is difficult to > evolve the very top layers of an abstraction without breaking existing > code. Changes that would introduce new methods to an interface or new > abstract methods to an abstract class will break both source and binary > compatibility. > The addition of lambdas to the Java language in JDK 7 presents API > designers with this same problem on a much larger scale. > > Currently in Java the most straightforward approach would be to add > new interfaces to the API. These new interfaces can then be implemented > by concrete or abstract classes. The downside is that to use this new > functionality you must either program to this new interface or play the > game of "cast and hope". Neither immediately presents itself as a > desirable option. > > Virtual Extension > > This document proposes a special "cast with fallback" mechanism. > This replaces the "hope" of the "casting and hoping" with the certainty > of a default implementation. This inverts the responsibility of > providing this new functionality to the extender and not the base class. > > Example Syntax: > > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = planets->join(?,?); > assert(result == "Earth,Mars,Venus"); > Here join looks like a method call on the List interface using a > funny operator. The -> operator is syntactic sugar for the inconvenient > alternative code. The important part however is that the extension > method is a separate entity from the interface. > > Other sugared examples: > > // groovy style GString.execute() > "cp file1.txt file2.txt"->execute(); > > // log a severe exception > ex->severe(); > > // Null safe isEmpty from Commons Lang > String x = null; > assert(x->isEmpty()); > > // Lambda sort: > planets->sort(#(String a, String b)(a.length() - b.length())); > Possible Desugarings > > Static Methods: > > One possible way to translate the -> operator is through delegation > to a static method. > > // Sugared > String result = planets->join(?,?); > > // Unsugared > String result = JoinUtils.join(planets, ?,?); > > > Lets assume we have the following interface. > > public interface Joinable{ > String join(String sep); > } > > There needs to exist a mapping between the join method of this > interface and the static join method available in JoinUtils. Here is one > way one could declare such a relationship. > > @ExtentionSupport(supports=Joinable.class) > public final class JoinUtils{ > ... > } > > This could be a new keyword but I've chosen to use an annotation. > Next there needs to be a static method whose name and signature matches > the join signature with one extra parameter. This extra parameter is the > "target" of the method. By convention this could be the very first > parameter., otherwise another marker is required. This marker might also > be useful for adapting existing static methods. > > public static String join(@ExtentionTarget List list, String > sep){ > ... > } > > Now that we've indicated which parameter we want the -> operator to > apply to, we need a way to let the compiler know where to look for the > join method. Static methods already have a system for including them in > the current scope, static import. > > //Sugared > > import static JoinUtils.*; > ... > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = planets->join(?,?); > assert(result == "Earth,Mars,Venus"); > ... > > // Unsugared > > import static Utils.*; > ... > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = join(planets, ?,?); > assert(result == "Earth,Mars,Venus"); > ... > > Finally there is the possibility that the "target" object might > already be an instance of Joinable. To support this case the final > unsugared code would need to check. > > // Unsugared > > import static Utils.*; > ... > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = null; > > if(o instanceof Joinable){ > result = ((Joinable)o).join(","); > }else{ > result = join(planets, ?,?); > } > assert(result == "Earth,Mars,Venus"); > ... > > Pros > - No change required to any interface or class. > - Adding a keyword is not required. > - Many currently static methods could be retrofitted to work. > Cons > - Encourages static methods. > - Requires static import. > - Possibly not a huge savings in typing for the conceptual weight. > - Requires an instanceof and a cast > > Delegating to a supporting object: > > Another possible desugaring of the -> operator is to delegate to a > supporting object. Below is an example of a "support object" for the > Joinable interface. > > @ExtentionSupport(supports=Joinable.class) > public class JoinableSupport implements Joinable{ > > private Collection targetCollection; > > public JoinableSupport(Collection targetCollection) { > this.targetCollection = targetCollection; > } > > @Override > public String join(String sep) { > .. join logic .. > } > } > > Each support object would be required to have a single argument > constructor. This constructor argument would be a reference to the > object this functionality is being "applied" to. > > // Sugared > > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = planets->Join(?,?); > assert(result == "Earth,Mars,Venus"); > > // Unsugared > > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = new JoinableSupport(planets).join(planets, ?,?); > assert(result == "Earth,Mars,Venus"); > > > // Sugared > > List planets = Arrays.asList("Earth","Mars","Venus"); > > planets->ForEach(#(String target){ > target->Print(); > }) > > // Unsugared (with an SAM style lambda expansion *) > > new ForEachSupport().invoke(planets, new Block(){ > @Override > public void invoke(String target) { > new Print().invoke(target, Void); > } > }); > * I'm not advocating that lambdas be implemented like this. I just need > to translate them to something remotely familiar to talk about extension > methods. > > Again there is the possibility that the "target" object might > already be an instance of Joinable. To support this case the final > unsugared code would need to check. > > // Unsugared > ... > List planets = Arrays.asList("Earth","Mars","Venus"); > String result = null; > > if(o instanceof Joinable){ > result = ((Joinable)o).join(","); > }else{ > result = new JoinableSupport(planets).join(?,?); > } > assert(result == "Earth,Mars,Venus"); > ... > > Pros > - No change required to any interface or class. > - Adding a keyword is not required. > - Does not encourages static methods. > - Does not requires static import. > > Cons > - Need to manage number of objects created. > - Assumes that importing a "support class" makes it available to the -> > operator. > > Lambda Delegation > > If lambdas exist then another desurgaring becomes possible, an > Extension Lambda. > > // Sugared > > List planets = Arrays.asList("Earth","Mars","Venus"); > > planets->forEach(#(String target){ > target->print(); > }); > > // Unsugared (to lambda): > > List planets = Arrays.asList("Earth","Mars","Venus"); > > forEach.(planets, #(String target){ > print.(target); > }); > > // Lambda declaration > #void(@ExtentionTarget Collection, #(T)) forEach = > #(Collection collection, #(T) lambda){ > for(T item: collection){ > lambda.(item); > } > }; > > We again use an annotation on the parameter we want the -> operator > to bind to. One thing not explicitly stated in the straw man proposal is > whether a lambda is allowed as a top level construct. Currently Java > supports class, interfaces and enum. If lambdas are treated as top level > constructs then they could be imported directly. If not then we might > have to go back to statically importing some public static final fields > that refer to lambdas. Also not specified in the straw man proposal is > the interaction of lambdas and polymorphism. Is it possible for a > subclass to override the default implementation of a lambda? > > Pros > No change required to any interface or class. > Adding a keyword is not required. > Creates a similar amount of overhead as a lambda. > Cons > May require static import? > How can you override a lambda in a subclass? > > Final thoughts > > All three transformations are an attempt to remove the need to > evolve interfaces. Each try to push the responsibility into more > flexible constructs. I consider nothing final, not the syntax, not the > details of the de-sugaring, not anything. I hope this document will spur > positive discussion in this direction and I welcome all comments. > > > > On Fri, Jun 18, 2010 at 1:58 PM, Alex Buckley > wrote: > > Hi Collin, > > If lambda-dev is to discuss your proposal, you will need to send the > text of the proposal to lambda-dev, rather than pointing to an > external site. Thanks. > > Alex > > > On 6/17/2010 8:09 PM, Collin Fagan wrote: > > Hi Everyone, > > I've put together a second draft of my proposal for virtual > extension > methods. > > http://www.box.net/shared/r24vvgma5p > > And yes *this* time they are really virtual. I welcome all comments. > > Thanks, > > Collin > > From collin.fagan at gmail.com Fri Jun 18 17:20:12 2010 From: collin.fagan at gmail.com (Collin Fagan) Date: Fri, 18 Jun 2010 19:20:12 -0500 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: <4C1C0A11.9030503@oracle.com> References: <4C1BC1BB.1000107@oracle.com> <4C1C0A11.9030503@oracle.com> Message-ID: I have read section C and agree to the terms. Collin On Fri, Jun 18, 2010 at 7:06 PM, Alex Buckley wrote: > Thank you Collin. While the Sun Contributor Agreement covers source code > submitted to an OpenJDK project, it's important that non-source code > submissions also be licensed to Oracle appropriately; see: > > http://openjdk.java.net/legal/terms.html > 4. THINGS YOU SUBMIT TO THE SITE. > c. Other Submissions. > > Without wishing to reprise the debates from December 2009 on use-site v. > declaration-site extension, it's interesting that your extension mechanism > is a combination: consumers-who-implement must indicate their extension, and > consumers-who-invoke must indicate their use of the extension. The only guy > left out is the interface being extended, and that means your scheme needs > only compiler support. > > Alex > > P.S. I assume the 'o' in your unsugared code is meant to be 'planets'. > > > On 6/18/2010 4:50 PM, Collin Fagan wrote: > >> Here is a plain text version of my proposal. Also if it maters, I've >> signed the Sun agreement to contribute to OpenJDK. >> >> Thanks, >> >> Collin >> >> ----------------- >> >> >> Virtual Extension By Inversion of Responsibility >> Collin Fagan >> Second draft, Jun 2010 >> >> Problem statement >> >> Once an API is published and in common use, it is difficult to evolve >> the very top layers of an abstraction without breaking existing code. >> Changes that would introduce new methods to an interface or new abstract >> methods to an abstract class will break both source and binary >> compatibility. >> The addition of lambdas to the Java language in JDK 7 presents API >> designers with this same problem on a much larger scale. >> >> Currently in Java the most straightforward approach would be to add new >> interfaces to the API. These new interfaces can then be implemented by >> concrete or abstract classes. The downside is that to use this new >> functionality you must either program to this new interface or play the game >> of "cast and hope". Neither immediately presents itself as a desirable >> option. >> >> Virtual Extension >> This document proposes a special "cast with fallback" mechanism. >> This replaces the "hope" of the "casting and hoping" with the certainty of a >> default implementation. This inverts the responsibility of providing this >> new functionality to the extender and not the base class. >> >> Example Syntax: >> >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = planets->join(?,?); >> assert(result == "Earth,Mars,Venus"); >> Here join looks like a method call on the List interface using a funny >> operator. The -> operator is syntactic sugar for the inconvenient >> alternative code. The important part however is that the extension method is >> a separate entity from the interface. >> >> Other sugared examples: >> >> // groovy style GString.execute() >> "cp file1.txt file2.txt"->execute(); >> // log a severe exception >> ex->severe(); >> >> // Null safe isEmpty from Commons Lang >> String x = null; assert(x->isEmpty()); >> >> // Lambda sort: >> planets->sort(#(String a, String b)(a.length() - b.length())); >> Possible Desugarings >> >> Static Methods: >> >> One possible way to translate the -> operator is through delegation to >> a static method. >> >> // Sugared >> String result = planets->join(?,?); >> >> // Unsugared >> String result = JoinUtils.join(planets, ?,?); >> >> >> Lets assume we have the following interface. >> >> public interface Joinable{ >> String join(String sep); >> } >> >> There needs to exist a mapping between the join method of this >> interface and the static join method available in JoinUtils. Here is one way >> one could declare such a relationship. >> >> @ExtentionSupport(supports=Joinable.class) >> public final class JoinUtils{ >> ... >> } >> >> This could be a new keyword but I've chosen to use an annotation. Next >> there needs to be a static method whose name and signature matches the join >> signature with one extra parameter. This extra parameter is the "target" of >> the method. By convention this could be the very first parameter., otherwise >> another marker is required. This marker might also be useful for adapting >> existing static methods. >> >> public static String join(@ExtentionTarget List list, String >> sep){ >> ... >> } >> >> Now that we've indicated which parameter we want the -> operator to >> apply to, we need a way to let the compiler know where to look for the join >> method. Static methods already have a system for including them in the >> current scope, static import. >> >> //Sugared >> import static JoinUtils.*; >> ... >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = planets->join(?,?); >> assert(result == "Earth,Mars,Venus"); >> ... >> >> // Unsugared >> import static Utils.*; >> ... >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = join(planets, ?,?); >> assert(result == "Earth,Mars,Venus"); >> ... >> >> Finally there is the possibility that the "target" object might already >> be an instance of Joinable. To support this case the final unsugared code >> would need to check. >> >> // Unsugared >> import static Utils.*; >> ... >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = null; >> >> if(o instanceof Joinable){ >> result = ((Joinable)o).join(","); >> }else{ >> result = join(planets, ?,?); } >> assert(result == "Earth,Mars,Venus"); >> ... >> >> Pros - No change required to any interface or class. >> - Adding a keyword is not required. >> - Many currently static methods could be retrofitted to work. >> Cons >> - Encourages static methods. >> - Requires static import. >> - Possibly not a huge savings in typing for the conceptual weight. >> - Requires an instanceof and a cast >> Delegating to a supporting object: >> >> Another possible desugaring of the -> operator is to delegate to a >> supporting object. Below is an example of a "support object" for the >> Joinable interface. >> >> @ExtentionSupport(supports=Joinable.class) >> public class JoinableSupport implements Joinable{ >> >> private Collection targetCollection; >> public JoinableSupport(Collection targetCollection) { >> this.targetCollection = targetCollection; >> } >> >> @Override >> public String join(String sep) { >> .. join logic .. >> } } >> Each support object would be required to have a single argument >> constructor. This constructor argument would be a reference to the object >> this functionality is being "applied" to. >> >> // Sugared >> >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = planets->Join(?,?); >> assert(result == "Earth,Mars,Venus"); >> >> // Unsugared >> >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = new JoinableSupport(planets).join(planets, ?,?); >> assert(result == "Earth,Mars,Venus"); >> >> >> // Sugared >> >> List planets = Arrays.asList("Earth","Mars","Venus"); >> >> planets->ForEach(#(String target){ >> target->Print(); >> }) >> >> // Unsugared (with an SAM style lambda expansion *) >> >> new ForEachSupport().invoke(planets, new Block(){ >> @Override >> public void invoke(String target) { >> new Print().invoke(target, Void); >> } >> }); >> * I'm not advocating that lambdas be implemented like this. I just need to >> translate them to something remotely familiar to talk about extension >> methods. >> >> Again there is the possibility that the "target" object might already >> be an instance of Joinable. To support this case the final unsugared code >> would need to check. >> >> // Unsugared >> ... >> List planets = Arrays.asList("Earth","Mars","Venus"); >> String result = null; >> >> if(o instanceof Joinable){ >> result = ((Joinable)o).join(","); >> }else{ >> result = new JoinableSupport(planets).join(?,?); >> } >> assert(result == "Earth,Mars,Venus"); >> ... >> Pros - No change required to any interface or class. >> - Adding a keyword is not required. >> - Does not encourages static methods. - Does not requires static import. >> >> Cons >> - Need to manage number of objects created. >> - Assumes that importing a "support class" makes it available to the -> >> operator. >> >> Lambda Delegation >> >> If lambdas exist then another desurgaring becomes possible, an >> Extension Lambda. >> >> // Sugared >> >> List planets = Arrays.asList("Earth","Mars","Venus"); >> >> planets->forEach(#(String target){ >> target->print(); >> }); >> >> // Unsugared (to lambda): >> >> List planets = Arrays.asList("Earth","Mars","Venus"); >> >> forEach.(planets, #(String target){ >> print.(target); >> }); >> // Lambda declaration >> #void(@ExtentionTarget Collection, #(T)) forEach = >> #(Collection collection, #(T) lambda){ >> for(T item: collection){ >> lambda.(item); >> } >> }; >> >> We again use an annotation on the parameter we want the -> operator to >> bind to. One thing not explicitly stated in the straw man proposal is >> whether a lambda is allowed as a top level construct. Currently Java >> supports class, interfaces and enum. If lambdas are treated as top level >> constructs then they could be imported directly. If not then we might have >> to go back to statically importing some public static final fields that >> refer to lambdas. Also not specified in the straw man proposal is the >> interaction of lambdas and polymorphism. Is it possible for a subclass to >> override the default implementation of a lambda? >> >> Pros No change required to any interface or class. >> Adding a keyword is not required. >> Creates a similar amount of overhead as a lambda. Cons >> May require static import? >> How can you override a lambda in a subclass? >> >> Final thoughts >> >> All three transformations are an attempt to remove the need to evolve >> interfaces. Each try to push the responsibility into more flexible >> constructs. I consider nothing final, not the syntax, not the details of the >> de-sugaring, not anything. I hope this document will spur positive >> discussion in this direction and I welcome all comments. >> >> On Fri, Jun 18, 2010 at 1:58 PM, Alex Buckley > alex.buckley at oracle.com>> wrote: >> >> Hi Collin, >> >> If lambda-dev is to discuss your proposal, you will need to send the >> text of the proposal to lambda-dev, rather than pointing to an >> external site. Thanks. >> >> Alex >> >> >> On 6/17/2010 8:09 PM, Collin Fagan wrote: >> >> Hi Everyone, >> >> I've put together a second draft of my proposal for virtual >> extension >> methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> And yes *this* time they are really virtual. I welcome all >> comments. >> >> Thanks, >> >> Collin >> >> >> From neal at gafter.com Fri Jun 18 17:42:19 2010 From: neal at gafter.com (Neal Gafter) Date: Fri, 18 Jun 2010 17:42:19 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: <4C1BC1BB.1000107@oracle.com> References: <4C1BC1BB.1000107@oracle.com> Message-ID: Alex- Can we please apply this principle to all participants? -Neal On Jun 18, 2010, at 11:58 AM, Alex Buckley wrote: > Hi Collin, > > If lambda-dev is to discuss your proposal, you will need to send the > text of the proposal to lambda-dev, rather than pointing to an external > site. Thanks. > > Alex > > On 6/17/2010 8:09 PM, Collin Fagan wrote: >> Hi Everyone, >> >> I've put together a second draft of my proposal for virtual extension >> methods. >> >> http://www.box.net/shared/r24vvgma5p >> >> And yes *this* time they are really virtual. I welcome all comments. >> >> Thanks, >> >> Collin >> > From reinier at zwitserloot.com Fri Jun 18 18:24:02 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Sat, 19 Jun 2010 03:24:02 +0200 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: While I agree with your stance that its preferable for 'magic' to be as obvious as possible, I'm not sure its warranted here; method resolution is already quite 'magical' - in fact, resolution is generally mentioned as the most complex thing javac's resolution phase has to do (and the resolution phase is generally considered the most complicated of all the phases). For example, resolving "foo(a, b)" requires first resolving the types of a and b against all methods available (including parent types) in the compile-time type of foo's receiver, which may involve picking between several overloaded methods. Then encoding that specific method in the class file. Then, at runtime, this method signature undergoes virtual lookup, where it may end up in an implementation that didn't even exist when the original author of "foo(a, b)" wrote that code. This isn't much different from the idea that foo(a, b) ends up resolving to an extension method, and therefore using an alternative invoke symbol is perhaps overkill. I'm not exactly opposed to it on principle, but I'm a bit concerned that we'd be "spending" the -> symbol on this. As you said, we might want to keep it available to e.g. add dynamic dispatch at some point. --Reinier Zwitserloot On Fri, Jun 18, 2010 at 6:59 PM, Lawrence Kesteloot wrote: > Collin wrote: > > For that matter replacing -> with a . would be even more elegant, if > possible. > > The -> was my favorite part of your proposal. I want to require as > little context as possible when reading code. If magic is happening, I > want to know about it. > > Also, presumably if you're writing code inside a class Foo that has an > extension method, with your proposal you'd have to write something > like: > > this->forEach(...); > > It would be extra weird if you got rid of -> and I were allowed to just > write: > > forEach(...); > > and have the system magically insert "this" as the first parameter. > > A better reason to avoid -> is that it might be better used for > dynamic dispatch. > > Lawrence > > From neal at gafter.com Sat Jun 19 14:39:24 2010 From: neal at gafter.com (Neal Gafter) Date: Sat, 19 Jun 2010 14:39:24 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: <4C1BC1BB.1000107@oracle.com> Message-ID: Colin- I'm wondering how to make this work in the presence of generics. You use a class literal, which is only valid for reifiable types. You also use an instanceof test and a cast, which are unchecked operations if the target is not reifiable. Cheers, Neal From maurizio.cimadamore at oracle.com Mon Jun 21 05:47:20 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 21 Jun 2010 12:47:20 +0000 Subject: hg: lambda/lambda/langtools: Improved support for lambda conversion. Message-ID: <20100621124725.465E447423@hg.openjdk.java.net> Changeset: 02b8de982628 Author: mcimadamore Date: 2010-06-21 13:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/02b8de982628 Improved support for lambda conversion. Now the prototype supports lambda conversion where the target type is an abstract class. This is (temporarily) done by generating a synthetic anonymous inner class implementing the SAM method. Also added some checks involving lambda conversion described in the strawman: *) abstract class targeted by a lambda conversion must have default constructor *) target method of lambda conversion cannot be generic ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/lambda/BadConv01.java + test/tools/javac/lambda/BadConv01.out + test/tools/javac/lambda/BadConv02.java + test/tools/javac/lambda/BadConv02.out + test/tools/javac/lambda/LambdaConv07.java From neal at gafter.com Mon Jun 21 07:11:10 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 21 Jun 2010 07:11:10 -0700 Subject: hg: lambda/lambda/langtools: Improved support for lambda conversion. In-Reply-To: <20100621124725.465E447423@hg.openjdk.java.net> References: <20100621124725.465E447423@hg.openjdk.java.net> Message-ID: <7CCDB854-A051-40CA-BA1F-344030E733CB@gafter.com> Maurizio- What are the rules about checked exceptions thrown by the constructor? What accessibility rules are enforced for the constructor? How are the constructor's type parameters inferred? Is there any way to access the SAM class from within the lambda? -Neal On Jun 21, 2010, at 5:47 AM, maurizio.cimadamore at oracle.com wrote: > Changeset: 02b8de982628 > Author: mcimadamore > Date: 2010-06-21 13:43 +0100 > URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/02b8de982628 > > Improved support for lambda conversion. > > Now the prototype supports lambda conversion where the target type is an abstract class. This is (temporarily) done by generating a synthetic anonymous inner class implementing the SAM method. Also added some checks involving lambda conversion described in the strawman: > > *) abstract class targeted by a lambda conversion must have default constructor > *) target method of lambda conversion cannot be generic > > ! src/share/classes/com/sun/tools/javac/code/Types.java > ! src/share/classes/com/sun/tools/javac/comp/Lower.java > ! src/share/classes/com/sun/tools/javac/resources/compiler.properties > + test/tools/javac/lambda/BadConv01.java > + test/tools/javac/lambda/BadConv01.out > + test/tools/javac/lambda/BadConv02.java > + test/tools/javac/lambda/BadConv02.out > + test/tools/javac/lambda/LambdaConv07.java > > From maurizio.cimadamore at oracle.com Mon Jun 21 08:31:55 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 21 Jun 2010 16:31:55 +0100 Subject: hg: lambda/lambda/langtools: Improved support for lambda conversion. In-Reply-To: <7CCDB854-A051-40CA-BA1F-344030E733CB@gafter.com> References: <20100621124725.465E447423@hg.openjdk.java.net> <7CCDB854-A051-40CA-BA1F-344030E733CB@gafter.com> Message-ID: <4C1F85EB.1030302@oracle.com> Hi Neal we are still working out the details; see comments inline: On 21/06/10 15:11, Neal Gafter wrote: > Maurizio- > > What are the rules about checked exceptions thrown by the constructor? It would seem sensible to enforce clients to catch those exceptions > What accessibility rules are enforced for the constructor? I'd say that public/protected no-arg constructor would be fine > How are the constructor's type parameters inferred? I'd say that, given the strawman spec doesn't allow SAM types defining generic methods, a similar ban should apply to SAM types defining a generic no-arg constructor. > Is there any way to access the SAM class from within the lambda? > No. And I think there shouldn't be any. If we did that we would split the set of lambda expressions in two subets, lambda that can be used only within a lambda conversion, and all other lambdas. Maurizio > -Neal > > On Jun 21, 2010, at 5:47 AM, maurizio.cimadamore at oracle.com wrote: > > >> Changeset: 02b8de982628 >> Author: mcimadamore >> Date: 2010-06-21 13:43 +0100 >> URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/02b8de982628 >> >> Improved support for lambda conversion. >> >> Now the prototype supports lambda conversion where the target type is an abstract class. This is (temporarily) done by generating a synthetic anonymous inner class implementing the SAM method. Also added some checks involving lambda conversion described in the strawman: >> >> *) abstract class targeted by a lambda conversion must have default constructor >> *) target method of lambda conversion cannot be generic >> >> ! src/share/classes/com/sun/tools/javac/code/Types.java >> ! src/share/classes/com/sun/tools/javac/comp/Lower.java >> ! src/share/classes/com/sun/tools/javac/resources/compiler.properties >> + test/tools/javac/lambda/BadConv01.java >> + test/tools/javac/lambda/BadConv01.out >> + test/tools/javac/lambda/BadConv02.java >> + test/tools/javac/lambda/BadConv02.out >> + test/tools/javac/lambda/LambdaConv07.java >> >> >> From neal at gafter.com Mon Jun 21 08:52:40 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 21 Jun 2010 08:52:40 -0700 Subject: hg: lambda/lambda/langtools: Improved support for lambda conversion. In-Reply-To: <4C1F85EB.1030302@oracle.com> References: <20100621124725.465E447423@hg.openjdk.java.net> <7CCDB854-A051-40CA-BA1F-344030E733CB@gafter.com> <4C1F85EB.1030302@oracle.com> Message-ID: On Mon, Jun 21, 2010 at 8:31 AM, Maurizio Cimadamore wrote: > Hi Neal > we are still working out the details; see comments inline: > > On 21/06/10 15:11, Neal Gafter wrote: >> >> Maurizio- >> >> What are the rules about checked exceptions thrown by the constructor? > > It would seem sensible to enforce clients to catch those exceptions Yes, but where? The draft specification says that it wants to leave it unspecified where the conversion occurs. >> What accessibility rules are enforced for the constructor? > > I'd say that public/protected no-arg constructor would be fine Not package private? >> How are the constructor's type parameters inferred? > > I'd say that, given the strawman spec doesn't allow SAM types defining > generic methods, a similar ban should apply to SAM types defining a generic > no-arg constructor. I don't see how these are analogous. >> Is there any way to access the SAM class from within the lambda? >> > > No. And I think there shouldn't be any. If we did that we would split the > set of lambda expressions in two subets, lambda that can be used only within > a lambda conversion, and all other lambdas. That's sensible, but that removes the last remaining reason to have "this" defined to refer to the lambda itself rather than taking its meaning from the enclosing scope. Cheers, Neal From maurizio.cimadamore at Oracle.com Mon Jun 21 10:28:55 2010 From: maurizio.cimadamore at Oracle.com (Maurizio Cimadamore) Date: Mon, 21 Jun 2010 18:28:55 +0100 Subject: hg: lambda/lambda/langtools: Improved support for lambda conversion. In-Reply-To: References: <20100621124725.465E447423@hg.openjdk.java.net> <7CCDB854-A051-40CA-BA1F-344030E733CB@gafter.com> <4C1F85EB.1030302@oracle.com> Message-ID: <4C1FA157.9020408@oracle.com> >> I'd say that public/protected no-arg constructor would be fine >> > Not package private? > I'd say a package private constructor is only good if the SAM type is defined in the same package as the one of the client class doing the lambda conversion. Maurizio From alex.buckley at oracle.com Mon Jun 21 13:12:14 2010 From: alex.buckley at oracle.com (Alex Buckley) Date: Mon, 21 Jun 2010 13:12:14 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: <4C1BC1BB.1000107@oracle.com> Message-ID: <4C1FC79E.5080609@oracle.com> The principle is that non-source code submissions to Oracle need to be licensed appropriately to Oracle by the submitter. For an individual who is not otherwise involved in an OpenJDK project, the most direct way to submit material while respecting the principle is simply to put the text in a mail to an OpenJDK list. Linking to non-OpenJDK web sites or lists is insufficient. An individual who is already involved with OpenJDK such that they can post material on openjdk.java.net, can simply post it there. lambda-dev discussions about that material would be fine even without the text appearing on lambda-dev. Alex On 6/18/2010 5:42 PM, Neal Gafter wrote: > Alex- > > Can we please apply this principle to all participants? > > -Neal > > On Jun 18, 2010, at 11:58 AM, Alex Buckley wrote: > >> Hi Collin, >> >> If lambda-dev is to discuss your proposal, you will need to send the >> text of the proposal to lambda-dev, rather than pointing to an external >> site. Thanks. >> >> Alex >> >> On 6/17/2010 8:09 PM, Collin Fagan wrote: >>> Hi Everyone, >>> >>> I've put together a second draft of my proposal for virtual extension >>> methods. >>> >>> http://www.box.net/shared/r24vvgma5p >>> >>> And yes *this* time they are really virtual. I welcome all comments. >>> >>> Thanks, >>> >>> Collin >>> From neal at gafter.com Mon Jun 21 14:09:58 2010 From: neal at gafter.com (Neal Gafter) Date: Mon, 21 Jun 2010 14:09:58 -0700 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: <4C1FC79E.5080609@oracle.com> References: <4C1BC1BB.1000107@oracle.com> <4C1FC79E.5080609@oracle.com> Message-ID: The principle sounds fine, but the mailing list is useful in that it provides a permanent record. Postings on web sites change over time, and that makes it hard to make sense of the flow of this discussion. I therefore request that we all, please, post our proposals here. On Mon, Jun 21, 2010 at 1:12 PM, Alex Buckley wrote: > The principle is that non-source code submissions to Oracle need to be > licensed appropriately to Oracle by the submitter. > > For an individual who is not otherwise involved in an OpenJDK project, the > most direct way to submit material while respecting the principle is simply > to put the text in a mail to an OpenJDK list. Linking to non-OpenJDK web > sites or lists is insufficient. > > An individual who is already involved with OpenJDK such that they can post > material on openjdk.java.net, can simply post it there. lambda-dev > discussions about that material would be fine even without the text > appearing on lambda-dev. > > Alex > > On 6/18/2010 5:42 PM, Neal Gafter wrote: >> >> Alex- >> >> Can we please apply this principle to all participants? >> >> -Neal >> >> On Jun 18, 2010, at 11:58 AM, Alex Buckley >> wrote: >> >>> Hi Collin, >>> >>> If lambda-dev is to discuss your proposal, you will need to send the text >>> of the proposal to lambda-dev, rather than pointing to an external site. >>> Thanks. >>> >>> Alex >>> >>> On 6/17/2010 8:09 PM, Collin Fagan wrote: >>>> >>>> Hi Everyone, >>>> >>>> I've put together a second draft of my proposal for virtual extension >>>> methods. >>>> >>>> http://www.box.net/shared/r24vvgma5p >>>> >>>> And yes *this* time they are really virtual. I welcome all comments. >>>> >>>> Thanks, >>>> >>>> Collin >>>> > From maurizio.cimadamore at oracle.com Tue Jun 22 09:22:18 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Tue, 22 Jun 2010 16:22:18 +0000 Subject: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion. Message-ID: <20100622162223.B140747469@hg.openjdk.java.net> Changeset: 1cbf9ca0c589 Author: mcimadamore Date: 2010-06-22 17:19 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1cbf9ca0c589 Improved support for diagnostic during lambda conversion. Now the compiler emits more specific info about why a function type cannot be assigned to a SAM type (does not cover method resolution diagnostics). Examples: TestX.java:16: incompatible types; target method pippo in class I is not suitable for lambda conversion I f = #(Integer i) { return new Integer(i); }; ^ required: I found: #Integer(Integer) 1 error Test.java:16: incompatible types; target method pippo in class I is not suitable for lambda conversion I f = #(Integer i) { return new Integer(i); }; ^ required: I found: #Integer(Integer) Test.java:16: incompatible types; the target type of a lambda conversion must be an abstract class/interface I f = #(Integer i) { return new Integer(i); }; ^ required: I found: #Integer(Integer) Test.java:16: incompatible types; no target method for lambda conversion found in class I I f = #(Integer i) { return new Integer(i); }; ^ required: I found: #Integer(Integer) Test.java:16: incompatible types; the target type of a lambda conversion must define a default constructor I f = #(Integer i) { return new Integer(i); }; ^ required: I found: #Integer(Integer) ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/tools/javac/lambda/BadConv01.out ! test/tools/javac/lambda/BadConv02.out From pbenedict at apache.org Tue Jun 22 09:37:16 2010 From: pbenedict at apache.org (Paul Benedict) Date: Tue, 22 Jun 2010 11:37:16 -0500 Subject: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion. In-Reply-To: <20100622162223.B140747469@hg.openjdk.java.net> References: <20100622162223.B140747469@hg.openjdk.java.net> Message-ID: Maurizio, I have a question about this message: "the target type of a lambda conversion must define a default constructor" I remember -- yonder in my Sun Certification exam -- the difference between a default constructor and a public no-arg constructor. The default constructor is compiler generated and gets the same scope as the class is defined. Is this what you meant? Or did you mean a public no-arg constructor? I am referring back to a discussion between you and Neal. Paul On Tue, Jun 22, 2010 at 11:22 AM, wrote: > Changeset: 1cbf9ca0c589 > Author: ? ?mcimadamore > Date: ? ? ?2010-06-22 17:19 +0100 > URL: ? ? ? http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1cbf9ca0c589 > > Improved support for diagnostic during lambda conversion. > Now the compiler emits more specific info about why a function type cannot be assigned to a SAM type (does not cover method resolution diagnostics). > > Examples: > > TestX.java:16: incompatible types; target method pippo in class I is not suitable for lambda conversion > I f = #(Integer i) { return new Integer(i); }; > ? ? ?^ > ?required: I > ?found: ? ?#Integer(Integer) > 1 error > > Test.java:16: incompatible types; target method pippo in class I is not suitable for lambda conversion > I f = #(Integer i) { return new Integer(i); }; > ? ? ?^ > ?required: I > ?found: ? ?#Integer(Integer) > > Test.java:16: incompatible types; the target type of a lambda conversion must be an abstract class/interface > I f = #(Integer i) { return new Integer(i); }; > ? ? ?^ > ?required: I > ?found: ? ?#Integer(Integer) > > Test.java:16: incompatible types; no target method for lambda conversion found in class I > I f = #(Integer i) { return new Integer(i); }; > ? ? ?^ > ?required: I > ?found: ? ?#Integer(Integer) > > Test.java:16: incompatible types; the target type of a lambda conversion must define a default constructor > I f = #(Integer i) { return new Integer(i); }; > ? ? ?^ > ?required: I > ?found: ? ?#Integer(Integer) > > ! src/share/classes/com/sun/tools/javac/code/Types.java > ! src/share/classes/com/sun/tools/javac/comp/Check.java > ! src/share/classes/com/sun/tools/javac/resources/compiler.properties > ! test/tools/javac/lambda/BadConv01.out > ! test/tools/javac/lambda/BadConv02.out > > > From maurizio.cimadamore at oracle.com Tue Jun 22 09:40:36 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 22 Jun 2010 17:40:36 +0100 Subject: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion. In-Reply-To: References: <20100622162223.B140747469@hg.openjdk.java.net> Message-ID: <4C20E784.4070703@oracle.com> On 22/06/10 17:37, Paul Benedict wrote: > Maurizio, > > I have a question about this message: > "the target type of a lambda conversion must define a default constructor" > > I remember -- yonder in my Sun Certification exam -- the difference > between a default constructor and a public no-arg constructor. The > default constructor is compiler generated and gets the same scope as > the class is defined. Is this what you meant? Or did you mean a public > no-arg constructor? I am referring back to a discussion between you > and Neal. > no-arg constructor is what we need in the diagnostic. Thanks for the headsup. I will replace that message with: "the target type of a lambda conversion must define an accessible no-arg constructor" As soon as I will implement the accessibility check. Maurizio Maurizio > Paul > > On Tue, Jun 22, 2010 at 11:22 AM, wrote: > >> Changeset: 1cbf9ca0c589 >> Author: mcimadamore >> Date: 2010-06-22 17:19 +0100 >> URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1cbf9ca0c589 >> >> Improved support for diagnostic during lambda conversion. >> Now the compiler emits more specific info about why a function type cannot be assigned to a SAM type (does not cover method resolution diagnostics). >> >> Examples: >> >> TestX.java:16: incompatible types; target method pippo in class I is not suitable for lambda conversion >> I f = #(Integer i) { return new Integer(i); }; >> ^ >> required: I >> found: #Integer(Integer) >> 1 error >> >> Test.java:16: incompatible types; target method pippo in class I is not suitable for lambda conversion >> I f = #(Integer i) { return new Integer(i); }; >> ^ >> required: I >> found: #Integer(Integer) >> >> Test.java:16: incompatible types; the target type of a lambda conversion must be an abstract class/interface >> I f = #(Integer i) { return new Integer(i); }; >> ^ >> required: I >> found: #Integer(Integer) >> >> Test.java:16: incompatible types; no target method for lambda conversion found in class I >> I f = #(Integer i) { return new Integer(i); }; >> ^ >> required: I >> found: #Integer(Integer) >> >> Test.java:16: incompatible types; the target type of a lambda conversion must define a default constructor >> I f = #(Integer i) { return new Integer(i); }; >> ^ >> required: I >> found: #Integer(Integer) >> >> ! src/share/classes/com/sun/tools/javac/code/Types.java >> ! src/share/classes/com/sun/tools/javac/comp/Check.java >> ! src/share/classes/com/sun/tools/javac/resources/compiler.properties >> ! test/tools/javac/lambda/BadConv01.out >> ! test/tools/javac/lambda/BadConv02.out >> >> >> >> From alessiostalla at gmail.com Tue Jun 22 10:55:11 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 22 Jun 2010 19:55:11 +0200 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) Message-ID: On Tue, Jun 22, 2010 at 6:22 PM, ? wrote: > target method pippo Heh - that reveals something about your origins ;) Sorry for the OT ;) Peace, Alessio From maurizio.cimadamore at oracle.com Tue Jun 22 11:28:05 2010 From: maurizio.cimadamore at oracle.com (maurizio cimadamore) Date: Tue, 22 Jun 2010 19:28:05 +0100 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: References: Message-ID: <4C2100B5.7020105@oracle.com> On 22/06/2010 18:55, Alessio Stalla wrote: > On Tue, Jun 22, 2010 at 6:22 PM, wrote: > >> target method pippo >> > Heh - that reveals something about your origins ;) > Indeed it does [I knew you would have noticed :-) ] Maurizio > Sorry for the OT ;) > > Peace, > Alessio > From maurizio.cimadamore at oracle.com Tue Jun 22 11:38:13 2010 From: maurizio.cimadamore at oracle.com (maurizio cimadamore) Date: Tue, 22 Jun 2010 19:38:13 +0100 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <4C2100B5.7020105@oracle.com> References: <4C2100B5.7020105@oracle.com> Message-ID: <4C210315.7020807@oracle.com> On 22/06/2010 19:28, maurizio cimadamore wrote: > On 22/06/2010 18:55, Alessio Stalla wrote: > >> On Tue, Jun 22, 2010 at 6:22 PM, wrote: >> >> >>> target method pippo >>> >>> >> Heh - that reveals something about your origins ;) >> >> > Indeed it does [I knew you would have noticed :-) ] > > Maurizio > For non-italian readers - following an (ehm) ancient tradiation, italian programmers use to name things after walt disney cartoon character. Put in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and Bar :-) Maurizio >> Sorry for the OT ;) >> >> Peace, >> Alessio >> >> > > From alessiostalla at gmail.com Tue Jun 22 11:42:27 2010 From: alessiostalla at gmail.com (Alessio Stalla) Date: Tue, 22 Jun 2010 20:42:27 +0200 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <4C210315.7020807@oracle.com> References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> Message-ID: On Tue, Jun 22, 2010 at 8:38 PM, maurizio cimadamore wrote: > On 22/06/2010 19:28, maurizio cimadamore wrote: >> >> On 22/06/2010 18:55, Alessio Stalla wrote: >> >>> >>> On Tue, Jun 22, 2010 at 6:22 PM, ? wrote: >>> >>> >>>> >>>> target method pippo >>>> >>>> >>> >>> Heh - that reveals something about your origins ;) >>> >>> >> >> Indeed it does [I knew you would have noticed :-) ] >> >> Maurizio >> > > For non-italian readers - following an (ehm) ancient tradiation, italian > programmers use to name things after walt disney cartoon character. Put in > other words, Goofy ('pippo' in Italian) and Pluto are our Foo and Bar :-) Yeah, and Paperino (Donald Duck) is often Baz :D Alessio From forax at univ-mlv.fr Tue Jun 22 11:50:49 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Tue, 22 Jun 2010 20:50:49 +0200 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <4C210315.7020807@oracle.com> References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> Message-ID: <4C210609.30905@univ-mlv.fr> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : > On 22/06/2010 19:28, maurizio cimadamore wrote: > >> On 22/06/2010 18:55, Alessio Stalla wrote: >> >> >>> On Tue, Jun 22, 2010 at 6:22 PM, wrote: >>> >>> >>> >>>> target method pippo >>>> >>>> >>>> >>> Heh - that reveals something about your origins ;) >>> >>> >>> >> Indeed it does [I knew you would have noticed :-) ] >> >> Maurizio >> >> > For non-italian readers - following an (ehm) ancient tradiation, italian > programmers use to name things after walt disney cartoon character. Put > in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and Bar > :-) > > Maurizio > In France, we use 'toto' and its variations 'titi' and 'tutu'. R?mi >>> Sorry for the OT ;) >>> >>> Peace, >>> Alessio >>> >>> >>> >> >> > > From mic.gaber at googlemail.com Tue Jun 22 12:09:02 2010 From: mic.gaber at googlemail.com (Michael Gaber) Date: Tue, 22 Jun 2010 21:09:02 +0200 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <4C210609.30905@univ-mlv.fr> References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> Message-ID: <4C210A4E.6030105@googlemail.com> On 22.06.2010 20:50, R?mi Forax wrote: > Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >> On 22/06/2010 19:28, maurizio cimadamore wrote: >> >>> On 22/06/2010 18:55, Alessio Stalla wrote: >>> >>> >>>> On Tue, Jun 22, 2010 at 6:22 PM, wrote: >>>> >>>> >>>> >>>>> target method pippo >>>>> >>>>> >>>>> >>>> Heh - that reveals something about your origins ;) >>>> >>>> >>>> >>> Indeed it does [I knew you would have noticed :-) ] >>> >>> Maurizio >>> >>> >> For non-italian readers - following an (ehm) ancient tradiation, italian >> programmers use to name things after walt disney cartoon character. Put >> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and Bar >> :-) >> >> Maurizio >> > > In France, we use 'toto' and its variations 'titi' and 'tutu'. > > R?mi > And in Germany bla, blubb and blubber are common besides foo et al >>>> Sorry for the OT ;) >>>> >>>> Peace, >>>> Alessio >>>> >>>> >>>> >>> >>> >> >> > > From jkuhnert at gmail.com Tue Jun 22 19:51:27 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Tue, 22 Jun 2010 22:51:27 -0400 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <4C210A4E.6030105@googlemail.com> References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> Message-ID: Don't stop there, I want to hear ~all~ variations. =) (seriously) On Tuesday, June 22, 2010, Michael Gaber wrote: > On 22.06.2010 20:50, R?mi Forax wrote: >> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >>> On 22/06/2010 19:28, maurizio cimadamore wrote: >>> >>>> On 22/06/2010 18:55, Alessio Stalla wrote: >>>> >>>> >>>>> On Tue, Jun 22, 2010 at 6:22 PM, ? ?wrote: >>>>> >>>>> >>>>> >>>>>> target method pippo >>>>>> >>>>>> >>>>>> >>>>> Heh - that reveals something about your origins ;) >>>>> >>>>> >>>>> >>>> Indeed it does [I knew you would have noticed :-) ] >>>> >>>> Maurizio >>>> >>>> >>> For non-italian readers - following an (ehm) ancient tradiation, italian >>> programmers use to name things after walt disney cartoon character. Put >>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and Bar >>> :-) >>> >>> Maurizio >>> >> >> In France, we use 'toto' and its variations 'titi' and 'tutu'. >> >> R?mi >> > > And in Germany bla, blubb and blubber are common besides foo et al > >>>>> Sorry for the OT ;) >>>>> >>>>> Peace, >>>>> Alessio >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > > From reinier at zwitserloot.com Wed Jun 23 02:34:43 2010 From: reinier at zwitserloot.com (Reinier Zwitserloot) Date: Wed, 23 Jun 2010 11:34:43 +0200 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> Message-ID: IGB? http://www.catb.org/~esr/jargon/html/M/metasyntactic-variable.html --Reinier Zwitserloot On Wed, Jun 23, 2010 at 4:51 AM, Jesse Kuhnert wrote: > Don't stop there, I want to hear ~all~ variations. =) (seriously) > > On Tuesday, June 22, 2010, Michael Gaber wrote: > > On 22.06.2010 20:50, R?mi Forax wrote: > >> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : > >>> On 22/06/2010 19:28, maurizio cimadamore wrote: > >>> > >>>> On 22/06/2010 18:55, Alessio Stalla wrote: > >>>> > >>>> > >>>>> On Tue, Jun 22, 2010 at 6:22 PM, > wrote: > >>>>> > >>>>> > >>>>> > >>>>>> target method pippo > >>>>>> > >>>>>> > >>>>>> > >>>>> Heh - that reveals something about your origins ;) > >>>>> > >>>>> > >>>>> > >>>> Indeed it does [I knew you would have noticed :-) ] > >>>> > >>>> Maurizio > >>>> > >>>> > >>> For non-italian readers - following an (ehm) ancient tradiation, > italian > >>> programmers use to name things after walt disney cartoon character. Put > >>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and > Bar > >>> :-) > >>> > >>> Maurizio > >>> > >> > >> In France, we use 'toto' and its variations 'titi' and 'tutu'. > >> > >> R?mi > >> > > > > And in Germany bla, blubb and blubber are common besides foo et al > > > >>>>> Sorry for the OT ;) > >>>>> > >>>>> Peace, > >>>>> Alessio > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >>> > >>> > >> > >> > > > > > > > > From opinali at gmail.com Wed Jun 23 06:53:44 2010 From: opinali at gmail.com (Osvaldo Doederlein) Date: Wed, 23 Jun 2010 10:53:44 -0300 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> Message-ID: 2010/6/22 Jesse Kuhnert > Don't stop there, I want to hear ~all~ variations. =) (seriously) > If that's what you mean, FWIW, Goofy is "Pateta" in pt_BR. Pluto is the same. But I've never seen these used in source code, not even in the goofiest code :) likely to avoid the cost of paying royalties to Disney. Or we just don't have this habit of using cartoon names, at least not as a widespread, standard thing. When I find "funny" code it will have identifiers named after totally random sources of inspiration: profanity, soccer teams, music lyrics, punchlines from TV humor programs... whatever suits the author. There is no standard idiom like the American foo/bar that serves so well the need of 1-2 unimportant identifiers... this is a problem that could be seriously slowing Brazil's progress in IT. Some people adopt foo/bar but this is cultural imperialism... must email our standards institute ABNT, and perhaps our Academy of Letters, to create a native foo/bar equivalent... A+ Osvaldo > > On Tuesday, June 22, 2010, Michael Gaber wrote: > > On 22.06.2010 20:50, R?mi Forax wrote: > >> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : > >>> On 22/06/2010 19:28, maurizio cimadamore wrote: > >>> > >>>> On 22/06/2010 18:55, Alessio Stalla wrote: > >>>> > >>>> > >>>>> On Tue, Jun 22, 2010 at 6:22 PM, > wrote: > >>>>> > >>>>> > >>>>> > >>>>>> target method pippo > >>>>>> > >>>>>> > >>>>>> > >>>>> Heh - that reveals something about your origins ;) > >>>>> > >>>>> > >>>>> > >>>> Indeed it does [I knew you would have noticed :-) ] > >>>> > >>>> Maurizio > >>>> > >>>> > >>> For non-italian readers - following an (ehm) ancient tradiation, > italian > >>> programmers use to name things after walt disney cartoon character. Put > >>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and > Bar > >>> :-) > >>> > >>> Maurizio > >>> > >> > >> In France, we use 'toto' and its variations 'titi' and 'tutu'. > >> > >> R?mi > >> > > > > And in Germany bla, blubb and blubber are common besides foo et al > > > >>>>> Sorry for the OT ;) > >>>>> > >>>>> Peace, > >>>>> Alessio > >>>>> > >>>>> > >>>>> > >>>> > >>>> > >>> > >>> > >> > >> > > > > > > > > From pbenedict at apache.org Wed Jun 23 07:04:28 2010 From: pbenedict at apache.org (Paul Benedict) Date: Wed, 23 Jun 2010 09:04:28 -0500 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> Message-ID: I believe we need a wiki page on OpenJDK to retain posterity of this important matter :-) On Wed, Jun 23, 2010 at 8:53 AM, Osvaldo Doederlein wrote: > 2010/6/22 Jesse Kuhnert > >> Don't stop there, I want to hear ~all~ variations. =) (seriously) >> > > If that's what you mean, FWIW, Goofy is "Pateta" in pt_BR. Pluto is the > same. But I've never seen these used in source code, not even in the > goofiest code :) likely to avoid the cost of paying royalties to Disney. ?Or > we just don't have this habit of using cartoon names, at least not as a > widespread, standard thing. When I find "funny" code it will have > identifiers named after totally random sources of inspiration: profanity, > soccer teams, music lyrics, punchlines from TV humor programs... whatever > suits the author. There is no standard idiom like the American foo/bar that > serves so well the need of 1-2 unimportant identifiers... this is a problem > that could be seriously slowing Brazil's progress in IT. Some people adopt > foo/bar but this is cultural imperialism... must email our standards > institute ABNT, and perhaps our Academy of Letters, to create a native > foo/bar equivalent... > > A+ > Osvaldo > > >> >> On Tuesday, June 22, 2010, Michael Gaber wrote: >> > On 22.06.2010 20:50, R?mi Forax wrote: >> >> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >> >>> On 22/06/2010 19:28, maurizio cimadamore wrote: >> >>> >> >>>> On 22/06/2010 18:55, Alessio Stalla wrote: >> >>>> >> >>>> >> >>>>> On Tue, Jun 22, 2010 at 6:22 PM, >> ?wrote: >> >>>>> >> >>>>> >> >>>>> >> >>>>>> target method pippo >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>> Heh - that reveals something about your origins ;) >> >>>>> >> >>>>> >> >>>>> >> >>>> Indeed it does [I knew you would have noticed :-) ] >> >>>> >> >>>> Maurizio >> >>>> >> >>>> >> >>> For non-italian readers - following an (ehm) ancient tradiation, >> italian >> >>> programmers use to name things after walt disney cartoon character. Put >> >>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and >> Bar >> >>> :-) >> >>> >> >>> Maurizio >> >>> >> >> >> >> In France, we use 'toto' and its variations 'titi' and 'tutu'. >> >> >> >> R?mi >> >> >> > >> > And in Germany bla, blubb and blubber are common besides foo et al >> > >> >>>>> Sorry for the OT ;) >> >>>>> >> >>>>> Peace, >> >>>>> Alessio >> >>>>> >> >>>>> >> >>>>> >> >>>> >> >>>> >> >>> >> >>> >> >> >> >> >> > >> > >> > >> >> > > From brian.goetz at oracle.com Wed Jun 23 08:53:53 2010 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 23 Jun 2010 08:53:53 -0700 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> Message-ID: <0D918021-A145-4183-87A7-1AE2F488E493@oracle.com> Sure, but this is a matter of importance that goes far beyond OpenJDK -- go for wikipedia! Start here: http://en.wikipedia.org/wiki/Foo On Jun 23, 2010, at 7:04 AM, Paul Benedict wrote: > I believe we need a wiki page on OpenJDK to retain posterity of this > important matter :-) > > On Wed, Jun 23, 2010 at 8:53 AM, Osvaldo Doederlein wrote: >> 2010/6/22 Jesse Kuhnert >> >>> Don't stop there, I want to hear ~all~ variations. =) (seriously) >>> >> >> If that's what you mean, FWIW, Goofy is "Pateta" in pt_BR. Pluto is the >> same. But I've never seen these used in source code, not even in the >> goofiest code :) likely to avoid the cost of paying royalties to Disney. Or >> we just don't have this habit of using cartoon names, at least not as a >> widespread, standard thing. When I find "funny" code it will have >> identifiers named after totally random sources of inspiration: profanity, >> soccer teams, music lyrics, punchlines from TV humor programs... whatever >> suits the author. There is no standard idiom like the American foo/bar that >> serves so well the need of 1-2 unimportant identifiers... this is a problem >> that could be seriously slowing Brazil's progress in IT. Some people adopt >> foo/bar but this is cultural imperialism... must email our standards >> institute ABNT, and perhaps our Academy of Letters, to create a native >> foo/bar equivalent... >> >> A+ >> Osvaldo >> >> >>> >>> On Tuesday, June 22, 2010, Michael Gaber wrote: >>>> On 22.06.2010 20:50, R?mi Forax wrote: >>>>> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >>>>>> On 22/06/2010 19:28, maurizio cimadamore wrote: >>>>>> >>>>>>> On 22/06/2010 18:55, Alessio Stalla wrote: >>>>>>> >>>>>>> >>>>>>>> On Tue, Jun 22, 2010 at 6:22 PM, >>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> target method pippo >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> Heh - that reveals something about your origins ;) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> Indeed it does [I knew you would have noticed :-) ] >>>>>>> >>>>>>> Maurizio >>>>>>> >>>>>>> >>>>>> For non-italian readers - following an (ehm) ancient tradiation, >>> italian >>>>>> programmers use to name things after walt disney cartoon character. Put >>>>>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and >>> Bar >>>>>> :-) >>>>>> >>>>>> Maurizio >>>>>> >>>>> >>>>> In France, we use 'toto' and its variations 'titi' and 'tutu'. >>>>> >>>>> R?mi >>>>> >>>> >>>> And in Germany bla, blubb and blubber are common besides foo et al >>>> >>>>>>>> Sorry for the OT ;) >>>>>>>> >>>>>>>> Peace, >>>>>>>> Alessio >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >> >> > From maurizio.cimadamore at oracle.com Wed Jun 23 10:37:19 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 23 Jun 2010 18:37:19 +0100 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <0D918021-A145-4183-87A7-1AE2F488E493@oracle.com> References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> <0D918021-A145-4183-87A7-1AE2F488E493@oracle.com> Message-ID: <4C22464F.8000709@oracle.com> From now on, I propose that serious lambda poster should only use the names 'Foonc', 'Lamb' and 'Sam' in their examples ;-) Maurizio On 23/06/10 16:53, Brian Goetz wrote: > Sure, but this is a matter of importance that goes far beyond OpenJDK -- go for wikipedia! > > Start here: > http://en.wikipedia.org/wiki/Foo > > > > On Jun 23, 2010, at 7:04 AM, Paul Benedict wrote: > > >> I believe we need a wiki page on OpenJDK to retain posterity of this >> important matter :-) >> >> On Wed, Jun 23, 2010 at 8:53 AM, Osvaldo Doederlein wrote: >> >>> 2010/6/22 Jesse Kuhnert >>> >>> >>>> Don't stop there, I want to hear ~all~ variations. =) (seriously) >>>> >>>> >>> If that's what you mean, FWIW, Goofy is "Pateta" in pt_BR. Pluto is the >>> same. But I've never seen these used in source code, not even in the >>> goofiest code :) likely to avoid the cost of paying royalties to Disney. Or >>> we just don't have this habit of using cartoon names, at least not as a >>> widespread, standard thing. When I find "funny" code it will have >>> identifiers named after totally random sources of inspiration: profanity, >>> soccer teams, music lyrics, punchlines from TV humor programs... whatever >>> suits the author. There is no standard idiom like the American foo/bar that >>> serves so well the need of 1-2 unimportant identifiers... this is a problem >>> that could be seriously slowing Brazil's progress in IT. Some people adopt >>> foo/bar but this is cultural imperialism... must email our standards >>> institute ABNT, and perhaps our Academy of Letters, to create a native >>> foo/bar equivalent... >>> >>> A+ >>> Osvaldo >>> >>> >>> >>>> On Tuesday, June 22, 2010, Michael Gaber wrote: >>>> >>>>> On 22.06.2010 20:50, R?mi Forax wrote: >>>>> >>>>>> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >>>>>> >>>>>>> On 22/06/2010 19:28, maurizio cimadamore wrote: >>>>>>> >>>>>>> >>>>>>>> On 22/06/2010 18:55, Alessio Stalla wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> On Tue, Jun 22, 2010 at 6:22 PM, >>>>>>>>> >>>> wrote: >>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> target method pippo >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Heh - that reveals something about your origins ;) >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> Indeed it does [I knew you would have noticed :-) ] >>>>>>>> >>>>>>>> Maurizio >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> For non-italian readers - following an (ehm) ancient tradiation, >>>>>>> >>>> italian >>>> >>>>>>> programmers use to name things after walt disney cartoon character. Put >>>>>>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and >>>>>>> >>>> Bar >>>> >>>>>>> :-) >>>>>>> >>>>>>> Maurizio >>>>>>> >>>>>>> >>>>>> In France, we use 'toto' and its variations 'titi' and 'tutu'. >>>>>> >>>>>> R?mi >>>>>> >>>>>> >>>>> And in Germany bla, blubb and blubber are common besides foo et al >>>>> >>>>> >>>>>>>>> Sorry for the OT ;) >>>>>>>>> >>>>>>>>> Peace, >>>>>>>>> Alessio >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> > > From pbenedict at apache.org Wed Jun 23 11:06:05 2010 From: pbenedict at apache.org (Paul Benedict) Date: Wed, 23 Jun 2010 13:06:05 -0500 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: <4C22464F.8000709@oracle.com> References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> <0D918021-A145-4183-87A7-1AE2F488E493@oracle.com> <4C22464F.8000709@oracle.com> Message-ID: Add that one to the Oracle/Sun Contributor Agreement. On Wed, Jun 23, 2010 at 12:37 PM, Maurizio Cimadamore wrote: > From now on, I propose that serious lambda poster should only use the names > 'Foonc', 'Lamb' and 'Sam' in their examples ;-) > > Maurizio > > > On 23/06/10 16:53, Brian Goetz wrote: >> >> Sure, but this is a matter of importance that goes far beyond OpenJDK -- >> go for wikipedia! >> >> Start here: >> ? http://en.wikipedia.org/wiki/Foo >> >> >> >> On Jun 23, 2010, at 7:04 AM, Paul Benedict wrote: >> >> >>> >>> I believe we need a wiki page on OpenJDK to retain posterity of this >>> important matter :-) >>> >>> On Wed, Jun 23, 2010 at 8:53 AM, Osvaldo Doederlein >>> ?wrote: >>> >>>> >>>> 2010/6/22 Jesse Kuhnert >>>> >>>> >>>>> >>>>> Don't stop there, I want to hear ~all~ variations. =) (seriously) >>>>> >>>>> >>>> >>>> If that's what you mean, FWIW, Goofy is "Pateta" in pt_BR. Pluto is the >>>> same. But I've never seen these used in source code, not even in the >>>> goofiest code :) likely to avoid the cost of paying royalties to Disney. >>>> ?Or >>>> we just don't have this habit of using cartoon names, at least not as a >>>> widespread, standard thing. When I find "funny" code it will have >>>> identifiers named after totally random sources of inspiration: >>>> profanity, >>>> soccer teams, music lyrics, punchlines from TV humor programs... >>>> whatever >>>> suits the author. There is no standard idiom like the American foo/bar >>>> that >>>> serves so well the need of 1-2 unimportant identifiers... this is a >>>> problem >>>> that could be seriously slowing Brazil's progress in IT. Some people >>>> adopt >>>> foo/bar but this is cultural imperialism... must email our standards >>>> institute ABNT, and perhaps our Academy of Letters, to create a native >>>> foo/bar equivalent... >>>> >>>> A+ >>>> Osvaldo >>>> >>>> >>>> >>>>> >>>>> On Tuesday, June 22, 2010, Michael Gaber >>>>> ?wrote: >>>>> >>>>>> >>>>>> On 22.06.2010 20:50, R?mi Forax wrote: >>>>>> >>>>>>> >>>>>>> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >>>>>>> >>>>>>>> >>>>>>>> On 22/06/2010 19:28, maurizio cimadamore wrote: >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> On 22/06/2010 18:55, Alessio Stalla wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Jun 22, 2010 at 6:22 PM, >>>>>>>>>> >>>>> >>>>> ?wrote: >>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> target method pippo >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Heh - that reveals something about your origins ;) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> Indeed it does [I knew you would have noticed :-) ] >>>>>>>>> >>>>>>>>> Maurizio >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> For non-italian readers - following an (ehm) ancient tradiation, >>>>>>>> >>>>> >>>>> italian >>>>> >>>>>>>> >>>>>>>> programmers use to name things after walt disney cartoon character. >>>>>>>> Put >>>>>>>> in other words, Goofy ('pippo' in Italian) and Pluto are our Foo and >>>>>>>> >>>>> >>>>> Bar >>>>> >>>>>>>> >>>>>>>> :-) >>>>>>>> >>>>>>>> Maurizio >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> In France, we use 'toto' and its variations 'titi' and 'tutu'. >>>>>>> >>>>>>> R?mi >>>>>>> >>>>>>> >>>>>> >>>>>> And in Germany bla, blubb and blubber are common besides foo et al >>>>>> >>>>>> >>>>>>>>>> >>>>>>>>>> Sorry for the OT ;) >>>>>>>>>> >>>>>>>>>> Peace, >>>>>>>>>> Alessio >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > From jkuhnert at gmail.com Wed Jun 23 21:35:22 2010 From: jkuhnert at gmail.com (Jesse Kuhnert) Date: Thu, 24 Jun 2010 00:35:22 -0400 Subject: [OT] pippo (was Re: hg: lambda/lambda/langtools: Improved support for diagnostic during lambda conversion.) In-Reply-To: References: <4C2100B5.7020105@oracle.com> <4C210315.7020807@oracle.com> <4C210609.30905@univ-mlv.fr> <4C210A4E.6030105@googlemail.com> <0D918021-A145-4183-87A7-1AE2F488E493@oracle.com> <4C22464F.8000709@oracle.com> Message-ID: I just wanted to say that reading these list messages with retina display feels like a whole new window of insight has opened up. I'll let you know if I come across anything after I put away a couple more ciders. On Wednesday, June 23, 2010, Paul Benedict wrote: > Add that one to the Oracle/Sun Contributor Agreement. > > On Wed, Jun 23, 2010 at 12:37 PM, Maurizio Cimadamore > wrote: >> From now on, I propose that serious lambda poster should only use the names >> 'Foonc', 'Lamb' and 'Sam' in their examples ;-) >> >> Maurizio >> >> >> On 23/06/10 16:53, Brian Goetz wrote: >>> >>> Sure, but this is a matter of importance that goes far beyond OpenJDK -- >>> go for wikipedia! >>> >>> Start here: >>> ? http://en.wikipedia.org/wiki/Foo >>> >>> >>> >>> On Jun 23, 2010, at 7:04 AM, Paul Benedict wrote: >>> >>> >>>> >>>> I believe we need a wiki page on OpenJDK to retain posterity of this >>>> important matter :-) >>>> >>>> On Wed, Jun 23, 2010 at 8:53 AM, Osvaldo Doederlein >>>> ?wrote: >>>> >>>>> >>>>> 2010/6/22 Jesse Kuhnert >>>>> >>>>> >>>>>> >>>>>> Don't stop there, I want to hear ~all~ variations. =) (seriously) >>>>>> >>>>>> >>>>> >>>>> If that's what you mean, FWIW, Goofy is "Pateta" in pt_BR. Pluto is the >>>>> same. But I've never seen these used in source code, not even in the >>>>> goofiest code :) likely to avoid the cost of paying royalties to Disney. >>>>> ?Or >>>>> we just don't have this habit of using cartoon names, at least not as a >>>>> widespread, standard thing. When I find "funny" code it will have >>>>> identifiers named after totally random sources of inspiration: >>>>> profanity, >>>>> soccer teams, music lyrics, punchlines from TV humor programs... >>>>> whatever >>>>> suits the author. There is no standard idiom like the American foo/bar >>>>> that >>>>> serves so well the need of 1-2 unimportant identifiers... this is a >>>>> problem >>>>> that could be seriously slowing Brazil's progress in IT. Some people >>>>> adopt >>>>> foo/bar but this is cultural imperialism... must email our standards >>>>> institute ABNT, and perhaps our Academy of Letters, to create a native >>>>> foo/bar equivalent... >>>>> >>>>> A+ >>>>> Osvaldo >>>>> >>>>> >>>>> >>>>>> >>>>>> On Tuesday, June 22, 2010, Michael Gaber >>>>>> ?wrote: >>>>>> >>>>>>> >>>>>>> On 22.06.2010 20:50, R?mi Forax wrote: >>>>>>> >>>>>>>> >>>>>>>> Le 22/06/2010 20:38, maurizio cimadamore a ?crit : >>>>>>>> >>>>>>>>> >>>>>>>>> On 22/06/2010 19:28, maurizio cimadamore wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 22/06/2010 18:55, Alessio Stalla wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tue, Jun 22, 2010 at 6:22 PM, >>>>>>>>>>> >>>>>> >>>>>> ?wrote: >>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> target method pippo >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> He From maurizio.cimadamore at oracle.com Fri Jun 25 05:01:12 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 25 Jun 2010 12:01:12 +0000 Subject: hg: lambda/lambda/langtools: Added accessibility check to lambda conversion. Message-ID: <20100625120117.C682147522@hg.openjdk.java.net> Changeset: dda155f6d75d Author: mcimadamore Date: 2010-06-25 13:00 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/dda155f6d75d Added accessibility check to lambda conversion. This requires a non-trivial change in compiler internals: each type-conversion becomes now a ternary relation between two types (source, target) and a 'site' type (the type in which the conversion is performed). ! src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/model/JavacTypes.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/javax/lang/model/util/Types.java + test/tools/javac/lambda/LambdaConversionTest.java From nathan.bryant at linkshare.com Fri Jun 25 16:10:22 2010 From: nathan.bryant at linkshare.com (Nathan Bryant) Date: Sat, 26 Jun 2010 08:10:22 +0900 Subject: [OT] ParallelArray was RE: stack-bound vs. travelling closures proposal. References: <4C1A0EA0.2090506@cs.oswego.edu> Message-ID: <7FDA6630E1822F448C97A48D5D733094DF9CD3@EXVMSTOR302.intra.rakuten.co.jp> Doug Lea wrote: > 2. Code doing IO is not very amenable to "lightweight" > closure processing, either in sequentially or in parallel. > (You need heavier OS support to cope with blocked IO etc.) > We effectively ban IO in ForkJoin framework by ... > not allowing actions to throw checked exceptions! It's also worth mentioning in passing, those folks doing blocking I/O, or coarse grained parallelism of tasks of nonuniform size, in ParallelArray are probably going to eventually notice the behavior of the below--although it may or may not cause severe real world problems, the call to r.atLeaf() can occasionally result in some surprising serialization of the very last few items in a workload. Not a big deal, I guess, since the biggest split is always going to be stolen first, and then further split by the thief (right?) final void internalCompute(int l, int h, int g) { FJBase r = null; do { int rh = h; h = (l + h) >>> 1; (r = newSubtask(h, rh, r)).fork(); } while (h - l > g); atLeaf(l, h); do { if (r.tryUnfork()) r.atLeaf(r.lo, r.hi); else r.join(); ^^^^^^^^^^^^^^^^^^^^^ onReduce(r); r = r.next; } while (r != null); } From dl at cs.oswego.edu Fri Jun 25 22:08:44 2010 From: dl at cs.oswego.edu (Doug Lea) Date: Sat, 26 Jun 2010 01:08:44 -0400 (EDT) Subject: [OT] ParallelArray was RE: stack-bound vs. travelling closures proposal. In-Reply-To: <7FDA6630E1822F448C97A48D5D733094DF9CD3@EXVMSTOR302.intra.rakuten.co.j p> References: <4C1A0EA0.2090506@cs.oswego.edu> <7FDA6630E1822F448C97A48D5D733094DF9CD3@EXVMSTOR302.intra.rakuten.co.jp> Message-ID: <18028.193.77.154.144.1277528924.squirrel@altair.cs.oswego.edu> > It's also worth mentioning in passing, those folks doing blocking I/O, > or coarse grained parallelism of tasks of nonuniform size, in > ParallelArray are probably going to eventually notice the behavior of > the below--although it may or may not cause severe real world problems, > the call to r.atLeaf() can occasionally result in some surprising > serialization of the very last few items in a workload. Not a big deal, > I guess, since the biggest split is always going to be stolen first, and > then further split by the thief (right?) Yes, although stay tuned for some small improvements that tend to reduce flurries of not-very-helpful steals as computations wind down. -Doug > > final void internalCompute(int l, int h, int g) { > FJBase r = null; > do { > int rh = h; > h = (l + h) >>> 1; > (r = newSubtask(h, rh, r)).fork(); > } while (h - l > g); > atLeaf(l, h); > do { > if (r.tryUnfork()) r.atLeaf(r.lo, r.hi); else r.join(); > ^^^^^^^^^^^^^^^^^^^^^ > onReduce(r); > r = r.next; > } while (r != null); > } > From forax at univ-mlv.fr Sat Jun 26 14:49:49 2010 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Sat, 26 Jun 2010 23:49:49 +0200 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C19FC17.4020004@oracle.com> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> Message-ID: <4C2675FD.7050708@univ-mlv.fr> Latest build, b99, fix the problem. R?mi Le 17/06/2010 12:42, Maurizio Cimadamore a ?crit : > Hi > as you might now, there are problems in compiling and running code > containing lambda. Those problems are not due to the lambda prototype > itself; rather, they are caused by some missing bits in the jdk > repository that we are going to push soon (those are required for > hotspot to work correctly). As a result, any hotspot build>= b94 will > fail with the following message: > > Invalid layout of java.dyn.CallSite at target > # > # A fatal error has been detected by the Java Runtime Environment: > # > # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 > # fatal error: Invalid layout of preloaded class > # > # JRE version: 7.0 > # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) > # An error report file with more information is saved as: > # /home/aph/hs_err_pid10544.log > # > # If you would like to submit a bug report, please visit: > #http://java.sun.com/webapps/bugreport/crash.jsp > # > > > In order to get rid of this problem, an earlier hotspot (b93) needs to > be used. A simple way to workaround this issue is to follow the > procedure below: > > *) 'cd' to the 'hotspot' folder of the lambda repository > *) type 'hg update jdk7-b93' > *) now 'cd' to the root of the lambda repository > *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' > is set to 'true') > > When the build completes you will have a full working lambda repository. > > I hope this helps. > Maurizio > > > Aborted > > > > From maurizio.cimadamore at oracle.com Sun Jun 27 03:32:21 2010 From: maurizio.cimadamore at oracle.com (maurizio cimadamore) Date: Sun, 27 Jun 2010 11:32:21 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C2675FD.7050708@univ-mlv.fr> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <4C2675FD.7050708@univ-mlv.fr> Message-ID: <4C2728B5.5000900@oracle.com> On 26/06/2010 22:49, R?mi Forax wrote: > Latest build, b99, fix the problem. > Thanks Remi, I will do a merge early next week. Maurizio > R?mi > > Le 17/06/2010 12:42, Maurizio Cimadamore a ?crit : > >> Hi >> as you might now, there are problems in compiling and running code >> containing lambda. Those problems are not due to the lambda prototype >> itself; rather, they are caused by some missing bits in the jdk >> repository that we are going to push soon (those are required for >> hotspot to work correctly). As a result, any hotspot build>= b94 will >> fail with the following message: >> >> Invalid layout of java.dyn.CallSite at target >> # >> # A fatal error has been detected by the Java Runtime Environment: >> # >> # Internal Error (javaClasses.cpp:48), pid=10544, tid=140152714426128 >> # fatal error: Invalid layout of preloaded class >> # >> # JRE version: 7.0 >> # Java VM: OpenJDK 64-Bit Server VM (19.0-b01 mixed mode linux-amd64 ) >> # An error report file with more information is saved as: >> # /home/aph/hs_err_pid10544.log >> # >> # If you would like to submit a bug report, please visit: >> #http://java.sun.com/webapps/bugreport/crash.jsp >> # >> >> >> In order to get rid of this problem, an earlier hotspot (b93) needs to >> be used. A simple way to workaround this issue is to follow the >> procedure below: >> >> *) 'cd' to the 'hotspot' folder of the lambda repository >> *) type 'hg update jdk7-b93' >> *) now 'cd' to the root of the lambda repository >> *) start a full build (ensure that the build parameter 'BUILD_HOTSPOT' >> is set to 'true') >> >> When the build completes you will have a full working lambda repository. >> >> I hope this helps. >> Maurizio >> >> >> Aborted >> >> >> >> >> > > From aph at redhat.com Mon Jun 28 01:47:48 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 28 Jun 2010 09:47:48 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C2728B5.5000900@oracle.com> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <4C2675FD.7050708@univ-mlv.fr> <4C2728B5.5000900@oracle.com> Message-ID: <4C2861B4.2010304@redhat.com> On 06/27/2010 11:32 AM, maurizio cimadamore wrote: > On 26/06/2010 22:49, R?mi Forax wrote: >> Latest build, b99, fix the problem. >> > Thanks Remi, I will do a merge early next week. Thanks, all; you are appreciated. Andrew. From maurizio.cimadamore at oracle.com Mon Jun 28 05:23:06 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:23:06 +0000 Subject: hg: lambda/lambda: 5 new changesets Message-ID: <20100628122307.09D8D475C7@hg.openjdk.java.net> Changeset: 39d81b90b100 Author: prr Date: 2010-06-16 09:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/39d81b90b100 6961079: Build JDK7 for 64 bit Windows using free Windows 7.1 SDK 64 bit compilers Reviewed-by: ohair, jcoomes ! README-builds.html Changeset: 6cea9984d73d Author: mikejwre Date: 2010-06-16 15:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/6cea9984d73d Merge Changeset: e7f18db469a3 Author: mikejwre Date: 2010-06-17 16:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/e7f18db469a3 Added tag jdk7-b98 for changeset 6cea9984d73d ! .hgtags Changeset: dc900d5a8e2f Author: mikejwre Date: 2010-06-24 20:02 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/dc900d5a8e2f Added tag jdk7-b99 for changeset e7f18db469a3 ! .hgtags Changeset: f04f4b018e78 Author: mcimadamore Date: 2010-06-28 09:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/rev/f04f4b018e78 merge with b99 From maurizio.cimadamore at oracle.com Mon Jun 28 05:23:13 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:23:13 +0000 Subject: hg: lambda/lambda/corba: 3 new changesets Message-ID: <20100628122316.826CD475C8@hg.openjdk.java.net> Changeset: 95db968660e7 Author: mikejwre Date: 2010-06-17 16:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/95db968660e7 Added tag jdk7-b98 for changeset 3b99409057e4 ! .hgtags Changeset: ad2aa1f66abf Author: mikejwre Date: 2010-06-24 20:02 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/ad2aa1f66abf Added tag jdk7-b99 for changeset 95db968660e7 ! .hgtags Changeset: 9b37a680fcae Author: mcimadamore Date: 2010-06-28 09:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/9b37a680fcae merge with b99 From maurizio.cimadamore at oracle.com Mon Jun 28 05:23:36 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:23:36 +0000 Subject: hg: lambda/lambda/hotspot: 42 new changesets Message-ID: <20100628122504.25635475C9@hg.openjdk.java.net> Changeset: 70191885f707 Author: prr Date: 2010-06-16 09:42 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/70191885f707 6961079: Build JDK7 for 64 bit Windows using free Windows 7.1 SDK 64 bit compilers Reviewed-by: ohair, jcoomes ! make/windows/makefiles/defs.make Changeset: 8a045b3f5c13 Author: mikejwre Date: 2010-06-16 15:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8a045b3f5c13 Merge Changeset: 695c43156a9a Author: mikejwre Date: 2010-06-17 16:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/695c43156a9a Added tag jdk7-b98 for changeset 8a045b3f5c13 ! .hgtags Changeset: e40a3601bc1f Author: kamg Date: 2010-05-19 10:19 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e40a3601bc1f 6911922: JVM must throw VerifyError for jsr or jsr_w opcodes in class file v.51+ 6693236: A class file whose version number is greater than to 50.0 must be verified using the typechecker Summary: Disable failover verification for classfiles >= v51 Reviewed-by: never, acorn, dholmes ! src/share/vm/classfile/verifier.cpp Changeset: 3548f3198dca Author: dcubed Date: 2010-05-26 14:16 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3548f3198dca Merge Changeset: dfe27f03244a Author: trims Date: 2010-06-01 11:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/dfe27f03244a Merge ! src/share/vm/classfile/verifier.cpp Changeset: 1a5913bf5e19 Author: twisti Date: 2010-05-20 06:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1a5913bf5e19 6951083: oops and relocations should part of nmethod not CodeBlob Summary: This moves the oops from Codeblob to nmethod. Reviewed-by: kvn, never ! agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PointerFinder.java ! src/cpu/sparc/vm/nativeInst_sparc.cpp ! src/os/solaris/dtrace/generateJvmOffsets.cpp ! src/os/solaris/dtrace/libjvm_db.c ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeBlob.hpp ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/compiledIC.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/code/oopRecorder.cpp ! src/share/vm/code/oopRecorder.hpp ! src/share/vm/code/relocInfo.cpp ! src/share/vm/code/relocInfo.hpp ! src/share/vm/memory/iterator.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 61b2245abf36 Author: twisti Date: 2010-05-21 02:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/61b2245abf36 6930772: JSR 292 needs to support SPARC C1 Summary: C1 for SPARC needs to support JSR 292. Reviewed-by: never, jrose ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_FrameMap_sparc.cpp ! src/cpu/sparc/vm/c1_FrameMap_sparc.hpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/frame_sparc.cpp ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/sparc/vm/register_definitions_sparc.cpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/stubRoutines_sparc.hpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/c1_FrameMap_x86.cpp ! src/cpu/x86/vm/c1_FrameMap_x86.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/register_definitions_x86.cpp ! src/share/vm/c1/c1_FrameMap.hpp ! src/share/vm/c1/c1_IR.cpp ! src/share/vm/c1/c1_IR.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: ab102d5d923e Author: jrose Date: 2010-05-23 01:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ab102d5d923e 6939207: refactor constant pool index processing Summary: Factored cleanup of instruction decode which prepares for enhanced ldc semantics. Reviewed-by: twisti ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.hpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_32.hpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/interp_masm_x86_64.hpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/ci/ciStreams.cpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/ci/ciTypeFlow.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/includeDB_core ! src/share/vm/interpreter/bytecode.cpp ! src/share/vm/interpreter/bytecode.hpp ! src/share/vm/interpreter/bytecodeStream.cpp ! src/share/vm/interpreter/bytecodeStream.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/bytecodes.cpp ! src/share/vm/interpreter/bytecodes.hpp ! src/share/vm/interpreter/interpreter.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/interpreter/rewriter.hpp ! src/share/vm/interpreter/templateTable.cpp ! src/share/vm/interpreter/templateTable.hpp ! src/share/vm/oops/constantPoolOop.cpp ! src/share/vm/oops/constantPoolOop.hpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/methodComparator.cpp ! src/share/vm/prims/methodHandleWalk.cpp Changeset: 9f669cf29cb0 Author: jrose Date: 2010-05-24 14:15 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9f669cf29cb0 Merge ! src/cpu/sparc/vm/assembler_sparc.hpp Changeset: 110501f54a99 Author: twisti Date: 2010-05-25 02:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/110501f54a99 6934104: JSR 292 needs to support SPARC C2 Summary: C2 for SPARC needs to support JSR 292. Reviewed-by: kvn, never ! src/cpu/sparc/vm/runtime_sparc.cpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/runtime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad Changeset: 1747f04ad0c4 Author: never Date: 2010-05-24 13:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1747f04ad0c4 6490487: java support on 64 bit solaris x86 machines is broken. Reviewed-by: kvn, kamg ! make/solaris/makefiles/defs.make Changeset: f9a202dd8899 Author: never Date: 2010-05-25 13:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f9a202dd8899 Merge Changeset: de91a2f25c7e Author: jrose Date: 2010-05-27 09:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/de91a2f25c7e 6956164: nightly regressions from 6939207 Summary: Fix errors in 6939207. Reviewed-by: kvn ! src/share/vm/classfile/verifier.cpp ! src/share/vm/classfile/verifier.hpp ! src/share/vm/interpreter/bytecodeStream.hpp ! src/share/vm/interpreter/bytecodes.cpp ! src/share/vm/interpreter/bytecodes.hpp Changeset: 2d127394260e Author: kvn Date: 2010-05-27 18:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2d127394260e 6916623: Align object to 16 bytes to use Compressed Oops with java heap up to 64Gb Summary: Added new product ObjectAlignmentInBytes flag to control object alignment. Reviewed-by: twisti, ysr, iveresov ! agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/cpu/sparc/vm/copy_sparc.hpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/memory/space.cpp ! src/share/vm/memory/threadLocalAllocBuffer.inline.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/arrayOop.hpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/copy.hpp ! src/share/vm/utilities/globalDefinitions.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: 87fc6aca31ab Author: iveresov Date: 2010-05-27 22:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/87fc6aca31ab 6955349: C1: Make G1 barriers work with x64 Summary: This fixes G1 barriers in c1 on x64. Reviewed-by: never ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp Changeset: beb77f0d41b3 Author: jrose Date: 2010-05-28 16:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/beb77f0d41b3 6957004: MethodComparator uses the wrong CP index accessor Summary: Change two uses of get_index_u2 to get_index_u2_cpcache; also tweak some debugging print functions Reviewed-by: kvn ! src/share/vm/oops/constantPoolKlass.cpp ! src/share/vm/oops/methodKlass.cpp ! src/share/vm/prims/methodComparator.cpp Changeset: 1eb493f33423 Author: jrose Date: 2010-05-29 19:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1eb493f33423 6957080: MethodComparator needs stress testing Summary: Add a stress-test flag for running MethodComparator over many inputs. Fix bugs that crop up. Reviewed-by: kvn ! src/share/vm/includeDB_core ! src/share/vm/interpreter/bytecode.cpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/prims/methodComparator.cpp ! src/share/vm/runtime/globals.hpp Changeset: 3657cb01ffc5 Author: kvn Date: 2010-06-02 09:49 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3657cb01ffc5 6954029: Improve implicit null check generation with compressed oops Summary: Hoist DecodeN instruction above null check Reviewed-by: never, twisti ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/matcher.hpp Changeset: 4a2e260bb13a Author: kvn Date: 2010-06-02 12:02 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4a2e260bb13a 6957882: nsk/sajdi tests failed with NullPointerException Summary: VM.getObjectAlignmentInBytes() accesses intxType before it is created. Reviewed-by: never ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Changeset: 852d0157c696 Author: never Date: 2010-06-02 14:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/852d0157c696 6956931: assert(SafepointSynchronize::is_at_safepoint()) failed: must be executed at a safepoint Reviewed-by: kvn, dcubed ! src/share/vm/code/nmethod.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp Changeset: ca3dceda776c Author: never Date: 2010-06-02 20:15 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ca3dceda776c 6930994: Code cache is full warning should be visible in product Reviewed-by: kvn, twisti, ysr ! src/share/vm/compiler/compileBroker.cpp Changeset: e9ff18c4ace7 Author: jrose Date: 2010-06-02 22:45 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e9ff18c4ace7 Merge ! agent/src/share/classes/sun/jvm/hotspot/code/CodeBlob.java ! agent/src/share/classes/sun/jvm/hotspot/code/NMethod.java ! agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java ! agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PointerFinder.java ! make/solaris/makefiles/defs.make ! src/cpu/sparc/vm/assembler_sparc.hpp ! src/cpu/sparc/vm/c1_FrameMap_sparc.cpp ! src/cpu/sparc/vm/c1_FrameMap_sparc.hpp ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/copy_sparc.hpp ! src/cpu/sparc/vm/frame_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.cpp ! src/cpu/sparc/vm/interp_masm_sparc.hpp ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/sparc/vm/nativeInst_sparc.cpp ! src/cpu/sparc/vm/register_definitions_sparc.cpp ! src/cpu/sparc/vm/runtime_sparc.cpp ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp ! src/cpu/sparc/vm/sparc.ad ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/sparc/vm/stubRoutines_sparc.hpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/sparc/vm/vm_version_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/assembler_x86.hpp ! src/cpu/x86/vm/c1_FrameMap_x86.cpp ! src/cpu/x86/vm/c1_FrameMap_x86.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/c1_LIRGenerator_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_32.hpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/interp_masm_x86_64.hpp ! src/cpu/x86/vm/register_definitions_x86.cpp ! src/cpu/x86/vm/runtime_x86_32.cpp ! src/cpu/x86/vm/sharedRuntime_x86_64.cpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/os/solaris/dtrace/generateJvmOffsets.cpp ! src/os/solaris/dtrace/libjvm_db.c ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/c1/c1_FrameMap.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_IR.cpp ! src/share/vm/c1/c1_IR.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.cpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciStreams.cpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/ci/ciTypeFlow.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/classfile/verifier.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeBlob.hpp ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/compiledIC.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/code/oopRecorder.cpp ! src/share/vm/code/oopRecorder.hpp ! src/share/vm/code/relocInfo.cpp ! src/share/vm/code/relocInfo.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/includeDB_core ! src/share/vm/interpreter/bytecode.cpp ! src/share/vm/interpreter/bytecode.hpp ! src/share/vm/interpreter/bytecodeStream.cpp ! src/share/vm/interpreter/bytecodeStream.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/bytecodes.cpp ! src/share/vm/interpreter/bytecodes.hpp ! src/share/vm/interpreter/interpreter.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/rewriter.cpp ! src/share/vm/interpreter/rewriter.hpp ! src/share/vm/interpreter/templateTable.cpp ! src/share/vm/interpreter/templateTable.hpp ! src/share/vm/memory/iterator.cpp ! src/share/vm/memory/space.cpp ! src/share/vm/memory/threadLocalAllocBuffer.inline.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/arrayOop.hpp ! src/share/vm/oops/constantPoolKlass.cpp ! src/share/vm/oops/constantPoolOop.cpp ! src/share/vm/oops/constantPoolOop.hpp ! src/share/vm/oops/generateOopMap.cpp ! src/share/vm/oops/methodKlass.cpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/connode.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/matcher.hpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/prims/jvmtiClassFileReconstituter.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/methodComparator.cpp ! src/share/vm/prims/methodHandleWalk.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/copy.hpp ! src/share/vm/utilities/globalDefinitions.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: f56e28f22410 Author: trims Date: 2010-06-03 18:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f56e28f22410 6958458: Bump the HS19 build number to 03 Summary: Update the HS19 build number to 03 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 606df121c181 Author: trims Date: 2010-06-04 11:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/606df121c181 Merge Changeset: c69846936352 Author: trims Date: 2010-06-17 23:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c69846936352 Merge Changeset: 02e771df338e Author: kvn Date: 2010-06-03 14:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/02e771df338e 6958254: -XX:+VerifyOops is broken on x86 Summary: save and restore r10 in verify_oop(). Reviewed-by: never ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp Changeset: b812ff5abc73 Author: iveresov Date: 2010-06-04 11:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b812ff5abc73 6958292: C1: Enable parallel compilation Summary: Enable parallel compilation in C1 Reviewed-by: never, kvn ! src/cpu/sparc/vm/c1_FrameMap_sparc.cpp ! src/cpu/x86/vm/c1_FrameMap_x86.cpp ! src/share/vm/c1/c1_Canonicalizer.cpp ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_Compilation.hpp ! src/share/vm/c1/c1_Compiler.cpp ! src/share/vm/c1/c1_Compiler.hpp ! src/share/vm/c1/c1_FrameMap.cpp ! src/share/vm/c1/c1_FrameMap.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_GraphBuilder.hpp ! src/share/vm/c1/c1_IR.cpp ! src/share/vm/c1/c1_IR.hpp ! src/share/vm/c1/c1_Instruction.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LinearScan.cpp ! src/share/vm/c1/c1_LinearScan.hpp ! src/share/vm/c1/c1_Optimizer.cpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_Runtime1.hpp ! src/share/vm/c1/c1_ValueStack.cpp ! src/share/vm/c1/c1_ValueStack.hpp ! src/share/vm/c1/c1_ValueType.cpp ! src/share/vm/c1/c1_ValueType.hpp ! src/share/vm/includeDB_compiler1 ! src/share/vm/runtime/mutexLocker.cpp ! src/share/vm/runtime/mutexLocker.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: 49fac4acd688 Author: never Date: 2010-06-07 14:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/49fac4acd688 6958485: fix for 6879921 was insufficient Reviewed-by: kvn ! src/share/vm/opto/superword.cpp + test/compiler/6958485/Test.java Changeset: 086d73ccd6c0 Author: kamg Date: 2010-05-27 17:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/086d73ccd6c0 6930553: classfile format checker allows invalid method descriptor in CONSTANT_NameAndType_info in some cases Summary: Check NameAndType_info signatures aggressively, even when unreferenced Reviewed-by: coleenp, acorn, never ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp Changeset: b96a3e44582f Author: acorn Date: 2010-06-03 13:21 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b96a3e44582f 6852873: Reduce safepoint cleanup time Summary: New optional flags to reduce inflated monitor cleanup times Reviewed-by: chrisphi, dice ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/synchronizer.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: be0d50d3de2a Author: acorn Date: 2010-06-03 13:34 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/be0d50d3de2a Merge Changeset: 3a9de63b2209 Author: coleenp Date: 2010-06-04 17:44 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3a9de63b2209 Merge ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/synchronizer.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: b17deadc902e Author: coleenp Date: 2010-06-09 13:53 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b17deadc902e Merge ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: f16f1d7893de Author: johnc Date: 2010-05-24 17:11 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f16f1d7893de 6941378: G1: change default value of G1UseFixedWindowMMUTracker to true Summary: Rather than changing the default value of the G1UseFixedWindowMMUTracker, the flag and associated guarantee have been removed. Reviewed-by: jcoomes, tonyp, ysr ! src/share/vm/gc_implementation/g1/g1MMUTracker.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp Changeset: 5b77884bd4b7 Author: jcoomes Date: 2010-05-27 13:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5b77884bd4b7 6956472: test/runtime/6888954/vmerrors.sh uses ksh-specific syntax Reviewed-by: jmelvin, kvn ! test/runtime/6888954/vmerrors.sh Changeset: 2458a1f25356 Author: johnc Date: 2010-06-07 17:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2458a1f25356 6953058: G1: A bigapp crashes with SIGSEGV in compiled code Summary: In C2's G1 post write barrier, the loads of the buffer and index fields from the DirtyCardQueue structure may be moved across a safepoint. Use the current value of "control" in the C2 IR to limit how far these loads can move. Reviewed-by: never, iveresov, kvn ! src/share/vm/opto/graphKit.cpp Changeset: b9bc732be7c0 Author: jmasa Date: 2010-06-10 08:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b9bc732be7c0 Merge ! src/share/vm/gc_implementation/g1/g1MMUTracker.cpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/opto/graphKit.cpp Changeset: e848dd13e1b6 Author: trims Date: 2010-06-18 00:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e848dd13e1b6 Merge Changeset: 6a236384a379 Author: trims Date: 2010-06-18 00:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6a236384a379 Merge Changeset: b34c75c0b6b8 Author: mikejwre Date: 2010-06-24 20:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b34c75c0b6b8 Added tag jdk7-b99 for changeset 6a236384a379 ! .hgtags Changeset: b14274e13fcf Author: mcimadamore Date: 2010-06-28 09:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b14274e13fcf merge with b99 From maurizio.cimadamore at oracle.com Mon Jun 28 05:25:10 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:25:10 +0000 Subject: hg: lambda/lambda/jaxp: 3 new changesets Message-ID: <20100628122510.A8658475CA@hg.openjdk.java.net> Changeset: 7ef8469021fb Author: mikejwre Date: 2010-06-17 16:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/7ef8469021fb Added tag jdk7-b98 for changeset d4adf4f2d14c ! .hgtags Changeset: 69a11eec2789 Author: mikejwre Date: 2010-06-24 20:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/69a11eec2789 Added tag jdk7-b99 for changeset 7ef8469021fb ! .hgtags Changeset: f4168bcfb763 Author: mcimadamore Date: 2010-06-28 09:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/f4168bcfb763 merge with b99 From maurizio.cimadamore at oracle.com Mon Jun 28 05:25:16 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:25:16 +0000 Subject: hg: lambda/lambda/jaxws: 3 new changesets Message-ID: <20100628122516.C2867475CB@hg.openjdk.java.net> Changeset: 818366ce23d8 Author: mikejwre Date: 2010-06-17 16:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/818366ce23d8 Added tag jdk7-b98 for changeset 457109807109 ! .hgtags Changeset: 5bca7bc114a0 Author: mikejwre Date: 2010-06-24 20:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/5bca7bc114a0 Added tag jdk7-b99 for changeset 818366ce23d8 ! .hgtags Changeset: 339148a6eba2 Author: mcimadamore Date: 2010-06-28 09:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/339148a6eba2 merge with b99 From maurizio.cimadamore at oracle.com Mon Jun 28 05:25:53 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:25:53 +0000 Subject: hg: lambda/lambda/jdk: 12 new changesets Message-ID: <20100628122832.88BB1475CD@hg.openjdk.java.net> Changeset: 57293ed264c4 Author: prr Date: 2010-06-14 10:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/57293ed264c4 6961061: make/tools/freetypecheck doesn't build with VS2010 : breaks openjdk builds Reviewed-by: ohair ! make/tools/freetypecheck/freetypecheck.c Changeset: 6cc8d40d94e7 Author: prr Date: 2010-06-16 09:42 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6cc8d40d94e7 6961079: Build JDK7 for 64 bit Windows using free Windows 7.1 SDK 64 bit compilers Reviewed-by: ohair, jcoomes ! make/common/shared/Defs-windows.gmk Changeset: 82593186fa54 Author: mikejwre Date: 2010-06-16 15:49 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/82593186fa54 Merge Changeset: 9c0586509d75 Author: mikejwre Date: 2010-06-17 16:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9c0586509d75 Added tag jdk7-b98 for changeset 82593186fa54 ! .hgtags Changeset: 0cd764a1c809 Author: jrose Date: 2010-04-30 23:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0cd764a1c809 6939134: JSR 292 adjustments to method handle invocation Summary: split MethodHandle.invoke into invokeExact and invokeGeneric; also clean up JVM-to-Java interfaces Reviewed-by: twisti ! src/share/classes/java/dyn/CallSite.java ! src/share/classes/java/dyn/InvokeDynamic.java ! src/share/classes/java/dyn/InvokeDynamicBootstrapError.java ! src/share/classes/java/dyn/JavaMethodHandle.java ! src/share/classes/java/dyn/Linkage.java ! src/share/classes/java/dyn/LinkagePermission.java ! src/share/classes/java/dyn/MethodHandle.java ! src/share/classes/java/dyn/MethodHandles.java ! src/share/classes/java/dyn/MethodType.java ! src/share/classes/java/dyn/NoAccessException.java ! src/share/classes/java/dyn/package-info.java ! src/share/classes/sun/dyn/AdapterMethodHandle.java ! src/share/classes/sun/dyn/BoundMethodHandle.java ! src/share/classes/sun/dyn/CallSiteImpl.java ! src/share/classes/sun/dyn/FilterGeneric.java ! src/share/classes/sun/dyn/FilterOneArgument.java ! src/share/classes/sun/dyn/FromGeneric.java ! src/share/classes/sun/dyn/MemberName.java ! src/share/classes/sun/dyn/MethodHandleImpl.java ! src/share/classes/sun/dyn/MethodHandleNatives.java ! src/share/classes/sun/dyn/MethodTypeImpl.java ! src/share/classes/sun/dyn/SpreadGeneric.java ! src/share/classes/sun/dyn/ToGeneric.java ! src/share/classes/sun/dyn/package-info.java ! src/share/classes/sun/dyn/util/ValueConversions.java ! src/share/classes/sun/dyn/util/VerifyAccess.java ! test/java/dyn/MethodHandlesTest.java Changeset: 4a28a204b726 Author: jrose Date: 2010-05-03 23:32 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4a28a204b726 6939196: method handle signatures off the boot class path get linkage errors Summary: Remove workaround from MethodHandleImpl lookup code; add JUnit regression test to MethodHandlesTest. Reviewed-by: twisti ! src/share/classes/sun/dyn/MethodHandleImpl.java ! test/java/dyn/MethodHandlesTest.java Changeset: 3cf85945abef Author: jrose Date: 2010-05-13 20:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3cf85945abef Merge Changeset: d742045bd30b Author: jrose Date: 2010-06-18 15:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d742045bd30b Merge ! src/share/classes/java/dyn/CallSite.java ! src/share/classes/java/dyn/InvokeDynamic.java ! src/share/classes/java/dyn/InvokeDynamicBootstrapError.java ! src/share/classes/java/dyn/JavaMethodHandle.java ! src/share/classes/java/dyn/Linkage.java ! src/share/classes/java/dyn/LinkagePermission.java ! src/share/classes/java/dyn/MethodHandle.java ! src/share/classes/java/dyn/MethodHandles.java ! src/share/classes/java/dyn/MethodType.java ! src/share/classes/java/dyn/NoAccessException.java ! src/share/classes/java/dyn/package-info.java ! src/share/classes/sun/dyn/AdapterMethodHandle.java ! src/share/classes/sun/dyn/BoundMethodHandle.java ! src/share/classes/sun/dyn/CallSiteImpl.java ! src/share/classes/sun/dyn/FilterGeneric.java ! src/share/classes/sun/dyn/FilterOneArgument.java ! src/share/classes/sun/dyn/FromGeneric.java ! src/share/classes/sun/dyn/MemberName.java ! src/share/classes/sun/dyn/MethodHandleImpl.java ! src/share/classes/sun/dyn/MethodHandleNatives.java ! src/share/classes/sun/dyn/MethodTypeImpl.java ! src/share/classes/sun/dyn/SpreadGeneric.java ! src/share/classes/sun/dyn/ToGeneric.java ! src/share/classes/sun/dyn/package-info.java ! src/share/classes/sun/dyn/util/ValueConversions.java ! src/share/classes/sun/dyn/util/VerifyAccess.java ! test/java/dyn/MethodHandlesTest.java Changeset: 3d944ecfa470 Author: jrose Date: 2010-06-08 23:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3d944ecfa470 6939203: JSR 292 needs method handle constants Summary: Add new CP types CONSTANT_MethodHandle, CONSTANT_MethodType to verifier; put in runtime support upcall. Reviewed-by: twisti ! src/share/classes/java/dyn/MethodHandles.java ! src/share/classes/sun/dyn/MethodHandleNatives.java ! src/share/javavm/export/classfile_constants.h ! src/share/native/common/check_code.c ! test/java/dyn/MethodHandlesTest.java Changeset: 2587c9f0b60d Author: jrose Date: 2010-06-19 01:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2587c9f0b60d Merge ! src/share/classes/java/dyn/MethodHandles.java ! src/share/classes/sun/dyn/MethodHandleNatives.java ! src/share/javavm/export/classfile_constants.h ! src/share/native/common/check_code.c ! test/java/dyn/MethodHandlesTest.java Changeset: 3956cdee6712 Author: mikejwre Date: 2010-06-24 20:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3956cdee6712 Added tag jdk7-b99 for changeset 2587c9f0b60d ! .hgtags Changeset: bb194ca1e9fe Author: mcimadamore Date: 2010-06-28 09:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bb194ca1e9fe merge with b99 From maurizio.cimadamore at oracle.com Mon Jun 28 05:28:41 2010 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Mon, 28 Jun 2010 12:28:41 +0000 Subject: hg: lambda/lambda/langtools: 6 new changesets Message-ID: <20100628122856.1B9B0475CE@hg.openjdk.java.net> Changeset: ab1356297c67 Author: mikejwre Date: 2010-06-17 16:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/ab1356297c67 Added tag jdk7-b98 for changeset 3b38f3aa3dc3 ! .hgtags Changeset: f0e3ec1f9d9f Author: jrose Date: 2010-05-01 15:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/f0e3ec1f9d9f 6939134: JSR 292 adjustments to method handle invocation Summary: split MethodHandle.invoke into invokeExact and invokeGeneric Reviewed-by: twisti ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/util/Names.java ! test/tools/javac/meth/InvokeDyn.java ! test/tools/javac/meth/InvokeMH.java Changeset: 2a28dcbef3a7 Author: jrose Date: 2010-05-13 20:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2a28dcbef3a7 Merge Changeset: 005bec70ca27 Author: jrose Date: 2010-06-18 15:12 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/005bec70ca27 Merge ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/util/Names.java ! test/tools/javac/meth/InvokeDyn.java ! test/tools/javac/meth/InvokeMH.java Changeset: 9d02c4ce4275 Author: mikejwre Date: 2010-06-24 20:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9d02c4ce4275 Added tag jdk7-b99 for changeset 005bec70ca27 ! .hgtags Changeset: e8877bcc2fab Author: mcimadamore Date: 2010-06-28 13:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/e8877bcc2fab merge with jdk7-b99 ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/util/Names.java From maurizio.cimadamore at oracle.com Mon Jun 28 05:30:27 2010 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 28 Jun 2010 13:30:27 +0100 Subject: lambda-repo workaround [was Re: Can't get lambda forest to work] In-Reply-To: <4C2861B4.2010304@redhat.com> References: <4C1649EB.70405@redhat.com> <4C17B14C.3030403@oracle.com> <4C18BED0.5010809@oracle.com> <201006171047.58510.peter.levart@marand.si> <4C19F275.40307@oracle.com> <4C19FC17.4020004@oracle.com> <4C2675FD.7050708@univ-mlv.fr> <4C2728B5.5000900@oracle.com> <4C2861B4.2010304@redhat.com> Message-ID: <4C2895E3.2090702@oracle.com> On 28/06/10 09:47, Andrew Haley wrote: > On 06/27/2010 11:32 AM, maurizio cimadamore wrote: > >> On 26/06/2010 22:49, R?mi Forax wrote: >> >>> Latest build, b99, fix the problem. >>> >>> >> Thanks Remi, I will do a merge early next week. >> > Thanks, all; you are appreciated. > Should be ok now (I hope! ;-) ) Maurizio > Andrew. > > From collin.fagan at gmail.com Tue Jun 29 16:32:02 2010 From: collin.fagan at gmail.com (Collin Fagan) Date: Tue, 29 Jun 2010 18:32:02 -0500 Subject: Virtual Extension By Inversion of Responsibility (Second Draft) In-Reply-To: References: Message-ID: Neal - I'm sorry I haven't gotten back to you. I've been on vacation and haven't been online. I'll try and build some more complicated generics examples. I also have a keyword version of the proposal. Collin On Fri, Jun 18, 2010 at 8:24 PM, Reinier Zwitserloot < reinier at zwitserloot.com> wrote: > While I agree with your stance that its preferable for 'magic' to be as > obvious as possible, I'm not sure its warranted here; method resolution is > already quite 'magical' - in fact, resolution is generally mentioned as the > most complex thing javac's resolution phase has to do (and the resolution > phase is generally considered the most complicated of all the phases). > > For example, resolving "foo(a, b)" requires first resolving the types of a > and b against all methods available (including parent types) in the > compile-time type of foo's receiver, which may involve picking between > several overloaded methods. Then encoding that specific method in the class > file. Then, at runtime, this method signature undergoes virtual lookup, > where it may end up in an implementation that didn't even exist when the > original author of "foo(a, b)" wrote that code. This isn't much different > from the idea that foo(a, b) ends up resolving to an extension method, and > therefore using an alternative invoke symbol is perhaps overkill. > > I'm not exactly opposed to it on principle, but I'm a bit concerned that > we'd be "spending" the -> symbol on this. As you said, we might want to > keep > it available to e.g. add dynamic dispatch at some point. > > --Reinier Zwitserloot > > > > On Fri, Jun 18, 2010 at 6:59 PM, Lawrence Kesteloot > wrote: > > > Collin wrote: > > > For that matter replacing -> with a . would be even more elegant, if > > possible. > > > > The -> was my favorite part of your proposal. I want to require as > > little context as possible when reading code. If magic is happening, I > > want to know about it. > > > > Also, presumably if you're writing code inside a class Foo that has an > > extension method, with your proposal you'd have to write something > > like: > > > > this->forEach(...); > > > > It would be extra weird if you got rid of -> and I were allowed to just > > write: > > > > forEach(...); > > > > and have the system magically insert "this" as the first parameter. > > > > A better reason to avoid -> is that it might be better used for > > dynamic dispatch. > > > > Lawrence > > > > > >