Normalise whitespace in GNU Classpath.

2010-06-03  Andrew John Hughes  <ahughes@redhat.com>

	* examples/gnu/classpath/examples/CORBA/NamingService/Demo.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/Demo.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPass.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturn.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNode.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisException.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterImplBase.java,
	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/_DemoTesterStub.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/CanvasWorld.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/ChatConstants.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/ClientFrame.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/Demo.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/GameManager.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/GameManagerImpl.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/OrbStarter.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/Player.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/PlayerImpl.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/State.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/_GameManager_Stub.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java,
	* examples/gnu/classpath/examples/CORBA/swing/x5/_Player_Stub.java,
	* examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java,
	* examples/gnu/classpath/examples/awt/Demo.java,
	* examples/gnu/classpath/examples/awt/HintingDemo.java,
	* examples/gnu/classpath/examples/datatransfer/Demo.java,
	* examples/gnu/classpath/examples/html/Demo.java,
	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java,
	* examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java,
	* examples/gnu/classpath/examples/java2d/JNIOverhead.java,
	* examples/gnu/classpath/examples/jawt/DemoJAWT.java,
	* examples/gnu/classpath/examples/management/TestClassLoading.java,
	* examples/gnu/classpath/examples/management/TestCompilation.java,
	* examples/gnu/classpath/examples/management/TestGarbageCollector.java,
	* examples/gnu/classpath/examples/management/TestMemory.java,
	* examples/gnu/classpath/examples/management/TestMemoryManager.java,
	* examples/gnu/classpath/examples/management/TestMemoryPool.java,
	* examples/gnu/classpath/examples/management/TestThread.java,
	* examples/gnu/classpath/examples/midi/Demo.java,
	* examples/gnu/classpath/examples/print/Demo.java,
	* examples/gnu/classpath/examples/sound/AudioPlayerSample.java,
	* examples/gnu/classpath/examples/swing/BrowserEditorKit.java,
	* examples/gnu/classpath/examples/swing/ButtonDemo.java,
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java,
	* examples/gnu/classpath/examples/swing/Demo.java,
	* examples/gnu/classpath/examples/swing/DemoFactory.java,
	* examples/gnu/classpath/examples/swing/DocumentFilterDemo.java,
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java,
	* examples/gnu/classpath/examples/swing/HtmlDemo.java,
	* examples/gnu/classpath/examples/swing/ListDemo.java,
	* examples/gnu/classpath/examples/swing/MetalThemeEditor.java,
	* examples/gnu/classpath/examples/swing/NavigationFilterDemo.java,
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java,
	* examples/gnu/classpath/examples/swing/SliderDemo.java,
	* examples/gnu/classpath/examples/swing/SpinnerDemo.java,
	* examples/gnu/classpath/examples/swing/TabbedPaneDemo.java,
	* examples/gnu/classpath/examples/swing/TableDemo.java,
	* examples/gnu/classpath/examples/swing/TextAreaDemo.java,
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java,
	* examples/gnu/classpath/examples/swing/TreeDemo.java,
	* external/jsr166/java/util/ArrayDeque.java,
	* external/jsr166/java/util/concurrent/ArrayBlockingQueue.java,
	* external/jsr166/java/util/concurrent/ConcurrentHashMap.java,
	* external/jsr166/java/util/concurrent/ConcurrentSkipListMap.java,
	* external/jsr166/java/util/concurrent/ConcurrentSkipListSet.java,
	* external/jsr166/java/util/concurrent/CopyOnWriteArraySet.java,
	* external/jsr166/java/util/concurrent/CyclicBarrier.java,
	* external/jsr166/java/util/concurrent/DelayQueue.java,
	* external/jsr166/java/util/concurrent/Executors.java,
	* external/jsr166/java/util/concurrent/FutureTask.java,
	* external/jsr166/java/util/concurrent/LinkedBlockingDeque.java,
	* external/jsr166/java/util/concurrent/LinkedBlockingQueue.java,
	* external/jsr166/java/util/concurrent/PriorityBlockingQueue.java,
	* external/jsr166/java/util/concurrent/ScheduledExecutorService.java,
	* external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java,
	* external/jsr166/java/util/concurrent/Semaphore.java,
	* external/jsr166/java/util/concurrent/SynchronousQueue.java,
	* external/jsr166/java/util/concurrent/ThreadPoolExecutor.java,
	* external/jsr166/java/util/concurrent/atomic/AtomicInteger.java,
	* external/jsr166/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java,
	* external/jsr166/java/util/concurrent/atomic/AtomicLong.java,
	* external/jsr166/java/util/concurrent/atomic/AtomicLongFieldUpdater.java,
	* external/jsr166/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java,
	* external/jsr166/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java,
	* external/jsr166/java/util/concurrent/locks/AbstractQueuedSynchronizer.java,
	* external/jsr166/java/util/concurrent/locks/ReentrantReadWriteLock.java,
	* external/relaxngDatatype/org/relaxng/datatype/Datatype.java,
	* external/relaxngDatatype/org/relaxng/datatype/DatatypeBuilder.java,
	* external/relaxngDatatype/org/relaxng/datatype/DatatypeException.java,
	* external/relaxngDatatype/org/relaxng/datatype/DatatypeLibrary.java,
	* external/relaxngDatatype/org/relaxng/datatype/DatatypeLibraryFactory.java,
	* external/relaxngDatatype/org/relaxng/datatype/DatatypeStreamingValidator.java,
	* external/relaxngDatatype/org/relaxng/datatype/ValidationContext.java,
	* external/relaxngDatatype/org/relaxng/datatype/helpers/DatatypeLibraryLoader.java,
	* external/relaxngDatatype/org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java,
	* external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidatorImpl.java,
	* external/sax/org/xml/sax/AttributeList.java,
	* external/sax/org/xml/sax/Attributes.java,
	* external/sax/org/xml/sax/ContentHandler.java,
	* external/sax/org/xml/sax/DTDHandler.java,
	* external/sax/org/xml/sax/DocumentHandler.java,
	* external/sax/org/xml/sax/EntityResolver.java,
	* external/sax/org/xml/sax/ErrorHandler.java,
	* external/sax/org/xml/sax/HandlerBase.java,
	* external/sax/org/xml/sax/InputSource.java,
	* external/sax/org/xml/sax/Locator.java,
	* external/sax/org/xml/sax/Parser.java,
	* external/sax/org/xml/sax/SAXException.java,
	* external/sax/org/xml/sax/SAXNotRecognizedException.java,
	* external/sax/org/xml/sax/SAXNotSupportedException.java,
	* external/sax/org/xml/sax/SAXParseException.java,
	* external/sax/org/xml/sax/XMLReader.java,
	* external/sax/org/xml/sax/ext/Attributes2.java,
	* external/sax/org/xml/sax/ext/Attributes2Impl.java,
	* external/sax/org/xml/sax/ext/DeclHandler.java,
	* external/sax/org/xml/sax/ext/DefaultHandler2.java,
	* external/sax/org/xml/sax/ext/EntityResolver2.java,
	* external/sax/org/xml/sax/ext/LexicalHandler.java,
	* external/sax/org/xml/sax/ext/Locator2.java,
	* external/sax/org/xml/sax/ext/Locator2Impl.java,
	* external/sax/org/xml/sax/helpers/AttributeListImpl.java,
	* external/sax/org/xml/sax/helpers/AttributesImpl.java,
	* external/sax/org/xml/sax/helpers/DefaultHandler.java,
	* external/sax/org/xml/sax/helpers/LocatorImpl.java,
	* external/sax/org/xml/sax/helpers/NamespaceSupport.java,
	* external/sax/org/xml/sax/helpers/NewInstance.java,
	* external/sax/org/xml/sax/helpers/ParserAdapter.java,
	* external/sax/org/xml/sax/helpers/ParserFactory.java,
	* external/sax/org/xml/sax/helpers/XMLFilterImpl.java,
	* external/sax/org/xml/sax/helpers/XMLReaderAdapter.java,
	* external/sax/org/xml/sax/helpers/XMLReaderFactory.java,
	* external/w3c_dom/org/w3c/dom/Attr.java,
	* external/w3c_dom/org/w3c/dom/CDATASection.java,
	* external/w3c_dom/org/w3c/dom/CharacterData.java,
	* external/w3c_dom/org/w3c/dom/Comment.java,
	* external/w3c_dom/org/w3c/dom/DOMConfiguration.java,
	* external/w3c_dom/org/w3c/dom/DOMError.java,
	* external/w3c_dom/org/w3c/dom/DOMErrorHandler.java,
	* external/w3c_dom/org/w3c/dom/DOMException.java,
	* external/w3c_dom/org/w3c/dom/DOMImplementation.java,
	* external/w3c_dom/org/w3c/dom/DOMImplementationList.java,
	* external/w3c_dom/org/w3c/dom/DOMImplementationSource.java,
	* external/w3c_dom/org/w3c/dom/DOMLocator.java,
	* external/w3c_dom/org/w3c/dom/DOMStringList.java,
	* external/w3c_dom/org/w3c/dom/Document.java,
	* external/w3c_dom/org/w3c/dom/DocumentFragment.java,
	* external/w3c_dom/org/w3c/dom/DocumentType.java,
	* external/w3c_dom/org/w3c/dom/Element.java,
	* external/w3c_dom/org/w3c/dom/Entity.java,
	* external/w3c_dom/org/w3c/dom/EntityReference.java,
	* external/w3c_dom/org/w3c/dom/NameList.java,
	* external/w3c_dom/org/w3c/dom/NamedNodeMap.java,
	* external/w3c_dom/org/w3c/dom/Node.java,
	* external/w3c_dom/org/w3c/dom/NodeList.java,
	* external/w3c_dom/org/w3c/dom/Notation.java,
	* external/w3c_dom/org/w3c/dom/ProcessingInstruction.java,
	* external/w3c_dom/org/w3c/dom/Text.java,
	* external/w3c_dom/org/w3c/dom/TypeInfo.java,
	* external/w3c_dom/org/w3c/dom/UserDataHandler.java,
	* external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java,
	* external/w3c_dom/org/w3c/dom/css/CSS2Properties.java,
	* external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSImportRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSPageRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java,
	* external/w3c_dom/org/w3c/dom/css/CSSRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSRuleList.java,
	* external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java,
	* external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java,
	* external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java,
	* external/w3c_dom/org/w3c/dom/css/CSSValue.java,
	* external/w3c_dom/org/w3c/dom/css/CSSValueList.java,
	* external/w3c_dom/org/w3c/dom/css/Counter.java,
	* external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java,
	* external/w3c_dom/org/w3c/dom/css/DocumentCSS.java,
	* external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java,
	* external/w3c_dom/org/w3c/dom/css/RGBColor.java,
	* external/w3c_dom/org/w3c/dom/css/Rect.java,
	* external/w3c_dom/org/w3c/dom/css/ViewCSS.java,
	* external/w3c_dom/org/w3c/dom/events/DocumentEvent.java,
	* external/w3c_dom/org/w3c/dom/events/Event.java,
	* external/w3c_dom/org/w3c/dom/events/EventException.java,
	* external/w3c_dom/org/w3c/dom/events/EventListener.java,
	* external/w3c_dom/org/w3c/dom/events/EventTarget.java,
	* external/w3c_dom/org/w3c/dom/events/MouseEvent.java,
	* external/w3c_dom/org/w3c/dom/events/MutationEvent.java,
	* external/w3c_dom/org/w3c/dom/events/UIEvent.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java,
	* external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java,
	* external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java,
	* external/w3c_dom/org/w3c/dom/ls/LSException.java,
	* external/w3c_dom/org/w3c/dom/ls/LSInput.java,
	* external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java,
	* external/w3c_dom/org/w3c/dom/ls/LSOutput.java,
	* external/w3c_dom/org/w3c/dom/ls/LSParser.java,
	* external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java,
	* external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java,
	* external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java,
	* external/w3c_dom/org/w3c/dom/ls/LSSerializer.java,
	* external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java,
	* external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java,
	* external/w3c_dom/org/w3c/dom/ranges/Range.java,
	* external/w3c_dom/org/w3c/dom/ranges/RangeException.java,
	* external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java,
	* external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java,
	* external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java,
	* external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java,
	* external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java,
	* external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java,
	* external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java,
	* external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java,
	* external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java,
	* external/w3c_dom/org/w3c/dom/views/AbstractView.java,
	* external/w3c_dom/org/w3c/dom/views/DocumentView.java,
	* external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java,
	* external/w3c_dom/org/w3c/dom/xpath/XPathException.java,
	* external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java,
	* external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java,
	* external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java,
	* external/w3c_dom/org/w3c/dom/xpath/XPathResult.java,
	* gnu/CORBA/BigDecimalHelper.java,
	* gnu/CORBA/CDR/AbstractCdrInput.java,
	* gnu/CORBA/CDR/AbstractCdrOutput.java,
	* gnu/CORBA/CDR/AbstractDataInput.java,
	* gnu/CORBA/CDR/AbstractDataOutput.java,
	* gnu/CORBA/CDR/AligningInput.java,
	* gnu/CORBA/CDR/AligningOutput.java,
	* gnu/CORBA/CDR/ArrayValueHelper.java,
	* gnu/CORBA/CDR/BigEndianInputStream.java,
	* gnu/CORBA/CDR/BigEndianOutputStream.java,
	* gnu/CORBA/CDR/BufferedCdrOutput.java,
	* gnu/CORBA/CDR/BufferredCdrInput.java,
	* gnu/CORBA/CDR/HeadlessInput.java,
	* gnu/CORBA/CDR/IDLTypeHelper.java,
	* gnu/CORBA/CDR/LittleEndianOutputStream.java,
	* gnu/CORBA/CDR/UnknownExceptionCtxHandler.java,
	* gnu/CORBA/CDR/VMVio.java,
	* gnu/CORBA/CDR/Vio.java,
	* gnu/CORBA/CDR/gnuRuntime.java,
	* gnu/CORBA/CDR/gnuValueStream.java,
	* gnu/CORBA/CdrEncapsCodecImpl.java,
	* gnu/CORBA/CollocatedOrbs.java,
	* gnu/CORBA/Connected_objects.java,
	* gnu/CORBA/DefaultSocketFactory.java,
	* gnu/CORBA/DuplicateNameHolder.java,
	* gnu/CORBA/DynAn/AbstractAny.java,
	* gnu/CORBA/DynAn/DivideableAny.java,
	* gnu/CORBA/DynAn/NameValuePairHolder.java,
	* gnu/CORBA/DynAn/RecordAny.java,
	* gnu/CORBA/DynAn/ValueChangeListener.java,
	* gnu/CORBA/DynAn/gnuDynAny.java,
	* gnu/CORBA/DynAn/gnuDynAnyFactory.java,
	* gnu/CORBA/DynAn/gnuDynArray.java,
	* gnu/CORBA/DynAn/gnuDynEnum.java,
	* gnu/CORBA/DynAn/gnuDynFixed.java,
	* gnu/CORBA/DynAn/gnuDynSequence.java,
	* gnu/CORBA/DynAn/gnuDynUnion.java,
	* gnu/CORBA/DynAn/gnuDynValue.java,
	* gnu/CORBA/DynAn/gnuDynValueBox.java,
	* gnu/CORBA/DynAnySeqHolder.java,
	* gnu/CORBA/EmptyExceptionHolder.java,
	* gnu/CORBA/ForwardRequestHelper.java,
	* gnu/CORBA/GIOP/CharSets_OSF.java,
	* gnu/CORBA/GIOP/CloseMessage.java,
	* gnu/CORBA/GIOP/ErrorMessage.java,
	* gnu/CORBA/GIOP/MessageHeader.java,
	* gnu/CORBA/GIOP/ServiceContext.java,
	* gnu/CORBA/GIOP/v1_2/RequestHeader.java,
	* gnu/CORBA/GeneralHolder.java,
	* gnu/CORBA/IOR.java,
	* gnu/CORBA/Interceptor/ClientRequestInterceptors.java,
	* gnu/CORBA/Interceptor/ForwardRequestHolder.java,
	* gnu/CORBA/Interceptor/IORInterceptors.java,
	* gnu/CORBA/Interceptor/Registrator.java,
	* gnu/CORBA/Interceptor/ServerRequestInterceptors.java,
	* gnu/CORBA/Interceptor/gnuClientRequestInfo.java,
	* gnu/CORBA/Interceptor/gnuIcCurrent.java,
	* gnu/CORBA/Interceptor/gnuIorInfo.java,
	* gnu/CORBA/Interceptor/gnuServerRequestInfo.java,
	* gnu/CORBA/IorDelegate.java,
	* gnu/CORBA/IorObject.java,
	* gnu/CORBA/Minor.java,
	* gnu/CORBA/NameDynAnyPairHolder.java,
	* gnu/CORBA/NameDynAnyPairSeqHolder.java,
	* gnu/CORBA/NameValuePairHolder.java,
	* gnu/CORBA/NameValuePairSeqHolder.java,
	* gnu/CORBA/NamingService/NameParser.java,
	* gnu/CORBA/NamingService/NamingMap.java,
	* gnu/CORBA/NamingService/NamingServiceTransient.java,
	* gnu/CORBA/NamingService/TransientContext.java,
	* gnu/CORBA/ObjectCreator.java,
	* gnu/CORBA/OrbFocused.java,
	* gnu/CORBA/OrbFunctional.java,
	* gnu/CORBA/OrbRestricted.java,
	* gnu/CORBA/Poa/AOM.java,
	* gnu/CORBA/Poa/AccessiblePolicy.java,
	* gnu/CORBA/Poa/DynamicImpHandler.java,
	* gnu/CORBA/Poa/ForwardRequestHolder.java,
	* gnu/CORBA/Poa/ForwardedServant.java,
	* gnu/CORBA/Poa/InvalidPolicyHolder.java,
	* gnu/CORBA/Poa/LocalDelegate.java,
	* gnu/CORBA/Poa/LocalRequest.java,
	* gnu/CORBA/Poa/LocalServerRequest.java,
	* gnu/CORBA/Poa/ORB_1_4.java,
	* gnu/CORBA/Poa/ServantDelegateImpl.java,
	* gnu/CORBA/Poa/StandardPolicies.java,
	* gnu/CORBA/Poa/gnuAdapterActivator.java,
	* gnu/CORBA/Poa/gnuForwardRequest.java,
	* gnu/CORBA/Poa/gnuIdAssignmentPolicy.java,
	* gnu/CORBA/Poa/gnuIdUniquenessPolicy.java,
	* gnu/CORBA/Poa/gnuImplicitActivationPolicy.java,
	* gnu/CORBA/Poa/gnuLifespanPolicy.java,
	* gnu/CORBA/Poa/gnuPOA.java,
	* gnu/CORBA/Poa/gnuPOAManager.java,
	* gnu/CORBA/Poa/gnuPoaCurrent.java,
	* gnu/CORBA/Poa/gnuRequestProcessingPolicy.java,
	* gnu/CORBA/Poa/gnuServantObject.java,
	* gnu/CORBA/Poa/gnuServantRetentionPolicy.java,
	* gnu/CORBA/Poa/gnuThreadPolicy.java,
	* gnu/CORBA/ServiceRequestAdapter.java,
	* gnu/CORBA/SetOverrideTypeHolder.java,
	* gnu/CORBA/SimpleDelegate.java,
	* gnu/CORBA/SocketRepository.java,
	* gnu/CORBA/StreamHolder.java,
	* gnu/CORBA/TypeCodeHelper.java,
	* gnu/CORBA/TypeKindNamer.java,
	* gnu/CORBA/Version.java,
	* gnu/CORBA/_PolicyImplBase.java,
	* gnu/CORBA/gnuAny.java,
	* gnu/CORBA/gnuCodecFactory.java,
	* gnu/CORBA/gnuEnvironment.java,
	* gnu/CORBA/gnuRequest.java,
	* gnu/CORBA/gnuValueHolder.java,
	* gnu/CORBA/interfaces/SocketFactory.java,
	* gnu/CORBA/typecodes/AliasTypeCode.java,
	* gnu/CORBA/typecodes/ArrayTypeCode.java,
	* gnu/CORBA/typecodes/FixedTypeCode.java,
	* gnu/CORBA/typecodes/GeneralTypeCode.java,
	* gnu/CORBA/typecodes/PrimitiveTypeCode.java,
	* gnu/CORBA/typecodes/RecordTypeCode.java,
	* gnu/CORBA/typecodes/RecursiveTypeCode.java,
	* gnu/CORBA/typecodes/StringTypeCode.java,
	* gnu/classpath/Pair.java,
	* gnu/classpath/Pointer.java,
	* gnu/classpath/Pointer32.java,
	* gnu/classpath/Pointer64.java,
	* gnu/classpath/ServiceFactory.java,
	* gnu/classpath/ServiceProviderLoadingAction.java,
	* gnu/classpath/SystemProperties.java,
	* gnu/classpath/debug/Component.java,
	* gnu/classpath/debug/PreciseFilter.java,
	* gnu/classpath/debug/SystemLogger.java,
	* gnu/classpath/debug/TeeInputStream.java,
	* gnu/classpath/debug/TeeReader.java,
	* gnu/classpath/jdwp/Jdwp.java,
	* gnu/classpath/jdwp/JdwpConstants.java,
	* gnu/classpath/jdwp/event/BreakpointEvent.java,
	* gnu/classpath/jdwp/event/ClassPrepareEvent.java,
	* gnu/classpath/jdwp/event/ClassUnloadEvent.java,
	* gnu/classpath/jdwp/event/Event.java,
	* gnu/classpath/jdwp/event/EventManager.java,
	* gnu/classpath/jdwp/event/EventRequest.java,
	* gnu/classpath/jdwp/event/ExceptionEvent.java,
	* gnu/classpath/jdwp/event/MethodEntryEvent.java,
	* gnu/classpath/jdwp/event/MethodExitEvent.java,
	* gnu/classpath/jdwp/event/SingleStepEvent.java,
	* gnu/classpath/jdwp/event/ThreadEndEvent.java,
	* gnu/classpath/jdwp/event/VmDeathEvent.java,
	* gnu/classpath/jdwp/event/VmInitEvent.java,
	* gnu/classpath/jdwp/event/filters/ClassExcludeFilter.java,
	* gnu/classpath/jdwp/event/filters/ClassMatchFilter.java,
	* gnu/classpath/jdwp/event/filters/ClassOnlyFilter.java,
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java,
	* gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java,
	* gnu/classpath/jdwp/event/filters/InstanceOnlyFilter.java,
	* gnu/classpath/jdwp/event/filters/StepFilter.java,
	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java,
	* gnu/classpath/jdwp/exception/InvalidClassException.java,
	* gnu/classpath/jdwp/exception/InvalidClassLoaderException.java,
	* gnu/classpath/jdwp/exception/InvalidEventTypeException.java,
	* gnu/classpath/jdwp/exception/InvalidFieldException.java,
	* gnu/classpath/jdwp/exception/InvalidFrameException.java,
	* gnu/classpath/jdwp/exception/InvalidLocationException.java,
	* gnu/classpath/jdwp/exception/InvalidMethodException.java,
	* gnu/classpath/jdwp/exception/InvalidObjectException.java,
	* gnu/classpath/jdwp/exception/InvalidSlotException.java,
	* gnu/classpath/jdwp/exception/InvalidStringException.java,
	* gnu/classpath/jdwp/exception/InvalidThreadException.java,
	* gnu/classpath/jdwp/exception/InvalidThreadGroupException.java,
	* gnu/classpath/jdwp/exception/NativeMethodException.java,
	* gnu/classpath/jdwp/exception/NotImplementedException.java,
	* gnu/classpath/jdwp/id/JdwpId.java,
	* gnu/classpath/jdwp/id/NullObjectId.java,
	* gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/ArrayTypeCommandSet.java,
	* gnu/classpath/jdwp/processor/ClassLoaderReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/ClassObjectReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java,
	* gnu/classpath/jdwp/processor/CommandSet.java,
	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java,
	* gnu/classpath/jdwp/processor/FieldCommandSet.java,
	* gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java,
	* gnu/classpath/jdwp/processor/MethodCommandSet.java,
	* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/PacketProcessor.java,
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java,
	* gnu/classpath/jdwp/processor/StackFrameCommandSet.java,
	* gnu/classpath/jdwp/processor/StringReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java,
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java,
	* gnu/classpath/jdwp/transport/JdwpCommandPacket.java,
	* gnu/classpath/jdwp/transport/JdwpConnection.java,
	* gnu/classpath/jdwp/transport/JdwpPacket.java,
	* gnu/classpath/jdwp/transport/JdwpReplyPacket.java,
	* gnu/classpath/jdwp/transport/SocketTransport.java,
	* gnu/classpath/jdwp/transport/TransportFactory.java,
	* gnu/classpath/jdwp/util/JdwpString.java,
	* gnu/classpath/jdwp/util/LineTable.java,
	* gnu/classpath/jdwp/util/Location.java,
	* gnu/classpath/jdwp/util/MethodResult.java,
	* gnu/classpath/jdwp/util/MonitorInfo.java,
	* gnu/classpath/jdwp/util/Signature.java,
	* gnu/classpath/jdwp/util/VariableTable.java,
	* gnu/classpath/jdwp/value/ArrayValue.java,
	* gnu/classpath/jdwp/value/BooleanValue.java,
	* gnu/classpath/jdwp/value/ByteValue.java,
	* gnu/classpath/jdwp/value/CharValue.java,
	* gnu/classpath/jdwp/value/DoubleValue.java,
	* gnu/classpath/jdwp/value/FloatValue.java,
	* gnu/classpath/jdwp/value/IntValue.java,
	* gnu/classpath/jdwp/value/LongValue.java,
	* gnu/classpath/jdwp/value/ObjectValue.java,
	* gnu/classpath/jdwp/value/ShortValue.java,
	* gnu/classpath/jdwp/value/StringValue.java,
	* gnu/classpath/jdwp/value/Value.java,
	* gnu/classpath/jdwp/value/ValueFactory.java,
	* gnu/classpath/jdwp/value/VoidValue.java,
	* gnu/classpath/toolkit/DefaultDaemonThreadFactory.java,
	* gnu/java/awt/AWTUtilities.java,
	* gnu/java/awt/BitMaskExtent.java,
	* gnu/java/awt/BitwiseXORComposite.java,
	* gnu/java/awt/Buffers.java,
	* gnu/java/awt/ClasspathGraphicsEnvironment.java,
	* gnu/java/awt/ClasspathToolkit.java,
	* gnu/java/awt/ComponentDataBlitOp.java,
	* gnu/java/awt/EmbeddedWindow.java,
	* gnu/java/awt/GradientPaintContext.java,
	* gnu/java/awt/color/CieXyzConverter.java,
	* gnu/java/awt/color/ClutProfileConverter.java,
	* gnu/java/awt/color/ColorLookUpTable.java,
	* gnu/java/awt/color/GrayProfileConverter.java,
	* gnu/java/awt/color/GrayScaleConverter.java,
	* gnu/java/awt/color/LinearRGBConverter.java,
	* gnu/java/awt/color/ProfileHeader.java,
	* gnu/java/awt/color/RgbProfileConverter.java,
	* gnu/java/awt/color/SrgbConverter.java,
	* gnu/java/awt/color/ToneReproductionCurve.java,
	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java,
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java,
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java,
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java,
	* gnu/java/awt/font/FontDelegate.java,
	* gnu/java/awt/font/FontFactory.java,
	* gnu/java/awt/font/GNUGlyphVector.java,
	* gnu/java/awt/font/OpenTypeFontPeer.java,
	* gnu/java/awt/font/autofit/GlyphHints.java,
	* gnu/java/awt/font/autofit/Latin.java,
	* gnu/java/awt/font/autofit/Utils.java,
	* gnu/java/awt/font/opentype/CharGlyphMap.java,
	* gnu/java/awt/font/opentype/GlyphNamer.java,
	* gnu/java/awt/font/opentype/MacResourceFork.java,
	* gnu/java/awt/font/opentype/NameDecoder.java,
	* gnu/java/awt/font/opentype/OpenTypeFont.java,
	* gnu/java/awt/font/opentype/OpenTypeFontFactory.java,
	* gnu/java/awt/font/opentype/truetype/GlyphLoader.java,
	* gnu/java/awt/font/opentype/truetype/GlyphLocator.java,
	* gnu/java/awt/font/opentype/truetype/GlyphMeasurer.java,
	* gnu/java/awt/font/opentype/truetype/Point.java,
	* gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java,
	* gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
	* gnu/java/awt/font/opentype/truetype/Zone.java,
	* gnu/java/awt/font/opentype/truetype/ZonePathIterator.java,
	* gnu/java/awt/image/AsyncImage.java,
	* gnu/java/awt/image/ImageConverter.java,
	* gnu/java/awt/image/ImageDecoder.java,
	* gnu/java/awt/image/XBMDecoder.java,
	* gnu/java/awt/java2d/AbstractGraphics2D.java,
	* gnu/java/awt/java2d/AlphaCompositeContext.java,
	* gnu/java/awt/java2d/CubicSegment.java,
	* gnu/java/awt/java2d/LineSegment.java,
	* gnu/java/awt/java2d/PixelCoverage.java,
	* gnu/java/awt/java2d/QuadSegment.java,
	* gnu/java/awt/java2d/RasterGraphics.java,
	* gnu/java/awt/java2d/ScanlineConverter.java,
	* gnu/java/awt/java2d/ScanlineCoverage.java,
	* gnu/java/awt/java2d/Segment.java,
	* gnu/java/awt/java2d/TexturePaintContext.java,
	* gnu/java/awt/peer/ClasspathDesktopPeer.java,
	* gnu/java/awt/peer/ClasspathFontPeer.java,
	* gnu/java/awt/peer/GLightweightPeer.java,
	* gnu/java/awt/peer/GnomeDesktopPeer.java,
	* gnu/java/awt/peer/KDEDesktopPeer.java,
	* gnu/java/awt/peer/gtk/AsyncImage.java,
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java,
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java,
	* gnu/java/awt/peer/gtk/CairoSurface.java,
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java,
	* gnu/java/awt/peer/gtk/ComponentGraphics.java,
	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java,
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java,
	* gnu/java/awt/peer/gtk/GdkFontPeer.java,
	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java,
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
	* gnu/java/awt/peer/gtk/GdkRobotPeer.java,
	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java,
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java,
	* gnu/java/awt/peer/gtk/GtkClipboard.java,
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java,
	* gnu/java/awt/peer/gtk/GtkCursor.java,
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java,
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
	* gnu/java/awt/peer/gtk/GtkFramePeer.java,
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java,
	* gnu/java/awt/peer/gtk/GtkImage.java,
	* gnu/java/awt/peer/gtk/GtkImageConsumer.java,
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java,
	* gnu/java/awt/peer/gtk/GtkListPeer.java,
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
	* gnu/java/awt/peer/gtk/GtkMenuPeer.java,
	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java,
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java,
	* gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java,
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
	* gnu/java/awt/peer/gtk/GtkSelection.java,
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java,
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java,
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java,
	* gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java,
	* gnu/java/awt/peer/qt/MainQtThread.java,
	* gnu/java/awt/peer/qt/QMatrix.java,
	* gnu/java/awt/peer/qt/QPainterPath.java,
	* gnu/java/awt/peer/qt/QPen.java,
	* gnu/java/awt/peer/qt/QtAudioClip.java,
	* gnu/java/awt/peer/qt/QtButtonPeer.java,
	* gnu/java/awt/peer/qt/QtCheckboxPeer.java,
	* gnu/java/awt/peer/qt/QtChoicePeer.java,
	* gnu/java/awt/peer/qt/QtComponentGraphics.java,
	* gnu/java/awt/peer/qt/QtComponentPeer.java,
	* gnu/java/awt/peer/qt/QtContainerPeer.java,
	* gnu/java/awt/peer/qt/QtDialogPeer.java,
	* gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java,
	* gnu/java/awt/peer/qt/QtFileDialogPeer.java,
	* gnu/java/awt/peer/qt/QtFontMetrics.java,
	* gnu/java/awt/peer/qt/QtFontPeer.java,
	* gnu/java/awt/peer/qt/QtFramePeer.java,
	* gnu/java/awt/peer/qt/QtGraphics.java,
	* gnu/java/awt/peer/qt/QtGraphicsEnvironment.java,
	* gnu/java/awt/peer/qt/QtImage.java,
	* gnu/java/awt/peer/qt/QtImageConsumer.java,
	* gnu/java/awt/peer/qt/QtImageDirectGraphics.java,
	* gnu/java/awt/peer/qt/QtImageGraphics.java,
	* gnu/java/awt/peer/qt/QtLabelPeer.java,
	* gnu/java/awt/peer/qt/QtListPeer.java,
	* gnu/java/awt/peer/qt/QtMenuBarPeer.java,
	* gnu/java/awt/peer/qt/QtMenuComponentPeer.java,
	* gnu/java/awt/peer/qt/QtMenuItemPeer.java,
	* gnu/java/awt/peer/qt/QtMenuPeer.java,
	* gnu/java/awt/peer/qt/QtPanelPeer.java,
	* gnu/java/awt/peer/qt/QtPopupMenuPeer.java,
	* gnu/java/awt/peer/qt/QtRepaintThread.java,
	* gnu/java/awt/peer/qt/QtScreenDevice.java,
	* gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java,
	* gnu/java/awt/peer/qt/QtScrollPanePeer.java,
	* gnu/java/awt/peer/qt/QtScrollbarPeer.java,
	* gnu/java/awt/peer/qt/QtTextAreaPeer.java,
	* gnu/java/awt/peer/qt/QtTextFieldPeer.java,
	* gnu/java/awt/peer/qt/QtToolkit.java,
	* gnu/java/awt/peer/qt/QtVolatileImage.java,
	* gnu/java/awt/peer/qt/QtWindowPeer.java,
	* gnu/java/awt/peer/swing/SwingButtonPeer.java,
	* gnu/java/awt/peer/swing/SwingCheckboxPeer.java,
	* gnu/java/awt/peer/swing/SwingComponent.java,
	* gnu/java/awt/peer/swing/SwingComponentPeer.java,
	* gnu/java/awt/peer/swing/SwingContainerPeer.java,
	* gnu/java/awt/peer/swing/SwingLabelPeer.java,
	* gnu/java/awt/peer/swing/SwingListPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuItemPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuPeer.java,
	* gnu/java/awt/peer/swing/SwingTextAreaPeer.java,
	* gnu/java/awt/peer/swing/SwingTextFieldPeer.java,
	* gnu/java/awt/peer/x/GLGraphics.java,
	* gnu/java/awt/peer/x/KeyboardMapping.java,
	* gnu/java/awt/peer/x/XEventPump.java,
	* gnu/java/awt/peer/x/XFontPeer.java,
	* gnu/java/awt/peer/x/XFramePeer.java,
	* gnu/java/awt/peer/x/XGraphics2D.java,
	* gnu/java/awt/peer/x/XGraphicsConfiguration.java,
	* gnu/java/awt/peer/x/XGraphicsDevice.java,
	* gnu/java/awt/peer/x/XGraphicsEnvironment.java,
	* gnu/java/awt/peer/x/XImage.java,
	* gnu/java/awt/peer/x/XToolkit.java,
	* gnu/java/awt/peer/x/XWindowPeer.java,
	* gnu/java/awt/print/JavaPrinterGraphics.java,
	* gnu/java/awt/print/JavaPrinterJob.java,
	* gnu/java/awt/print/PostScriptGraphics2D.java,
	* gnu/java/awt/print/SpooledDocument.java,
	* gnu/java/beans/BeanInfoEmbryo.java,
	* gnu/java/beans/DefaultExceptionListener.java,
	* gnu/java/beans/ExplicitBeanInfo.java,
	* gnu/java/beans/IntrospectionIncubator.java,
	* gnu/java/beans/decoder/AbstractContext.java,
	* gnu/java/beans/decoder/AbstractCreatableObjectContext.java,
	* gnu/java/beans/decoder/AbstractElementHandler.java,
	* gnu/java/beans/decoder/AbstractObjectContext.java,
	* gnu/java/beans/decoder/ArrayContext.java,
	* gnu/java/beans/decoder/ArrayHandler.java,
	* gnu/java/beans/decoder/AssemblyException.java,
	* gnu/java/beans/decoder/BooleanHandler.java,
	* gnu/java/beans/decoder/ByteHandler.java,
	* gnu/java/beans/decoder/CharHandler.java,
	* gnu/java/beans/decoder/ClassHandler.java,
	* gnu/java/beans/decoder/ConstructorContext.java,
	* gnu/java/beans/decoder/Context.java,
	* gnu/java/beans/decoder/DecoderContext.java,
	* gnu/java/beans/decoder/DoubleHandler.java,
	* gnu/java/beans/decoder/DummyContext.java,
	* gnu/java/beans/decoder/DummyHandler.java,
	* gnu/java/beans/decoder/ElementHandler.java,
	* gnu/java/beans/decoder/FloatHandler.java,
	* gnu/java/beans/decoder/GrowableArrayContext.java,
	* gnu/java/beans/decoder/IndexContext.java,
	* gnu/java/beans/decoder/IntHandler.java,
	* gnu/java/beans/decoder/JavaHandler.java,
	* gnu/java/beans/decoder/LongHandler.java,
	* gnu/java/beans/decoder/MethodContext.java,
	* gnu/java/beans/decoder/MethodFinder.java,
	* gnu/java/beans/decoder/NullHandler.java,
	* gnu/java/beans/decoder/ObjectContext.java,
	* gnu/java/beans/decoder/ObjectHandler.java,
	* gnu/java/beans/decoder/PersistenceParser.java,
	* gnu/java/beans/decoder/PropertyContext.java,
	* gnu/java/beans/decoder/ShortHandler.java,
	* gnu/java/beans/decoder/SimpleHandler.java,
	* gnu/java/beans/decoder/StaticMethodContext.java,
	* gnu/java/beans/decoder/StringHandler.java,
	* gnu/java/beans/decoder/VoidHandler.java,
	* gnu/java/beans/editors/ColorEditor.java,
	* gnu/java/beans/editors/FontEditor.java,
	* gnu/java/beans/editors/NativeBooleanEditor.java,
	* gnu/java/beans/editors/NativeByteEditor.java,
	* gnu/java/beans/editors/NativeDoubleEditor.java,
	* gnu/java/beans/editors/NativeFloatEditor.java,
	* gnu/java/beans/editors/NativeIntEditor.java,
	* gnu/java/beans/editors/NativeLongEditor.java,
	* gnu/java/beans/editors/NativeShortEditor.java,
	* gnu/java/beans/editors/StringEditor.java,
	* gnu/java/beans/encoder/ArrayPersistenceDelegate.java,
	* gnu/java/beans/encoder/ClassPersistenceDelegate.java,
	* gnu/java/beans/encoder/CollectionPersistenceDelegate.java,
	* gnu/java/beans/encoder/Context.java,
	* gnu/java/beans/encoder/GenericScannerState.java,
	* gnu/java/beans/encoder/IgnoringScannerState.java,
	* gnu/java/beans/encoder/MapPersistenceDelegate.java,
	* gnu/java/beans/encoder/ObjectId.java,
	* gnu/java/beans/encoder/PrimitivePersistenceDelegate.java,
	* gnu/java/beans/encoder/ReportingScannerState.java,
	* gnu/java/beans/encoder/Root.java,
	* gnu/java/beans/encoder/ScanEngine.java,
	* gnu/java/beans/encoder/ScannerState.java,
	* gnu/java/beans/encoder/StAXWriter.java,
	* gnu/java/beans/encoder/Writer.java,
	* gnu/java/beans/encoder/elements/ArrayInstantiation.java,
	* gnu/java/beans/encoder/elements/Array_Get.java,
	* gnu/java/beans/encoder/elements/ClassResolution.java,
	* gnu/java/beans/encoder/elements/Element.java,
	* gnu/java/beans/encoder/elements/List_Get.java,
	* gnu/java/beans/encoder/elements/List_Set.java,
	* gnu/java/beans/encoder/elements/MethodInvocation.java,
	* gnu/java/beans/encoder/elements/NullObject.java,
	* gnu/java/beans/encoder/elements/ObjectInstantiation.java,
	* gnu/java/beans/encoder/elements/ObjectReference.java,
	* gnu/java/beans/encoder/elements/PrimitiveInstantiation.java,
	* gnu/java/beans/encoder/elements/StaticFieldAccess.java,
	* gnu/java/beans/encoder/elements/StaticMethodInvocation.java,
	* gnu/java/beans/encoder/elements/StringReference.java,
	* gnu/java/io/ASN1ParsingException.java,
	* gnu/java/io/Base64InputStream.java,
	* gnu/java/io/ClassLoaderObjectInputStream.java,
	* gnu/java/io/NullOutputStream.java,
	* gnu/java/io/ObjectIdentityMap2Int.java,
	* gnu/java/io/ObjectIdentityWrapper.java,
	* gnu/java/io/PlatformHelper.java,
	* gnu/java/lang/CPStringBuilder.java,
	* gnu/java/lang/CharData.java,
	* gnu/java/lang/InstrumentationImpl.java,
	* gnu/java/lang/MainThread.java,
	* gnu/java/lang/management/BeanImpl.java,
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java,
	* gnu/java/lang/management/CompilationMXBeanImpl.java,
	* gnu/java/lang/management/GarbageCollectorMXBeanImpl.java,
	* gnu/java/lang/management/MemoryMXBeanImpl.java,
	* gnu/java/lang/management/MemoryManagerMXBeanImpl.java,
	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java,
	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java,
	* gnu/java/lang/management/RuntimeMXBeanImpl.java,
	* gnu/java/lang/management/ThreadMXBeanImpl.java,
	* gnu/java/lang/reflect/TypeSignature.java,
	* gnu/java/locale/LocaleHelper.java,
	* gnu/java/math/Fixed.java,
	* gnu/java/math/GMP.java,
	* gnu/java/math/MPN.java,
	* gnu/java/net/CRLFInputStream.java,
	* gnu/java/net/CRLFOutputStream.java,
	* gnu/java/net/DefaultContentHandlerFactory.java,
	* gnu/java/net/DefaultProxySelector.java,
	* gnu/java/net/EmptyX509TrustManager.java,
	* gnu/java/net/GetLocalHostAction.java,
	* gnu/java/net/HeaderFieldHelper.java,
	* gnu/java/net/IndexListParser.java,
	* gnu/java/net/LineInputStream.java,
	* gnu/java/net/PlainDatagramSocketImpl.java,
	* gnu/java/net/PlainSocketImpl.java,
	* gnu/java/net/loader/FileResource.java,
	* gnu/java/net/loader/FileURLLoader.java,
	* gnu/java/net/loader/JarURLLoader.java,
	* gnu/java/net/loader/JarURLResource.java,
	* gnu/java/net/loader/RemoteResource.java,
	* gnu/java/net/loader/RemoteURLLoader.java,
	* gnu/java/net/loader/Resource.java,
	* gnu/java/net/loader/URLLoader.java,
	* gnu/java/net/protocol/file/Connection.java,
	* gnu/java/net/protocol/file/Handler.java,
	* gnu/java/net/protocol/ftp/ActiveModeDTP.java,
	* gnu/java/net/protocol/ftp/BlockInputStream.java,
	* gnu/java/net/protocol/ftp/BlockOutputStream.java,
	* gnu/java/net/protocol/ftp/CompressedInputStream.java,
	* gnu/java/net/protocol/ftp/CompressedOutputStream.java,
	* gnu/java/net/protocol/ftp/DTP.java,
	* gnu/java/net/protocol/ftp/DTPInputStream.java,
	* gnu/java/net/protocol/ftp/DTPOutputStream.java,
	* gnu/java/net/protocol/ftp/FTPConnection.java,
	* gnu/java/net/protocol/ftp/FTPException.java,
	* gnu/java/net/protocol/ftp/FTPResponse.java,
	* gnu/java/net/protocol/ftp/FTPURLConnection.java,
	* gnu/java/net/protocol/ftp/Handler.java,
	* gnu/java/net/protocol/ftp/PassiveModeDTP.java,
	* gnu/java/net/protocol/ftp/StreamInputStream.java,
	* gnu/java/net/protocol/ftp/StreamOutputStream.java,
	* gnu/java/net/protocol/http/Authenticator.java,
	* gnu/java/net/protocol/http/ByteArrayRequestBodyWriter.java,
	* gnu/java/net/protocol/http/ChunkedInputStream.java,
	* gnu/java/net/protocol/http/Cookie.java,
	* gnu/java/net/protocol/http/CookieManager.java,
	* gnu/java/net/protocol/http/Credentials.java,
	* gnu/java/net/protocol/http/HTTPConnection.java,
	* gnu/java/net/protocol/http/HTTPDateFormat.java,
	* gnu/java/net/protocol/http/HTTPURLConnection.java,
	* gnu/java/net/protocol/http/Handler.java,
	* gnu/java/net/protocol/http/Headers.java,
	* gnu/java/net/protocol/http/Request.java,
	* gnu/java/net/protocol/http/RequestBodyWriter.java,
	* gnu/java/net/protocol/http/Response.java,
	* gnu/java/net/protocol/http/ResponseHeaderHandler.java,
	* gnu/java/net/protocol/http/SimpleCookieManager.java,
	* gnu/java/net/protocol/https/Handler.java,
	* gnu/java/net/protocol/jar/Connection.java,
	* gnu/java/net/protocol/jar/Handler.java,
	* gnu/java/nio/ChannelInputStream.java,
	* gnu/java/nio/ChannelOutputStream.java,
	* gnu/java/nio/ChannelReader.java,
	* gnu/java/nio/ChannelWriter.java,
	* gnu/java/nio/DatagramChannelImpl.java,
	* gnu/java/nio/DatagramChannelSelectionKey.java,
	* gnu/java/nio/EpollSelectionKeyImpl.java,
	* gnu/java/nio/EpollSelectorImpl.java,
	* gnu/java/nio/FileChannelImpl.java,
	* gnu/java/nio/FileLockImpl.java,
	* gnu/java/nio/InputStreamChannel.java,
	* gnu/java/nio/KqueueSelectionKeyImpl.java,
	* gnu/java/nio/KqueueSelectorImpl.java,
	* gnu/java/nio/NIODatagramSocket.java,
	* gnu/java/nio/NIOServerSocket.java,
	* gnu/java/nio/NIOSocket.java,
	* gnu/java/nio/NIOSocketImpl.java,
	* gnu/java/nio/OutputStreamChannel.java,
	* gnu/java/nio/PipeImpl.java,
	* gnu/java/nio/SelectionKeyImpl.java,
	* gnu/java/nio/SelectorImpl.java,
	* gnu/java/nio/SelectorProviderImpl.java,
	* gnu/java/nio/ServerSocketChannelImpl.java,
	* gnu/java/nio/ServerSocketChannelSelectionKey.java,
	* gnu/java/nio/SocketChannelImpl.java,
	* gnu/java/nio/SocketChannelSelectionKey.java,
	* gnu/java/nio/SocketChannelSelectionKeyImpl.java,
	* gnu/java/nio/VMChannelOwner.java,
	* gnu/java/nio/charset/ByteCharset.java,
	* gnu/java/nio/charset/ByteDecodeLoopHelper.java,
	* gnu/java/nio/charset/ByteEncodeLoopHelper.java,
	* gnu/java/nio/charset/Cp424.java,
	* gnu/java/nio/charset/Cp437.java,
	* gnu/java/nio/charset/Cp737.java,
	* gnu/java/nio/charset/Cp775.java,
	* gnu/java/nio/charset/Cp850.java,
	* gnu/java/nio/charset/Cp852.java,
	* gnu/java/nio/charset/Cp855.java,
	* gnu/java/nio/charset/Cp857.java,
	* gnu/java/nio/charset/Cp860.java,
	* gnu/java/nio/charset/Cp861.java,
	* gnu/java/nio/charset/Cp862.java,
	* gnu/java/nio/charset/Cp863.java,
	* gnu/java/nio/charset/Cp864.java,
	* gnu/java/nio/charset/Cp865.java,
	* gnu/java/nio/charset/Cp866.java,
	* gnu/java/nio/charset/Cp869.java,
	* gnu/java/nio/charset/Cp874.java,
	* gnu/java/nio/charset/EncodingHelper.java,
	* gnu/java/nio/charset/ISO_8859_1.java,
	* gnu/java/nio/charset/ISO_8859_13.java,
	* gnu/java/nio/charset/ISO_8859_15.java,
	* gnu/java/nio/charset/ISO_8859_2.java,
	* gnu/java/nio/charset/ISO_8859_3.java,
	* gnu/java/nio/charset/ISO_8859_4.java,
	* gnu/java/nio/charset/ISO_8859_5.java,
	* gnu/java/nio/charset/ISO_8859_6.java,
	* gnu/java/nio/charset/ISO_8859_7.java,
	* gnu/java/nio/charset/ISO_8859_8.java,
	* gnu/java/nio/charset/ISO_8859_9.java,
	* gnu/java/nio/charset/KOI_8.java,
	* gnu/java/nio/charset/MS874.java,
	* gnu/java/nio/charset/MacCentralEurope.java,
	* gnu/java/nio/charset/MacCroatian.java,
	* gnu/java/nio/charset/MacCyrillic.java,
	* gnu/java/nio/charset/MacDingbat.java,
	* gnu/java/nio/charset/MacGreek.java,
	* gnu/java/nio/charset/MacIceland.java,
	* gnu/java/nio/charset/MacRoman.java,
	* gnu/java/nio/charset/MacRomania.java,
	* gnu/java/nio/charset/MacSymbol.java,
	* gnu/java/nio/charset/MacThai.java,
	* gnu/java/nio/charset/MacTurkish.java,
	* gnu/java/nio/charset/Provider.java,
	* gnu/java/nio/charset/US_ASCII.java,
	* gnu/java/nio/charset/UTF_16.java,
	* gnu/java/nio/charset/UTF_16BE.java,
	* gnu/java/nio/charset/UTF_16Decoder.java,
	* gnu/java/nio/charset/UTF_16Encoder.java,
	* gnu/java/nio/charset/UTF_16LE.java,
	* gnu/java/nio/charset/UTF_8.java,
	* gnu/java/nio/charset/UnicodeLittle.java,
	* gnu/java/nio/charset/Windows1250.java,
	* gnu/java/nio/charset/Windows1251.java,
	* gnu/java/nio/charset/Windows1252.java,
	* gnu/java/nio/charset/Windows1253.java,
	* gnu/java/nio/charset/Windows1254.java,
	* gnu/java/nio/charset/Windows1255.java,
	* gnu/java/nio/charset/Windows1256.java,
	* gnu/java/nio/charset/Windows1257.java,
	* gnu/java/nio/charset/Windows1258.java,
	* gnu/java/nio/charset/iconv/IconvCharset.java,
	* gnu/java/nio/charset/iconv/IconvDecoder.java,
	* gnu/java/nio/charset/iconv/IconvEncoder.java,
	* gnu/java/nio/charset/iconv/IconvProvider.java,
	* gnu/java/rmi/RMIMarshalledObjectInputStream.java,
	* gnu/java/rmi/RMIMarshalledObjectOutputStream.java,
	* gnu/java/rmi/activation/ActivationSystemTransient.java,
	* gnu/java/rmi/activation/BidiTable.java,
	* gnu/java/rmi/activation/DefaultActivationGroup.java,
	* gnu/java/rmi/activation/DefaultActivationSystem.java,
	* gnu/java/rmi/dgc/DGCImpl.java,
	* gnu/java/rmi/dgc/DGCImpl_Skel.java,
	* gnu/java/rmi/dgc/DGCImpl_Stub.java,
	* gnu/java/rmi/dgc/LeaseRenewingTask.java,
	* gnu/java/rmi/registry/RegistryImpl.java,
	* gnu/java/rmi/registry/RegistryImpl_Skel.java,
	* gnu/java/rmi/registry/RegistryImpl_Stub.java,
	* gnu/java/rmi/server/ActivatableRef.java,
	* gnu/java/rmi/server/ActivatableServerRef.java,
	* gnu/java/rmi/server/CombinedClassLoader.java,
	* gnu/java/rmi/server/ConnectionRunnerPool.java,
	* gnu/java/rmi/server/ProtocolConstants.java,
	* gnu/java/rmi/server/RMIClassLoaderImpl.java,
	* gnu/java/rmi/server/RMIDefaultSocketFactory.java,
	* gnu/java/rmi/server/RMIHashes.java,
	* gnu/java/rmi/server/RMIIncomingThread.java,
	* gnu/java/rmi/server/RMIObjectInputStream.java,
	* gnu/java/rmi/server/RMIObjectOutputStream.java,
	* gnu/java/rmi/server/UnicastConnection.java,
	* gnu/java/rmi/server/UnicastConnectionManager.java,
	* gnu/java/rmi/server/UnicastRef.java,
	* gnu/java/rmi/server/UnicastRemoteCall.java,
	* gnu/java/rmi/server/UnicastRemoteStub.java,
	* gnu/java/rmi/server/UnicastServer.java,
	* gnu/java/rmi/server/UnicastServerRef.java,
	* gnu/java/security/Engine.java,
	* gnu/java/security/OID.java,
	* gnu/java/security/PolicyFile.java,
	* gnu/java/security/Properties.java,
	* gnu/java/security/Registry.java,
	* gnu/java/security/Requires.java,
	* gnu/java/security/action/GetPropertyAction.java,
	* gnu/java/security/action/SetAccessibleAction.java,
	* gnu/java/security/der/DERValue.java,
	* gnu/java/security/hash/BaseHash.java,
	* gnu/java/security/hash/HashFactory.java,
	* gnu/java/security/hash/Haval.java,
	* gnu/java/security/hash/IMessageDigest.java,
	* gnu/java/security/hash/MD2.java,
	* gnu/java/security/hash/MD4.java,
	* gnu/java/security/hash/MD5.java,
	* gnu/java/security/hash/RipeMD128.java,
	* gnu/java/security/hash/RipeMD160.java,
	* gnu/java/security/hash/Sha160.java,
	* gnu/java/security/hash/Sha256.java,
	* gnu/java/security/hash/Sha384.java,
	* gnu/java/security/hash/Sha512.java,
	* gnu/java/security/hash/Tiger.java,
	* gnu/java/security/hash/Whirlpool.java,
	* gnu/java/security/jce/hash/HavalSpi.java,
	* gnu/java/security/jce/hash/MD2Spi.java,
	* gnu/java/security/jce/hash/MD4Spi.java,
	* gnu/java/security/jce/hash/MD5Spi.java,
	* gnu/java/security/jce/hash/MessageDigestAdapter.java,
	* gnu/java/security/jce/hash/RipeMD128Spi.java,
	* gnu/java/security/jce/hash/RipeMD160Spi.java,
	* gnu/java/security/jce/hash/Sha160Spi.java,
	* gnu/java/security/jce/hash/Sha256Spi.java,
	* gnu/java/security/jce/hash/Sha384Spi.java,
	* gnu/java/security/jce/hash/Sha512Spi.java,
	* gnu/java/security/jce/hash/TigerSpi.java,
	* gnu/java/security/jce/hash/WhirlpoolSpi.java,
	* gnu/java/security/jce/prng/HavalRandomSpi.java,
	* gnu/java/security/jce/prng/MD2RandomSpi.java,
	* gnu/java/security/jce/prng/MD4RandomSpi.java,
	* gnu/java/security/jce/prng/MD5RandomSpi.java,
	* gnu/java/security/jce/prng/RipeMD128RandomSpi.java,
	* gnu/java/security/jce/prng/RipeMD160RandomSpi.java,
	* gnu/java/security/jce/prng/SecureRandomAdapter.java,
	* gnu/java/security/jce/prng/Sha160RandomSpi.java,
	* gnu/java/security/jce/prng/Sha256RandomSpi.java,
	* gnu/java/security/jce/prng/Sha384RandomSpi.java,
	* gnu/java/security/jce/prng/Sha512RandomSpi.java,
	* gnu/java/security/jce/prng/TigerRandomSpi.java,
	* gnu/java/security/jce/prng/WhirlpoolRandomSpi.java,
	* gnu/java/security/jce/sig/DSSKeyFactory.java,
	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java,
	* gnu/java/security/jce/sig/DSSParameters.java,
	* gnu/java/security/jce/sig/DSSRawSignatureSpi.java,
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java,
	* gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java,
	* gnu/java/security/jce/sig/SignatureAdapter.java,
	* gnu/java/security/key/IKeyPairCodec.java,
	* gnu/java/security/key/IKeyPairGenerator.java,
	* gnu/java/security/key/KeyPairCodecFactory.java,
	* gnu/java/security/key/KeyPairGeneratorFactory.java,
	* gnu/java/security/key/dss/DSSKey.java,
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java,
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java,
	* gnu/java/security/key/dss/DSSKeyPairRawCodec.java,
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java,
	* gnu/java/security/key/dss/DSSPrivateKey.java,
	* gnu/java/security/key/dss/DSSPublicKey.java,
	* gnu/java/security/key/dss/FIPS186.java,
	* gnu/java/security/key/rsa/GnuRSAKey.java,
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java,
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java,
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java,
	* gnu/java/security/key/rsa/RSAKeyPairRawCodec.java,
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java,
	* gnu/java/security/pkcs/PKCS7Data.java,
	* gnu/java/security/pkcs/PKCS7SignedData.java,
	* gnu/java/security/pkcs/SignerInfo.java,
	* gnu/java/security/prng/BasePRNG.java,
	* gnu/java/security/prng/EntropySource.java,
	* gnu/java/security/prng/IRandom.java,
	* gnu/java/security/prng/LimitReachedException.java,
	* gnu/java/security/prng/MDGenerator.java,
	* gnu/java/security/prng/PRNGFactory.java,
	* gnu/java/security/prng/RandomEventListener.java,
	* gnu/java/security/provider/DefaultPolicy.java,
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java,
	* gnu/java/security/sig/BaseSignature.java,
	* gnu/java/security/sig/ISignature.java,
	* gnu/java/security/sig/ISignatureCodec.java,
	* gnu/java/security/sig/SignatureCodecFactory.java,
	* gnu/java/security/sig/SignatureFactory.java,
	* gnu/java/security/sig/dss/DSSSignature.java,
	* gnu/java/security/sig/dss/DSSSignatureRawCodec.java,
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java,
	* gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java,
	* gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java,
	* gnu/java/security/sig/rsa/EMSA_PSS.java,
	* gnu/java/security/sig/rsa/RSA.java,
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java,
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java,
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java,
	* gnu/java/security/sig/rsa/RSAPSSSignature.java,
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java,
	* gnu/java/security/sig/rsa/RSASignatureFactory.java,
	* gnu/java/security/util/ByteArray.java,
	* gnu/java/security/util/ByteBufferOutputStream.java,
	* gnu/java/security/util/ExpirableObject.java,
	* gnu/java/security/util/FormatUtil.java,
	* gnu/java/security/util/IntegerUtil.java,
	* gnu/java/security/util/PRNG.java,
	* gnu/java/security/util/Prime.java,
	* gnu/java/security/util/Sequence.java,
	* gnu/java/security/util/SimpleList.java,
	* gnu/java/security/util/Util.java,
	* gnu/java/security/x509/X509CRLSelectorImpl.java,
	* gnu/java/security/x509/X509CertSelectorImpl.java,
	* gnu/java/security/x509/ext/CertificatePolicies.java,
	* gnu/java/security/x509/ext/GeneralName.java,
	* gnu/java/security/x509/ext/GeneralSubtree.java,
	* gnu/java/security/x509/ext/NameConstraints.java,
	* gnu/java/text/AttributedFormatBuffer.java,
	* gnu/java/text/BaseBreakIterator.java,
	* gnu/java/text/CharacterBreakIterator.java,
	* gnu/java/text/FormatBuffer.java,
	* gnu/java/text/FormatCharacterIterator.java,
	* gnu/java/text/LineBreakIterator.java,
	* gnu/java/text/SentenceBreakIterator.java,
	* gnu/java/text/StringFormatBuffer.java,
	* gnu/java/text/WordBreakIterator.java,
	* gnu/java/util/Base64.java,
	* gnu/java/util/DoubleEnumeration.java,
	* gnu/java/util/EmptyEnumeration.java,
	* gnu/java/util/WeakIdentityHashMap.java,
	* gnu/java/util/ZoneInfo.java,
	* gnu/java/util/jar/JarUtils.java,
	* gnu/java/util/prefs/FileBasedFactory.java,
	* gnu/java/util/prefs/FileBasedPreferences.java,
	* gnu/java/util/prefs/GConfBasedFactory.java,
	* gnu/java/util/prefs/GConfBasedPreferences.java,
	* gnu/java/util/prefs/MemoryBasedFactory.java,
	* gnu/java/util/prefs/MemoryBasedPreferences.java,
	* gnu/java/util/prefs/NodeReader.java,
	* gnu/java/util/prefs/NodeWriter.java,
	* gnu/java/util/prefs/gconf/GConfNativePeer.java,
	* gnu/java/util/regex/BacktrackStack.java,
	* gnu/java/util/regex/CharIndexed.java,
	* gnu/java/util/regex/CharIndexedInputStream.java,
	* gnu/java/util/regex/RE.java,
	* gnu/java/util/regex/REFilterInputStream.java,
	* gnu/java/util/regex/REMatch.java,
	* gnu/java/util/regex/REMatchEnumeration.java,
	* gnu/java/util/regex/RESyntax.java,
	* gnu/java/util/regex/REToken.java,
	* gnu/java/util/regex/RETokenAny.java,
	* gnu/java/util/regex/RETokenBackRef.java,
	* gnu/java/util/regex/RETokenChar.java,
	* gnu/java/util/regex/RETokenEnd.java,
	* gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
	* gnu/java/util/regex/RETokenIndependent.java,
	* gnu/java/util/regex/RETokenLookAhead.java,
	* gnu/java/util/regex/RETokenLookBehind.java,
	* gnu/java/util/regex/RETokenNamedProperty.java,
	* gnu/java/util/regex/RETokenOneOf.java,
	* gnu/java/util/regex/RETokenPOSIX.java,
	* gnu/java/util/regex/RETokenRange.java,
	* gnu/java/util/regex/RETokenRepeated.java,
	* gnu/java/util/regex/RETokenStart.java,
	* gnu/java/util/regex/RETokenWordBoundary.java,
	* gnu/java/util/regex/UncheckedRE.java,
	* gnu/javax/activation/viewers/ImageViewer.java,
	* gnu/javax/activation/viewers/TextEditor.java,
	* gnu/javax/activation/viewers/TextViewer.java,
	* gnu/javax/crypto/assembly/Assembly.java,
	* gnu/javax/crypto/assembly/Cascade.java,
	* gnu/javax/crypto/assembly/CascadeStage.java,
	* gnu/javax/crypto/assembly/CascadeTransformer.java,
	* gnu/javax/crypto/assembly/DeflateTransformer.java,
	* gnu/javax/crypto/assembly/Direction.java,
	* gnu/javax/crypto/assembly/LoopbackTransformer.java,
	* gnu/javax/crypto/assembly/ModeStage.java,
	* gnu/javax/crypto/assembly/Operation.java,
	* gnu/javax/crypto/assembly/PaddingTransformer.java,
	* gnu/javax/crypto/assembly/Stage.java,
	* gnu/javax/crypto/assembly/Transformer.java,
	* gnu/javax/crypto/assembly/TransformerException.java,
	* gnu/javax/crypto/cipher/Anubis.java,
	* gnu/javax/crypto/cipher/BaseCipher.java,
	* gnu/javax/crypto/cipher/Blowfish.java,
	* gnu/javax/crypto/cipher/Cast5.java,
	* gnu/javax/crypto/cipher/CipherFactory.java,
	* gnu/javax/crypto/cipher/DES.java,
	* gnu/javax/crypto/cipher/IBlockCipher.java,
	* gnu/javax/crypto/cipher/IBlockCipherSpi.java,
	* gnu/javax/crypto/cipher/Khazad.java,
	* gnu/javax/crypto/cipher/NullCipher.java,
	* gnu/javax/crypto/cipher/Rijndael.java,
	* gnu/javax/crypto/cipher/Serpent.java,
	* gnu/javax/crypto/cipher/Square.java,
	* gnu/javax/crypto/cipher/TripleDES.java,
	* gnu/javax/crypto/cipher/Twofish.java,
	* gnu/javax/crypto/cipher/WeakKeyException.java,
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java,
	* gnu/javax/crypto/jce/GnuCrypto.java,
	* gnu/javax/crypto/jce/GnuSasl.java,
	* gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java,
	* gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java,
	* gnu/javax/crypto/jce/cipher/AESSpi.java,
	* gnu/javax/crypto/jce/cipher/ARCFourSpi.java,
	* gnu/javax/crypto/jce/cipher/AnubisSpi.java,
	* gnu/javax/crypto/jce/cipher/BlowfishSpi.java,
	* gnu/javax/crypto/jce/cipher/Cast5Spi.java,
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java,
	* gnu/javax/crypto/jce/cipher/DESSpi.java,
	* gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java,
	* gnu/javax/crypto/jce/cipher/KhazadSpi.java,
	* gnu/javax/crypto/jce/cipher/NullCipherSpi.java,
	* gnu/javax/crypto/jce/cipher/PBES2.java,
	* gnu/javax/crypto/jce/cipher/RijndaelSpi.java,
	* gnu/javax/crypto/jce/cipher/SerpentSpi.java,
	* gnu/javax/crypto/jce/cipher/SquareSpi.java,
	* gnu/javax/crypto/jce/cipher/TripleDESSpi.java,
	* gnu/javax/crypto/jce/cipher/TwofishSpi.java,
	* gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java,
	* gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java,
	* gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java,
	* gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java,
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java,
	* gnu/javax/crypto/jce/mac/HMacHavalSpi.java,
	* gnu/javax/crypto/jce/mac/HMacMD2Spi.java,
	* gnu/javax/crypto/jce/mac/HMacMD4Spi.java,
	* gnu/javax/crypto/jce/mac/HMacMD5Spi.java,
	* gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java,
	* gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA160Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA256Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA384Spi.java,
	* gnu/javax/crypto/jce/mac/HMacSHA512Spi.java,
	* gnu/javax/crypto/jce/mac/HMacTigerSpi.java,
	* gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java,
	* gnu/javax/crypto/jce/mac/MacAdapter.java,
	* gnu/javax/crypto/jce/mac/TMMH16Spi.java,
	* gnu/javax/crypto/jce/mac/UHash32Spi.java,
	* gnu/javax/crypto/jce/mac/UMac32Spi.java,
	* gnu/javax/crypto/jce/params/BlockCipherParameters.java,
	* gnu/javax/crypto/jce/params/DEREncodingException.java,
	* gnu/javax/crypto/jce/params/DERReader.java,
	* gnu/javax/crypto/jce/params/DERWriter.java,
	* gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java,
	* gnu/javax/crypto/jce/prng/CSPRNGSpi.java,
	* gnu/javax/crypto/jce/prng/FortunaImpl.java,
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java,
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java,
	* gnu/javax/crypto/jce/sig/DHParameters.java,
	* gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java,
	* gnu/javax/crypto/jce/spec/TMMHParameterSpec.java,
	* gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java,
	* gnu/javax/crypto/key/BaseKeyAgreementParty.java,
	* gnu/javax/crypto/key/GnuPBEKey.java,
	* gnu/javax/crypto/key/GnuSecretKey.java,
	* gnu/javax/crypto/key/IKeyAgreementParty.java,
	* gnu/javax/crypto/key/IncomingMessage.java,
	* gnu/javax/crypto/key/KeyAgreementException.java,
	* gnu/javax/crypto/key/KeyAgreementFactory.java,
	* gnu/javax/crypto/key/OutgoingMessage.java,
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java,
	* gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java,
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java,
	* gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java,
	* gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java,
	* gnu/javax/crypto/key/dh/DiffieHellmanSender.java,
	* gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java,
	* gnu/javax/crypto/key/dh/ElGamalReceiver.java,
	* gnu/javax/crypto/key/dh/ElGamalSender.java,
	* gnu/javax/crypto/key/dh/GnuDHKey.java,
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java,
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java,
	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java,
	* gnu/javax/crypto/key/dh/RFC2631.java,
	* gnu/javax/crypto/key/srp6/SRP6Host.java,
	* gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java,
	* gnu/javax/crypto/key/srp6/SRP6SaslClient.java,
	* gnu/javax/crypto/key/srp6/SRP6SaslServer.java,
	* gnu/javax/crypto/key/srp6/SRP6TLSClient.java,
	* gnu/javax/crypto/key/srp6/SRP6TLSServer.java,
	* gnu/javax/crypto/key/srp6/SRP6User.java,
	* gnu/javax/crypto/key/srp6/SRPAlgorithm.java,
	* gnu/javax/crypto/key/srp6/SRPKey.java,
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java,
	* gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java,
	* gnu/javax/crypto/key/srp6/SRPPrivateKey.java,
	* gnu/javax/crypto/key/srp6/SRPPublicKey.java,
	* gnu/javax/crypto/keyring/AuthenticatedEntry.java,
	* gnu/javax/crypto/keyring/BaseKeyring.java,
	* gnu/javax/crypto/keyring/BinaryDataEntry.java,
	* gnu/javax/crypto/keyring/CertPathEntry.java,
	* gnu/javax/crypto/keyring/CertificateEntry.java,
	* gnu/javax/crypto/keyring/CompressedEntry.java,
	* gnu/javax/crypto/keyring/EncryptedEntry.java,
	* gnu/javax/crypto/keyring/Entry.java,
	* gnu/javax/crypto/keyring/EnvelopeEntry.java,
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java,
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java,
	* gnu/javax/crypto/keyring/IKeyring.java,
	* gnu/javax/crypto/keyring/IPrivateKeyring.java,
	* gnu/javax/crypto/keyring/IPublicKeyring.java,
	* gnu/javax/crypto/keyring/MalformedKeyringException.java,
	* gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java,
	* gnu/javax/crypto/keyring/MeteredInputStream.java,
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java,
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java,
	* gnu/javax/crypto/keyring/PasswordProtectedEntry.java,
	* gnu/javax/crypto/keyring/PrimitiveEntry.java,
	* gnu/javax/crypto/keyring/PrivateKeyEntry.java,
	* gnu/javax/crypto/keyring/Properties.java,
	* gnu/javax/crypto/keyring/PublicKeyEntry.java,
	* gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java,
	* gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java,
	* gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java,
	* gnu/javax/crypto/kwa/TripleDESKeyWrap.java,
	* gnu/javax/crypto/mac/BaseMac.java,
	* gnu/javax/crypto/mac/HMac.java,
	* gnu/javax/crypto/mac/HMacFactory.java,
	* gnu/javax/crypto/mac/IMac.java,
	* gnu/javax/crypto/mac/MacFactory.java,
	* gnu/javax/crypto/mac/MacInputStream.java,
	* gnu/javax/crypto/mac/MacOutputStream.java,
	* gnu/javax/crypto/mac/OMAC.java,
	* gnu/javax/crypto/mac/TMMH16.java,
	* gnu/javax/crypto/mac/UHash32.java,
	* gnu/javax/crypto/mac/UMac32.java,
	* gnu/javax/crypto/mode/BaseMode.java,
	* gnu/javax/crypto/mode/CBC.java,
	* gnu/javax/crypto/mode/CFB.java,
	* gnu/javax/crypto/mode/CTR.java,
	* gnu/javax/crypto/mode/EAX.java,
	* gnu/javax/crypto/mode/ECB.java,
	* gnu/javax/crypto/mode/IAuthenticatedMode.java,
	* gnu/javax/crypto/mode/ICM.java,
	* gnu/javax/crypto/mode/IMode.java,
	* gnu/javax/crypto/mode/ModeFactory.java,
	* gnu/javax/crypto/mode/OFB.java,
	* gnu/javax/crypto/pad/BasePad.java,
	* gnu/javax/crypto/pad/IPad.java,
	* gnu/javax/crypto/pad/PKCS1_V1_5.java,
	* gnu/javax/crypto/pad/PKCS7.java,
	* gnu/javax/crypto/pad/PadFactory.java,
	* gnu/javax/crypto/pad/TBC.java,
	* gnu/javax/crypto/pad/WrongPaddingException.java,
	* gnu/javax/crypto/prng/ARCFour.java,
	* gnu/javax/crypto/prng/CSPRNG.java,
	* gnu/javax/crypto/prng/ICMGenerator.java,
	* gnu/javax/crypto/prng/IPBE.java,
	* gnu/javax/crypto/prng/PBKDF2.java,
	* gnu/javax/crypto/prng/PRNGFactory.java,
	* gnu/javax/crypto/prng/UMacGenerator.java,
	* gnu/javax/crypto/sasl/AuthInfo.java,
	* gnu/javax/crypto/sasl/AuthInfoProviderFactory.java,
	* gnu/javax/crypto/sasl/ClientFactory.java,
	* gnu/javax/crypto/sasl/ClientMechanism.java,
	* gnu/javax/crypto/sasl/ConfidentialityException.java,
	* gnu/javax/crypto/sasl/IAuthInfoProvider.java,
	* gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java,
	* gnu/javax/crypto/sasl/IllegalMechanismStateException.java,
	* gnu/javax/crypto/sasl/InputBuffer.java,
	* gnu/javax/crypto/sasl/IntegrityException.java,
	* gnu/javax/crypto/sasl/NoSuchMechanismException.java,
	* gnu/javax/crypto/sasl/NoSuchUserException.java,
	* gnu/javax/crypto/sasl/OutputBuffer.java,
	* gnu/javax/crypto/sasl/SaslEncodingException.java,
	* gnu/javax/crypto/sasl/SaslInputStream.java,
	* gnu/javax/crypto/sasl/SaslOutputStream.java,
	* gnu/javax/crypto/sasl/SaslUtil.java,
	* gnu/javax/crypto/sasl/ServerFactory.java,
	* gnu/javax/crypto/sasl/ServerMechanism.java,
	* gnu/javax/crypto/sasl/UserAlreadyExistsException.java,
	* gnu/javax/crypto/sasl/anonymous/AnonymousClient.java,
	* gnu/javax/crypto/sasl/anonymous/AnonymousServer.java,
	* gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java,
	* gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java,
	* gnu/javax/crypto/sasl/crammd5/CramMD5Client.java,
	* gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java,
	* gnu/javax/crypto/sasl/crammd5/CramMD5Server.java,
	* gnu/javax/crypto/sasl/crammd5/CramMD5Util.java,
	* gnu/javax/crypto/sasl/crammd5/PasswordFile.java,
	* gnu/javax/crypto/sasl/plain/PasswordFile.java,
	* gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java,
	* gnu/javax/crypto/sasl/plain/PlainClient.java,
	* gnu/javax/crypto/sasl/plain/PlainRegistry.java,
	* gnu/javax/crypto/sasl/plain/PlainServer.java,
	* gnu/javax/crypto/sasl/srp/CALG.java,
	* gnu/javax/crypto/sasl/srp/ClientStore.java,
	* gnu/javax/crypto/sasl/srp/IALG.java,
	* gnu/javax/crypto/sasl/srp/KDF.java,
	* gnu/javax/crypto/sasl/srp/PasswordFile.java,
	* gnu/javax/crypto/sasl/srp/SRP.java,
	* gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java,
	* gnu/javax/crypto/sasl/srp/SRPClient.java,
	* gnu/javax/crypto/sasl/srp/SRPRegistry.java,
	* gnu/javax/crypto/sasl/srp/SRPServer.java,
	* gnu/javax/crypto/sasl/srp/SecurityContext.java,
	* gnu/javax/crypto/sasl/srp/ServerStore.java,
	* gnu/javax/crypto/sasl/srp/StoreEntry.java,
	* gnu/javax/imageio/IIOInputStream.java,
	* gnu/javax/imageio/bmp/BMPDecoder.java,
	* gnu/javax/imageio/bmp/BMPEncoder.java,
	* gnu/javax/imageio/bmp/BMPException.java,
	* gnu/javax/imageio/bmp/BMPFileHeader.java,
	* gnu/javax/imageio/bmp/BMPImageReader.java,
	* gnu/javax/imageio/bmp/BMPImageReaderSpi.java,
	* gnu/javax/imageio/bmp/BMPImageWriter.java,
	* gnu/javax/imageio/bmp/BMPImageWriterSpi.java,
	* gnu/javax/imageio/bmp/BMPInfoHeader.java,
	* gnu/javax/imageio/bmp/DecodeBF16.java,
	* gnu/javax/imageio/bmp/DecodeBF32.java,
	* gnu/javax/imageio/bmp/DecodeRGB1.java,
	* gnu/javax/imageio/bmp/DecodeRGB24.java,
	* gnu/javax/imageio/bmp/DecodeRGB4.java,
	* gnu/javax/imageio/bmp/DecodeRGB8.java,
	* gnu/javax/imageio/bmp/DecodeRLE4.java,
	* gnu/javax/imageio/bmp/DecodeRLE8.java,
	* gnu/javax/imageio/bmp/EncodeRGB1.java,
	* gnu/javax/imageio/bmp/EncodeRGB16.java,
	* gnu/javax/imageio/bmp/EncodeRGB24.java,
	* gnu/javax/imageio/bmp/EncodeRGB32.java,
	* gnu/javax/imageio/bmp/EncodeRGB4.java,
	* gnu/javax/imageio/bmp/EncodeRGB8.java,
	* gnu/javax/imageio/bmp/EncodeRLE4.java,
	* gnu/javax/imageio/bmp/EncodeRLE8.java,
	* gnu/javax/imageio/gif/GIFFile.java,
	* gnu/javax/imageio/gif/GIFImageReader.java,
	* gnu/javax/imageio/gif/GIFImageReaderSpi.java,
	* gnu/javax/imageio/jpeg/DCT.java,
	* gnu/javax/imageio/jpeg/JPEGComponent.java,
	* gnu/javax/imageio/jpeg/JPEGDecoder.java,
	* gnu/javax/imageio/jpeg/JPEGImageInputStream.java,
	* gnu/javax/imageio/jpeg/JPEGImageReader.java,
	* gnu/javax/imageio/jpeg/JPEGImageReaderSpi.java,
	* gnu/javax/imageio/jpeg/JPEGMarker.java,
	* gnu/javax/imageio/jpeg/ZigZag.java,
	* gnu/javax/imageio/png/PNGChunk.java,
	* gnu/javax/imageio/png/PNGData.java,
	* gnu/javax/imageio/png/PNGDecoder.java,
	* gnu/javax/imageio/png/PNGEncoder.java,
	* gnu/javax/imageio/png/PNGException.java,
	* gnu/javax/imageio/png/PNGFile.java,
	* gnu/javax/imageio/png/PNGFilter.java,
	* gnu/javax/imageio/png/PNGGamma.java,
	* gnu/javax/imageio/png/PNGHeader.java,
	* gnu/javax/imageio/png/PNGICCProfile.java,
	* gnu/javax/imageio/png/PNGImageReader.java,
	* gnu/javax/imageio/png/PNGPalette.java,
	* gnu/javax/imageio/png/PNGPhys.java,
	* gnu/javax/imageio/png/PNGTime.java,
	* gnu/javax/management/ListenerData.java,
	* gnu/javax/management/Server.java,
	* gnu/javax/management/Translator.java,
	* gnu/javax/naming/giop/ContextContinuation.java,
	* gnu/javax/naming/giop/CorbalocParser.java,
	* gnu/javax/naming/giop/GiopNamingEnumeration.java,
	* gnu/javax/naming/giop/GiopNamingServiceFactory.java,
	* gnu/javax/naming/giop/GiopNamingServiceURLContext.java,
	* gnu/javax/naming/giop/ListBindingsEnumeration.java,
	* gnu/javax/naming/giop/ListEnumeration.java,
	* gnu/javax/naming/ictxImpl/trans/GnuName.java,
	* gnu/javax/naming/jndi/url/corbaname/corbanameURLContextFactory.java,
	* gnu/javax/naming/jndi/url/rmi/ContextContinuation.java,
	* gnu/javax/naming/jndi/url/rmi/ListBindingsEnumeration.java,
	* gnu/javax/naming/jndi/url/rmi/ListEnumeration.java,
	* gnu/javax/naming/jndi/url/rmi/RmiContinuation.java,
	* gnu/javax/naming/jndi/url/rmi/RmiNamingEnumeration.java,
	* gnu/javax/naming/jndi/url/rmi/rmiURLContext.java,
	* gnu/javax/naming/jndi/url/rmi/rmiURLContextFactory.java,
	* gnu/javax/net/ssl/AbstractSessionContext.java,
	* gnu/javax/net/ssl/PreSharedKeyManager.java,
	* gnu/javax/net/ssl/PreSharedKeyManagerParameters.java,
	* gnu/javax/net/ssl/SSLCipherSuite.java,
	* gnu/javax/net/ssl/SSLRecordHandler.java,
	* gnu/javax/net/ssl/Session.java,
	* gnu/javax/net/ssl/SessionStoreException.java,
	* gnu/javax/net/ssl/provider/AbstractHandshake.java,
	* gnu/javax/net/ssl/provider/Alert.java,
	* gnu/javax/net/ssl/provider/AlertException.java,
	* gnu/javax/net/ssl/provider/Builder.java,
	* gnu/javax/net/ssl/provider/Certificate.java,
	* gnu/javax/net/ssl/provider/CertificateBuilder.java,
	* gnu/javax/net/ssl/provider/CertificateRequest.java,
	* gnu/javax/net/ssl/provider/CertificateRequestBuilder.java,
	* gnu/javax/net/ssl/provider/CertificateStatusRequest.java,
	* gnu/javax/net/ssl/provider/CertificateStatusType.java,
	* gnu/javax/net/ssl/provider/CertificateURL.java,
	* gnu/javax/net/ssl/provider/CertificateVerify.java,
	* gnu/javax/net/ssl/provider/CipherSuite.java,
	* gnu/javax/net/ssl/provider/CipherSuiteList.java,
	* gnu/javax/net/ssl/provider/ClientCertificateTypeList.java,
	* gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java,
	* gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java,
	* gnu/javax/net/ssl/provider/ClientHandshake.java,
	* gnu/javax/net/ssl/provider/ClientHello.java,
	* gnu/javax/net/ssl/provider/ClientHelloBuilder.java,
	* gnu/javax/net/ssl/provider/ClientHelloV2.java,
	* gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java,
	* gnu/javax/net/ssl/provider/ClientPSKParameters.java,
	* gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java,
	* gnu/javax/net/ssl/provider/CompressionMethod.java,
	* gnu/javax/net/ssl/provider/CompressionMethodList.java,
	* gnu/javax/net/ssl/provider/Constructed.java,
	* gnu/javax/net/ssl/provider/Debug.java,
	* gnu/javax/net/ssl/provider/DelegatedTask.java,
	* gnu/javax/net/ssl/provider/EmptyExchangeKeys.java,
	* gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java,
	* gnu/javax/net/ssl/provider/ExchangeKeys.java,
	* gnu/javax/net/ssl/provider/Extension.java,
	* gnu/javax/net/ssl/provider/ExtensionList.java,
	* gnu/javax/net/ssl/provider/Handshake.java,
	* gnu/javax/net/ssl/provider/InputSecurityParameters.java,
	* gnu/javax/net/ssl/provider/Jessie.java,
	* gnu/javax/net/ssl/provider/MaxFragmentLength.java,
	* gnu/javax/net/ssl/provider/OutputSecurityParameters.java,
	* gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java,
	* gnu/javax/net/ssl/provider/Random.java,
	* gnu/javax/net/ssl/provider/SSLContextImpl.java,
	* gnu/javax/net/ssl/provider/SSLEngineImpl.java,
	* gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java,
	* gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java,
	* gnu/javax/net/ssl/provider/SSLServerSocketImpl.java,
	* gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java,
	* gnu/javax/net/ssl/provider/SSLSocketImpl.java,
	* gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java,
	* gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java,
	* gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java,
	* gnu/javax/net/ssl/provider/ServerDHParams.java,
	* gnu/javax/net/ssl/provider/ServerHandshake.java,
	* gnu/javax/net/ssl/provider/ServerHello.java,
	* gnu/javax/net/ssl/provider/ServerHelloBuilder.java,
	* gnu/javax/net/ssl/provider/ServerHelloDone.java,
	* gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java,
	* gnu/javax/net/ssl/provider/ServerNameList.java,
	* gnu/javax/net/ssl/provider/ServerPSKParameters.java,
	* gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java,
	* gnu/javax/net/ssl/provider/SessionImpl.java,
	* gnu/javax/net/ssl/provider/Signature.java,
	* gnu/javax/net/ssl/provider/SignatureAlgorithm.java,
	* gnu/javax/net/ssl/provider/SimpleSessionContext.java,
	* gnu/javax/net/ssl/provider/TruncatedHMAC.java,
	* gnu/javax/net/ssl/provider/TrustedAuthorities.java,
	* gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java,
	* gnu/javax/net/ssl/provider/Util.java,
	* gnu/javax/net/ssl/provider/X500PrincipalList.java,
	* gnu/javax/net/ssl/provider/X509KeyManagerFactory.java,
	* gnu/javax/net/ssl/provider/X509TrustManagerFactory.java,
	* gnu/javax/print/ipp/IppRequest.java,
	* gnu/javax/rmi/CORBA/CorbaInput.java,
	* gnu/javax/rmi/CORBA/CorbaOutput.java,
	* gnu/javax/rmi/CORBA/DefaultWriteObjectTester.java,
	* gnu/javax/rmi/CORBA/DelegateFactory.java,
	* gnu/javax/rmi/CORBA/GetDelegateInstanceException.java,
	* gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
	* gnu/javax/rmi/CORBA/RmiUtilities.java,
	* gnu/javax/rmi/CORBA/StubDelegateImpl.java,
	* gnu/javax/rmi/CORBA/TieTargetRecord.java,
	* gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
	* gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java,
	* gnu/javax/security/auth/callback/AWTCallbackHandler.java,
	* gnu/javax/security/auth/callback/AbstractCallbackHandler.java,
	* gnu/javax/security/auth/callback/CertificateCallback.java,
	* gnu/javax/security/auth/callback/ConsoleCallbackHandler.java,
	* gnu/javax/security/auth/callback/DefaultCallbackHandler.java,
	* gnu/javax/security/auth/callback/SwingCallbackHandler.java,
	* gnu/javax/security/auth/login/ConfigFileParser.java,
	* gnu/javax/security/auth/login/ConfigFileTokenizer.java,
	* gnu/javax/security/auth/login/GnuConfiguration.java,
	* gnu/javax/sound/AudioSecurityManager.java,
	* gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java,
	* gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java,
	* gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java,
	* gnu/javax/sound/midi/alsa/AlsaOutputPortDevice.java,
	* gnu/javax/sound/midi/alsa/AlsaPortDevice.java,
	* gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java,
	* gnu/javax/sound/midi/dssi/DSSISynthesizer.java,
	* gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java,
	* gnu/javax/sound/midi/file/MidiDataInputStream.java,
	* gnu/javax/sound/midi/file/MidiDataOutputStream.java,
	* gnu/javax/sound/midi/file/MidiFileReader.java,
	* gnu/javax/sound/midi/file/MidiFileWriter.java,
	* gnu/javax/sound/sampled/AU/AUReader.java,
	* gnu/javax/sound/sampled/WAV/WAVReader.java,
	* gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java,
	* gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java,
	* gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java,
	* gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java,
	* gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java,
	* gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java,
	* gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java,
	* gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java,
	* gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java,
	* gnu/javax/swing/plaf/gnu/GNULookAndFeel.java,
	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java,
	* gnu/javax/swing/text/html/CombinedAttributes.java,
	* gnu/javax/swing/text/html/ImageViewIconFactory.java,
	* gnu/javax/swing/text/html/css/BorderStyle.java,
	* gnu/javax/swing/text/html/css/CSSParser.java,
	* gnu/javax/swing/text/html/css/CSSScanner.java,
	* gnu/javax/swing/text/html/css/Selector.java,
	* gnu/javax/swing/text/html/parser/GnuParserDelegator.java,
	* gnu/javax/swing/text/html/parser/HTML_401F.java,
	* gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java,
	* gnu/javax/swing/text/html/parser/htmlAttributeSet.java,
	* gnu/javax/swing/text/html/parser/htmlValidator.java,
	* gnu/javax/swing/text/html/parser/models/list.java,
	* gnu/javax/swing/text/html/parser/support/Parser.java,
	* gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java,
	* gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
	* gnu/javax/swing/tree/GnuPath.java,
	* gnu/test/Fail.java,
	* gnu/test/Pass.java,
	* gnu/test/Test.java,
	* gnu/test/Unsupported.java,
	* gnu/xml/aelfred2/JAXPFactory.java,
	* gnu/xml/aelfred2/SAXDriver.java,
	* gnu/xml/aelfred2/XmlParser.java,
	* gnu/xml/aelfred2/XmlReader.java,
	* gnu/xml/dom/Consumer.java,
	* gnu/xml/dom/DTDAttributeTypeInfo.java,
	* gnu/xml/dom/DTDElementTypeInfo.java,
	* gnu/xml/dom/DomAttr.java,
	* gnu/xml/dom/DomCDATASection.java,
	* gnu/xml/dom/DomCharacterData.java,
	* gnu/xml/dom/DomComment.java,
	* gnu/xml/dom/DomDOMException.java,
	* gnu/xml/dom/DomDoctype.java,
	* gnu/xml/dom/DomDocument.java,
	* gnu/xml/dom/DomDocumentBuilder.java,
	* gnu/xml/dom/DomDocumentBuilderFactory.java,
	* gnu/xml/dom/DomDocumentConfiguration.java,
	* gnu/xml/dom/DomDocumentFragment.java,
	* gnu/xml/dom/DomElement.java,
	* gnu/xml/dom/DomEntity.java,
	* gnu/xml/dom/DomEntityReference.java,
	* gnu/xml/dom/DomEvent.java,
	* gnu/xml/dom/DomExtern.java,
	* gnu/xml/dom/DomImpl.java,
	* gnu/xml/dom/DomIterator.java,
	* gnu/xml/dom/DomNSResolverContext.java,
	* gnu/xml/dom/DomNamedNodeMap.java,
	* gnu/xml/dom/DomNode.java,
	* gnu/xml/dom/DomNodeIterator.java,
	* gnu/xml/dom/DomNotation.java,
	* gnu/xml/dom/DomNsNode.java,
	* gnu/xml/dom/DomProcessingInstruction.java,
	* gnu/xml/dom/DomText.java,
	* gnu/xml/dom/DomXPathExpression.java,
	* gnu/xml/dom/DomXPathNSResolver.java,
	* gnu/xml/dom/DomXPathResult.java,
	* gnu/xml/dom/ImplementationList.java,
	* gnu/xml/dom/ImplementationSource.java,
	* gnu/xml/dom/JAXPFactory.java,
	* gnu/xml/dom/html2/DomHTMLAnchorElement.java,
	* gnu/xml/dom/html2/DomHTMLAppletElement.java,
	* gnu/xml/dom/html2/DomHTMLAreaElement.java,
	* gnu/xml/dom/html2/DomHTMLBRElement.java,
	* gnu/xml/dom/html2/DomHTMLBaseElement.java,
	* gnu/xml/dom/html2/DomHTMLBaseFontElement.java,
	* gnu/xml/dom/html2/DomHTMLBodyElement.java,
	* gnu/xml/dom/html2/DomHTMLButtonElement.java,
	* gnu/xml/dom/html2/DomHTMLCollection.java,
	* gnu/xml/dom/html2/DomHTMLDListElement.java,
	* gnu/xml/dom/html2/DomHTMLDirectoryElement.java,
	* gnu/xml/dom/html2/DomHTMLDivElement.java,
	* gnu/xml/dom/html2/DomHTMLDocument.java,
	* gnu/xml/dom/html2/DomHTMLElement.java,
	* gnu/xml/dom/html2/DomHTMLEmbedElement.java,
	* gnu/xml/dom/html2/DomHTMLFieldSetElement.java,
	* gnu/xml/dom/html2/DomHTMLFontElement.java,
	* gnu/xml/dom/html2/DomHTMLFormElement.java,
	* gnu/xml/dom/html2/DomHTMLFrameElement.java,
	* gnu/xml/dom/html2/DomHTMLFrameSetElement.java,
	* gnu/xml/dom/html2/DomHTMLHRElement.java,
	* gnu/xml/dom/html2/DomHTMLHeadElement.java,
	* gnu/xml/dom/html2/DomHTMLHeadingElement.java,
	* gnu/xml/dom/html2/DomHTMLHtmlElement.java,
	* gnu/xml/dom/html2/DomHTMLIFrameElement.java,
	* gnu/xml/dom/html2/DomHTMLImageElement.java,
	* gnu/xml/dom/html2/DomHTMLImpl.java,
	* gnu/xml/dom/html2/DomHTMLInputElement.java,
	* gnu/xml/dom/html2/DomHTMLIsIndexElement.java,
	* gnu/xml/dom/html2/DomHTMLLIElement.java,
	* gnu/xml/dom/html2/DomHTMLLabelElement.java,
	* gnu/xml/dom/html2/DomHTMLLegendElement.java,
	* gnu/xml/dom/html2/DomHTMLLinkElement.java,
	* gnu/xml/dom/html2/DomHTMLMapElement.java,
	* gnu/xml/dom/html2/DomHTMLMenuElement.java,
	* gnu/xml/dom/html2/DomHTMLMetaElement.java,
	* gnu/xml/dom/html2/DomHTMLModElement.java,
	* gnu/xml/dom/html2/DomHTMLOListElement.java,
	* gnu/xml/dom/html2/DomHTMLObjectElement.java,
	* gnu/xml/dom/html2/DomHTMLOptGroupElement.java,
	* gnu/xml/dom/html2/DomHTMLOptionElement.java,
	* gnu/xml/dom/html2/DomHTMLParagraphElement.java,
	* gnu/xml/dom/html2/DomHTMLParamElement.java,
	* gnu/xml/dom/html2/DomHTMLParser.java,
	* gnu/xml/dom/html2/DomHTMLPreElement.java,
	* gnu/xml/dom/html2/DomHTMLQuoteElement.java,
	* gnu/xml/dom/html2/DomHTMLScriptElement.java,
	* gnu/xml/dom/html2/DomHTMLSelectElement.java,
	* gnu/xml/dom/html2/DomHTMLStyleElement.java,
	* gnu/xml/dom/html2/DomHTMLTableCaptionElement.java,
	* gnu/xml/dom/html2/DomHTMLTableCellElement.java,
	* gnu/xml/dom/html2/DomHTMLTableColElement.java,
	* gnu/xml/dom/html2/DomHTMLTableElement.java,
	* gnu/xml/dom/html2/DomHTMLTableRowElement.java,
	* gnu/xml/dom/html2/DomHTMLTableSectionElement.java,
	* gnu/xml/dom/html2/DomHTMLTextAreaElement.java,
	* gnu/xml/dom/html2/DomHTMLTitleElement.java,
	* gnu/xml/dom/html2/DomHTMLUListElement.java,
	* gnu/xml/dom/ls/DomLSException.java,
	* gnu/xml/dom/ls/DomLSInput.java,
	* gnu/xml/dom/ls/DomLSOutput.java,
	* gnu/xml/dom/ls/DomLSParser.java,
	* gnu/xml/dom/ls/DomLSSerializer.java,
	* gnu/xml/dom/ls/FilteredSAXEventSink.java,
	* gnu/xml/dom/ls/ReaderInputStream.java,
	* gnu/xml/dom/ls/SAXEventSink.java,
	* gnu/xml/dom/ls/WriterOutputStream.java,
	* gnu/xml/libxmlj/dom/GnomeAttr.java,
	* gnu/xml/libxmlj/dom/GnomeCDATASection.java,
	* gnu/xml/libxmlj/dom/GnomeCharacterData.java,
	* gnu/xml/libxmlj/dom/GnomeComment.java,
	* gnu/xml/libxmlj/dom/GnomeDOMException.java,
	* gnu/xml/libxmlj/dom/GnomeDOMStringList.java,
	* gnu/xml/libxmlj/dom/GnomeDocument.java,
	* gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java,
	* gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java,
	* gnu/xml/libxmlj/dom/GnomeDocumentFragment.java,
	* gnu/xml/libxmlj/dom/GnomeDocumentType.java,
	* gnu/xml/libxmlj/dom/GnomeElement.java,
	* gnu/xml/libxmlj/dom/GnomeEntity.java,
	* gnu/xml/libxmlj/dom/GnomeEntityReference.java,
	* gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java,
	* gnu/xml/libxmlj/dom/GnomeNode.java,
	* gnu/xml/libxmlj/dom/GnomeNodeList.java,
	* gnu/xml/libxmlj/dom/GnomeNotation.java,
	* gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java,
	* gnu/xml/libxmlj/dom/GnomeText.java,
	* gnu/xml/libxmlj/dom/GnomeTypeInfo.java,
	* gnu/xml/libxmlj/dom/GnomeXPathExpression.java,
	* gnu/xml/libxmlj/dom/GnomeXPathNSResolver.java,
	* gnu/xml/libxmlj/dom/GnomeXPathNodeList.java,
	* gnu/xml/libxmlj/dom/GnomeXPathResult.java,
	* gnu/xml/libxmlj/sax/GnomeLocator.java,
	* gnu/xml/libxmlj/sax/GnomeSAXParser.java,
	* gnu/xml/libxmlj/sax/GnomeSAXParserFactory.java,
	* gnu/xml/libxmlj/sax/GnomeXMLReader.java,
	* gnu/xml/libxmlj/sax/Namespaces.java,
	* gnu/xml/libxmlj/sax/StringArrayAttributes.java,
	* gnu/xml/libxmlj/sax/XMLName.java,
	* gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java,
	* gnu/xml/libxmlj/transform/GnomeTransformer.java,
	* gnu/xml/libxmlj/transform/GnomeTransformerFactory.java,
	* gnu/xml/libxmlj/transform/URIResolverEntityResolver.java,
	* gnu/xml/libxmlj/util/EmptyNodeList.java,
	* gnu/xml/libxmlj/util/NamedInputStream.java,
	* gnu/xml/libxmlj/util/StandaloneDocumentType.java,
	* gnu/xml/libxmlj/util/StandaloneLocator.java,
	* gnu/xml/libxmlj/util/XMLJ.java,
	* gnu/xml/pipeline/CallFilter.java,
	* gnu/xml/pipeline/DomConsumer.java,
	* gnu/xml/pipeline/EventConsumer.java,
	* gnu/xml/pipeline/EventFilter.java,
	* gnu/xml/pipeline/LinkFilter.java,
	* gnu/xml/pipeline/NSFilter.java,
	* gnu/xml/pipeline/PipelineFactory.java,
	* gnu/xml/pipeline/TeeConsumer.java,
	* gnu/xml/pipeline/TextConsumer.java,
	* gnu/xml/pipeline/ValidationConsumer.java,
	* gnu/xml/pipeline/WellFormednessFilter.java,
	* gnu/xml/pipeline/XIncludeFilter.java,
	* gnu/xml/pipeline/XsltFilter.java,
	* gnu/xml/stream/AttributeImpl.java,
	* gnu/xml/stream/BufferedReader.java,
	* gnu/xml/stream/CRLFReader.java,
	* gnu/xml/stream/CharactersImpl.java,
	* gnu/xml/stream/CommentImpl.java,
	* gnu/xml/stream/DTDImpl.java,
	* gnu/xml/stream/EndDocumentImpl.java,
	* gnu/xml/stream/EndElementImpl.java,
	* gnu/xml/stream/EntityDeclarationImpl.java,
	* gnu/xml/stream/EntityReferenceImpl.java,
	* gnu/xml/stream/FilteredEventReader.java,
	* gnu/xml/stream/FilteredStreamReader.java,
	* gnu/xml/stream/NamespaceImpl.java,
	* gnu/xml/stream/NotationDeclarationImpl.java,
	* gnu/xml/stream/ProcessingInstructionImpl.java,
	* gnu/xml/stream/SAXParser.java,
	* gnu/xml/stream/SAXParserFactory.java,
	* gnu/xml/stream/StartDocumentImpl.java,
	* gnu/xml/stream/StartElementImpl.java,
	* gnu/xml/stream/UnicodeReader.java,
	* gnu/xml/stream/XIncludeFilter.java,
	* gnu/xml/stream/XMLEventAllocatorImpl.java,
	* gnu/xml/stream/XMLEventFactoryImpl.java,
	* gnu/xml/stream/XMLEventImpl.java,
	* gnu/xml/stream/XMLEventReaderImpl.java,
	* gnu/xml/stream/XMLEventWriterImpl.java,
	* gnu/xml/stream/XMLInputFactoryImpl.java,
	* gnu/xml/stream/XMLOutputFactoryImpl.java,
	* gnu/xml/stream/XMLParser.java,
	* gnu/xml/stream/XMLStreamWriterImpl.java,
	* gnu/xml/transform/AbstractNumberNode.java,
	* gnu/xml/transform/ApplyImportsNode.java,
	* gnu/xml/transform/ApplyTemplatesNode.java,
	* gnu/xml/transform/AttributeNode.java,
	* gnu/xml/transform/AttributeSet.java,
	* gnu/xml/transform/Bindings.java,
	* gnu/xml/transform/CallTemplateNode.java,
	* gnu/xml/transform/ChooseNode.java,
	* gnu/xml/transform/CommentNode.java,
	* gnu/xml/transform/CopyNode.java,
	* gnu/xml/transform/CopyOfNode.java,
	* gnu/xml/transform/CurrentFunction.java,
	* gnu/xml/transform/DOMSourceLocator.java,
	* gnu/xml/transform/DocumentFunction.java,
	* gnu/xml/transform/ElementAvailableFunction.java,
	* gnu/xml/transform/ElementNode.java,
	* gnu/xml/transform/ErrorListenerErrorHandler.java,
	* gnu/xml/transform/ForEachNode.java,
	* gnu/xml/transform/FormatNumberFunction.java,
	* gnu/xml/transform/FunctionAvailableFunction.java,
	* gnu/xml/transform/GenerateIdFunction.java,
	* gnu/xml/transform/IfNode.java,
	* gnu/xml/transform/Key.java,
	* gnu/xml/transform/KeyFunction.java,
	* gnu/xml/transform/LiteralNode.java,
	* gnu/xml/transform/MessageNode.java,
	* gnu/xml/transform/NamespaceProxy.java,
	* gnu/xml/transform/NodeNumberNode.java,
	* gnu/xml/transform/NumberNode.java,
	* gnu/xml/transform/OtherwiseNode.java,
	* gnu/xml/transform/ParameterNode.java,
	* gnu/xml/transform/ProcessingInstructionNode.java,
	* gnu/xml/transform/SAXSerializer.java,
	* gnu/xml/transform/SAXTemplatesHandler.java,
	* gnu/xml/transform/SAXTransformerHandler.java,
	* gnu/xml/transform/SortKey.java,
	* gnu/xml/transform/StreamSerializer.java,
	* gnu/xml/transform/StrippingInstruction.java,
	* gnu/xml/transform/Stylesheet.java,
	* gnu/xml/transform/SystemPropertyFunction.java,
	* gnu/xml/transform/Template.java,
	* gnu/xml/transform/TemplateNode.java,
	* gnu/xml/transform/TemplatesImpl.java,
	* gnu/xml/transform/TextNode.java,
	* gnu/xml/transform/TransformerFactoryImpl.java,
	* gnu/xml/transform/TransformerImpl.java,
	* gnu/xml/transform/TransformerOutputProperties.java,
	* gnu/xml/transform/URIResolverEntityResolver.java,
	* gnu/xml/transform/UnparsedEntityUriFunction.java,
	* gnu/xml/transform/ValueOfNode.java,
	* gnu/xml/transform/WhenNode.java,
	* gnu/xml/transform/WithParam.java,
	* gnu/xml/transform/XSLComparator.java,
	* gnu/xml/transform/XSLURIResolver.java,
	* gnu/xml/util/DoParse.java,
	* gnu/xml/util/DomParser.java,
	* gnu/xml/util/Resolver.java,
	* gnu/xml/util/SAXNullTransformerFactory.java,
	* gnu/xml/util/XCat.java,
	* gnu/xml/util/XHTMLWriter.java,
	* gnu/xml/util/XMLWriter.java,
	* gnu/xml/validation/datatype/Annotation.java,
	* gnu/xml/validation/datatype/AnySimpleType.java,
	* gnu/xml/validation/datatype/AnyType.java,
	* gnu/xml/validation/datatype/AnyURIType.java,
	* gnu/xml/validation/datatype/AtomicSimpleType.java,
	* gnu/xml/validation/datatype/Base64BinaryType.java,
	* gnu/xml/validation/datatype/BooleanType.java,
	* gnu/xml/validation/datatype/ByteType.java,
	* gnu/xml/validation/datatype/DateTimeType.java,
	* gnu/xml/validation/datatype/DateType.java,
	* gnu/xml/validation/datatype/DecimalType.java,
	* gnu/xml/validation/datatype/DoubleType.java,
	* gnu/xml/validation/datatype/DurationType.java,
	* gnu/xml/validation/datatype/EntitiesType.java,
	* gnu/xml/validation/datatype/EntityType.java,
	* gnu/xml/validation/datatype/EnumerationFacet.java,
	* gnu/xml/validation/datatype/Facet.java,
	* gnu/xml/validation/datatype/FloatType.java,
	* gnu/xml/validation/datatype/FractionDigitsFacet.java,
	* gnu/xml/validation/datatype/GDayType.java,
	* gnu/xml/validation/datatype/GMonthDayType.java,
	* gnu/xml/validation/datatype/GMonthType.java,
	* gnu/xml/validation/datatype/GYearMonthType.java,
	* gnu/xml/validation/datatype/GYearType.java,
	* gnu/xml/validation/datatype/HexBinaryType.java,
	* gnu/xml/validation/datatype/IDRefType.java,
	* gnu/xml/validation/datatype/IDRefsType.java,
	* gnu/xml/validation/datatype/IDType.java,
	* gnu/xml/validation/datatype/IntType.java,
	* gnu/xml/validation/datatype/IntegerType.java,
	* gnu/xml/validation/datatype/LanguageType.java,
	* gnu/xml/validation/datatype/LengthFacet.java,
	* gnu/xml/validation/datatype/ListSimpleType.java,
	* gnu/xml/validation/datatype/LongType.java,
	* gnu/xml/validation/datatype/MaxExclusiveFacet.java,
	* gnu/xml/validation/datatype/MaxInclusiveFacet.java,
	* gnu/xml/validation/datatype/MaxLengthFacet.java,
	* gnu/xml/validation/datatype/MinExclusiveFacet.java,
	* gnu/xml/validation/datatype/MinInclusiveFacet.java,
	* gnu/xml/validation/datatype/MinLengthFacet.java,
	* gnu/xml/validation/datatype/NCNameType.java,
	* gnu/xml/validation/datatype/NMTokenType.java,
	* gnu/xml/validation/datatype/NMTokensType.java,
	* gnu/xml/validation/datatype/NameType.java,
	* gnu/xml/validation/datatype/NegativeIntegerType.java,
	* gnu/xml/validation/datatype/NonNegativeIntegerType.java,
	* gnu/xml/validation/datatype/NonPositiveIntegerType.java,
	* gnu/xml/validation/datatype/NormalizedStringType.java,
	* gnu/xml/validation/datatype/NotationType.java,
	* gnu/xml/validation/datatype/PatternFacet.java,
	* gnu/xml/validation/datatype/PositiveIntegerType.java,
	* gnu/xml/validation/datatype/QNameType.java,
	* gnu/xml/validation/datatype/ShortType.java,
	* gnu/xml/validation/datatype/SimpleType.java,
	* gnu/xml/validation/datatype/StringType.java,
	* gnu/xml/validation/datatype/TimeType.java,
	* gnu/xml/validation/datatype/TokenType.java,
	* gnu/xml/validation/datatype/TotalDigitsFacet.java,
	* gnu/xml/validation/datatype/Type.java,
	* gnu/xml/validation/datatype/TypeBuilder.java,
	* gnu/xml/validation/datatype/TypeLibrary.java,
	* gnu/xml/validation/datatype/TypeLibraryFactory.java,
	* gnu/xml/validation/datatype/UnionSimpleType.java,
	* gnu/xml/validation/datatype/UnsignedByteType.java,
	* gnu/xml/validation/datatype/UnsignedIntType.java,
	* gnu/xml/validation/datatype/UnsignedLongType.java,
	* gnu/xml/validation/datatype/UnsignedShortType.java,
	* gnu/xml/validation/datatype/WhiteSpaceFacet.java,
	* gnu/xml/validation/relaxng/AnyNameNameClass.java,
	* gnu/xml/validation/relaxng/AttributePattern.java,
	* gnu/xml/validation/relaxng/ChoiceNameClass.java,
	* gnu/xml/validation/relaxng/ChoicePattern.java,
	* gnu/xml/validation/relaxng/DataPattern.java,
	* gnu/xml/validation/relaxng/Define.java,
	* gnu/xml/validation/relaxng/ElementPattern.java,
	* gnu/xml/validation/relaxng/EmptyPattern.java,
	* gnu/xml/validation/relaxng/FullSyntaxBuilder.java,
	* gnu/xml/validation/relaxng/Grammar.java,
	* gnu/xml/validation/relaxng/GrammarException.java,
	* gnu/xml/validation/relaxng/GrammarValidator.java,
	* gnu/xml/validation/relaxng/GroupPattern.java,
	* gnu/xml/validation/relaxng/InterleavePattern.java,
	* gnu/xml/validation/relaxng/ListPattern.java,
	* gnu/xml/validation/relaxng/NSNameNameClass.java,
	* gnu/xml/validation/relaxng/NameClass.java,
	* gnu/xml/validation/relaxng/NameNameClass.java,
	* gnu/xml/validation/relaxng/NotAllowedPattern.java,
	* gnu/xml/validation/relaxng/OneOrMorePattern.java,
	* gnu/xml/validation/relaxng/Param.java,
	* gnu/xml/validation/relaxng/Pattern.java,
	* gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java,
	* gnu/xml/validation/relaxng/RefPattern.java,
	* gnu/xml/validation/relaxng/TextPattern.java,
	* gnu/xml/validation/relaxng/ValuePattern.java,
	* gnu/xml/validation/xmlschema/AnyAttribute.java,
	* gnu/xml/validation/xmlschema/AttributeDeclaration.java,
	* gnu/xml/validation/xmlschema/AttributeUse.java,
	* gnu/xml/validation/xmlschema/ComplexType.java,
	* gnu/xml/validation/xmlschema/ElementDeclaration.java,
	* gnu/xml/validation/xmlschema/Particle.java,
	* gnu/xml/validation/xmlschema/ValidationException.java,
	* gnu/xml/validation/xmlschema/XMLSchema.java,
	* gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java,
	* gnu/xml/validation/xmlschema/XMLSchemaBuilder.java,
	* gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java,
	* gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java,
	* gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java,
	* gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java,
	* gnu/xml/validation/xmlschema/XMLSchemaValidator.java,
	* gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java,
	* gnu/xml/xpath/AndExpr.java,
	* gnu/xml/xpath/ArithmeticExpr.java,
	* gnu/xml/xpath/BooleanFunction.java,
	* gnu/xml/xpath/CeilingFunction.java,
	* gnu/xml/xpath/ConcatFunction.java,
	* gnu/xml/xpath/Constant.java,
	* gnu/xml/xpath/ContainsFunction.java,
	* gnu/xml/xpath/CountFunction.java,
	* gnu/xml/xpath/DocumentOrderComparator.java,
	* gnu/xml/xpath/EqualityExpr.java,
	* gnu/xml/xpath/Expr.java,
	* gnu/xml/xpath/FalseFunction.java,
	* gnu/xml/xpath/FloorFunction.java,
	* gnu/xml/xpath/Function.java,
	* gnu/xml/xpath/FunctionCall.java,
	* gnu/xml/xpath/IdFunction.java,
	* gnu/xml/xpath/LangFunction.java,
	* gnu/xml/xpath/LastFunction.java,
	* gnu/xml/xpath/LocalNameFunction.java,
	* gnu/xml/xpath/NameFunction.java,
	* gnu/xml/xpath/NameTest.java,
	* gnu/xml/xpath/NamespaceTest.java,
	* gnu/xml/xpath/NamespaceUriFunction.java,
	* gnu/xml/xpath/NegativeExpr.java,
	* gnu/xml/xpath/NodeTypeTest.java,
	* gnu/xml/xpath/NormalizeSpaceFunction.java,
	* gnu/xml/xpath/NotFunction.java,
	* gnu/xml/xpath/NumberFunction.java,
	* gnu/xml/xpath/OrExpr.java,
	* gnu/xml/xpath/ParenthesizedExpr.java,
	* gnu/xml/xpath/Path.java,
	* gnu/xml/xpath/Pattern.java,
	* gnu/xml/xpath/PositionFunction.java,
	* gnu/xml/xpath/Predicate.java,
	* gnu/xml/xpath/RelationalExpr.java,
	* gnu/xml/xpath/Root.java,
	* gnu/xml/xpath/RoundFunction.java,
	* gnu/xml/xpath/Selector.java,
	* gnu/xml/xpath/StartsWithFunction.java,
	* gnu/xml/xpath/Steps.java,
	* gnu/xml/xpath/StringFunction.java,
	* gnu/xml/xpath/StringLengthFunction.java,
	* gnu/xml/xpath/SubstringAfterFunction.java,
	* gnu/xml/xpath/SubstringBeforeFunction.java,
	* gnu/xml/xpath/SubstringFunction.java,
	* gnu/xml/xpath/SumFunction.java,
	* gnu/xml/xpath/Test.java,
	* gnu/xml/xpath/TranslateFunction.java,
	* gnu/xml/xpath/TrueFunction.java,
	* gnu/xml/xpath/UnionExpr.java,
	* gnu/xml/xpath/VariableReference.java,
	* gnu/xml/xpath/XPathFactoryImpl.java,
	* gnu/xml/xpath/XPathImpl.java,
	* gnu/xml/xpath/XPathParser.java,
	* gnu/xml/xpath/XPathTokenizer.java,
	* java/applet/Applet.java,
	* java/awt/AWTEvent.java,
	* java/awt/AWTEventMulticaster.java,
	* java/awt/AWTKeyStroke.java,
	* java/awt/AlphaComposite.java,
	* java/awt/BasicStroke.java,
	* java/awt/BorderLayout.java,
	* java/awt/BufferCapabilities.java,
	* java/awt/Button.java,
	* java/awt/Canvas.java,
	* java/awt/CardLayout.java,
	* java/awt/Checkbox.java,
	* java/awt/CheckboxGroup.java,
	* java/awt/CheckboxMenuItem.java,
	* java/awt/Choice.java,
	* java/awt/Color.java,
	* java/awt/ColorPaintContext.java,
	* java/awt/Component.java,
	* java/awt/Container.java,
	* java/awt/ContainerOrderFocusTraversalPolicy.java,
	* java/awt/Cursor.java,
	* java/awt/DefaultFocusTraversalPolicy.java,
	* java/awt/DefaultKeyboardFocusManager.java,
	* java/awt/Desktop.java,
	* java/awt/Dialog.java,
	* java/awt/DisplayMode.java,
	* java/awt/Event.java,
	* java/awt/EventDispatchThread.java,
	* java/awt/EventQueue.java,
	* java/awt/FileDialog.java,
	* java/awt/FlowLayout.java,
	* java/awt/FocusTraversalPolicy.java,
	* java/awt/Font.java,
	* java/awt/FontMetrics.java,
	* java/awt/Frame.java,
	* java/awt/GradientPaint.java,
	* java/awt/Graphics.java,
	* java/awt/Graphics2D.java,
	* java/awt/GraphicsConfiguration.java,
	* java/awt/GraphicsDevice.java,
	* java/awt/GridBagConstraints.java,
	* java/awt/GridBagLayout.java,
	* java/awt/GridLayout.java,
	* java/awt/Image.java,
	* java/awt/Insets.java,
	* java/awt/JobAttributes.java,
	* java/awt/KeyboardFocusManager.java,
	* java/awt/Label.java,
	* java/awt/LightweightDispatcher.java,
	* java/awt/List.java,
	* java/awt/MediaTracker.java,
	* java/awt/Menu.java,
	* java/awt/MenuBar.java,
	* java/awt/MenuComponent.java,
	* java/awt/MenuItem.java,
	* java/awt/MenuShortcut.java,
	* java/awt/MouseInfo.java,
	* java/awt/PageAttributes.java,
	* java/awt/Point.java,
	* java/awt/PointerInfo.java,
	* java/awt/Polygon.java,
	* java/awt/PopupMenu.java,
	* java/awt/Rectangle.java,
	* java/awt/RenderingHints.java,
	* java/awt/Robot.java,
	* java/awt/ScrollPane.java,
	* java/awt/ScrollPaneAdjustable.java,
	* java/awt/Scrollbar.java,
	* java/awt/Shape.java,
	* java/awt/SystemColor.java,
	* java/awt/TextArea.java,
	* java/awt/TextComponent.java,
	* java/awt/TextField.java,
	* java/awt/TexturePaint.java,
	* java/awt/Toolkit.java,
	* java/awt/Window.java,
	* java/awt/color/ICC_ColorSpace.java,
	* java/awt/color/ICC_Profile.java,
	* java/awt/color/ICC_ProfileGray.java,
	* java/awt/color/ICC_ProfileRGB.java,
	* java/awt/datatransfer/Clipboard.java,
	* java/awt/datatransfer/ClipboardOwner.java,
	* java/awt/datatransfer/DataFlavor.java,
	* java/awt/datatransfer/FlavorEvent.java,
	* java/awt/datatransfer/FlavorListener.java,
	* java/awt/datatransfer/MimeType.java,
	* java/awt/datatransfer/StringSelection.java,
	* java/awt/datatransfer/SystemFlavorMap.java,
	* java/awt/datatransfer/Transferable.java,
	* java/awt/datatransfer/UnsupportedFlavorException.java,
	* java/awt/dnd/Autoscroll.java,
	* java/awt/dnd/DnDEventMulticaster.java,
	* java/awt/dnd/DragGestureEvent.java,
	* java/awt/dnd/DragGestureRecognizer.java,
	* java/awt/dnd/DragSource.java,
	* java/awt/dnd/DragSourceContext.java,
	* java/awt/dnd/DragSourceDropEvent.java,
	* java/awt/dnd/DragSourceEvent.java,
	* java/awt/dnd/DropTarget.java,
	* java/awt/dnd/DropTargetContext.java,
	* java/awt/dnd/DropTargetDragEvent.java,
	* java/awt/dnd/DropTargetDropEvent.java,
	* java/awt/dnd/DropTargetEvent.java,
	* java/awt/dnd/MouseDragGestureRecognizer.java,
	* java/awt/dnd/peer/DropTargetContextPeer.java,
	* java/awt/event/AWTEventListener.java,
	* java/awt/event/ActionEvent.java,
	* java/awt/event/ComponentAdapter.java,
	* java/awt/event/ComponentEvent.java,
	* java/awt/event/InputEvent.java,
	* java/awt/event/InputMethodEvent.java,
	* java/awt/event/InvocationEvent.java,
	* java/awt/event/KeyEvent.java,
	* java/awt/event/MouseEvent.java,
	* java/awt/event/MouseListener.java,
	* java/awt/event/MouseWheelEvent.java,
	* java/awt/event/WindowEvent.java,
	* java/awt/font/FontRenderContext.java,
	* java/awt/font/GlyphJustificationInfo.java,
	* java/awt/font/GlyphMetrics.java,
	* java/awt/font/GlyphVector.java,
	* java/awt/font/GraphicAttribute.java,
	* java/awt/font/ImageGraphicAttribute.java,
	* java/awt/font/LineBreakMeasurer.java,
	* java/awt/font/LineMetrics.java,
	* java/awt/font/MultipleMaster.java,
	* java/awt/font/OpenType.java,
	* java/awt/font/ShapeGraphicAttribute.java,
	* java/awt/font/TextAttribute.java,
	* java/awt/font/TextHitInfo.java,
	* java/awt/font/TextLayout.java,
	* java/awt/font/TextMeasurer.java,
	* java/awt/font/TransformAttribute.java,
	* java/awt/geom/AffineTransform.java,
	* java/awt/geom/Arc2D.java,
	* java/awt/geom/Area.java,
	* java/awt/geom/CubicCurve2D.java,
	* java/awt/geom/Ellipse2D.java,
	* java/awt/geom/FlatteningPathIterator.java,
	* java/awt/geom/GeneralPath.java,
	* java/awt/geom/Line2D.java,
	* java/awt/geom/QuadCurve2D.java,
	* java/awt/geom/RectangularShape.java,
	* java/awt/geom/RoundRectangle2D.java,
	* java/awt/im/InputContext.java,
	* java/awt/im/spi/InputMethodDescriptor.java,
	* java/awt/image/AffineTransformOp.java,
	* java/awt/image/AreaAveragingScaleFilter.java,
	* java/awt/image/BandCombineOp.java,
	* java/awt/image/BandedSampleModel.java,
	* java/awt/image/BufferedImage.java,
	* java/awt/image/BufferedImageFilter.java,
	* java/awt/image/BufferedImageOp.java,
	* java/awt/image/ByteLookupTable.java,
	* java/awt/image/ColorConvertOp.java,
	* java/awt/image/ColorModel.java,
	* java/awt/image/ComponentColorModel.java,
	* java/awt/image/ComponentSampleModel.java,
	* java/awt/image/ConvolveOp.java,
	* java/awt/image/CropImageFilter.java,
	* java/awt/image/DataBuffer.java,
	* java/awt/image/DataBufferByte.java,
	* java/awt/image/DataBufferDouble.java,
	* java/awt/image/DataBufferFloat.java,
	* java/awt/image/DataBufferInt.java,
	* java/awt/image/DataBufferShort.java,
	* java/awt/image/DataBufferUShort.java,
	* java/awt/image/DirectColorModel.java,
	* java/awt/image/FilteredImageSource.java,
	* java/awt/image/ImageConsumer.java,
	* java/awt/image/ImageFilter.java,
	* java/awt/image/ImageObserver.java,
	* java/awt/image/ImageProducer.java,
	* java/awt/image/IndexColorModel.java,
	* java/awt/image/Kernel.java,
	* java/awt/image/LookupOp.java,
	* java/awt/image/LookupTable.java,
	* java/awt/image/MemoryImageSource.java,
	* java/awt/image/MultiPixelPackedSampleModel.java,
	* java/awt/image/PackedColorModel.java,
	* java/awt/image/PixelGrabber.java,
	* java/awt/image/PixelInterleavedSampleModel.java,
	* java/awt/image/RGBImageFilter.java,
	* java/awt/image/Raster.java,
	* java/awt/image/RasterOp.java,
	* java/awt/image/RenderedImage.java,
	* java/awt/image/ReplicateScaleFilter.java,
	* java/awt/image/RescaleOp.java,
	* java/awt/image/SampleModel.java,
	* java/awt/image/ShortLookupTable.java,
	* java/awt/image/SinglePixelPackedSampleModel.java,
	* java/awt/image/TileObserver.java,
	* java/awt/image/WritableRaster.java,
	* java/awt/image/WritableRenderedImage.java,
	* java/awt/image/renderable/ContextualRenderedImageFactory.java,
	* java/awt/image/renderable/ParameterBlock.java,
	* java/awt/image/renderable/RenderContext.java,
	* java/awt/image/renderable/RenderableImage.java,
	* java/awt/image/renderable/RenderableImageOp.java,
	* java/awt/image/renderable/RenderableImageProducer.java,
	* java/awt/image/renderable/RenderedImageFactory.java,
	* java/awt/peer/ButtonPeer.java,
	* java/awt/peer/CanvasPeer.java,
	* java/awt/peer/CheckboxMenuItemPeer.java,
	* java/awt/peer/CheckboxPeer.java,
	* java/awt/peer/ChoicePeer.java,
	* java/awt/peer/ComponentPeer.java,
	* java/awt/peer/ContainerPeer.java,
	* java/awt/peer/DesktopPeer.java,
	* java/awt/peer/DialogPeer.java,
	* java/awt/peer/FileDialogPeer.java,
	* java/awt/peer/FontPeer.java,
	* java/awt/peer/FramePeer.java,
	* java/awt/peer/LabelPeer.java,
	* java/awt/peer/LightweightPeer.java,
	* java/awt/peer/ListPeer.java,
	* java/awt/peer/MenuBarPeer.java,
	* java/awt/peer/MenuComponentPeer.java,
	* java/awt/peer/MenuItemPeer.java,
	* java/awt/peer/MenuPeer.java,
	* java/awt/peer/MouseInfoPeer.java,
	* java/awt/peer/PanelPeer.java,
	* java/awt/peer/PopupMenuPeer.java,
	* java/awt/peer/RobotPeer.java,
	* java/awt/peer/ScrollPanePeer.java,
	* java/awt/peer/ScrollbarPeer.java,
	* java/awt/peer/TextComponentPeer.java,
	* java/awt/peer/TextFieldPeer.java,
	* java/awt/peer/WindowPeer.java,
	* java/awt/print/Book.java,
	* java/awt/print/PageFormat.java,
	* java/awt/print/Pageable.java,
	* java/awt/print/Paper.java,
	* java/awt/print/PrinterGraphics.java,
	* java/awt/print/PrinterIOException.java,
	* java/awt/print/PrinterJob.java,
	* java/beans/AppletInitializer.java,
	* java/beans/BeanDescriptor.java,
	* java/beans/BeanInfo.java,
	* java/beans/Beans.java,
	* java/beans/Customizer.java,
	* java/beans/DefaultPersistenceDelegate.java,
	* java/beans/DesignMode.java,
	* java/beans/Encoder.java,
	* java/beans/EventHandler.java,
	* java/beans/EventSetDescriptor.java,
	* java/beans/Expression.java,
	* java/beans/FeatureDescriptor.java,
	* java/beans/IndexedPropertyChangeEvent.java,
	* java/beans/IndexedPropertyDescriptor.java,
	* java/beans/Introspector.java,
	* java/beans/MethodDescriptor.java,
	* java/beans/ParameterDescriptor.java,
	* java/beans/PersistenceDelegate.java,
	* java/beans/PropertyChangeSupport.java,
	* java/beans/PropertyDescriptor.java,
	* java/beans/PropertyEditor.java,
	* java/beans/PropertyEditorManager.java,
	* java/beans/SimpleBeanInfo.java,
	* java/beans/Statement.java,
	* java/beans/VetoableChangeSupport.java,
	* java/beans/Visibility.java,
	* java/beans/XMLDecoder.java,
	* java/beans/XMLEncoder.java,
	* java/beans/beancontext/BeanContext.java,
	* java/beans/beancontext/BeanContextChild.java,
	* java/beans/beancontext/BeanContextChildComponentProxy.java,
	* java/beans/beancontext/BeanContextChildSupport.java,
	* java/beans/beancontext/BeanContextContainerProxy.java,
	* java/beans/beancontext/BeanContextEvent.java,
	* java/beans/beancontext/BeanContextMembershipEvent.java,
	* java/beans/beancontext/BeanContextMembershipListener.java,
	* java/beans/beancontext/BeanContextProxy.java,
	* java/beans/beancontext/BeanContextServiceAvailableEvent.java,
	* java/beans/beancontext/BeanContextServiceProvider.java,
	* java/beans/beancontext/BeanContextServiceProviderBeanInfo.java,
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java,
	* java/beans/beancontext/BeanContextServiceRevokedListener.java,
	* java/beans/beancontext/BeanContextServices.java,
	* java/beans/beancontext/BeanContextServicesListener.java,
	* java/beans/beancontext/BeanContextServicesSupport.java,
	* java/beans/beancontext/BeanContextSupport.java,
	* java/io/BufferedInputStream.java,
	* java/io/BufferedOutputStream.java,
	* java/io/BufferedReader.java,
	* java/io/BufferedWriter.java,
	* java/io/ByteArrayInputStream.java,
	* java/io/ByteArrayOutputStream.java,
	* java/io/CharArrayReader.java,
	* java/io/CharArrayWriter.java,
	* java/io/DataInput.java,
	* java/io/DataInputStream.java,
	* java/io/DataOutput.java,
	* java/io/DataOutputStream.java,
	* java/io/DeleteFileHelper.java,
	* java/io/EOFException.java,
	* java/io/Externalizable.java,
	* java/io/File.java,
	* java/io/FileDescriptor.java,
	* java/io/FileFilter.java,
	* java/io/FileInputStream.java,
	* java/io/FileOutputStream.java,
	* java/io/FilePermission.java,
	* java/io/FileReader.java,
	* java/io/FileWriter.java,
	* java/io/FilenameFilter.java,
	* java/io/FilterInputStream.java,
	* java/io/FilterOutputStream.java,
	* java/io/FilterReader.java,
	* java/io/FilterWriter.java,
	* java/io/InputStream.java,
	* java/io/InputStreamReader.java,
	* java/io/InvalidClassException.java,
	* java/io/LineNumberInputStream.java,
	* java/io/LineNumberReader.java,
	* java/io/ObjectInput.java,
	* java/io/ObjectInputStream.java,
	* java/io/ObjectInputValidation.java,
	* java/io/ObjectOutput.java,
	* java/io/ObjectOutputStream.java,
	* java/io/ObjectStreamClass.java,
	* java/io/ObjectStreamConstants.java,
	* java/io/ObjectStreamField.java,
	* java/io/OutputStream.java,
	* java/io/OutputStreamWriter.java,
	* java/io/PipedInputStream.java,
	* java/io/PipedOutputStream.java,
	* java/io/PipedReader.java,
	* java/io/PipedWriter.java,
	* java/io/PrintStream.java,
	* java/io/PrintWriter.java,
	* java/io/PushbackInputStream.java,
	* java/io/PushbackReader.java,
	* java/io/RandomAccessFile.java,
	* java/io/Reader.java,
	* java/io/SequenceInputStream.java,
	* java/io/Serializable.java,
	* java/io/SerializablePermission.java,
	* java/io/StreamTokenizer.java,
	* java/io/StringBufferInputStream.java,
	* java/io/StringReader.java,
	* java/io/StringWriter.java,
	* java/io/UnsupportedEncodingException.java,
	* java/io/Writer.java,
	* java/lang/AbstractStringBuffer.java,
	* java/lang/Boolean.java,
	* java/lang/Character.java,
	* java/lang/Class.java,
	* java/lang/ClassLoader.java,
	* java/lang/Comparable.java,
	* java/lang/Double.java,
	* java/lang/Enum.java,
	* java/lang/EnumConstantNotPresentException.java,
	* java/lang/Float.java,
	* java/lang/IllegalArgumentException.java,
	* java/lang/IllegalStateException.java,
	* java/lang/IndexOutOfBoundsException.java,
	* java/lang/Integer.java,
	* java/lang/Long.java,
	* java/lang/Math.java,
	* java/lang/NoClassDefFoundError.java,
	* java/lang/Object.java,
	* java/lang/Package.java,
	* java/lang/ProcessBuilder.java,
	* java/lang/Runtime.java,
	* java/lang/SecurityException.java,
	* java/lang/SecurityManager.java,
	* java/lang/StackTraceElement.java,
	* java/lang/StrictMath.java,
	* java/lang/String.java,
	* java/lang/StringBuffer.java,
	* java/lang/StringBuilder.java,
	* java/lang/System.java,
	* java/lang/Thread.java,
	* java/lang/ThreadLocal.java,
	* java/lang/Throwable.java,
	* java/lang/TypeNotPresentException.java,
	* java/lang/UnsupportedOperationException.java,
	* java/lang/annotation/Annotation.java,
	* java/lang/annotation/AnnotationTypeMismatchException.java,
	* java/lang/annotation/IncompleteAnnotationException.java,
	* java/lang/instrument/ClassFileTransformer.java,
	* java/lang/instrument/Instrumentation.java,
	* java/lang/management/ClassLoadingMXBean.java,
	* java/lang/management/CompilationMXBean.java,
	* java/lang/management/GarbageCollectorMXBean.java,
	* java/lang/management/ManagementFactory.java,
	* java/lang/management/ManagementPermission.java,
	* java/lang/management/MemoryMXBean.java,
	* java/lang/management/MemoryManagerMXBean.java,
	* java/lang/management/MemoryNotificationInfo.java,
	* java/lang/management/MemoryPoolMXBean.java,
	* java/lang/management/MemoryType.java,
	* java/lang/management/MemoryUsage.java,
	* java/lang/management/MonitorInfo.java,
	* java/lang/management/OperatingSystemMXBean.java,
	* java/lang/management/RuntimeMXBean.java,
	* java/lang/management/ThreadInfo.java,
	* java/lang/management/ThreadMXBean.java,
	* java/lang/ref/PhantomReference.java,
	* java/lang/ref/Reference.java,
	* java/lang/ref/ReferenceQueue.java,
	* java/lang/ref/SoftReference.java,
	* java/lang/ref/WeakReference.java,
	* java/lang/reflect/AccessibleObject.java,
	* java/lang/reflect/AnnotatedElement.java,
	* java/lang/reflect/Array.java,
	* java/lang/reflect/Constructor.java,
	* java/lang/reflect/Field.java,
	* java/lang/reflect/GenericArrayType.java,
	* java/lang/reflect/GenericDeclaration.java,
	* java/lang/reflect/InvocationHandler.java,
	* java/lang/reflect/MalformedParameterizedTypeException.java,
	* java/lang/reflect/Method.java,
	* java/lang/reflect/Modifier.java,
	* java/lang/reflect/Proxy.java,
	* java/lang/reflect/Type.java,
	* java/lang/reflect/TypeVariable.java,
	* java/lang/reflect/WildcardType.java,
	* java/math/BigDecimal.java,
	* java/math/BigInteger.java,
	* java/math/MathContext.java,
	* java/math/RoundingMode.java,
	* java/net/ContentHandler.java,
	* java/net/DatagramSocket.java,
	* java/net/DatagramSocketImpl.java,
	* java/net/HttpURLConnection.java,
	* java/net/Inet4Address.java,
	* java/net/Inet6Address.java,
	* java/net/InetAddress.java,
	* java/net/InetSocketAddress.java,
	* java/net/MimeTypeMapper.java,
	* java/net/MulticastSocket.java,
	* java/net/NetworkInterface.java,
	* java/net/Proxy.java,
	* java/net/ProxySelector.java,
	* java/net/ResolverCache.java,
	* java/net/ServerSocket.java,
	* java/net/Socket.java,
	* java/net/SocketPermission.java,
	* java/net/URI.java,
	* java/net/URL.java,
	* java/net/URLClassLoader.java,
	* java/net/URLConnection.java,
	* java/net/URLDecoder.java,
	* java/net/URLEncoder.java,
	* java/net/URLStreamHandler.java,
	* java/nio/Buffer.java,
	* java/nio/BufferOverflowException.java,
	* java/nio/BufferUnderflowException.java,
	* java/nio/ByteBuffer.java,
	* java/nio/ByteBufferHelper.java,
	* java/nio/ByteBufferImpl.java,
	* java/nio/ByteOrder.java,
	* java/nio/CharBuffer.java,
	* java/nio/CharBufferImpl.java,
	* java/nio/CharSequenceBuffer.java,
	* java/nio/CharViewBufferImpl.java,
	* java/nio/DirectByteBufferImpl.java,
	* java/nio/DoubleBuffer.java,
	* java/nio/DoubleBufferImpl.java,
	* java/nio/DoubleViewBufferImpl.java,
	* java/nio/FloatBuffer.java,
	* java/nio/FloatBufferImpl.java,
	* java/nio/FloatViewBufferImpl.java,
	* java/nio/IntBuffer.java,
	* java/nio/IntBufferImpl.java,
	* java/nio/IntViewBufferImpl.java,
	* java/nio/InvalidMarkException.java,
	* java/nio/LongBuffer.java,
	* java/nio/LongBufferImpl.java,
	* java/nio/LongViewBufferImpl.java,
	* java/nio/MappedByteBuffer.java,
	* java/nio/MappedByteBufferImpl.java,
	* java/nio/ReadOnlyBufferException.java,
	* java/nio/ShortBuffer.java,
	* java/nio/ShortBufferImpl.java,
	* java/nio/ShortViewBufferImpl.java,
	* java/nio/channels/FileChannel.java,
	* java/nio/channels/SocketChannel.java,
	* java/nio/channels/spi/AbstractInterruptibleChannel.java,
	* java/nio/channels/spi/AbstractSelectableChannel.java,
	* java/nio/channels/spi/AbstractSelectionKey.java,
	* java/nio/channels/spi/AbstractSelector.java,
	* java/nio/channels/spi/SelectorProvider.java,
	* java/nio/charset/CharacterCodingException.java,
	* java/nio/charset/Charset.java,
	* java/nio/charset/CharsetDecoder.java,
	* java/nio/charset/CharsetEncoder.java,
	* java/nio/charset/CoderMalfunctionError.java,
	* java/nio/charset/CoderResult.java,
	* java/nio/charset/CodingErrorAction.java,
	* java/nio/charset/IllegalCharsetNameException.java,
	* java/nio/charset/MalformedInputException.java,
	* java/nio/charset/UnmappableCharacterException.java,
	* java/nio/charset/UnsupportedCharsetException.java,
	* java/rmi/AccessException.java,
	* java/rmi/AlreadyBoundException.java,
	* java/rmi/MarshalledObject.java,
	* java/rmi/Naming.java,
	* java/rmi/NoSuchObjectException.java,
	* java/rmi/NotBoundException.java,
	* java/rmi/RMISecurityException.java,
	* java/rmi/RMISecurityManager.java,
	* java/rmi/Remote.java,
	* java/rmi/RemoteException.java,
	* java/rmi/StubNotFoundException.java,
	* java/rmi/UnknownHostException.java,
	* java/rmi/activation/Activatable.java,
	* java/rmi/activation/ActivationDesc.java,
	* java/rmi/activation/ActivationGroup.java,
	* java/rmi/activation/ActivationGroupDesc.java,
	* java/rmi/activation/ActivationGroupID.java,
	* java/rmi/activation/ActivationID.java,
	* java/rmi/activation/ActivationInstantiator.java,
	* java/rmi/activation/ActivationMonitor.java,
	* java/rmi/activation/ActivationSystem.java,
	* java/rmi/activation/Activator.java,
	* java/rmi/activation/UnknownGroupException.java,
	* java/rmi/dgc/DGC.java,
	* java/rmi/dgc/Lease.java,
	* java/rmi/dgc/VMID.java,
	* java/rmi/registry/LocateRegistry.java,
	* java/rmi/registry/Registry.java,
	* java/rmi/registry/RegistryHandler.java,
	* java/rmi/server/LoaderHandler.java,
	* java/rmi/server/LogStream.java,
	* java/rmi/server/ObjID.java,
	* java/rmi/server/Operation.java,
	* java/rmi/server/RMIClassLoader.java,
	* java/rmi/server/RMIClientSocketFactory.java,
	* java/rmi/server/RMIFailureHandler.java,
	* java/rmi/server/RMIServerSocketFactory.java,
	* java/rmi/server/RMISocketFactory.java,
	* java/rmi/server/RemoteCall.java,
	* java/rmi/server/RemoteObject.java,
	* java/rmi/server/RemoteObjectInvocationHandler.java,
	* java/rmi/server/RemoteRef.java,
	* java/rmi/server/RemoteServer.java,
	* java/rmi/server/RemoteStub.java,
	* java/rmi/server/ServerRef.java,
	* java/rmi/server/Skeleton.java,
	* java/rmi/server/UID.java,
	* java/rmi/server/UnicastRemoteObject.java,
	* java/rmi/server/Unreferenced.java,
	* java/security/AccessControlContext.java,
	* java/security/AccessController.java,
	* java/security/AlgorithmParameterGenerator.java,
	* java/security/AlgorithmParameterGeneratorSpi.java,
	* java/security/AlgorithmParameters.java,
	* java/security/AlgorithmParametersSpi.java,
	* java/security/CodeSource.java,
	* java/security/DigestInputStream.java,
	* java/security/DigestOutputStream.java,
	* java/security/GeneralSecurityException.java,
	* java/security/Identity.java,
	* java/security/IdentityScope.java,
	* java/security/KeyFactory.java,
	* java/security/KeyFactorySpi.java,
	* java/security/KeyPairGenerator.java,
	* java/security/KeyPairGeneratorSpi.java,
	* java/security/KeyStore.java,
	* java/security/KeyStoreSpi.java,
	* java/security/MessageDigest.java,
	* java/security/MessageDigestSpi.java,
	* java/security/Permission.java,
	* java/security/Permissions.java,
	* java/security/Policy.java,
	* java/security/ProtectionDomain.java,
	* java/security/Provider.java,
	* java/security/ProviderException.java,
	* java/security/SecureClassLoader.java,
	* java/security/SecureRandom.java,
	* java/security/SecureRandomSpi.java,
	* java/security/Security.java,
	* java/security/Signature.java,
	* java/security/SignatureSpi.java,
	* java/security/SignedObject.java,
	* java/security/Signer.java,
	* java/security/acl/Acl.java,
	* java/security/acl/AclEntry.java,
	* java/security/acl/Group.java,
	* java/security/acl/Owner.java,
	* java/security/cert/CRL.java,
	* java/security/cert/CRLSelector.java,
	* java/security/cert/CertPathBuilder.java,
	* java/security/cert/CertPathBuilderResult.java,
	* java/security/cert/CertPathValidator.java,
	* java/security/cert/CertPathValidatorResult.java,
	* java/security/cert/CertPathValidatorSpi.java,
	* java/security/cert/CertSelector.java,
	* java/security/cert/CertStore.java,
	* java/security/cert/CertStoreParameters.java,
	* java/security/cert/CertStoreSpi.java,
	* java/security/cert/Certificate.java,
	* java/security/cert/CertificateFactory.java,
	* java/security/cert/CertificateFactorySpi.java,
	* java/security/cert/CollectionCertStoreParameters.java,
	* java/security/cert/LDAPCertStoreParameters.java,
	* java/security/cert/PKIXBuilderParameters.java,
	* java/security/cert/PKIXCertPathBuilderResult.java,
	* java/security/cert/PKIXCertPathChecker.java,
	* java/security/cert/PKIXCertPathValidatorResult.java,
	* java/security/cert/PKIXParameters.java,
	* java/security/cert/PolicyNode.java,
	* java/security/cert/PolicyQualifierInfo.java,
	* java/security/cert/X509CRL.java,
	* java/security/cert/X509CRLEntry.java,
	* java/security/cert/X509CertSelector.java,
	* java/security/cert/X509Certificate.java,
	* java/security/cert/X509Extension.java,
	* java/security/spec/AlgorithmParameterSpec.java,
	* java/security/spec/DSAParameterSpec.java,
	* java/security/spec/DSAPrivateKeySpec.java,
	* java/security/spec/DSAPublicKeySpec.java,
	* java/security/spec/EncodedKeySpec.java,
	* java/security/spec/InvalidParameterSpecException.java,
	* java/security/spec/KeySpec.java,
	* java/security/spec/PKCS8EncodedKeySpec.java,
	* java/security/spec/PSSParameterSpec.java,
	* java/security/spec/RSAKeyGenParameterSpec.java,
	* java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java,
	* java/security/spec/RSAOtherPrimeInfo.java,
	* java/security/spec/RSAPrivateCrtKeySpec.java,
	* java/security/spec/RSAPrivateKeySpec.java,
	* java/security/spec/RSAPublicKeySpec.java,
	* java/security/spec/X509EncodedKeySpec.java,
	* java/sql/Array.java,
	* java/sql/BatchUpdateException.java,
	* java/sql/Blob.java,
	* java/sql/CallableStatement.java,
	* java/sql/Clob.java,
	* java/sql/Connection.java,
	* java/sql/DataTruncation.java,
	* java/sql/DatabaseMetaData.java,
	* java/sql/Date.java,
	* java/sql/Driver.java,
	* java/sql/DriverManager.java,
	* java/sql/DriverPropertyInfo.java,
	* java/sql/ParameterMetaData.java,
	* java/sql/PreparedStatement.java,
	* java/sql/Ref.java,
	* java/sql/ResultSet.java,
	* java/sql/ResultSetMetaData.java,
	* java/sql/SQLData.java,
	* java/sql/SQLException.java,
	* java/sql/SQLInput.java,
	* java/sql/SQLOutput.java,
	* java/sql/SQLPermission.java,
	* java/sql/SQLWarning.java,
	* java/sql/Savepoint.java,
	* java/sql/Statement.java,
	* java/sql/Struct.java,
	* java/sql/Time.java,
	* java/sql/Timestamp.java,
	* java/sql/Types.java,
	* java/text/Annotation.java,
	* java/text/AttributedCharacterIterator.java,
	* java/text/AttributedString.java,
	* java/text/AttributedStringIterator.java,
	* java/text/Bidi.java,
	* java/text/BreakIterator.java,
	* java/text/CharacterIterator.java,
	* java/text/ChoiceFormat.java,
	* java/text/CollationElementIterator.java,
	* java/text/CollationKey.java,
	* java/text/Collator.java,
	* java/text/DateFormat.java,
	* java/text/DateFormatSymbols.java,
	* java/text/DecimalFormat.java,
	* java/text/DecimalFormatSymbols.java,
	* java/text/FieldPosition.java,
	* java/text/Format.java,
	* java/text/MessageFormat.java,
	* java/text/NumberFormat.java,
	* java/text/ParsePosition.java,
	* java/text/RuleBasedCollator.java,
	* java/text/SimpleDateFormat.java,
	* java/text/StringCharacterIterator.java,
	* java/text/spi/DateFormatProvider.java,
	* java/text/spi/NumberFormatProvider.java,
	* java/util/AbstractCollection.java,
	* java/util/AbstractList.java,
	* java/util/AbstractMap.java,
	* java/util/AbstractSet.java,
	* java/util/ArrayList.java,
	* java/util/Arrays.java,
	* java/util/BitSet.java,
	* java/util/Calendar.java,
	* java/util/Collections.java,
	* java/util/Currency.java,
	* java/util/Date.java,
	* java/util/Dictionary.java,
	* java/util/DuplicateFormatFlagsException.java,
	* java/util/EnumMap.java,
	* java/util/EnumSet.java,
	* java/util/FormatFlagsConversionMismatchException.java,
	* java/util/Formattable.java,
	* java/util/FormattableFlags.java,
	* java/util/Formatter.java,
	* java/util/FormatterClosedException.java,
	* java/util/GregorianCalendar.java,
	* java/util/HashMap.java,
	* java/util/Hashtable.java,
	* java/util/IdentityHashMap.java,
	* java/util/IllegalFormatCodePointException.java,
	* java/util/IllegalFormatConversionException.java,
	* java/util/IllegalFormatException.java,
	* java/util/IllegalFormatFlagsException.java,
	* java/util/IllegalFormatPrecisionException.java,
	* java/util/IllegalFormatWidthException.java,
	* java/util/InputMismatchException.java,
	* java/util/LinkedHashMap.java,
	* java/util/LinkedHashSet.java,
	* java/util/LinkedList.java,
	* java/util/List.java,
	* java/util/Locale.java,
	* java/util/Map.java,
	* java/util/MissingFormatArgumentException.java,
	* java/util/MissingFormatWidthException.java,
	* java/util/PriorityQueue.java,
	* java/util/Properties.java,
	* java/util/PropertyPermission.java,
	* java/util/PropertyPermissionCollection.java,
	* java/util/Random.java,
	* java/util/ResourceBundle.java,
	* java/util/ServiceConfigurationError.java,
	* java/util/ServiceLoader.java,
	* java/util/SimpleTimeZone.java,
	* java/util/StringTokenizer.java,
	* java/util/TimeZone.java,
	* java/util/Timer.java,
	* java/util/TreeMap.java,
	* java/util/TreeSet.java,
	* java/util/UUID.java,
	* java/util/UnknownFormatConversionException.java,
	* java/util/UnknownFormatFlagsException.java,
	* java/util/Vector.java,
	* java/util/WeakHashMap.java,
	* java/util/concurrent/CopyOnWriteArrayList.java,
	* java/util/jar/Attributes.java,
	* java/util/jar/JarEntry.java,
	* java/util/jar/JarFile.java,
	* java/util/jar/JarInputStream.java,
	* java/util/jar/JarOutputStream.java,
	* java/util/jar/Manifest.java,
	* java/util/logging/ConsoleHandler.java,
	* java/util/logging/ErrorManager.java,
	* java/util/logging/FileHandler.java,
	* java/util/logging/Formatter.java,
	* java/util/logging/Handler.java,
	* java/util/logging/Level.java,
	* java/util/logging/LogManager.java,
	* java/util/logging/LogRecord.java,
	* java/util/logging/Logger.java,
	* java/util/logging/LoggingMXBean.java,
	* java/util/logging/LoggingPermission.java,
	* java/util/logging/MemoryHandler.java,
	* java/util/logging/SocketHandler.java,
	* java/util/logging/StreamHandler.java,
	* java/util/logging/XMLFormatter.java,
	* java/util/prefs/AbstractPreferences.java,
	* java/util/prefs/NodeChangeEvent.java,
	* java/util/prefs/NodeChangeListener.java,
	* java/util/prefs/PreferenceChangeEvent.java,
	* java/util/prefs/PreferenceChangeListener.java,
	* java/util/prefs/Preferences.java,
	* java/util/prefs/PreferencesFactory.java,
	* java/util/regex/MatchResult.java,
	* java/util/regex/Pattern.java,
	* java/util/regex/PatternSyntaxException.java,
	* java/util/spi/LocaleNameProvider.java,
	* java/util/spi/TimeZoneNameProvider.java,
	* java/util/zip/Adler32.java,
	* java/util/zip/CRC32.java,
	* java/util/zip/CheckedInputStream.java,
	* java/util/zip/CheckedOutputStream.java,
	* java/util/zip/Deflater.java,
	* java/util/zip/DeflaterEngine.java,
	* java/util/zip/DeflaterHuffman.java,
	* java/util/zip/DeflaterOutputStream.java,
	* java/util/zip/DeflaterPending.java,
	* java/util/zip/GZIPInputStream.java,
	* java/util/zip/GZIPOutputStream.java,
	* java/util/zip/Inflater.java,
	* java/util/zip/InflaterDynHeader.java,
	* java/util/zip/InflaterHuffmanTree.java,
	* java/util/zip/InflaterInputStream.java,
	* java/util/zip/OutputWindow.java,
	* java/util/zip/PendingBuffer.java,
	* java/util/zip/StreamManipulator.java,
	* java/util/zip/ZipConstants.java,
	* java/util/zip/ZipEntry.java,
	* java/util/zip/ZipFile.java,
	* java/util/zip/ZipInputStream.java,
	* java/util/zip/ZipOutputStream.java,
	* javax/accessibility/AccessibleExtendedText.java,
	* javax/accessibility/AccessibleRelation.java,
	* javax/accessibility/AccessibleRole.java,
	* javax/accessibility/AccessibleState.java,
	* javax/activation/ActivationDataFlavor.java,
	* javax/activation/CommandInfo.java,
	* javax/activation/CommandMap.java,
	* javax/activation/CommandObject.java,
	* javax/activation/DataContentHandler.java,
	* javax/activation/DataContentHandlerFactory.java,
	* javax/activation/DataHandler.java,
	* javax/activation/DataHandlerDataSource.java,
	* javax/activation/DataSource.java,
	* javax/activation/DataSourceDataContentHandler.java,
	* javax/activation/FileDataSource.java,
	* javax/activation/FileTypeMap.java,
	* javax/activation/MailcapCommandMap.java,
	* javax/activation/MimeType.java,
	* javax/activation/MimeTypeParameterList.java,
	* javax/activation/MimeTypeParseException.java,
	* javax/activation/MimetypesFileTypeMap.java,
	* javax/activation/ObjectDataContentHandler.java,
	* javax/activation/URLDataSource.java,
	* javax/activation/UnsupportedDataTypeException.java,
	* javax/crypto/Cipher.java,
	* javax/crypto/CipherOutputStream.java,
	* javax/crypto/ExemptionMechanism.java,
	* javax/crypto/KeyAgreement.java,
	* javax/crypto/KeyGenerator.java,
	* javax/crypto/Mac.java,
	* javax/crypto/MacSpi.java,
	* javax/crypto/SecretKeyFactory.java,
	* javax/crypto/spec/PBEKeySpec.java,
	* javax/imageio/IIOImage.java,
	* javax/imageio/IIOParam.java,
	* javax/imageio/IIOParamController.java,
	* javax/imageio/ImageIO.java,
	* javax/imageio/ImageReadParam.java,
	* javax/imageio/ImageReader.java,
	* javax/imageio/ImageTranscoder.java,
	* javax/imageio/ImageTypeSpecifier.java,
	* javax/imageio/ImageWriteParam.java,
	* javax/imageio/ImageWriter.java,
	* javax/imageio/event/IIOReadProgressListener.java,
	* javax/imageio/event/IIOReadUpdateListener.java,
	* javax/imageio/event/IIOWriteProgressListener.java,
	* javax/imageio/metadata/IIOInvalidTreeException.java,
	* javax/imageio/metadata/IIOMetadata.java,
	* javax/imageio/metadata/IIOMetadataFormatImpl.java,
	* javax/imageio/metadata/IIOMetadataNode.java,
	* javax/imageio/plugins/bmp/BMPImageWriteParam.java,
	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java,
	* javax/imageio/spi/IIORegistry.java,
	* javax/imageio/spi/ImageReaderSpi.java,
	* javax/imageio/spi/ImageWriterSpi.java,
	* javax/imageio/spi/RegisterableService.java,
	* javax/imageio/spi/ServiceRegistry.java,
	* javax/imageio/stream/FileCacheImageInputStream.java,
	* javax/imageio/stream/FileCacheImageOutputStream.java,
	* javax/imageio/stream/FileImageInputStream.java,
	* javax/imageio/stream/FileImageOutputStream.java,
	* javax/imageio/stream/ImageInputStream.java,
	* javax/imageio/stream/ImageInputStreamImpl.java,
	* javax/imageio/stream/ImageOutputStreamImpl.java,
	* javax/imageio/stream/MemoryCacheImageInputStream.java,
	* javax/imageio/stream/MemoryCacheImageOutputStream.java,
	* javax/management/Attribute.java,
	* javax/management/AttributeChangeNotification.java,
	* javax/management/AttributeChangeNotificationFilter.java,
	* javax/management/AttributeList.java,
	* javax/management/AttributeNotFoundException.java,
	* javax/management/AttributeValueExp.java,
	* javax/management/BadAttributeValueExpException.java,
	* javax/management/BadBinaryOpValueExpException.java,
	* javax/management/BadStringOperationException.java,
	* javax/management/DefaultLoaderRepository.java,
	* javax/management/Descriptor.java,
	* javax/management/DynamicMBean.java,
	* javax/management/InstanceAlreadyExistsException.java,
	* javax/management/InstanceNotFoundException.java,
	* javax/management/IntrospectionException.java,
	* javax/management/InvalidApplicationException.java,
	* javax/management/InvalidAttributeValueException.java,
	* javax/management/JMException.java,
	* javax/management/JMRuntimeException.java,
	* javax/management/JMX.java,
	* javax/management/ListenerNotFoundException.java,
	* javax/management/MBeanAttributeInfo.java,
	* javax/management/MBeanConstructorInfo.java,
	* javax/management/MBeanException.java,
	* javax/management/MBeanFeatureInfo.java,
	* javax/management/MBeanInfo.java,
	* javax/management/MBeanNotificationInfo.java,
	* javax/management/MBeanOperationInfo.java,
	* javax/management/MBeanParameterInfo.java,
	* javax/management/MBeanPermission.java,
	* javax/management/MBeanRegistrationException.java,
	* javax/management/MBeanServer.java,
	* javax/management/MBeanServerBuilder.java,
	* javax/management/MBeanServerConnection.java,
	* javax/management/MBeanServerDelegate.java,
	* javax/management/MBeanServerFactory.java,
	* javax/management/MBeanServerInvocationHandler.java,
	* javax/management/MBeanServerNotification.java,
	* javax/management/MBeanServerPermission.java,
	* javax/management/MBeanTrustPermission.java,
	* javax/management/MalformedObjectNameException.java,
	* javax/management/NotCompliantMBeanException.java,
	* javax/management/Notification.java,
	* javax/management/NotificationBroadcaster.java,
	* javax/management/NotificationBroadcasterSupport.java,
	* javax/management/NotificationEmitter.java,
	* javax/management/NotificationFilter.java,
	* javax/management/NotificationFilterSupport.java,
	* javax/management/NotificationListener.java,
	* javax/management/ObjectInstance.java,
	* javax/management/ObjectName.java,
	* javax/management/OperationsException.java,
	* javax/management/PersistentMBean.java,
	* javax/management/Query.java,
	* javax/management/QueryEval.java,
	* javax/management/QueryExp.java,
	* javax/management/ReflectionException.java,
	* javax/management/RuntimeErrorException.java,
	* javax/management/RuntimeMBeanException.java,
	* javax/management/RuntimeOperationsException.java,
	* javax/management/ServiceNotFoundException.java,
	* javax/management/StandardMBean.java,
	* javax/management/StringValueExp.java,
	* javax/management/ValueExp.java,
	* javax/management/loading/ClassLoaderRepository.java,
	* javax/management/openmbean/ArrayType.java,
	* javax/management/openmbean/CompositeData.java,
	* javax/management/openmbean/CompositeDataInvocationHandler.java,
	* javax/management/openmbean/CompositeDataSupport.java,
	* javax/management/openmbean/CompositeType.java,
	* javax/management/openmbean/InvalidKeyException.java,
	* javax/management/openmbean/InvalidOpenTypeException.java,
	* javax/management/openmbean/KeyAlreadyExistsException.java,
	* javax/management/openmbean/OpenDataException.java,
	* javax/management/openmbean/OpenMBeanAttributeInfo.java,
	* javax/management/openmbean/OpenMBeanAttributeInfoSupport.java,
	* javax/management/openmbean/OpenMBeanConstructorInfo.java,
	* javax/management/openmbean/OpenMBeanConstructorInfoSupport.java,
	* javax/management/openmbean/OpenMBeanInfo.java,
	* javax/management/openmbean/OpenMBeanInfoSupport.java,
	* javax/management/openmbean/OpenMBeanOperationInfo.java,
	* javax/management/openmbean/OpenMBeanOperationInfoSupport.java,
	* javax/management/openmbean/OpenMBeanParameterInfo.java,
	* javax/management/openmbean/OpenMBeanParameterInfoSupport.java,
	* javax/management/openmbean/OpenType.java,
	* javax/management/openmbean/SimpleType.java,
	* javax/management/openmbean/TabularData.java,
	* javax/management/openmbean/TabularDataSupport.java,
	* javax/management/openmbean/TabularType.java,
	* javax/management/remote/NotificationResult.java,
	* javax/management/remote/TargetedNotification.java,
	* javax/management/remote/rmi/RMIConnection.java,
	* javax/naming/AuthenticationException.java,
	* javax/naming/AuthenticationNotSupportedException.java,
	* javax/naming/BinaryRefAddr.java,
	* javax/naming/Binding.java,
	* javax/naming/CannotProceedException.java,
	* javax/naming/CommunicationException.java,
	* javax/naming/CompositeName.java,
	* javax/naming/CompoundName.java,
	* javax/naming/ConfigurationException.java,
	* javax/naming/Context.java,
	* javax/naming/ContextNotEmptyException.java,
	* javax/naming/InitialContext.java,
	* javax/naming/InsufficientResourcesException.java,
	* javax/naming/InterruptedNamingException.java,
	* javax/naming/InvalidNameException.java,
	* javax/naming/LimitExceededException.java,
	* javax/naming/LinkException.java,
	* javax/naming/LinkLoopException.java,
	* javax/naming/MalformedLinkException.java,
	* javax/naming/Name.java,
	* javax/naming/NameAlreadyBoundException.java,
	* javax/naming/NameClassPair.java,
	* javax/naming/NameNotFoundException.java,
	* javax/naming/NameParser.java,
	* javax/naming/NamingEnumeration.java,
	* javax/naming/NamingException.java,
	* javax/naming/NamingSecurityException.java,
	* javax/naming/NoInitialContextException.java,
	* javax/naming/NoPermissionException.java,
	* javax/naming/NotContextException.java,
	* javax/naming/PartialResultException.java,
	* javax/naming/RefAddr.java,
	* javax/naming/Reference.java,
	* javax/naming/Referenceable.java,
	* javax/naming/ReferralException.java,
	* javax/naming/ServiceUnavailableException.java,
	* javax/naming/SizeLimitExceededException.java,
	* javax/naming/StringRefAddr.java,
	* javax/naming/TimeLimitExceededException.java,
	* javax/naming/directory/AttributeInUseException.java,
	* javax/naming/directory/Attributes.java,
	* javax/naming/directory/BasicAttribute.java,
	* javax/naming/directory/BasicAttributes.java,
	* javax/naming/directory/InitialDirContext.java,
	* javax/naming/directory/ModificationItem.java,
	* javax/naming/directory/SearchControls.java,
	* javax/naming/directory/SearchResult.java,
	* javax/naming/event/EventContext.java,
	* javax/naming/event/NamespaceChangeListener.java,
	* javax/naming/event/NamingEvent.java,
	* javax/naming/event/NamingExceptionEvent.java,
	* javax/naming/event/NamingListener.java,
	* javax/naming/event/ObjectChangeListener.java,
	* javax/naming/ldap/Control.java,
	* javax/naming/ldap/ControlFactory.java,
	* javax/naming/ldap/ExtendedRequest.java,
	* javax/naming/ldap/ExtendedResponse.java,
	* javax/naming/ldap/HasControls.java,
	* javax/naming/ldap/InitialLdapContext.java,
	* javax/naming/ldap/LdapContext.java,
	* javax/naming/ldap/LdapReferralException.java,
	* javax/naming/ldap/StartTlsRequest.java,
	* javax/naming/ldap/UnsolicitedNotification.java,
	* javax/naming/ldap/UnsolicitedNotificationEvent.java,
	* javax/naming/ldap/UnsolicitedNotificationListener.java,
	* javax/naming/spi/DirObjectFactory.java,
	* javax/naming/spi/DirStateFactory.java,
	* javax/naming/spi/DirectoryManager.java,
	* javax/naming/spi/InitialContextFactory.java,
	* javax/naming/spi/InitialContextFactoryBuilder.java,
	* javax/naming/spi/NamingManager.java,
	* javax/naming/spi/ObjectFactory.java,
	* javax/naming/spi/ObjectFactoryBuilder.java,
	* javax/naming/spi/ResolveResult.java,
	* javax/naming/spi/Resolver.java,
	* javax/naming/spi/StateFactory.java,
	* javax/net/ssl/CertPathTrustManagerParameters.java,
	* javax/net/ssl/KeyManagerFactory.java,
	* javax/net/ssl/KeyStoreBuilderParameters.java,
	* javax/net/ssl/SSLContext.java,
	* javax/net/ssl/SSLEngine.java,
	* javax/net/ssl/SSLEngineResult.java,
	* javax/net/ssl/SSLException.java,
	* javax/net/ssl/TrustManagerFactory.java,
	* javax/net/ssl/X509ExtendedKeyManager.java,
	* javax/print/AttributeException.java,
	* javax/print/CancelablePrintJob.java,
	* javax/print/Doc.java,
	* javax/print/DocFlavor.java,
	* javax/print/DocPrintJob.java,
	* javax/print/FlavorException.java,
	* javax/print/MultiDoc.java,
	* javax/print/MultiDocPrintJob.java,
	* javax/print/MultiDocPrintService.java,
	* javax/print/PrintException.java,
	* javax/print/PrintService.java,
	* javax/print/PrintServiceLookup.java,
	* javax/print/ServiceUI.java,
	* javax/print/ServiceUIFactory.java,
	* javax/print/SimpleDoc.java,
	* javax/print/StreamPrintService.java,
	* javax/print/StreamPrintServiceFactory.java,
	* javax/print/URIException.java,
	* javax/print/attribute/Attribute.java,
	* javax/print/attribute/AttributeSet.java,
	* javax/print/attribute/AttributeSetUtilities.java,
	* javax/print/attribute/DateTimeSyntax.java,
	* javax/print/attribute/DocAttribute.java,
	* javax/print/attribute/DocAttributeSet.java,
	* javax/print/attribute/EnumSyntax.java,
	* javax/print/attribute/HashAttributeSet.java,
	* javax/print/attribute/HashDocAttributeSet.java,
	* javax/print/attribute/HashPrintJobAttributeSet.java,
	* javax/print/attribute/HashPrintRequestAttributeSet.java,
	* javax/print/attribute/HashPrintServiceAttributeSet.java,
	* javax/print/attribute/IntegerSyntax.java,
	* javax/print/attribute/PrintJobAttribute.java,
	* javax/print/attribute/PrintJobAttributeSet.java,
	* javax/print/attribute/PrintRequestAttribute.java,
	* javax/print/attribute/PrintRequestAttributeSet.java,
	* javax/print/attribute/PrintServiceAttribute.java,
	* javax/print/attribute/PrintServiceAttributeSet.java,
	* javax/print/attribute/ResolutionSyntax.java,
	* javax/print/attribute/SetOfIntegerSyntax.java,
	* javax/print/attribute/Size2DSyntax.java,
	* javax/print/attribute/SupportedValuesAttribute.java,
	* javax/print/attribute/TextSyntax.java,
	* javax/print/attribute/URISyntax.java,
	* javax/print/attribute/UnmodifiableSetException.java,
	* javax/print/attribute/standard/Chromaticity.java,
	* javax/print/attribute/standard/ColorSupported.java,
	* javax/print/attribute/standard/Compression.java,
	* javax/print/attribute/standard/Copies.java,
	* javax/print/attribute/standard/CopiesSupported.java,
	* javax/print/attribute/standard/DateTimeAtCompleted.java,
	* javax/print/attribute/standard/DateTimeAtCreation.java,
	* javax/print/attribute/standard/DateTimeAtProcessing.java,
	* javax/print/attribute/standard/Destination.java,
	* javax/print/attribute/standard/DocumentName.java,
	* javax/print/attribute/standard/Fidelity.java,
	* javax/print/attribute/standard/Finishings.java,
	* javax/print/attribute/standard/JobHoldUntil.java,
	* javax/print/attribute/standard/JobImpressions.java,
	* javax/print/attribute/standard/JobImpressionsCompleted.java,
	* javax/print/attribute/standard/JobImpressionsSupported.java,
	* javax/print/attribute/standard/JobKOctets.java,
	* javax/print/attribute/standard/JobKOctetsProcessed.java,
	* javax/print/attribute/standard/JobKOctetsSupported.java,
	* javax/print/attribute/standard/JobMediaSheets.java,
	* javax/print/attribute/standard/JobMediaSheetsCompleted.java,
	* javax/print/attribute/standard/JobMediaSheetsSupported.java,
	* javax/print/attribute/standard/JobMessageFromOperator.java,
	* javax/print/attribute/standard/JobName.java,
	* javax/print/attribute/standard/JobOriginatingUserName.java,
	* javax/print/attribute/standard/JobPriority.java,
	* javax/print/attribute/standard/JobPrioritySupported.java,
	* javax/print/attribute/standard/JobSheets.java,
	* javax/print/attribute/standard/JobState.java,
	* javax/print/attribute/standard/JobStateReason.java,
	* javax/print/attribute/standard/JobStateReasons.java,
	* javax/print/attribute/standard/Media.java,
	* javax/print/attribute/standard/MediaName.java,
	* javax/print/attribute/standard/MediaPrintableArea.java,
	* javax/print/attribute/standard/MediaSize.java,
	* javax/print/attribute/standard/MediaSizeName.java,
	* javax/print/attribute/standard/MediaTray.java,
	* javax/print/attribute/standard/MultipleDocumentHandling.java,
	* javax/print/attribute/standard/NumberOfDocuments.java,
	* javax/print/attribute/standard/NumberOfInterveningJobs.java,
	* javax/print/attribute/standard/NumberUp.java,
	* javax/print/attribute/standard/NumberUpSupported.java,
	* javax/print/attribute/standard/OrientationRequested.java,
	* javax/print/attribute/standard/OutputDeviceAssigned.java,
	* javax/print/attribute/standard/PDLOverrideSupported.java,
	* javax/print/attribute/standard/PageRanges.java,
	* javax/print/attribute/standard/PagesPerMinute.java,
	* javax/print/attribute/standard/PagesPerMinuteColor.java,
	* javax/print/attribute/standard/PresentationDirection.java,
	* javax/print/attribute/standard/PrintQuality.java,
	* javax/print/attribute/standard/PrinterInfo.java,
	* javax/print/attribute/standard/PrinterIsAcceptingJobs.java,
	* javax/print/attribute/standard/PrinterLocation.java,
	* javax/print/attribute/standard/PrinterMakeAndModel.java,
	* javax/print/attribute/standard/PrinterMessageFromOperator.java,
	* javax/print/attribute/standard/PrinterMoreInfo.java,
	* javax/print/attribute/standard/PrinterMoreInfoManufacturer.java,
	* javax/print/attribute/standard/PrinterName.java,
	* javax/print/attribute/standard/PrinterResolution.java,
	* javax/print/attribute/standard/PrinterState.java,
	* javax/print/attribute/standard/PrinterStateReason.java,
	* javax/print/attribute/standard/PrinterStateReasons.java,
	* javax/print/attribute/standard/PrinterURI.java,
	* javax/print/attribute/standard/QueuedJobCount.java,
	* javax/print/attribute/standard/ReferenceUriSchemesSupported.java,
	* javax/print/attribute/standard/RequestingUserName.java,
	* javax/print/attribute/standard/Severity.java,
	* javax/print/attribute/standard/SheetCollate.java,
	* javax/print/attribute/standard/Sides.java,
	* javax/print/event/PrintEvent.java,
	* javax/print/event/PrintJobAdapter.java,
	* javax/print/event/PrintJobAttributeEvent.java,
	* javax/print/event/PrintJobAttributeListener.java,
	* javax/print/event/PrintJobEvent.java,
	* javax/print/event/PrintJobListener.java,
	* javax/print/event/PrintServiceAttributeEvent.java,
	* javax/print/event/PrintServiceAttributeListener.java,
	* javax/rmi/CORBA/ClassDesc.java,
	* javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
	* javax/rmi/CORBA/Stub.java,
	* javax/rmi/CORBA/StubDelegate.java,
	* javax/rmi/CORBA/Tie.java,
	* javax/rmi/CORBA/Util.java,
	* javax/rmi/CORBA/UtilDelegate.java,
	* javax/rmi/CORBA/ValueHandler.java,
	* javax/rmi/CORBA/ValueHandlerMultiFormat.java,
	* javax/rmi/PortableRemoteObject.java,
	* javax/rmi/ssl/SslRMIClientSocketFactory.java,
	* javax/rmi/ssl/SslRMIServerSocketFactory.java,
	* javax/security/auth/Subject.java,
	* javax/security/auth/callback/ChoiceCallback.java,
	* javax/security/auth/callback/ConfirmationCallback.java,
	* javax/security/auth/callback/NameCallback.java,
	* javax/security/auth/callback/PasswordCallback.java,
	* javax/security/auth/callback/TextInputCallback.java,
	* javax/security/auth/callback/TextOutputCallback.java,
	* javax/security/auth/kerberos/DelegationPermission.java,
	* javax/security/auth/kerberos/KerberosKey.java,
	* javax/security/auth/kerberos/KerberosPrincipal.java,
	* javax/security/auth/kerberos/ServicePermission.java,
	* javax/security/auth/login/AccountNotFoundException.java,
	* javax/security/auth/login/AppConfigurationEntry.java,
	* javax/security/auth/login/LoginContext.java,
	* javax/security/sasl/Sasl.java,
	* javax/sound/midi/ControllerEventListener.java,
	* javax/sound/midi/Instrument.java,
	* javax/sound/midi/InvalidMidiDataException.java,
	* javax/sound/midi/MetaEventListener.java,
	* javax/sound/midi/MetaMessage.java,
	* javax/sound/midi/MidiChannel.java,
	* javax/sound/midi/MidiDevice.java,
	* javax/sound/midi/MidiEvent.java,
	* javax/sound/midi/MidiFileFormat.java,
	* javax/sound/midi/MidiMessage.java,
	* javax/sound/midi/MidiSystem.java,
	* javax/sound/midi/MidiUnavailableException.java,
	* javax/sound/midi/Patch.java,
	* javax/sound/midi/Receiver.java,
	* javax/sound/midi/Sequence.java,
	* javax/sound/midi/Sequencer.java,
	* javax/sound/midi/ShortMessage.java,
	* javax/sound/midi/Soundbank.java,
	* javax/sound/midi/SoundbankResource.java,
	* javax/sound/midi/Synthesizer.java,
	* javax/sound/midi/SysexMessage.java,
	* javax/sound/midi/Track.java,
	* javax/sound/midi/Transmitter.java,
	* javax/sound/midi/VoiceStatus.java,
	* javax/sound/midi/spi/MidiDeviceProvider.java,
	* javax/sound/midi/spi/MidiFileReader.java,
	* javax/sound/midi/spi/MidiFileWriter.java,
	* javax/sound/midi/spi/SoundbankReader.java,
	* javax/sound/sampled/AudioFileFormat.java,
	* javax/sound/sampled/AudioFormat.java,
	* javax/sound/sampled/AudioInputStream.java,
	* javax/sound/sampled/AudioPermission.java,
	* javax/sound/sampled/AudioSystem.java,
	* javax/sound/sampled/BooleanControl.java,
	* javax/sound/sampled/Clip.java,
	* javax/sound/sampled/CompoundControl.java,
	* javax/sound/sampled/DataLine.java,
	* javax/sound/sampled/EnumControl.java,
	* javax/sound/sampled/FloatControl.java,
	* javax/sound/sampled/Line.java,
	* javax/sound/sampled/LineEvent.java,
	* javax/sound/sampled/LineUnavailableException.java,
	* javax/sound/sampled/Mixer.java,
	* javax/sound/sampled/Port.java,
	* javax/sound/sampled/ReverbType.java,
	* javax/sound/sampled/UnsupportedAudioFileException.java,
	* javax/sound/sampled/spi/AudioFileReader.java,
	* javax/sound/sampled/spi/AudioFileWriter.java,
	* javax/sound/sampled/spi/FormatConversionProvider.java,
	* javax/sql/ConnectionEvent.java,
	* javax/sql/ConnectionEventListener.java,
	* javax/sql/ConnectionPoolDataSource.java,
	* javax/sql/DataSource.java,
	* javax/sql/PooledConnection.java,
	* javax/sql/RowSet.java,
	* javax/sql/RowSetEvent.java,
	* javax/sql/RowSetInternal.java,
	* javax/sql/RowSetListener.java,
	* javax/sql/RowSetMetaData.java,
	* javax/sql/RowSetReader.java,
	* javax/sql/RowSetWriter.java,
	* javax/sql/XAConnection.java,
	* javax/sql/XADataSource.java,
	* javax/swing/AbstractAction.java,
	* javax/swing/AbstractButton.java,
	* javax/swing/AbstractCellEditor.java,
	* javax/swing/AbstractListModel.java,
	* javax/swing/AbstractSpinnerModel.java,
	* javax/swing/Action.java,
	* javax/swing/BorderFactory.java,
	* javax/swing/BoundedRangeModel.java,
	* javax/swing/Box.java,
	* javax/swing/BoxLayout.java,
	* javax/swing/ButtonGroup.java,
	* javax/swing/ButtonModel.java,
	* javax/swing/CellEditor.java,
	* javax/swing/CellRendererPane.java,
	* javax/swing/ComboBoxModel.java,
	* javax/swing/ComponentInputMap.java,
	* javax/swing/DebugGraphics.java,
	* javax/swing/DefaultBoundedRangeModel.java,
	* javax/swing/DefaultButtonModel.java,
	* javax/swing/DefaultCellEditor.java,
	* javax/swing/DefaultComboBoxModel.java,
	* javax/swing/DefaultDesktopManager.java,
	* javax/swing/DefaultFocusManager.java,
	* javax/swing/DefaultListModel.java,
	* javax/swing/DefaultListSelectionModel.java,
	* javax/swing/DefaultSingleSelectionModel.java,
	* javax/swing/FocusManager.java,
	* javax/swing/GrayFilter.java,
	* javax/swing/Icon.java,
	* javax/swing/ImageIcon.java,
	* javax/swing/InputMap.java,
	* javax/swing/InternalFrameFocusTraversalPolicy.java,
	* javax/swing/JApplet.java,
	* javax/swing/JButton.java,
	* javax/swing/JCheckBox.java,
	* javax/swing/JCheckBoxMenuItem.java,
	* javax/swing/JComboBox.java,
	* javax/swing/JComponent.java,
	* javax/swing/JDesktopPane.java,
	* javax/swing/JDialog.java,
	* javax/swing/JEditorPane.java,
	* javax/swing/JFileChooser.java,
	* javax/swing/JFormattedTextField.java,
	* javax/swing/JFrame.java,
	* javax/swing/JInternalFrame.java,
	* javax/swing/JLabel.java,
	* javax/swing/JLayeredPane.java,
	* javax/swing/JList.java,
	* javax/swing/JMenu.java,
	* javax/swing/JMenuBar.java,
	* javax/swing/JMenuItem.java,
	* javax/swing/JOptionPane.java,
	* javax/swing/JPanel.java,
	* javax/swing/JPasswordField.java,
	* javax/swing/JPopupMenu.java,
	* javax/swing/JProgressBar.java,
	* javax/swing/JRadioButton.java,
	* javax/swing/JRadioButtonMenuItem.java,
	* javax/swing/JRootPane.java,
	* javax/swing/JScrollBar.java,
	* javax/swing/JScrollPane.java,
	* javax/swing/JSeparator.java,
	* javax/swing/JSlider.java,
	* javax/swing/JSpinner.java,
	* javax/swing/JSplitPane.java,
	* javax/swing/JTabbedPane.java,
	* javax/swing/JTable.java,
	* javax/swing/JTextArea.java,
	* javax/swing/JTextField.java,
	* javax/swing/JTextPane.java,
	* javax/swing/JToggleButton.java,
	* javax/swing/JToolBar.java,
	* javax/swing/JToolTip.java,
	* javax/swing/JTree.java,
	* javax/swing/JViewport.java,
	* javax/swing/JWindow.java,
	* javax/swing/KeyStroke.java,
	* javax/swing/KeyboardManager.java,
	* javax/swing/LayoutFocusTraversalPolicy.java,
	* javax/swing/ListCellRenderer.java,
	* javax/swing/ListSelectionModel.java,
	* javax/swing/LookAndFeel.java,
	* javax/swing/MenuSelectionManager.java,
	* javax/swing/OverlayLayout.java,
	* javax/swing/Popup.java,
	* javax/swing/PopupFactory.java,
	* javax/swing/ProgressMonitor.java,
	* javax/swing/ProgressMonitorInputStream.java,
	* javax/swing/Renderer.java,
	* javax/swing/RepaintManager.java,
	* javax/swing/ScrollPaneLayout.java,
	* javax/swing/Scrollable.java,
	* javax/swing/SingleSelectionModel.java,
	* javax/swing/SizeRequirements.java,
	* javax/swing/SizeSequence.java,
	* javax/swing/SortingFocusTraversalPolicy.java,
	* javax/swing/SpinnerDateModel.java,
	* javax/swing/SpinnerListModel.java,
	* javax/swing/SpinnerModel.java,
	* javax/swing/SpinnerNumberModel.java,
	* javax/swing/Spring.java,
	* javax/swing/SpringLayout.java,
	* javax/swing/SwingConstants.java,
	* javax/swing/SwingUtilities.java,
	* javax/swing/Timer.java,
	* javax/swing/ToolTipManager.java,
	* javax/swing/TransferHandler.java,
	* javax/swing/UIDefaults.java,
	* javax/swing/UIManager.java,
	* javax/swing/UnsupportedLookAndFeelException.java,
	* javax/swing/ViewportLayout.java,
	* javax/swing/WindowConstants.java,
	* javax/swing/border/AbstractBorder.java,
	* javax/swing/border/BevelBorder.java,
	* javax/swing/border/Border.java,
	* javax/swing/border/CompoundBorder.java,
	* javax/swing/border/EmptyBorder.java,
	* javax/swing/border/EtchedBorder.java,
	* javax/swing/border/LineBorder.java,
	* javax/swing/border/MatteBorder.java,
	* javax/swing/border/SoftBevelBorder.java,
	* javax/swing/border/TitledBorder.java,
	* javax/swing/colorchooser/AbstractColorChooserPanel.java,
	* javax/swing/colorchooser/ColorChooserComponentFactory.java,
	* javax/swing/colorchooser/ColorSelectionModel.java,
	* javax/swing/colorchooser/DefaultColorSelectionModel.java,
	* javax/swing/colorchooser/DefaultHSBChooserPanel.java,
	* javax/swing/colorchooser/DefaultRGBChooserPanel.java,
	* javax/swing/colorchooser/DefaultSwatchChooserPanel.java,
	* javax/swing/event/AncestorEvent.java,
	* javax/swing/event/AncestorListener.java,
	* javax/swing/event/CaretEvent.java,
	* javax/swing/event/CaretListener.java,
	* javax/swing/event/CellEditorListener.java,
	* javax/swing/event/ChangeEvent.java,
	* javax/swing/event/ChangeListener.java,
	* javax/swing/event/DocumentEvent.java,
	* javax/swing/event/DocumentListener.java,
	* javax/swing/event/EventListenerList.java,
	* javax/swing/event/HyperlinkEvent.java,
	* javax/swing/event/HyperlinkListener.java,
	* javax/swing/event/InternalFrameAdapter.java,
	* javax/swing/event/InternalFrameEvent.java,
	* javax/swing/event/InternalFrameListener.java,
	* javax/swing/event/ListDataEvent.java,
	* javax/swing/event/ListDataListener.java,
	* javax/swing/event/ListSelectionEvent.java,
	* javax/swing/event/ListSelectionListener.java,
	* javax/swing/event/MenuDragMouseEvent.java,
	* javax/swing/event/MenuDragMouseListener.java,
	* javax/swing/event/MenuEvent.java,
	* javax/swing/event/MenuKeyEvent.java,
	* javax/swing/event/MenuKeyListener.java,
	* javax/swing/event/MenuListener.java,
	* javax/swing/event/MouseInputListener.java,
	* javax/swing/event/PopupMenuEvent.java,
	* javax/swing/event/PopupMenuListener.java,
	* javax/swing/event/SwingPropertyChangeSupport.java,
	* javax/swing/event/TableColumnModelEvent.java,
	* javax/swing/event/TableColumnModelListener.java,
	* javax/swing/event/TableModelEvent.java,
	* javax/swing/event/TableModelListener.java,
	* javax/swing/event/TreeExpansionEvent.java,
	* javax/swing/event/TreeExpansionListener.java,
	* javax/swing/event/TreeModelEvent.java,
	* javax/swing/event/TreeModelListener.java,
	* javax/swing/event/TreeSelectionEvent.java,
	* javax/swing/event/TreeSelectionListener.java,
	* javax/swing/event/TreeWillExpandListener.java,
	* javax/swing/event/UndoableEditEvent.java,
	* javax/swing/filechooser/FileFilter.java,
	* javax/swing/filechooser/FileSystemView.java,
	* javax/swing/filechooser/FileView.java,
	* javax/swing/filechooser/UnixFileSystemView.java,
	* javax/swing/plaf/BorderUIResource.java,
	* javax/swing/plaf/ColorChooserUI.java,
	* javax/swing/plaf/ColorUIResource.java,
	* javax/swing/plaf/ComboBoxUI.java,
	* javax/swing/plaf/ComponentInputMapUIResource.java,
	* javax/swing/plaf/ComponentUI.java,
	* javax/swing/plaf/FileChooserUI.java,
	* javax/swing/plaf/IconUIResource.java,
	* javax/swing/plaf/SplitPaneUI.java,
	* javax/swing/plaf/TabbedPaneUI.java,
	* javax/swing/plaf/TextUI.java,
	* javax/swing/plaf/UIResource.java,
	* javax/swing/plaf/basic/BasicArrowButton.java,
	* javax/swing/plaf/basic/BasicBorders.java,
	* javax/swing/plaf/basic/BasicButtonListener.java,
	* javax/swing/plaf/basic/BasicButtonUI.java,
	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java,
	* javax/swing/plaf/basic/BasicCheckBoxUI.java,
	* javax/swing/plaf/basic/BasicColorChooserUI.java,
	* javax/swing/plaf/basic/BasicComboBoxEditor.java,
	* javax/swing/plaf/basic/BasicComboBoxRenderer.java,
	* javax/swing/plaf/basic/BasicComboBoxUI.java,
	* javax/swing/plaf/basic/BasicComboPopup.java,
	* javax/swing/plaf/basic/BasicDesktopIconUI.java,
	* javax/swing/plaf/basic/BasicDesktopPaneUI.java,
	* javax/swing/plaf/basic/BasicDirectoryModel.java,
	* javax/swing/plaf/basic/BasicEditorPaneUI.java,
	* javax/swing/plaf/basic/BasicFileChooserUI.java,
	* javax/swing/plaf/basic/BasicFormattedTextFieldUI.java,
	* javax/swing/plaf/basic/BasicGraphicsUtils.java,
	* javax/swing/plaf/basic/BasicHTML.java,
	* javax/swing/plaf/basic/BasicIconFactory.java,
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java,
	* javax/swing/plaf/basic/BasicInternalFrameUI.java,
	* javax/swing/plaf/basic/BasicLabelUI.java,
	* javax/swing/plaf/basic/BasicListUI.java,
	* javax/swing/plaf/basic/BasicLookAndFeel.java,
	* javax/swing/plaf/basic/BasicMenuBarUI.java,
	* javax/swing/plaf/basic/BasicMenuItemUI.java,
	* javax/swing/plaf/basic/BasicMenuUI.java,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java,
	* javax/swing/plaf/basic/BasicPanelUI.java,
	* javax/swing/plaf/basic/BasicPasswordFieldUI.java,
	* javax/swing/plaf/basic/BasicPopupMenuUI.java,
	* javax/swing/plaf/basic/BasicProgressBarUI.java,
	* javax/swing/plaf/basic/BasicRadioButtonUI.java,
	* javax/swing/plaf/basic/BasicRootPaneUI.java,
	* javax/swing/plaf/basic/BasicScrollBarUI.java,
	* javax/swing/plaf/basic/BasicScrollPaneUI.java,
	* javax/swing/plaf/basic/BasicSeparatorUI.java,
	* javax/swing/plaf/basic/BasicSliderUI.java,
	* javax/swing/plaf/basic/BasicSpinnerUI.java,
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java,
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java,
	* javax/swing/plaf/basic/BasicTableHeaderUI.java,
	* javax/swing/plaf/basic/BasicTableUI.java,
	* javax/swing/plaf/basic/BasicTextAreaUI.java,
	* javax/swing/plaf/basic/BasicTextFieldUI.java,
	* javax/swing/plaf/basic/BasicTextPaneUI.java,
	* javax/swing/plaf/basic/BasicTextUI.java,
	* javax/swing/plaf/basic/BasicToggleButtonUI.java,
	* javax/swing/plaf/basic/BasicToolBarUI.java,
	* javax/swing/plaf/basic/BasicToolTipUI.java,
	* javax/swing/plaf/basic/BasicTreeUI.java,
	* javax/swing/plaf/basic/BasicViewportUI.java,
	* javax/swing/plaf/metal/DefaultMetalTheme.java,
	* javax/swing/plaf/metal/MetalBorders.java,
	* javax/swing/plaf/metal/MetalButtonListener.java,
	* javax/swing/plaf/metal/MetalButtonUI.java,
	* javax/swing/plaf/metal/MetalCheckBoxIcon.java,
	* javax/swing/plaf/metal/MetalCheckBoxUI.java,
	* javax/swing/plaf/metal/MetalComboBoxButton.java,
	* javax/swing/plaf/metal/MetalComboBoxEditor.java,
	* javax/swing/plaf/metal/MetalComboBoxIcon.java,
	* javax/swing/plaf/metal/MetalComboBoxUI.java,
	* javax/swing/plaf/metal/MetalFileChooserUI.java,
	* javax/swing/plaf/metal/MetalIconFactory.java,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java,
	* javax/swing/plaf/metal/MetalInternalFrameUI.java,
	* javax/swing/plaf/metal/MetalLabelUI.java,
	* javax/swing/plaf/metal/MetalLookAndFeel.java,
	* javax/swing/plaf/metal/MetalMenuBarUI.java,
	* javax/swing/plaf/metal/MetalProgressBarUI.java,
	* javax/swing/plaf/metal/MetalRadioButtonUI.java,
	* javax/swing/plaf/metal/MetalRootPaneUI.java,
	* javax/swing/plaf/metal/MetalScrollBarUI.java,
	* javax/swing/plaf/metal/MetalScrollButton.java,
	* javax/swing/plaf/metal/MetalScrollPaneUI.java,
	* javax/swing/plaf/metal/MetalSeparatorUI.java,
	* javax/swing/plaf/metal/MetalSliderUI.java,
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java,
	* javax/swing/plaf/metal/MetalSplitPaneUI.java,
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java,
	* javax/swing/plaf/metal/MetalTextFieldUI.java,
	* javax/swing/plaf/metal/MetalTheme.java,
	* javax/swing/plaf/metal/MetalToggleButtonUI.java,
	* javax/swing/plaf/metal/MetalToolBarUI.java,
	* javax/swing/plaf/metal/MetalToolTipUI.java,
	* javax/swing/plaf/metal/MetalTreeUI.java,
	* javax/swing/plaf/metal/MetalUtils.java,
	* javax/swing/plaf/metal/OceanTheme.java,
	* javax/swing/plaf/multi/MultiButtonUI.java,
	* javax/swing/plaf/multi/MultiColorChooserUI.java,
	* javax/swing/plaf/multi/MultiComboBoxUI.java,
	* javax/swing/plaf/multi/MultiDesktopIconUI.java,
	* javax/swing/plaf/multi/MultiDesktopPaneUI.java,
	* javax/swing/plaf/multi/MultiFileChooserUI.java,
	* javax/swing/plaf/multi/MultiInternalFrameUI.java,
	* javax/swing/plaf/multi/MultiLabelUI.java,
	* javax/swing/plaf/multi/MultiListUI.java,
	* javax/swing/plaf/multi/MultiLookAndFeel.java,
	* javax/swing/plaf/multi/MultiMenuBarUI.java,
	* javax/swing/plaf/multi/MultiMenuItemUI.java,
	* javax/swing/plaf/multi/MultiOptionPaneUI.java,
	* javax/swing/plaf/multi/MultiPanelUI.java,
	* javax/swing/plaf/multi/MultiPopupMenuUI.java,
	* javax/swing/plaf/multi/MultiProgressBarUI.java,
	* javax/swing/plaf/multi/MultiRootPaneUI.java,
	* javax/swing/plaf/multi/MultiScrollBarUI.java,
	* javax/swing/plaf/multi/MultiScrollPaneUI.java,
	* javax/swing/plaf/multi/MultiSeparatorUI.java,
	* javax/swing/plaf/multi/MultiSliderUI.java,
	* javax/swing/plaf/multi/MultiSpinnerUI.java,
	* javax/swing/plaf/multi/MultiSplitPaneUI.java,
	* javax/swing/plaf/multi/MultiTabbedPaneUI.java,
	* javax/swing/plaf/multi/MultiTableHeaderUI.java,
	* javax/swing/plaf/multi/MultiTableUI.java,
	* javax/swing/plaf/multi/MultiTextUI.java,
	* javax/swing/plaf/multi/MultiToolBarUI.java,
	* javax/swing/plaf/multi/MultiToolTipUI.java,
	* javax/swing/plaf/multi/MultiTreeUI.java,
	* javax/swing/plaf/multi/MultiViewportUI.java,
	* javax/swing/plaf/synth/SynthGraphicsUtils.java,
	* javax/swing/plaf/synth/SynthLookAndFeel.java,
	* javax/swing/plaf/synth/SynthPainter.java,
	* javax/swing/table/AbstractTableModel.java,
	* javax/swing/table/DefaultTableCellRenderer.java,
	* javax/swing/table/DefaultTableColumnModel.java,
	* javax/swing/table/DefaultTableModel.java,
	* javax/swing/table/JTableHeader.java,
	* javax/swing/table/TableCellEditor.java,
	* javax/swing/table/TableCellRenderer.java,
	* javax/swing/table/TableColumn.java,
	* javax/swing/table/TableColumnModel.java,
	* javax/swing/table/TableModel.java,
	* javax/swing/text/AbstractDocument.java,
	* javax/swing/text/AbstractWriter.java,
	* javax/swing/text/AsyncBoxView.java,
	* javax/swing/text/AttributeSet.java,
	* javax/swing/text/BoxView.java,
	* javax/swing/text/Caret.java,
	* javax/swing/text/ComponentView.java,
	* javax/swing/text/CompositeView.java,
	* javax/swing/text/DefaultCaret.java,
	* javax/swing/text/DefaultEditorKit.java,
	* javax/swing/text/DefaultFormatter.java,
	* javax/swing/text/DefaultFormatterFactory.java,
	* javax/swing/text/DefaultHighlighter.java,
	* javax/swing/text/DefaultStyledDocument.java,
	* javax/swing/text/DocumentFilter.java,
	* javax/swing/text/EditorKit.java,
	* javax/swing/text/Element.java,
	* javax/swing/text/ElementIterator.java,
	* javax/swing/text/EmptyAttributeSet.java,
	* javax/swing/text/FieldView.java,
	* javax/swing/text/FlowView.java,
	* javax/swing/text/GapContent.java,
	* javax/swing/text/GlyphView.java,
	* javax/swing/text/Highlighter.java,
	* javax/swing/text/InternationalFormatter.java,
	* javax/swing/text/JTextComponent.java,
	* javax/swing/text/Keymap.java,
	* javax/swing/text/LayeredHighlighter.java,
	* javax/swing/text/LayoutQueue.java,
	* javax/swing/text/MaskFormatter.java,
	* javax/swing/text/MutableAttributeSet.java,
	* javax/swing/text/NavigationFilter.java,
	* javax/swing/text/NumberFormatter.java,
	* javax/swing/text/ParagraphView.java,
	* javax/swing/text/PasswordView.java,
	* javax/swing/text/PlainDocument.java,
	* javax/swing/text/PlainView.java,
	* javax/swing/text/Position.java,
	* javax/swing/text/Segment.java,
	* javax/swing/text/SimpleAttributeSet.java,
	* javax/swing/text/StringContent.java,
	* javax/swing/text/Style.java,
	* javax/swing/text/StyleConstants.java,
	* javax/swing/text/StyleContext.java,
	* javax/swing/text/StyledDocument.java,
	* javax/swing/text/StyledEditorKit.java,
	* javax/swing/text/TabExpander.java,
	* javax/swing/text/TabSet.java,
	* javax/swing/text/TabStop.java,
	* javax/swing/text/TabableView.java,
	* javax/swing/text/TableView.java,
	* javax/swing/text/TextAction.java,
	* javax/swing/text/Utilities.java,
	* javax/swing/text/View.java,
	* javax/swing/text/ViewFactory.java,
	* javax/swing/text/WrappedPlainView.java,
	* javax/swing/text/html/BRView.java,
	* javax/swing/text/html/BlockView.java,
	* javax/swing/text/html/CSS.java,
	* javax/swing/text/html/CSSBorder.java,
	* javax/swing/text/html/CSSParser.java,
	* javax/swing/text/html/FormView.java,
	* javax/swing/text/html/HRuleView.java,
	* javax/swing/text/html/HTMLDocument.java,
	* javax/swing/text/html/HTMLEditorKit.java,
	* javax/swing/text/html/HTMLWriter.java,
	* javax/swing/text/html/ImageView.java,
	* javax/swing/text/html/InlineView.java,
	* javax/swing/text/html/ListView.java,
	* javax/swing/text/html/MinimalHTMLWriter.java,
	* javax/swing/text/html/MultiAttributeSet.java,
	* javax/swing/text/html/MultiStyle.java,
	* javax/swing/text/html/ParagraphView.java,
	* javax/swing/text/html/StyleSheet.java,
	* javax/swing/text/html/TableView.java,
	* javax/swing/text/html/ViewAttributeSet.java,
	* javax/swing/text/html/parser/Entity.java,
	* javax/swing/text/html/parser/Parser.java,
	* javax/swing/text/rtf/RTFParser.java,
	* javax/swing/text/rtf/RTFScanner.java,
	* javax/swing/tree/AbstractLayoutCache.java,
	* javax/swing/tree/DefaultMutableTreeNode.java,
	* javax/swing/tree/DefaultTreeCellEditor.java,
	* javax/swing/tree/DefaultTreeCellRenderer.java,
	* javax/swing/tree/DefaultTreeModel.java,
	* javax/swing/tree/DefaultTreeSelectionModel.java,
	* javax/swing/tree/ExpandVetoException.java,
	* javax/swing/tree/FixedHeightLayoutCache.java,
	* javax/swing/tree/MutableTreeNode.java,
	* javax/swing/tree/RowMapper.java,
	* javax/swing/tree/TreeCellEditor.java,
	* javax/swing/tree/TreeCellRenderer.java,
	* javax/swing/tree/TreeNode.java,
	* javax/swing/tree/TreePath.java,
	* javax/swing/tree/TreeSelectionModel.java,
	* javax/swing/tree/VariableHeightLayoutCache.java,
	* javax/swing/undo/AbstractUndoableEdit.java,
	* javax/swing/undo/CompoundEdit.java,
	* javax/swing/undo/StateEdit.java,
	* javax/swing/undo/UndoManager.java,
	* javax/swing/undo/UndoableEdit.java,
	* javax/tools/FileObject.java,
	* javax/transaction/HeuristicCommitException.java,
	* javax/transaction/HeuristicMixedException.java,
	* javax/transaction/HeuristicRollbackException.java,
	* javax/transaction/InvalidTransactionException.java,
	* javax/transaction/NotSupportedException.java,
	* javax/transaction/RollbackException.java,
	* javax/transaction/Status.java,
	* javax/transaction/Synchronization.java,
	* javax/transaction/SystemException.java,
	* javax/transaction/Transaction.java,
	* javax/transaction/TransactionManager.java,
	* javax/transaction/TransactionRequiredException.java,
	* javax/transaction/TransactionRolledbackException.java,
	* javax/transaction/UserTransaction.java,
	* javax/transaction/xa/XAException.java,
	* javax/transaction/xa/XAResource.java,
	* javax/transaction/xa/Xid.java,
	* javax/xml/XMLConstants.java,
	* javax/xml/datatype/DatatypeConfigurationException.java,
	* javax/xml/datatype/DatatypeConstants.java,
	* javax/xml/datatype/DatatypeFactory.java,
	* javax/xml/datatype/Duration.java,
	* javax/xml/datatype/XMLGregorianCalendar.java,
	* javax/xml/namespace/NamespaceContext.java,
	* javax/xml/namespace/QName.java,
	* javax/xml/parsers/DocumentBuilder.java,
	* javax/xml/parsers/DocumentBuilderFactory.java,
	* javax/xml/parsers/FactoryConfigurationError.java,
	* javax/xml/parsers/ParserConfigurationException.java,
	* javax/xml/parsers/SAXParser.java,
	* javax/xml/parsers/SAXParserFactory.java,
	* javax/xml/stream/EventFilter.java,
	* javax/xml/stream/FactoryConfigurationError.java,
	* javax/xml/stream/Location.java,
	* javax/xml/stream/StreamFilter.java,
	* javax/xml/stream/XMLEventFactory.java,
	* javax/xml/stream/XMLEventReader.java,
	* javax/xml/stream/XMLEventWriter.java,
	* javax/xml/stream/XMLInputFactory.java,
	* javax/xml/stream/XMLOutputFactory.java,
	* javax/xml/stream/XMLReporter.java,
	* javax/xml/stream/XMLResolver.java,
	* javax/xml/stream/XMLStreamConstants.java,
	* javax/xml/stream/XMLStreamException.java,
	* javax/xml/stream/XMLStreamReader.java,
	* javax/xml/stream/XMLStreamWriter.java,
	* javax/xml/stream/events/Attribute.java,
	* javax/xml/stream/events/Characters.java,
	* javax/xml/stream/events/Comment.java,
	* javax/xml/stream/events/DTD.java,
	* javax/xml/stream/events/EndDocument.java,
	* javax/xml/stream/events/EndElement.java,
	* javax/xml/stream/events/EntityDeclaration.java,
	* javax/xml/stream/events/EntityReference.java,
	* javax/xml/stream/events/Namespace.java,
	* javax/xml/stream/events/NotationDeclaration.java,
	* javax/xml/stream/events/ProcessingInstruction.java,
	* javax/xml/stream/events/StartDocument.java,
	* javax/xml/stream/events/StartElement.java,
	* javax/xml/stream/events/XMLEvent.java,
	* javax/xml/stream/util/EventReaderDelegate.java,
	* javax/xml/stream/util/StreamReaderDelegate.java,
	* javax/xml/stream/util/XMLEventAllocator.java,
	* javax/xml/stream/util/XMLEventConsumer.java,
	* javax/xml/transform/ErrorListener.java,
	* javax/xml/transform/OutputKeys.java,
	* javax/xml/transform/Result.java,
	* javax/xml/transform/Source.java,
	* javax/xml/transform/SourceLocator.java,
	* javax/xml/transform/Templates.java,
	* javax/xml/transform/Transformer.java,
	* javax/xml/transform/TransformerConfigurationException.java,
	* javax/xml/transform/TransformerException.java,
	* javax/xml/transform/TransformerFactory.java,
	* javax/xml/transform/TransformerFactoryConfigurationError.java,
	* javax/xml/transform/URIResolver.java,
	* javax/xml/transform/dom/DOMLocator.java,
	* javax/xml/transform/dom/DOMResult.java,
	* javax/xml/transform/dom/DOMSource.java,
	* javax/xml/transform/sax/SAXResult.java,
	* javax/xml/transform/sax/SAXSource.java,
	* javax/xml/transform/sax/SAXTransformerFactory.java,
	* javax/xml/transform/sax/TemplatesHandler.java,
	* javax/xml/transform/sax/TransformerHandler.java,
	* javax/xml/transform/stream/StreamResult.java,
	* javax/xml/transform/stream/StreamSource.java,
	* javax/xml/validation/Schema.java,
	* javax/xml/validation/SchemaFactory.java,
	* javax/xml/validation/SchemaFactoryLoader.java,
	* javax/xml/validation/TypeInfoProvider.java,
	* javax/xml/validation/Validator.java,
	* javax/xml/validation/ValidatorHandler.java,
	* javax/xml/xpath/XPath.java,
	* javax/xml/xpath/XPathConstants.java,
	* javax/xml/xpath/XPathException.java,
	* javax/xml/xpath/XPathExpression.java,
	* javax/xml/xpath/XPathExpressionException.java,
	* javax/xml/xpath/XPathFactory.java,
	* javax/xml/xpath/XPathFactoryConfigurationException.java,
	* javax/xml/xpath/XPathFunction.java,
	* javax/xml/xpath/XPathFunctionException.java,
	* javax/xml/xpath/XPathFunctionResolver.java,
	* javax/xml/xpath/XPathVariableResolver.java,
	* org/omg/CORBA/ARG_IN.java,
	* org/omg/CORBA/ARG_INOUT.java,
	* org/omg/CORBA/ARG_OUT.java,
	* org/omg/CORBA/AnySeqHolder.java,
	* org/omg/CORBA/BAD_CONTEXT.java,
	* org/omg/CORBA/BAD_INV_ORDER.java,
	* org/omg/CORBA/BAD_OPERATION.java,
	* org/omg/CORBA/BAD_PARAM.java,
	* org/omg/CORBA/BAD_POLICY.java,
	* org/omg/CORBA/BAD_POLICY_TYPE.java,
	* org/omg/CORBA/BAD_POLICY_VALUE.java,
	* org/omg/CORBA/BAD_TYPECODE.java,
	* org/omg/CORBA/COMM_FAILURE.java,
	* org/omg/CORBA/CTX_RESTRICT_SCOPE.java,
	* org/omg/CORBA/CompletionStatus.java,
	* org/omg/CORBA/CompletionStatusHelper.java,
	* org/omg/CORBA/Context.java,
	* org/omg/CORBA/Current.java,
	* org/omg/CORBA/CurrentHelper.java,
	* org/omg/CORBA/CurrentHolder.java,
	* org/omg/CORBA/CustomMarshal.java,
	* org/omg/CORBA/CustomValue.java,
	* org/omg/CORBA/DATA_CONVERSION.java,
	* org/omg/CORBA/DataInputStream.java,
	* org/omg/CORBA/DataOutputStream.java,
	* org/omg/CORBA/DefinitionKind.java,
	* org/omg/CORBA/DefinitionKindHelper.java,
	* org/omg/CORBA/DynamicImplementation.java,
	* org/omg/CORBA/FREE_MEM.java,
	* org/omg/CORBA/FieldNameHelper.java,
	* org/omg/CORBA/IDLTypeHelper.java,
	* org/omg/CORBA/IMP_LIMIT.java,
	* org/omg/CORBA/INITIALIZE.java,
	* org/omg/CORBA/INTERNAL.java,
	* org/omg/CORBA/INTF_REPOS.java,
	* org/omg/CORBA/INVALID_TRANSACTION.java,
	* org/omg/CORBA/INV_FLAG.java,
	* org/omg/CORBA/INV_IDENT.java,
	* org/omg/CORBA/INV_OBJREF.java,
	* org/omg/CORBA/INV_POLICY.java,
	* org/omg/CORBA/IRObject.java,
	* org/omg/CORBA/IRObjectOperations.java,
	* org/omg/CORBA/IdentifierHelper.java,
	* org/omg/CORBA/LocalObject.java,
	* org/omg/CORBA/LongSeqHolder.java,
	* org/omg/CORBA/MARSHAL.java,
	* org/omg/CORBA/NO_IMPLEMENT.java,
	* org/omg/CORBA/NO_MEMORY.java,
	* org/omg/CORBA/NO_PERMISSION.java,
	* org/omg/CORBA/NO_RESOURCES.java,
	* org/omg/CORBA/NO_RESPONSE.java,
	* org/omg/CORBA/NVList.java,
	* org/omg/CORBA/OBJECT_NOT_EXIST.java,
	* org/omg/CORBA/OBJ_ADAPTER.java,
	* org/omg/CORBA/OMGVMCID.java,
	* org/omg/CORBA/ORB.java,
	* org/omg/CORBA/ObjectHelper.java,
	* org/omg/CORBA/ObjectHolder.java,
	* org/omg/CORBA/PERSIST_STORE.java,
	* org/omg/CORBA/ParameterMode.java,
	* org/omg/CORBA/ParameterModeHelper.java,
	* org/omg/CORBA/PolicyErrorCodeHelper.java,
	* org/omg/CORBA/PolicyErrorHelper.java,
	* org/omg/CORBA/PolicyErrorHolder.java,
	* org/omg/CORBA/PolicyHelper.java,
	* org/omg/CORBA/PolicyHolder.java,
	* org/omg/CORBA/PolicyListHelper.java,
	* org/omg/CORBA/PolicyListHolder.java,
	* org/omg/CORBA/PolicyOperations.java,
	* org/omg/CORBA/PolicyTypeHelper.java,
	* org/omg/CORBA/RepositoryIdHelper.java,
	* org/omg/CORBA/Request.java,
	* org/omg/CORBA/ServiceDetailHelper.java,
	* org/omg/CORBA/ServiceInformationHelper.java,
	* org/omg/CORBA/SetOverrideTypeHelper.java,
	* org/omg/CORBA/StringValueHelper.java,
	* org/omg/CORBA/StructMember.java,
	* org/omg/CORBA/StructMemberHelper.java,
	* org/omg/CORBA/SystemException.java,
	* org/omg/CORBA/TCKind.java,
	* org/omg/CORBA/TRANSACTION_REQUIRED.java,
	* org/omg/CORBA/TRANSACTION_ROLLEDBACK.java,
	* org/omg/CORBA/TRANSIENT.java,
	* org/omg/CORBA/TypeCode.java,
	* org/omg/CORBA/TypeCodePackage/BadKind.java,
	* org/omg/CORBA/TypeCodePackage/Bounds.java,
	* org/omg/CORBA/UNSUPPORTED_POLICY.java,
	* org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java,
	* org/omg/CORBA/UnionMemberHelper.java,
	* org/omg/CORBA/UnknownUserException.java,
	* org/omg/CORBA/UnknownUserExceptionHolder.java,
	* org/omg/CORBA/ValueBaseHelper.java,
	* org/omg/CORBA/ValueBaseHolder.java,
	* org/omg/CORBA/ValueMemberHelper.java,
	* org/omg/CORBA/VersionSpecHelper.java,
	* org/omg/CORBA/VisibilityHelper.java,
	* org/omg/CORBA/WStringValueHelper.java,
	* org/omg/CORBA/WrongTransactionHelper.java,
	* org/omg/CORBA/WrongTransactionHolder.java,
	* org/omg/CORBA/_IDLTypeStub.java,
	* org/omg/CORBA/_PolicyStub.java,
	* org/omg/CORBA/portable/CustomValue.java,
	* org/omg/CORBA/portable/Delegate.java,
	* org/omg/CORBA/portable/ObjectImpl.java,
	* org/omg/CORBA/portable/StreamableValue.java,
	* org/omg/CORBA/portable/ValueBase.java,
	* org/omg/CORBA_2_3/ORB.java,
	* org/omg/CORBA_2_3/portable/Delegate.java,
	* org/omg/CORBA_2_3/portable/InputStream.java,
	* org/omg/CORBA_2_3/portable/ObjectImpl.java,
	* org/omg/CORBA_2_3/portable/OutputStream.java,
	* org/omg/CosNaming/BindingHelper.java,
	* org/omg/CosNaming/BindingIterator.java,
	* org/omg/CosNaming/BindingIteratorHelper.java,
	* org/omg/CosNaming/BindingIteratorOperations.java,
	* org/omg/CosNaming/BindingIteratorPOA.java,
	* org/omg/CosNaming/BindingType.java,
	* org/omg/CosNaming/BindingTypeHelper.java,
	* org/omg/CosNaming/IstringHelper.java,
	* org/omg/CosNaming/NameComponentHelper.java,
	* org/omg/CosNaming/NameHelper.java,
	* org/omg/CosNaming/NamingContext.java,
	* org/omg/CosNaming/NamingContextExtHelper.java,
	* org/omg/CosNaming/NamingContextExtPOA.java,
	* org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java,
	* org/omg/CosNaming/NamingContextHelper.java,
	* org/omg/CosNaming/NamingContextPOA.java,
	* org/omg/CosNaming/NamingContextPackage/AlreadyBound.java,
	* org/omg/CosNaming/NamingContextPackage/CannotProceed.java,
	* org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java,
	* org/omg/CosNaming/NamingContextPackage/InvalidName.java,
	* org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java,
	* org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java,
	* org/omg/CosNaming/NamingContextPackage/NotFound.java,
	* org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java,
	* org/omg/CosNaming/NamingContextPackage/NotFoundReason.java,
	* org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java,
	* org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java,
	* org/omg/CosNaming/_BindingIteratorImplBase.java,
	* org/omg/CosNaming/_BindingIteratorStub.java,
	* org/omg/CosNaming/_NamingContextExtStub.java,
	* org/omg/CosNaming/_NamingContextStub.java,
	* org/omg/Dynamic/Parameter.java,
	* org/omg/DynamicAny/AnySeqHelper.java,
	* org/omg/DynamicAny/DynAny.java,
	* org/omg/DynamicAny/DynAnyFactoryHelper.java,
	* org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java,
	* org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java,
	* org/omg/DynamicAny/DynAnyHelper.java,
	* org/omg/DynamicAny/DynAnyPackage/InvalidValue.java,
	* org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java,
	* org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java,
	* org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java,
	* org/omg/DynamicAny/DynAnySeqHelper.java,
	* org/omg/DynamicAny/DynArrayHelper.java,
	* org/omg/DynamicAny/DynEnumHelper.java,
	* org/omg/DynamicAny/DynFixedHelper.java,
	* org/omg/DynamicAny/DynSequenceHelper.java,
	* org/omg/DynamicAny/DynStructHelper.java,
	* org/omg/DynamicAny/DynUnionHelper.java,
	* org/omg/DynamicAny/DynValueBox.java,
	* org/omg/DynamicAny/DynValueCommonOperations.java,
	* org/omg/DynamicAny/DynValueHelper.java,
	* org/omg/DynamicAny/FieldNameHelper.java,
	* org/omg/DynamicAny/NameDynAnyPairHelper.java,
	* org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
	* org/omg/DynamicAny/NameValuePair.java,
	* org/omg/DynamicAny/NameValuePairHelper.java,
	* org/omg/DynamicAny/NameValuePairSeqHelper.java,
	* org/omg/DynamicAny/_DynAnyFactoryStub.java,
	* org/omg/DynamicAny/_DynAnyStub.java,
	* org/omg/DynamicAny/_DynArrayStub.java,
	* org/omg/DynamicAny/_DynEnumStub.java,
	* org/omg/DynamicAny/_DynFixedStub.java,
	* org/omg/DynamicAny/_DynSequenceStub.java,
	* org/omg/DynamicAny/_DynStructStub.java,
	* org/omg/DynamicAny/_DynUnionStub.java,
	* org/omg/DynamicAny/_DynValueStub.java,
	* org/omg/IOP/Codec.java,
	* org/omg/IOP/CodecFactory.java,
	* org/omg/IOP/CodecFactoryHelper.java,
	* org/omg/IOP/CodecFactoryOperations.java,
	* org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java,
	* org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java,
	* org/omg/IOP/CodecOperations.java,
	* org/omg/IOP/CodecPackage/FormatMismatch.java,
	* org/omg/IOP/CodecPackage/FormatMismatchHelper.java,
	* org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java,
	* org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java,
	* org/omg/IOP/CodecPackage/TypeMismatch.java,
	* org/omg/IOP/CodecPackage/TypeMismatchHelper.java,
	* org/omg/IOP/ComponentIdHelper.java,
	* org/omg/IOP/Encoding.java,
	* org/omg/IOP/IOR.java,
	* org/omg/IOP/IORHelper.java,
	* org/omg/IOP/IORHolder.java,
	* org/omg/IOP/MultipleComponentProfileHelper.java,
	* org/omg/IOP/MultipleComponentProfileHolder.java,
	* org/omg/IOP/ProfileIdHelper.java,
	* org/omg/IOP/ServiceContext.java,
	* org/omg/IOP/ServiceContextHelper.java,
	* org/omg/IOP/ServiceContextHolder.java,
	* org/omg/IOP/ServiceContextListHelper.java,
	* org/omg/IOP/ServiceContextListHolder.java,
	* org/omg/IOP/ServiceIdHelper.java,
	* org/omg/IOP/TaggedComponent.java,
	* org/omg/IOP/TaggedComponentHelper.java,
	* org/omg/IOP/TaggedComponentHolder.java,
	* org/omg/IOP/TaggedProfile.java,
	* org/omg/IOP/TaggedProfileHelper.java,
	* org/omg/IOP/TaggedProfileHolder.java,
	* org/omg/IOP/TransactionService.java,
	* org/omg/Messaging/SYNC_WITH_TRANSPORT.java,
	* org/omg/Messaging/SyncScopeHelper.java,
	* org/omg/PortableInterceptor/AdapterManagerIdHelper.java,
	* org/omg/PortableInterceptor/AdapterNameHelper.java,
	* org/omg/PortableInterceptor/AdapterStateHelper.java,
	* org/omg/PortableInterceptor/ClientRequestInfo.java,
	* org/omg/PortableInterceptor/ClientRequestInfoOperations.java,
	* org/omg/PortableInterceptor/ClientRequestInterceptor.java,
	* org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java,
	* org/omg/PortableInterceptor/Current.java,
	* org/omg/PortableInterceptor/CurrentHelper.java,
	* org/omg/PortableInterceptor/CurrentOperations.java,
	* org/omg/PortableInterceptor/ForwardRequest.java,
	* org/omg/PortableInterceptor/ForwardRequestHelper.java,
	* org/omg/PortableInterceptor/IORInfo.java,
	* org/omg/PortableInterceptor/IORInfoOperations.java,
	* org/omg/PortableInterceptor/IORInterceptor.java,
	* org/omg/PortableInterceptor/IORInterceptorOperations.java,
	* org/omg/PortableInterceptor/IORInterceptor_3_0.java,
	* org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java,
	* org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java,
	* org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java,
	* org/omg/PortableInterceptor/Interceptor.java,
	* org/omg/PortableInterceptor/InterceptorOperations.java,
	* org/omg/PortableInterceptor/InvalidSlot.java,
	* org/omg/PortableInterceptor/InvalidSlotHelper.java,
	* org/omg/PortableInterceptor/LOCATION_FORWARD.java,
	* org/omg/PortableInterceptor/ORBIdHelper.java,
	* org/omg/PortableInterceptor/ORBInitInfo.java,
	* org/omg/PortableInterceptor/ORBInitInfoOperations.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java,
	* org/omg/PortableInterceptor/ORBInitializer.java,
	* org/omg/PortableInterceptor/ORBInitializerOperations.java,
	* org/omg/PortableInterceptor/ObjectIdHelper.java,
	* org/omg/PortableInterceptor/ObjectReferenceFactory.java,
	* org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java,
	* org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplate.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java,
	* org/omg/PortableInterceptor/PolicyFactory.java,
	* org/omg/PortableInterceptor/PolicyFactoryOperations.java,
	* org/omg/PortableInterceptor/RequestInfo.java,
	* org/omg/PortableInterceptor/RequestInfoOperations.java,
	* org/omg/PortableInterceptor/SUCCESSFUL.java,
	* org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java,
	* org/omg/PortableInterceptor/ServerIdHelper.java,
	* org/omg/PortableInterceptor/ServerRequestInfo.java,
	* org/omg/PortableInterceptor/ServerRequestInfoOperations.java,
	* org/omg/PortableInterceptor/ServerRequestInterceptor.java,
	* org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java,
	* org/omg/PortableInterceptor/TRANSPORT_RETRY.java,
	* org/omg/PortableInterceptor/USER_EXCEPTION.java,
	* org/omg/PortableInterceptor/_IORInterceptor_3_0Stub.java,
	* org/omg/PortableServer/AdapterActivator.java,
	* org/omg/PortableServer/AdapterActivatorOperations.java,
	* org/omg/PortableServer/Current.java,
	* org/omg/PortableServer/CurrentHelper.java,
	* org/omg/PortableServer/CurrentOperations.java,
	* org/omg/PortableServer/CurrentPackage/NoContext.java,
	* org/omg/PortableServer/CurrentPackage/NoContextHelper.java,
	* org/omg/PortableServer/DynamicImplementation.java,
	* org/omg/PortableServer/ForwardRequest.java,
	* org/omg/PortableServer/ForwardRequestHelper.java,
	* org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java,
	* org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java,
	* org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java,
	* org/omg/PortableServer/IdAssignmentPolicy.java,
	* org/omg/PortableServer/IdAssignmentPolicyOperations.java,
	* org/omg/PortableServer/IdAssignmentPolicyValue.java,
	* org/omg/PortableServer/IdUniquenessPolicy.java,
	* org/omg/PortableServer/IdUniquenessPolicyOperations.java,
	* org/omg/PortableServer/IdUniquenessPolicyValue.java,
	* org/omg/PortableServer/ImplicitActivationPolicy.java,
	* org/omg/PortableServer/ImplicitActivationPolicyOperations.java,
	* org/omg/PortableServer/ImplicitActivationPolicyValue.java,
	* org/omg/PortableServer/LifespanPolicy.java,
	* org/omg/PortableServer/LifespanPolicyOperations.java,
	* org/omg/PortableServer/LifespanPolicyValue.java,
	* org/omg/PortableServer/POA.java,
	* org/omg/PortableServer/POAHelper.java,
	* org/omg/PortableServer/POAManager.java,
	* org/omg/PortableServer/POAManagerOperations.java,
	* org/omg/PortableServer/POAManagerPackage/AdapterInactive.java,
	* org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java,
	* org/omg/PortableServer/POAManagerPackage/State.java,
	* org/omg/PortableServer/POAOperations.java,
	* org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java,
	* org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java,
	* org/omg/PortableServer/POAPackage/AdapterNonExistent.java,
	* org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java,
	* org/omg/PortableServer/POAPackage/InvalidPolicy.java,
	* org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java,
	* org/omg/PortableServer/POAPackage/NoServant.java,
	* org/omg/PortableServer/POAPackage/NoServantHelper.java,
	* org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java,
	* org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java,
	* org/omg/PortableServer/POAPackage/ObjectNotActive.java,
	* org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java,
	* org/omg/PortableServer/POAPackage/ServantAlreadyActive.java,
	* org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java,
	* org/omg/PortableServer/POAPackage/ServantNotActive.java,
	* org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java,
	* org/omg/PortableServer/POAPackage/WrongAdapter.java,
	* org/omg/PortableServer/POAPackage/WrongAdapterHelper.java,
	* org/omg/PortableServer/POAPackage/WrongPolicy.java,
	* org/omg/PortableServer/POAPackage/WrongPolicyHelper.java,
	* org/omg/PortableServer/RequestProcessingPolicy.java,
	* org/omg/PortableServer/RequestProcessingPolicyOperations.java,
	* org/omg/PortableServer/RequestProcessingPolicyValue.java,
	* org/omg/PortableServer/Servant.java,
	* org/omg/PortableServer/ServantActivator.java,
	* org/omg/PortableServer/ServantActivatorHelper.java,
	* org/omg/PortableServer/ServantActivatorOperations.java,
	* org/omg/PortableServer/ServantActivatorPOA.java,
	* org/omg/PortableServer/ServantLocator.java,
	* org/omg/PortableServer/ServantLocatorHelper.java,
	* org/omg/PortableServer/ServantLocatorOperations.java,
	* org/omg/PortableServer/ServantLocatorPOA.java,
	* org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java,
	* org/omg/PortableServer/ServantManager.java,
	* org/omg/PortableServer/ServantManagerOperations.java,
	* org/omg/PortableServer/ServantRetentionPolicy.java,
	* org/omg/PortableServer/ServantRetentionPolicyOperations.java,
	* org/omg/PortableServer/ServantRetentionPolicyValue.java,
	* org/omg/PortableServer/ThreadPolicy.java,
	* org/omg/PortableServer/ThreadPolicyOperations.java,
	* org/omg/PortableServer/ThreadPolicyValue.java,
	* org/omg/PortableServer/_ServantActivatorStub.java,
	* org/omg/PortableServer/_ServantLocatorStub.java,
	* org/omg/PortableServer/portable/Delegate.java,
	* org/omg/SendingContext/RunTime.java,
	* org/omg/SendingContext/RunTimeOperations.java,
	* sun/misc/Service.java,
	* sun/misc/ServiceConfigurationError.java,
	* sun/reflect/annotation/AnnotationInvocationHandler.java,
	* sun/reflect/annotation/AnnotationParser.java,
	* sun/reflect/annotation/AnnotationType.java,
	* sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java,
	* sun/reflect/annotation/ExceptionProxy.java,
	* tools/com/sun/javadoc/ClassDoc.java,
	* tools/com/sun/javadoc/ConstructorDoc.java,
	* tools/com/sun/javadoc/Doc.java,
	* tools/com/sun/javadoc/DocErrorReporter.java,
	* tools/com/sun/javadoc/Doclet.java,
	* tools/com/sun/javadoc/ExecutableMemberDoc.java,
	* tools/com/sun/javadoc/FieldDoc.java,
	* tools/com/sun/javadoc/MemberDoc.java,
	* tools/com/sun/javadoc/MethodDoc.java,
	* tools/com/sun/javadoc/PackageDoc.java,
	* tools/com/sun/javadoc/ParamTag.java,
	* tools/com/sun/javadoc/Parameter.java,
	* tools/com/sun/javadoc/ProgramElementDoc.java,
	* tools/com/sun/javadoc/RootDoc.java,
	* tools/com/sun/javadoc/SeeTag.java,
	* tools/com/sun/javadoc/SerialFieldTag.java,
	* tools/com/sun/javadoc/Tag.java,
	* tools/com/sun/javadoc/ThrowsTag.java,
	* tools/com/sun/javadoc/Type.java,
	* tools/com/sun/javadoc/TypeVariable.java,
	* tools/com/sun/tools/javadoc/Main.java,
	* tools/com/sun/tools/javah/Main.java,
	* tools/external/asm/org/objectweb/asm/AnnotationVisitor.java,
	* tools/external/asm/org/objectweb/asm/AnnotationWriter.java,
	* tools/external/asm/org/objectweb/asm/Attribute.java,
	* tools/external/asm/org/objectweb/asm/ByteVector.java,
	* tools/external/asm/org/objectweb/asm/ClassAdapter.java,
	* tools/external/asm/org/objectweb/asm/ClassReader.java,
	* tools/external/asm/org/objectweb/asm/ClassVisitor.java,
	* tools/external/asm/org/objectweb/asm/ClassWriter.java,
	* tools/external/asm/org/objectweb/asm/Edge.java,
	* tools/external/asm/org/objectweb/asm/FieldVisitor.java,
	* tools/external/asm/org/objectweb/asm/FieldWriter.java,
	* tools/external/asm/org/objectweb/asm/Handler.java,
	* tools/external/asm/org/objectweb/asm/Item.java,
	* tools/external/asm/org/objectweb/asm/Label.java,
	* tools/external/asm/org/objectweb/asm/MethodAdapter.java,
	* tools/external/asm/org/objectweb/asm/MethodVisitor.java,
	* tools/external/asm/org/objectweb/asm/MethodWriter.java,
	* tools/external/asm/org/objectweb/asm/Opcodes.java,
	* tools/external/asm/org/objectweb/asm/Type.java,
	* tools/external/asm/org/objectweb/asm/attrs/StackMapAttribute.java,
	* tools/external/asm/org/objectweb/asm/attrs/StackMapFrame.java,
	* tools/external/asm/org/objectweb/asm/attrs/StackMapTableAttribute.java,
	* tools/external/asm/org/objectweb/asm/attrs/StackMapType.java,
	* tools/external/asm/org/objectweb/asm/commons/AdviceAdapter.java,
	* tools/external/asm/org/objectweb/asm/commons/EmptyVisitor.java,
	* tools/external/asm/org/objectweb/asm/commons/GeneratorAdapter.java,
	* tools/external/asm/org/objectweb/asm/commons/LocalVariablesSorter.java,
	* tools/external/asm/org/objectweb/asm/commons/Method.java,
	* tools/external/asm/org/objectweb/asm/commons/SerialVersionUIDAdder.java,
	* tools/external/asm/org/objectweb/asm/commons/StaticInitMerger.java,
	* tools/external/asm/org/objectweb/asm/commons/TableSwitchGenerator.java,
	* tools/external/asm/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java,
	* tools/external/asm/org/objectweb/asm/optimizer/ClassConstantsCollector.java,
	* tools/external/asm/org/objectweb/asm/optimizer/ClassOptimizer.java,
	* tools/external/asm/org/objectweb/asm/optimizer/Constant.java,
	* tools/external/asm/org/objectweb/asm/optimizer/ConstantPool.java,
	* tools/external/asm/org/objectweb/asm/optimizer/FieldConstantsCollector.java,
	* tools/external/asm/org/objectweb/asm/optimizer/JarOptimizer.java,
	* tools/external/asm/org/objectweb/asm/optimizer/MethodConstantsCollector.java,
	* tools/external/asm/org/objectweb/asm/optimizer/MethodOptimizer.java,
	* tools/external/asm/org/objectweb/asm/optimizer/NameMapping.java,
	* tools/external/asm/org/objectweb/asm/optimizer/Shrinker.java,
	* tools/external/asm/org/objectweb/asm/signature/SignatureReader.java,
	* tools/external/asm/org/objectweb/asm/signature/SignatureVisitor.java,
	* tools/external/asm/org/objectweb/asm/signature/SignatureWriter.java,
	* tools/external/asm/org/objectweb/asm/tree/AbstractInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/AnnotationNode.java,
	* tools/external/asm/org/objectweb/asm/tree/ClassNode.java,
	* tools/external/asm/org/objectweb/asm/tree/FieldInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/FieldNode.java,
	* tools/external/asm/org/objectweb/asm/tree/IincInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/InnerClassNode.java,
	* tools/external/asm/org/objectweb/asm/tree/InsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/IntInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/JumpInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/LabelNode.java,
	* tools/external/asm/org/objectweb/asm/tree/LdcInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/LineNumberNode.java,
	* tools/external/asm/org/objectweb/asm/tree/LocalVariableNode.java,
	* tools/external/asm/org/objectweb/asm/tree/LookupSwitchInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/MemberNode.java,
	* tools/external/asm/org/objectweb/asm/tree/MethodInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/MethodNode.java,
	* tools/external/asm/org/objectweb/asm/tree/MultiANewArrayInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/TableSwitchInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/TryCatchBlockNode.java,
	* tools/external/asm/org/objectweb/asm/tree/TypeInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/VarInsnNode.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/Analyzer.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/AnalyzerException.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/BasicInterpreter.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/BasicValue.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/BasicVerifier.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/DataflowValue.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/Frame.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/IntMap.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/Interpreter.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/SimpleVerifier.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/SmallSet.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/Subroutine.java,
	* tools/external/asm/org/objectweb/asm/tree/analysis/Value.java,
	* tools/external/asm/org/objectweb/asm/util/ASMifierAbstractVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/ASMifierAnnotationVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/ASMifierClassVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/ASMifierFieldVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/ASMifierMethodVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/AbstractVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/CheckAnnotationAdapter.java,
	* tools/external/asm/org/objectweb/asm/util/CheckClassAdapter.java,
	* tools/external/asm/org/objectweb/asm/util/CheckMethodAdapter.java,
	* tools/external/asm/org/objectweb/asm/util/TraceAbstractVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/TraceAnnotationVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/TraceClassVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/TraceFieldVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/TraceMethodVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/TraceSignatureVisitor.java,
	* tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapAttribute.java,
	* tools/external/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.java,
	* tools/external/asm/org/objectweb/asm/util/attrs/ASMifiable.java,
	* tools/external/asm/org/objectweb/asm/util/attrs/Traceable.java,
	* tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java,
	* tools/external/asm/org/objectweb/asm/xml/Processor.java,
	* tools/external/asm/org/objectweb/asm/xml/SAXAdapter.java,
	* tools/external/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.java,
	* tools/external/asm/org/objectweb/asm/xml/SAXClassAdapter.java,
	* tools/external/asm/org/objectweb/asm/xml/SAXCodeAdapter.java,
	* tools/external/asm/org/objectweb/asm/xml/SAXFieldAdapter.java,
	* tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java,
	* tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java,
	* tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java,
	* tools/gnu/classpath/tools/FileSystemClassLoader.java,
	* tools/gnu/classpath/tools/IOToolkit.java,
	* tools/gnu/classpath/tools/MalformedInputEvent.java,
	* tools/gnu/classpath/tools/MalformedInputListener.java,
	* tools/gnu/classpath/tools/NotifyingInputStreamReader.java,
	* tools/gnu/classpath/tools/StringToolkit.java,
	* tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java,
	* tools/gnu/classpath/tools/appletviewer/AppletTag.java,
	* tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java,
	* tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java,
	* tools/gnu/classpath/tools/appletviewer/Main.java,
	* tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java,
	* tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java,
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java,
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java,
	* tools/gnu/classpath/tools/appletviewer/TagParser.java,
	* tools/gnu/classpath/tools/common/CallbackUtil.java,
	* tools/gnu/classpath/tools/common/ClasspathToolParser.java,
	* tools/gnu/classpath/tools/common/Persistent.java,
	* tools/gnu/classpath/tools/common/ProviderUtil.java,
	* tools/gnu/classpath/tools/common/SecurityProviderInfo.java,
	* tools/gnu/classpath/tools/doclets/AbstractDoclet.java,
	* tools/gnu/classpath/tools/doclets/DocletConfigurationException.java,
	* tools/gnu/classpath/tools/doclets/DocletOption.java,
	* tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java,
	* tools/gnu/classpath/tools/doclets/DocletOptionFile.java,
	* tools/gnu/classpath/tools/doclets/DocletOptionFlag.java,
	* tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java,
	* tools/gnu/classpath/tools/doclets/DocletOptionString.java,
	* tools/gnu/classpath/tools/doclets/InlineTagRenderer.java,
	* tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java,
	* tools/gnu/classpath/tools/doclets/PackageGroup.java,
	* tools/gnu/classpath/tools/doclets/PackageMatcher.java,
	* tools/gnu/classpath/tools/doclets/StandardTaglet.java,
	* tools/gnu/classpath/tools/doclets/TagletPrinter.java,
	* tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java,
	* tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java,
	* tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java,
	* tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java,
	* tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java,
	* tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java,
	* tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java,
	* tools/gnu/classpath/tools/getopt/FileArgumentCallback.java,
	* tools/gnu/classpath/tools/getopt/Option.java,
	* tools/gnu/classpath/tools/getopt/OptionGroup.java,
	* tools/gnu/classpath/tools/getopt/Parser.java,
	* tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java,
	* tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java,
	* tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/Debug.java,
	* tools/gnu/classpath/tools/gjdoc/DirectoryTree.java,
	* tools/gnu/classpath/tools/gjdoc/DocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ErrorReporter.java,
	* tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java,
	* tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java,
	* tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java,
	* tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/Main.java,
	* tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ParameterImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ParseException.java,
	* tools/gnu/classpath/tools/gjdoc/Parser.java,
	* tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/RootDocImpl.java,
	* tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java,
	* tools/gnu/classpath/tools/gjdoc/TagContainer.java,
	* tools/gnu/classpath/tools/gjdoc/TagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/TemporaryStore.java,
	* tools/gnu/classpath/tools/gjdoc/TextTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/Timer.java,
	* tools/gnu/classpath/tools/gjdoc/TimerDoclet.java,
	* tools/gnu/classpath/tools/gjdoc/TypeImpl.java,
	* tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java,
	* tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java,
	* tools/gnu/classpath/tools/gjdoc/WritableType.java,
	* tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java,
	* tools/gnu/classpath/tools/gjdoc/expr/Context.java,
	* tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java,
	* tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/Expression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java,
	* tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/Type.java,
	* tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java,
	* tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java,
	* tools/gnu/classpath/tools/jar/Creator.java,
	* tools/gnu/classpath/tools/jar/Indexer.java,
	* tools/gnu/classpath/tools/jar/Main.java,
	* tools/gnu/classpath/tools/jar/Updater.java,
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java,
	* tools/gnu/classpath/tools/jarsigner/Main.java,
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java,
	* tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java,
	* tools/gnu/classpath/tools/javah/ClassWrapper.java,
	* tools/gnu/classpath/tools/javah/CniPrintStream.java,
	* tools/gnu/classpath/tools/javah/GcjhMain.java,
	* tools/gnu/classpath/tools/javah/JniHelper.java,
	* tools/gnu/classpath/tools/javah/JniIncludePrinter.java,
	* tools/gnu/classpath/tools/javah/JniStubPrinter.java,
	* tools/gnu/classpath/tools/javah/Keywords.java,
	* tools/gnu/classpath/tools/javah/Main.java,
	* tools/gnu/classpath/tools/javah/MethodHelper.java,
	* tools/gnu/classpath/tools/keytool/CACertCmd.java,
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java,
	* tools/gnu/classpath/tools/keytool/Command.java,
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java,
	* tools/gnu/classpath/tools/keytool/ExportCmd.java,
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java,
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java,
	* tools/gnu/classpath/tools/keytool/ImportCmd.java,
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java,
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java,
	* tools/gnu/classpath/tools/keytool/ListCmd.java,
	* tools/gnu/classpath/tools/keytool/PrintCertCmd.java,
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java,
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java,
	* tools/gnu/classpath/tools/orbd/Main.java,
	* tools/gnu/classpath/tools/orbd/PersistentContext.java,
	* tools/gnu/classpath/tools/orbd/PersistentContextMap.java,
	* tools/gnu/classpath/tools/orbd/PersistentMap.java,
	* tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java,
	* tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java,
	* tools/gnu/classpath/tools/rmic/CompilationError.java,
	* tools/gnu/classpath/tools/rmic/Generator.java,
	* tools/gnu/classpath/tools/rmic/GiopIo.java,
	* tools/gnu/classpath/tools/rmic/HashFinder.java,
	* tools/gnu/classpath/tools/rmic/Main.java,
	* tools/gnu/classpath/tools/rmic/MethodGenerator.java,
	* tools/gnu/classpath/tools/rmic/RMICException.java,
	* tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java,
	* tools/gnu/classpath/tools/rmic/RmicBackend.java,
	* tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
	* tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java,
	* tools/gnu/classpath/tools/rmic/Variables.java,
	* tools/gnu/classpath/tools/rmic/WrapUnWrapper.java,
	* tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java,
	* tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java,
	* tools/gnu/classpath/tools/rmid/Main.java,
	* tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java,
	* tools/gnu/classpath/tools/rmiregistry/Main.java,
	* tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java,
	* tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java,
	* tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java,
	* tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java,
	* tools/gnu/classpath/tools/serialver/SerialVer.java,
	* tools/gnu/classpath/tools/taglets/AuthorTaglet.java,
	* tools/gnu/classpath/tools/taglets/CodeTaglet.java,
	* tools/gnu/classpath/tools/taglets/CopyrightTaglet.java,
	* tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java,
	* tools/gnu/classpath/tools/taglets/GenericTaglet.java,
	* tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java,
	* tools/gnu/classpath/tools/taglets/SinceTaglet.java,
	* tools/gnu/classpath/tools/taglets/TagletContext.java,
	* tools/gnu/classpath/tools/taglets/ValueTaglet.java,
	* tools/gnu/classpath/tools/taglets/VersionTaglet.java,
	* tools/gnu/classpath/tools/tnameserv/Main.java,
	* vm/reference/gnu/classpath/jdwp/VMFrame.java,
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java,
	* vm/reference/gnu/classpath/jdwp/VMMethod.java,
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java,
	* vm/reference/gnu/java/lang/VMCPStringBuilder.java,
	* vm/reference/gnu/java/lang/VMInstrumentationImpl.java,
	* vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java,
	* vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java,
	* vm/reference/gnu/java/net/VMPlainSocketImpl.java,
	* vm/reference/gnu/java/nio/VMChannel.java,
	* vm/reference/gnu/java/nio/VMPipe.java,
	* vm/reference/gnu/java/nio/VMSelector.java,
	* vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java,
	* vm/reference/java/io/VMFile.java,
	* vm/reference/java/io/VMObjectInputStream.java,
	* vm/reference/java/io/VMObjectStreamClass.java,
	* vm/reference/java/lang/VMClass.java,
	* vm/reference/java/lang/VMClassLoader.java,
	* vm/reference/java/lang/VMDouble.java,
	* vm/reference/java/lang/VMFloat.java,
	* vm/reference/java/lang/VMMath.java,
	* vm/reference/java/lang/VMObject.java,
	* vm/reference/java/lang/VMProcess.java,
	* vm/reference/java/lang/VMRuntime.java,
	* vm/reference/java/lang/VMString.java,
	* vm/reference/java/lang/VMSystem.java,
	* vm/reference/java/lang/VMThread.java,
	* vm/reference/java/lang/reflect/VMConstructor.java,
	* vm/reference/java/lang/reflect/VMField.java,
	* vm/reference/java/lang/reflect/VMMethod.java,
	* vm/reference/java/net/VMNetworkInterface.java,
	* vm/reference/java/nio/channels/VMChannels.java,
	* vm/reference/java/security/VMAccessController.java,
	* vm/reference/java/security/VMSecureRandom.java,
	* vm/reference/java/util/VMTimeZone.java,
	* vm/reference/sun/misc/Unsafe.java,
	* vm/reference/sun/reflect/Reflection.java,
	* vm/reference/sun/reflect/misc/ReflectUtil.java:
	Normalise whitespace.

From-SVN: r168680
This commit is contained in:
Andrew John Hughes
2011-01-11 19:46:05 +00:00
committed by Andrew John Hughes
parent 9a270ad3c0
commit dc6715320d
4525 changed files with 106430 additions and 102601 deletions
@@ -441,11 +441,11 @@ public abstract class AbstractCollection<E>
while (hasNext)
{
Object o = itr.next();
if (o == this)
r.append("<this>");
else
r.append(o);
hasNext = itr.hasNext();
if (o == this)
r.append("<this>");
else
r.append(o);
hasNext = itr.hasNext();
if (hasNext)
r.append(", ");
}
+193 -193
View File
@@ -243,7 +243,7 @@ public abstract class AbstractList<E>
* Obtains a hash code for this list. In order to obey the general
* contract of the hashCode method of class Object, this value is
* calculated as follows:
*
*
<pre>hashCode = 1;
Iterator i = list.iterator();
while (i.hasNext())
@@ -591,7 +591,7 @@ while (i.hasNext())
/**
* Adds the supplied object before the element that would be returned
* by a call to <code>next()</code>, if the list supports addition.
*
*
* @param o The object to add to the list.
* @throws UnsupportedOperationException if the list doesn't support
* the addition of new elements.
@@ -713,7 +713,7 @@ while (i.hasNext())
*
* All methods first check to see if the actual modCount of the backing
* list is equal to its expected value, and throw a
* ConcurrentModificationException if it is not.
* ConcurrentModificationException if it is not.
*
* @param fromIndex the index that the returned list should start from
* (inclusive)
@@ -756,7 +756,7 @@ while (i.hasNext())
final int offset;
/** The size of the sublist. */
int size;
/**
* Construct the sublist.
*
@@ -771,7 +771,7 @@ while (i.hasNext())
offset = fromIndex;
size = toIndex - fromIndex;
}
/**
* This method checks the two modCount fields to ensure that there has
* not been a concurrent modification, returning if all is okay.
@@ -783,9 +783,9 @@ while (i.hasNext())
void checkMod()
{
if (modCount != backingList.modCount)
throw new ConcurrentModificationException();
throw new ConcurrentModificationException();
}
/**
* This method checks that a value is between 0 and size (inclusive). If
* it is not, an exception is thrown.
@@ -797,10 +797,10 @@ while (i.hasNext())
private void checkBoundsInclusive(int index)
{
if (index < 0 || index > size)
throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+ size);
throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+ size);
}
/**
* This method checks that a value is between 0 (inclusive) and size
* (exclusive). If it is not, an exception is thrown.
@@ -812,10 +812,10 @@ while (i.hasNext())
private void checkBoundsExclusive(int index)
{
if (index < 0 || index >= size)
throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+ size);
throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+ size);
}
/**
* Specified by AbstractList.subList to return the private field size.
*
@@ -828,7 +828,7 @@ while (i.hasNext())
checkMod();
return size;
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -851,7 +851,7 @@ while (i.hasNext())
checkBoundsExclusive(index);
return backingList.set(index + offset, o);
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -867,7 +867,7 @@ while (i.hasNext())
checkBoundsExclusive(index);
return backingList.get(index + offset);
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -891,7 +891,7 @@ while (i.hasNext())
size++;
modCount = backingList.modCount;
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -912,7 +912,7 @@ while (i.hasNext())
modCount = backingList.modCount;
return o;
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
* This does no bounds checking, as it assumes it will only be called
@@ -928,12 +928,12 @@ while (i.hasNext())
protected void removeRange(int fromIndex, int toIndex)
{
checkMod();
backingList.removeRange(offset + fromIndex, offset + toIndex);
size -= toIndex - fromIndex;
modCount = backingList.modCount;
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -961,7 +961,7 @@ while (i.hasNext())
modCount = backingList.modCount;
return result;
}
/**
* Specified by AbstractList.subList to return addAll(size, c).
*
@@ -981,7 +981,7 @@ while (i.hasNext())
{
return addAll(size, c);
}
/**
* Specified by AbstractList.subList to return listIterator().
*
@@ -991,7 +991,7 @@ while (i.hasNext())
{
return listIterator();
}
/**
* Specified by AbstractList.subList to return a wrapper around the
* backing list's iterator.
@@ -1006,176 +1006,176 @@ while (i.hasNext())
{
checkMod();
checkBoundsInclusive(index);
return new ListIterator<E>()
{
private final ListIterator<E> i
= backingList.listIterator(index + offset);
private int position = index;
/**
* Tests to see if there are any more objects to
* return.
*
* @return True if the end of the list has not yet been
* reached.
*/
public boolean hasNext()
{
return position < size;
}
/**
* Tests to see if there are objects prior to the
* current position in the list.
*
* @return True if objects exist prior to the current
* position of the iterator.
*/
public boolean hasPrevious()
{
return position > 0;
}
/**
* Retrieves the next object from the list.
*
* @return The next object.
* @throws NoSuchElementException if there are no
* more objects to retrieve.
* @throws ConcurrentModificationException if the
* list has been modified elsewhere.
*/
public E next()
{
if (position == size)
throw new NoSuchElementException();
position++;
return i.next();
}
/**
* Retrieves the previous object from the list.
*
* @return The next object.
* @throws NoSuchElementException if there are no
* previous objects to retrieve.
* @throws ConcurrentModificationException if the
* list has been modified elsewhere.
*/
public E previous()
{
if (position == 0)
throw new NoSuchElementException();
position--;
return i.previous();
}
/**
* Returns the index of the next element in the
* list, which will be retrieved by <code>next()</code>
*
* @return The index of the next element.
*/
public int nextIndex()
{
return i.nextIndex() - offset;
}
/**
* Returns the index of the previous element in the
* list, which will be retrieved by <code>previous()</code>
*
* @return The index of the previous element.
*/
public int previousIndex()
{
return i.previousIndex() - offset;
}
/**
* Removes the last object retrieved by <code>next()</code>
* from the list, if the list supports object removal.
*
* @throws IllegalStateException if the iterator is positioned
* before the start of the list or the last object has already
* been removed.
* @throws UnsupportedOperationException if the list does
* not support removing elements.
*/
public void remove()
{
i.remove();
size--;
position = nextIndex();
modCount = backingList.modCount;
}
/**
* Replaces the last object retrieved by <code>next()</code>
* or <code>previous</code> with o, if the list supports object
* replacement and an add or remove operation has not already
* been performed.
*
* @throws IllegalStateException if the iterator is positioned
* before the start of the list or the last object has already
* been removed.
* @throws UnsupportedOperationException if the list doesn't support
* the addition or removal of elements.
* @throws ClassCastException if the type of o is not a valid type
* for this list.
* @throws IllegalArgumentException if something else related to o
* prevents its addition.
* @throws ConcurrentModificationException if the list
* has been modified elsewhere.
*/
public void set(E o)
{
i.set(o);
}
/**
* Adds the supplied object before the element that would be returned
* by a call to <code>next()</code>, if the list supports addition.
*
* @param o The object to add to the list.
* @throws UnsupportedOperationException if the list doesn't support
* the addition of new elements.
* @throws ClassCastException if the type of o is not a valid type
* for this list.
* @throws IllegalArgumentException if something else related to o
* prevents its addition.
* @throws ConcurrentModificationException if the list
* has been modified elsewhere.
*/
public void add(E o)
{
i.add(o);
size++;
position++;
modCount = backingList.modCount;
}
// Here is the reason why the various modCount fields are mostly
// ignored in this wrapper listIterator.
// If the backing listIterator is failfast, then the following holds:
// Using any other method on this list will call a corresponding
// method on the backing list *after* the backing listIterator
// is created, which will in turn cause a ConcurrentModException
// when this listIterator comes to use the backing one. So it is
// implicitly failfast.
// If the backing listIterator is NOT failfast, then the whole of
// this list isn't failfast, because the modCount field of the
// backing list is not valid. It would still be *possible* to
// make the iterator failfast wrt modifications of the sublist
// only, but somewhat pointless when the list can be changed under
// us.
// Either way, no explicit handling of modCount is needed.
// However modCount = backingList.modCount must be executed in add
// and remove, and size must also be updated in these two methods,
// since they do not go through the corresponding methods of the subList.
};
return new ListIterator<E>()
{
private final ListIterator<E> i
= backingList.listIterator(index + offset);
private int position = index;
/**
* Tests to see if there are any more objects to
* return.
*
* @return True if the end of the list has not yet been
* reached.
*/
public boolean hasNext()
{
return position < size;
}
/**
* Tests to see if there are objects prior to the
* current position in the list.
*
* @return True if objects exist prior to the current
* position of the iterator.
*/
public boolean hasPrevious()
{
return position > 0;
}
/**
* Retrieves the next object from the list.
*
* @return The next object.
* @throws NoSuchElementException if there are no
* more objects to retrieve.
* @throws ConcurrentModificationException if the
* list has been modified elsewhere.
*/
public E next()
{
if (position == size)
throw new NoSuchElementException();
position++;
return i.next();
}
/**
* Retrieves the previous object from the list.
*
* @return The next object.
* @throws NoSuchElementException if there are no
* previous objects to retrieve.
* @throws ConcurrentModificationException if the
* list has been modified elsewhere.
*/
public E previous()
{
if (position == 0)
throw new NoSuchElementException();
position--;
return i.previous();
}
/**
* Returns the index of the next element in the
* list, which will be retrieved by <code>next()</code>
*
* @return The index of the next element.
*/
public int nextIndex()
{
return i.nextIndex() - offset;
}
/**
* Returns the index of the previous element in the
* list, which will be retrieved by <code>previous()</code>
*
* @return The index of the previous element.
*/
public int previousIndex()
{
return i.previousIndex() - offset;
}
/**
* Removes the last object retrieved by <code>next()</code>
* from the list, if the list supports object removal.
*
* @throws IllegalStateException if the iterator is positioned
* before the start of the list or the last object has already
* been removed.
* @throws UnsupportedOperationException if the list does
* not support removing elements.
*/
public void remove()
{
i.remove();
size--;
position = nextIndex();
modCount = backingList.modCount;
}
/**
* Replaces the last object retrieved by <code>next()</code>
* or <code>previous</code> with o, if the list supports object
* replacement and an add or remove operation has not already
* been performed.
*
* @throws IllegalStateException if the iterator is positioned
* before the start of the list or the last object has already
* been removed.
* @throws UnsupportedOperationException if the list doesn't support
* the addition or removal of elements.
* @throws ClassCastException if the type of o is not a valid type
* for this list.
* @throws IllegalArgumentException if something else related to o
* prevents its addition.
* @throws ConcurrentModificationException if the list
* has been modified elsewhere.
*/
public void set(E o)
{
i.set(o);
}
/**
* Adds the supplied object before the element that would be returned
* by a call to <code>next()</code>, if the list supports addition.
*
* @param o The object to add to the list.
* @throws UnsupportedOperationException if the list doesn't support
* the addition of new elements.
* @throws ClassCastException if the type of o is not a valid type
* for this list.
* @throws IllegalArgumentException if something else related to o
* prevents its addition.
* @throws ConcurrentModificationException if the list
* has been modified elsewhere.
*/
public void add(E o)
{
i.add(o);
size++;
position++;
modCount = backingList.modCount;
}
// Here is the reason why the various modCount fields are mostly
// ignored in this wrapper listIterator.
// If the backing listIterator is failfast, then the following holds:
// Using any other method on this list will call a corresponding
// method on the backing list *after* the backing listIterator
// is created, which will in turn cause a ConcurrentModException
// when this listIterator comes to use the backing one. So it is
// implicitly failfast.
// If the backing listIterator is NOT failfast, then the whole of
// this list isn't failfast, because the modCount field of the
// backing list is not valid. It would still be *possible* to
// make the iterator failfast wrt modifications of the sublist
// only, but somewhat pointless when the list can be changed under
// us.
// Either way, no explicit handling of modCount is needed.
// However modCount = backingList.modCount must be executed in add
// and remove, and size must also be updated in these two methods,
// since they do not go through the corresponding methods of the subList.
};
}
} // class SubList
@@ -1200,5 +1200,5 @@ while (i.hasNext())
super(backing, fromIndex, toIndex);
}
} // class RandomAccessSubList
} // class AbstractList
+97 -97
View File
@@ -71,14 +71,14 @@ import java.io.Serializable;
*/
public abstract class AbstractMap<K, V> implements Map<K, V>
{
/**
/**
* A class containing an immutable key and value. The
* implementation of {@link Entry#setValue(V)} for this class
* simply throws an {@link UnsupportedOperationException},
* thus preventing changes being made. This is useful when
* a static thread-safe view of a map is required.
*
* @since 1.6
* @since 1.6
*/
public static class SimpleImmutableEntry<K, V>
implements Entry<K, V>, Serializable
@@ -251,8 +251,8 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
public boolean equals(Object o)
{
return (o == this
|| (o instanceof Map
&& entrySet().equals(((Map<K, V>) o).entrySet())));
|| (o instanceof Map
&& entrySet().equals(((Map<K, V>) o).entrySet())));
}
/**
@@ -330,76 +330,76 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
if (keys == null)
keys = new AbstractSet<K>()
{
/**
* Retrieves the number of keys in the backing map.
*
* @return The number of keys.
*/
/**
* Retrieves the number of keys in the backing map.
*
* @return The number of keys.
*/
public int size()
{
return AbstractMap.this.size();
}
/**
* Returns true if the backing map contains the
* supplied key.
*
* @param key The key to search for.
* @return True if the key was found, false otherwise.
*/
/**
* Returns true if the backing map contains the
* supplied key.
*
* @param key The key to search for.
* @return True if the key was found, false otherwise.
*/
public boolean contains(Object key)
{
return containsKey(key);
}
/**
* Returns an iterator which iterates over the keys
* in the backing map, using a wrapper around the
* iterator returned by <code>entrySet()</code>.
*
* @return An iterator over the keys.
*/
/**
* Returns an iterator which iterates over the keys
* in the backing map, using a wrapper around the
* iterator returned by <code>entrySet()</code>.
*
* @return An iterator over the keys.
*/
public Iterator<K> iterator()
{
return new Iterator<K>()
{
/**
* The iterator returned by <code>entrySet()</code>.
*/
/**
* The iterator returned by <code>entrySet()</code>.
*/
private final Iterator<Map.Entry<K, V>> map_iterator
= entrySet().iterator();
= entrySet().iterator();
/**
* Returns true if a call to <code>next()</code> will
* return another key.
*
* @return True if the iterator has not yet reached
* the last key.
*/
/**
* Returns true if a call to <code>next()</code> will
* return another key.
*
* @return True if the iterator has not yet reached
* the last key.
*/
public boolean hasNext()
{
return map_iterator.hasNext();
}
/**
* Returns the key from the next entry retrieved
* by the underlying <code>entrySet()</code> iterator.
*
* @return The next key.
*/
/**
* Returns the key from the next entry retrieved
* by the underlying <code>entrySet()</code> iterator.
*
* @return The next key.
*/
public K next()
{
return map_iterator.next().getKey();
}
/**
* Removes the map entry which has a key equal
* to that returned by the last call to
* <code>next()</code>.
*
* @throws UnsupportedOperationException if the
* map doesn't support removal.
*/
/**
* Removes the map entry which has a key equal
* to that returned by the last call to
* <code>next()</code>.
*
* @throws UnsupportedOperationException if the
* map doesn't support removal.
*/
public void remove()
{
map_iterator.remove();
@@ -565,77 +565,77 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
if (values == null)
values = new AbstractCollection<V>()
{
/**
* Returns the number of values stored in
* the backing map.
*
* @return The number of values.
*/
/**
* Returns the number of values stored in
* the backing map.
*
* @return The number of values.
*/
public int size()
{
return AbstractMap.this.size();
}
/**
* Returns true if the backing map contains
* the supplied value.
*
* @param value The value to search for.
* @return True if the value was found, false otherwise.
*/
/**
* Returns true if the backing map contains
* the supplied value.
*
* @param value The value to search for.
* @return True if the value was found, false otherwise.
*/
public boolean contains(Object value)
{
return containsValue(value);
}
/**
* Returns an iterator which iterates over the
* values in the backing map, by using a wrapper
* around the iterator returned by <code>entrySet()</code>.
*
* @return An iterator over the values.
*/
/**
* Returns an iterator which iterates over the
* values in the backing map, by using a wrapper
* around the iterator returned by <code>entrySet()</code>.
*
* @return An iterator over the values.
*/
public Iterator<V> iterator()
{
return new Iterator<V>()
{
/**
* The iterator returned by <code>entrySet()</code>.
*/
/**
* The iterator returned by <code>entrySet()</code>.
*/
private final Iterator<Map.Entry<K, V>> map_iterator
= entrySet().iterator();
= entrySet().iterator();
/**
* Returns true if a call to <code>next()</call> will
* return another value.
*
* @return True if the iterator has not yet reached
* the last value.
*/
/**
* Returns true if a call to <code>next()</call> will
* return another value.
*
* @return True if the iterator has not yet reached
* the last value.
*/
public boolean hasNext()
{
return map_iterator.hasNext();
}
/**
* Returns the value from the next entry retrieved
* by the underlying <code>entrySet()</code> iterator.
*
* @return The next value.
*/
/**
* Returns the value from the next entry retrieved
* by the underlying <code>entrySet()</code> iterator.
*
* @return The next value.
*/
public V next()
{
return map_iterator.next().getValue();
}
/**
* Removes the map entry which has a key equal
* to that returned by the last call to
* <code>next()</code>.
*
* @throws UnsupportedOperationException if the
* map doesn't support removal.
*/
/**
* Removes the map entry which has a key equal
* to that returned by the last call to
* <code>next()</code>.
*
* @throws UnsupportedOperationException if the
* map doesn't support removal.
*/
public void remove()
{
map_iterator.remove();
@@ -680,7 +680,7 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
*
* @author Jon Zeppieri
* @author Eric Blake (ebb9@email.byu.edu)
*
*
* @since 1.6
*/
public static class SimpleEntry<K, V> implements Entry<K, V>, Serializable
@@ -711,7 +711,7 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
key = newKey;
value = newValue;
}
public SimpleEntry(Entry<? extends K, ? extends V> entry)
{
this(entry.getKey(), entry.getValue());
@@ -814,6 +814,6 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
return key + "=" + value;
}
} // class SimpleEntry
}
+11 -11
View File
@@ -83,8 +83,8 @@ public abstract class AbstractSet<E>
public boolean equals(Object o)
{
return (o == this
|| (o instanceof Set && ((Set) o).size() == size()
&& containsAll((Collection) o)));
|| (o instanceof Set && ((Set) o).size() == size()
&& containsAll((Collection) o)));
}
/**
@@ -128,18 +128,18 @@ public abstract class AbstractSet<E>
int count = c.size();
if (oldsize < count)
{
Iterator<E> i;
for (i = iterator(), count = oldsize; count > 0; count--)
{
if (c.contains(i.next()))
i.remove();
}
Iterator<E> i;
for (i = iterator(), count = oldsize; count > 0; count--)
{
if (c.contains(i.next()))
i.remove();
}
}
else
{
Iterator<?> i;
for (i = c.iterator(); count > 0; count--)
remove(i.next());
Iterator<?> i;
for (i = c.iterator(); count > 0; count--)
remove(i.next());
}
return oldsize != size();
}
+2 -2
View File
@@ -503,8 +503,8 @@ public class ArrayList<E> extends AbstractList<E>
// do so).
throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
}
/**
* Remove from this list all elements contained in the given collection.
* This is not public, due to Sun's API, but this performs in linear
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -107,7 +107,7 @@ public class BitSet implements Cloneable, Serializable
{
if (nbits < 0)
throw new NegativeArraySizeException();
int length = nbits >>> 6;
if ((nbits & LONG_MASK) != 0)
++length;
@@ -412,7 +412,7 @@ public class BitSet implements Cloneable, Serializable
* Then the following definition of the hashCode method
* would be a correct implementation of the actual algorithm:
*
*
*
<pre>public int hashCode()
{
long h = 1234;
@@ -535,7 +535,7 @@ public class BitSet implements Cloneable, Serializable
* Returns the index of the next true bit, from the specified bit
* (inclusive). If there is none, -1 is returned. You can iterate over
* all true bits with this loop:<br>
*
*
<pre>for (int i = bs.nextSetBit(0); i &gt;= 0; i = bs.nextSetBit(i + 1))
{
// operate on i here
@@ -750,8 +750,8 @@ public class BitSet implements Cloneable, Serializable
{
for (int i = other.bits.length - 1; i >= 0; i--)
{
if ((bits[i] & other.bits[i]) != other.bits[i])
return false;
if ((bits[i] & other.bits[i]) != other.bits[i])
return false;
}
return true;
}
+211 -211
View File
@@ -1,5 +1,5 @@
/* Calendar.java --
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006,
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006,
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -487,7 +487,7 @@ public abstract class Calendar
}
/**
* The set of properties for obtaining the minimum number of days in
* The set of properties for obtaining the minimum number of days in
* the first week.
*/
private static transient final Properties properties;
@@ -498,7 +498,7 @@ public abstract class Calendar
static
{
properties = new Properties();
try
try
{
properties.load(Calendar.class.getResourceAsStream("weeks.properties"));
}
@@ -538,19 +538,19 @@ public abstract class Calendar
first = properties.getProperty("firstDay.DEFAULT");
try
{
if (min != null)
minimalDaysInFirstWeek = Integer.parseInt(min);
if (min != null)
minimalDaysInFirstWeek = Integer.parseInt(min);
}
catch (NumberFormatException ex)
{
minimalDaysInFirstWeek = 1;
minimalDaysInFirstWeek = 1;
}
firstDayOfWeek = 1;
if (first != null)
for (int i = 0; i < 8; i++)
if (days[i].equals(first))
firstDayOfWeek = i;
if (days[i].equals(first))
firstDayOfWeek = i;
clear();
}
@@ -558,7 +558,7 @@ public abstract class Calendar
/**
* Creates a calendar representing the actual time, using the default
* time zone and locale.
*
*
* @return The new calendar.
*/
public static synchronized Calendar getInstance()
@@ -569,11 +569,11 @@ public abstract class Calendar
/**
* Creates a calendar representing the actual time, using the given
* time zone and the default locale.
*
*
* @param zone a time zone (<code>null</code> not permitted).
*
*
* @return The new calendar.
*
*
* @throws NullPointerException if <code>zone</code> is <code>null</code>.
*/
public static synchronized Calendar getInstance(TimeZone zone)
@@ -584,11 +584,11 @@ public abstract class Calendar
/**
* Creates a calendar representing the actual time, using the default
* time zone and the given locale.
*
*
* @param locale a locale (<code>null</code> not permitted).
*
*
* @return The new calendar.
*
*
* @throws NullPointerException if <code>locale</code> is <code>null</code>.
*/
public static synchronized Calendar getInstance(Locale locale)
@@ -611,12 +611,12 @@ public abstract class Calendar
/**
* Creates a calendar representing the actual time, using the given
* time zone and locale.
*
*
* @param zone a time zone (<code>null</code> not permitted).
* @param locale a locale (<code>null</code> not permitted).
*
*
* @return The new calendar.
*
*
* @throws NullPointerException if <code>zone</code> or <code>locale</code>
* is <code>null</code>.
*/
@@ -627,43 +627,43 @@ public abstract class Calendar
try
{
if (calendarClass == null)
{
calendarClass = Class.forName(calendarClassName);
if (Calendar.class.isAssignableFrom(calendarClass))
cache.put(locale, calendarClass);
}
if (calendarClass == null)
{
calendarClass = Class.forName(calendarClassName);
if (Calendar.class.isAssignableFrom(calendarClass))
cache.put(locale, calendarClass);
}
// GregorianCalendar is by far the most common case. Optimize by
// avoiding reflection.
if (calendarClass == GregorianCalendar.class)
return new GregorianCalendar(zone, locale);
// GregorianCalendar is by far the most common case. Optimize by
// avoiding reflection.
if (calendarClass == GregorianCalendar.class)
return new GregorianCalendar(zone, locale);
if (Calendar.class.isAssignableFrom(calendarClass))
{
Constructor ctor = calendarClass.getConstructor(ctorArgTypes);
return (Calendar) ctor.newInstance(new Object[] { zone, locale });
}
if (Calendar.class.isAssignableFrom(calendarClass))
{
Constructor ctor = calendarClass.getConstructor(ctorArgTypes);
return (Calendar) ctor.newInstance(new Object[] { zone, locale });
}
}
catch (ClassNotFoundException ex)
{
exception = ex;
exception = ex;
}
catch (IllegalAccessException ex)
{
exception = ex;
exception = ex;
}
catch (NoSuchMethodException ex)
{
exception = ex;
exception = ex;
}
catch (InstantiationException ex)
{
exception = ex;
exception = ex;
}
catch (InvocationTargetException ex)
{
exception = ex;
exception = ex;
}
throw new RuntimeException("Error instantiating calendar for locale "
@@ -710,9 +710,9 @@ public abstract class Calendar
/**
* Sets this Calendar's time to the given Date. All time fields
* are invalidated by this method.
*
*
* @param date the date (<code>null</code> not permitted).
*
*
* @throws NullPointerException if <code>date</code> is <code>null</code>.
*/
public final void setTime(Date date)
@@ -794,7 +794,7 @@ public abstract class Calendar
{
if (isTimeSet)
for (int i = 0; i < FIELD_COUNT; i++)
isSet[i] = false;
isSet[i] = false;
isTimeSet = false;
fields[field] = value;
isSet[field] = true;
@@ -808,74 +808,74 @@ public abstract class Calendar
switch (field)
{
case MONTH: // pattern 1,2 or 3
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
case DAY_OF_MONTH: // pattern 1
isSet[YEAR] = true;
isSet[MONTH] = true;
isSet[WEEK_OF_MONTH] = true;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
isSet[YEAR] = true;
isSet[MONTH] = true;
isSet[WEEK_OF_MONTH] = true;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
case WEEK_OF_MONTH: // pattern 2
if (! isSet[DAY_OF_WEEK])
fields[DAY_OF_WEEK] = getFirstDayOfWeek();
isSet[YEAR] = true;
isSet[MONTH] = true;
isSet[DAY_OF_WEEK] = true;
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
if (! isSet[DAY_OF_WEEK])
fields[DAY_OF_WEEK] = getFirstDayOfWeek();
isSet[YEAR] = true;
isSet[MONTH] = true;
isSet[DAY_OF_WEEK] = true;
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
case DAY_OF_WEEK_IN_MONTH: // pattern 3
if (! isSet[DAY_OF_WEEK])
fields[DAY_OF_WEEK] = getFirstDayOfWeek();
isSet[YEAR] = true;
isSet[MONTH] = true;
isSet[DAY_OF_WEEK] = true;
isSet[DAY_OF_YEAR] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[WEEK_OF_YEAR] = false;
break;
if (! isSet[DAY_OF_WEEK])
fields[DAY_OF_WEEK] = getFirstDayOfWeek();
isSet[YEAR] = true;
isSet[MONTH] = true;
isSet[DAY_OF_WEEK] = true;
isSet[DAY_OF_YEAR] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[WEEK_OF_YEAR] = false;
break;
case DAY_OF_YEAR: // pattern 4
isSet[YEAR] = true;
isSet[MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[WEEK_OF_YEAR] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
break;
isSet[YEAR] = true;
isSet[MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[WEEK_OF_YEAR] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
break;
case WEEK_OF_YEAR: // pattern 5
if (! isSet[DAY_OF_WEEK])
fields[DAY_OF_WEEK] = getFirstDayOfWeek();
isSet[YEAR] = true;
isSet[DAY_OF_WEEK] = true;
isSet[MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
break;
if (! isSet[DAY_OF_WEEK])
fields[DAY_OF_WEEK] = getFirstDayOfWeek();
isSet[YEAR] = true;
isSet[DAY_OF_WEEK] = true;
isSet[MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
break;
case AM_PM:
isSet[HOUR] = true;
isSet[HOUR_OF_DAY] = false;
break;
isSet[HOUR] = true;
isSet[HOUR_OF_DAY] = false;
break;
case HOUR_OF_DAY:
isSet[AM_PM] = false;
isSet[HOUR] = false;
break;
isSet[AM_PM] = false;
isSet[HOUR] = false;
break;
case HOUR:
isSet[AM_PM] = true;
isSet[HOUR_OF_DAY] = false;
break;
isSet[AM_PM] = true;
isSet[HOUR_OF_DAY] = false;
break;
case DST_OFFSET:
explicitDSTOffset = true;
explicitDSTOffset = true;
}
// May have crossed over a DST boundary.
@@ -950,7 +950,7 @@ public abstract class Calendar
isTimeSet = false;
areFieldsSet = false;
int zoneOffs = zone.getRawOffset();
int[] tempFields =
int[] tempFields =
{
1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
0, 0, zoneOffs, 0
@@ -969,7 +969,7 @@ public abstract class Calendar
*/
public final void clear(int field)
{
int[] tempFields =
int[] tempFields =
{
1, 1970, JANUARY, 1, 1, 1, 1, THURSDAY, 1, AM, 0, 0, 0,
0, 0, zone.getRawOffset(), 0
@@ -1118,13 +1118,13 @@ public abstract class Calendar
{
while (amount > 0)
{
roll(field, true);
amount--;
roll(field, true);
amount--;
}
while (amount < 0)
{
roll(field, false);
amount++;
roll(field, false);
amount++;
}
}
@@ -1260,9 +1260,9 @@ public abstract class Calendar
tmp.set(field, min);
for (; min > end; min--)
{
tmp.add(field, -1); // Try to get smaller
if (tmp.get(field) != min - 1)
break; // Done if not successful
tmp.add(field, -1); // Try to get smaller
if (tmp.get(field) != min - 1)
break; // Done if not successful
}
return min;
}
@@ -1285,9 +1285,9 @@ public abstract class Calendar
tmp.set(field, max);
for (; max < end; max++)
{
tmp.add(field, 1);
if (tmp.get(field) != max + 1)
break;
tmp.add(field, 1);
if (tmp.get(field) != max + 1)
break;
}
return max;
}
@@ -1295,14 +1295,14 @@ public abstract class Calendar
/**
* Compares the time of two calendar instances.
* @param cal the calendar to which the time should be compared.
* @return 0 if the two calendars are set to the same time,
* less than 0 if the time of this calendar is before that of
* @return 0 if the two calendars are set to the same time,
* less than 0 if the time of this calendar is before that of
* <code>cal</code>, or more than 0 if the time of this calendar is after
* that of <code>cal</code>.
*
* @param cal the calendar to compare this instance with.
* @throws NullPointerException if <code>cal</code> is null.
* @throws IllegalArgumentException if either calendar has fields set to
* @throws IllegalArgumentException if either calendar has fields set to
* invalid values.
* @since 1.5
*/
@@ -1324,18 +1324,18 @@ public abstract class Calendar
{
try
{
Calendar cal = (Calendar) super.clone();
cal.fields = (int[]) fields.clone();
cal.isSet = (boolean[]) isSet.clone();
return cal;
Calendar cal = (Calendar) super.clone();
cal.fields = (int[]) fields.clone();
cal.isSet = (boolean[]) isSet.clone();
return cal;
}
catch (CloneNotSupportedException ex)
{
return null;
return null;
}
}
private static final String[] fieldNames =
private static final String[] fieldNames =
{
",ERA=", ",YEAR=", ",MONTH=",
",WEEK_OF_YEAR=",
@@ -1367,11 +1367,11 @@ public abstract class Calendar
sb.append(",areFieldsSet=" + areFieldsSet);
for (int i = 0; i < FIELD_COUNT; i++)
{
sb.append(fieldNames[i]);
if (isSet[i])
sb.append(fields[i]);
else
sb.append("?");
sb.append(fieldNames[i]);
if (isSet[i])
sb.append(fields[i]);
else
sb.append("?");
}
sb.append(",lenient=").append(lenient);
sb.append(",firstDayOfWeek=").append(firstDayOfWeek);
@@ -1407,13 +1407,13 @@ public abstract class Calendar
if (serialVersionOnStream > 1)
{
// This is my interpretation of the serial number:
// Sun wants to remove all fields from the stream someday
// and will then increase the serialVersion number again.
// We prepare to be compatible.
fields = new int[FIELD_COUNT];
isSet = new boolean[FIELD_COUNT];
areFieldsSet = false;
// This is my interpretation of the serial number:
// Sun wants to remove all fields from the stream someday
// and will then increase the serialVersion number again.
// We prepare to be compatible.
fields = new int[FIELD_COUNT];
isSet = new boolean[FIELD_COUNT];
areFieldsSet = false;
}
}
@@ -1449,15 +1449,15 @@ public abstract class Calendar
{
if (field < 0 || field >= FIELD_COUNT)
throw new IllegalArgumentException("The field value, " + field +
", is invalid.");
", is invalid.");
if (style != SHORT && style != LONG)
throw new IllegalArgumentException("The style must be either " +
"short or long.");
"short or long.");
if (field == YEAR || field == WEEK_OF_YEAR ||
field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
field == SECOND || field == MILLISECOND)
field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
field == SECOND || field == MILLISECOND)
return null;
int value = get(field);
@@ -1466,30 +1466,30 @@ public abstract class Calendar
return syms.getEras()[value];
if (field == MONTH)
if (style == LONG)
return syms.getMonths()[value];
else
return syms.getShortMonths()[value];
return syms.getMonths()[value];
else
return syms.getShortMonths()[value];
if (field == DAY_OF_WEEK)
if (style == LONG)
return syms.getWeekdays()[value];
return syms.getWeekdays()[value];
else
return syms.getShortWeekdays()[value];
return syms.getShortWeekdays()[value];
if (field == AM_PM)
return syms.getAmPmStrings()[value];
if (field == ZONE_OFFSET)
if (style == LONG)
return syms.getZoneStrings()[value][1];
return syms.getZoneStrings()[value][1];
else
return syms.getZoneStrings()[value][2];
return syms.getZoneStrings()[value][2];
if (field == DST_OFFSET)
if (style == LONG)
return syms.getZoneStrings()[value][3];
return syms.getZoneStrings()[value][3];
else
return syms.getZoneStrings()[value][4];
return syms.getZoneStrings()[value][4];
throw new InternalError("Failed to resolve field " + field +
" with style " + style + " for locale " +
locale);
" with style " + style + " for locale " +
locale);
}
/**
@@ -1528,93 +1528,93 @@ public abstract class Calendar
{
if (field < 0 || field >= FIELD_COUNT)
throw new IllegalArgumentException("The field value, " + field +
", is invalid.");
", is invalid.");
if (style != SHORT && style != LONG && style != ALL_STYLES)
throw new IllegalArgumentException("The style must be either " +
"short, long or all styles.");
"short, long or all styles.");
if (field == YEAR || field == WEEK_OF_YEAR ||
field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
field == SECOND || field == MILLISECOND)
field == WEEK_OF_MONTH || field == DAY_OF_MONTH ||
field == DAY_OF_YEAR || field == DAY_OF_WEEK_IN_MONTH ||
field == HOUR || field == HOUR_OF_DAY || field == MINUTE ||
field == SECOND || field == MILLISECOND)
return null;
DateFormatSymbols syms = DateFormatSymbols.getInstance(locale);
Map<String,Integer> map = new HashMap<String,Integer>();
if (field == ERA)
{
String[] eras = syms.getEras();
for (int a = 0; a < eras.length; ++a)
map.put(eras[a], a);
return map;
String[] eras = syms.getEras();
for (int a = 0; a < eras.length; ++a)
map.put(eras[a], a);
return map;
}
if (field == MONTH)
{
if (style == LONG || style == ALL_STYLES)
{
String[] months = syms.getMonths();
for (int a = 0; a < months.length; ++a)
map.put(months[a], a);
}
if (style == SHORT || style == ALL_STYLES)
{
String[] months = syms.getShortMonths();
for (int a = 0; a < months.length; ++a)
map.put(months[a], a);
}
return map;
if (style == LONG || style == ALL_STYLES)
{
String[] months = syms.getMonths();
for (int a = 0; a < months.length; ++a)
map.put(months[a], a);
}
if (style == SHORT || style == ALL_STYLES)
{
String[] months = syms.getShortMonths();
for (int a = 0; a < months.length; ++a)
map.put(months[a], a);
}
return map;
}
if (field == DAY_OF_WEEK)
{
if (style == LONG || style == ALL_STYLES)
{
String[] weekdays = syms.getWeekdays();
for (int a = SUNDAY; a < weekdays.length; ++a)
map.put(weekdays[a], a);
}
if (style == SHORT || style == ALL_STYLES)
{
String[] weekdays = syms.getShortWeekdays();
for (int a = SUNDAY; a < weekdays.length; ++a)
map.put(weekdays[a], a);
}
return map;
if (style == LONG || style == ALL_STYLES)
{
String[] weekdays = syms.getWeekdays();
for (int a = SUNDAY; a < weekdays.length; ++a)
map.put(weekdays[a], a);
}
if (style == SHORT || style == ALL_STYLES)
{
String[] weekdays = syms.getShortWeekdays();
for (int a = SUNDAY; a < weekdays.length; ++a)
map.put(weekdays[a], a);
}
return map;
}
if (field == AM_PM)
{
String[] ampms = syms.getAmPmStrings();
for (int a = 0; a < ampms.length; ++a)
map.put(ampms[a], a);
return map;
String[] ampms = syms.getAmPmStrings();
for (int a = 0; a < ampms.length; ++a)
map.put(ampms[a], a);
return map;
}
if (field == ZONE_OFFSET)
{
String[][] zones = syms.getZoneStrings();
for (int a = 0; a < zones.length; ++a)
{
if (style == LONG || style == ALL_STYLES)
map.put(zones[a][1], a);
if (style == SHORT || style == ALL_STYLES)
map.put(zones[a][2], a);
}
return map;
String[][] zones = syms.getZoneStrings();
for (int a = 0; a < zones.length; ++a)
{
if (style == LONG || style == ALL_STYLES)
map.put(zones[a][1], a);
if (style == SHORT || style == ALL_STYLES)
map.put(zones[a][2], a);
}
return map;
}
if (field == DST_OFFSET)
{
String[][] zones = syms.getZoneStrings();
for (int a = 0; a < zones.length; ++a)
{
if (style == LONG || style == ALL_STYLES)
map.put(zones[a][3], a);
if (style == SHORT || style == ALL_STYLES)
map.put(zones[a][4], a);
}
return map;
String[][] zones = syms.getZoneStrings();
for (int a = 0; a < zones.length; ++a)
{
if (style == LONG || style == ALL_STYLES)
map.put(zones[a][3], a);
if (style == SHORT || style == ALL_STYLES)
map.put(zones[a][4], a);
}
return map;
}
throw new InternalError("Failed to resolve field " + field +
" with style " + style + " for locale " +
locale);
" with style " + style + " for locale " +
locale);
}
}
File diff suppressed because it is too large Load Diff
+65 -65
View File
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -60,7 +60,7 @@ import java.util.spi.CurrencyNameProvider;
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.4
*/
public final class Currency
public final class Currency
implements Serializable
{
/**
@@ -95,7 +95,7 @@ public final class Currency
* @serial the number of fraction digits
*/
private transient int fractionDigits;
/**
* A cached map of country codes
* instances to international currency code
@@ -115,7 +115,7 @@ public final class Currency
* is the international currency code.
*
* @see #getInstance(java.util.Locale)
* @see #getInstance(java.lang.String)
* @see #getInstance(java.lang.String)
* @see #readResolve()
* @serial ignored.
*/
@@ -133,7 +133,7 @@ public final class Currency
/* Create the properties object */
properties = new Properties();
/* Try and load the properties from our iso4217.properties resource */
try
try
{
properties.load(Currency.class.getResourceAsStream("iso4217.properties"));
}
@@ -157,7 +157,7 @@ public final class Currency
* country code, are ignored. The results of calling this
* method may vary over time, as the currency associated with
* a particular country changes. For countries without
* a given currency (e.g. Antarctica), the result is null.
* a given currency (e.g. Antarctica), the result is null.
*
* @param loc the locale for the new currency, or null if
* there is no country code specified or a currency
@@ -176,8 +176,8 @@ public final class Currency
if (countryCode.equals(""))
{
throw new
IllegalArgumentException("Invalid (empty) country code for locale:"
+ loc);
IllegalArgumentException("Invalid (empty) country code for locale:"
+ loc);
}
/* Construct the key for the currency */
currencyKey = countryCode + ".currency";
@@ -206,7 +206,7 @@ public final class Currency
* currency code.
*
* @param code the code to use.
*/
*/
private Currency(String code)
{
currencyCode = code;
@@ -234,19 +234,19 @@ public final class Currency
* currencies, such as IMF Special Drawing Rights, -1 is returned.
*
* @return the number of digits after the decimal separator for this currency.
*/
*/
public int getDefaultFractionDigits()
{
return fractionDigits;
}
/**
* Builds a new currency instance for this locale.
* All components of the given locale, other than the
* country code, are ignored. The results of calling this
* method may vary over time, as the currency associated with
* a particular country changes. For countries without
* a given currency (e.g. Antarctica), the result is null.
* a given currency (e.g. Antarctica), the result is null.
*
* @param locale a <code>Locale</code> instance.
* @return a new <code>Currency</code> instance.
@@ -254,7 +254,7 @@ public final class Currency
* country code is null.
* @throws IllegalArgumentException if the country of
* the given locale is not a supported ISO3166 code.
*/
*/
public static Currency getInstance(Locale locale)
{
/**
@@ -270,39 +270,39 @@ public final class Currency
String country = locale.getCountry();
if (locale == null || country == null)
{
throw new
NullPointerException("The locale or its country is null.");
throw new
NullPointerException("The locale or its country is null.");
}
/* Check that country of locale given is valid. */
if (country.length() != 2)
throw new IllegalArgumentException();
/* Attempt to get the currency from the cache */
String code = (String) countryMap.get(country);
if (code == null)
{
/* Create the currency for this locale */
newCurrency = new Currency(locale);
/*
/*
* If the currency code is null, then creation failed
* and we return null.
*/
code = newCurrency.getCurrencyCode();
code = newCurrency.getCurrencyCode();
if (code == null)
{
return null;
}
else
else
{
/* Cache it */
countryMap.put(country, code);
cache.put(code, newCurrency);
cache.put(code, newCurrency);
}
}
else
{
newCurrency = (Currency) cache.get(code);
newCurrency = (Currency) cache.get(code);
}
/* Return the instance */
return newCurrency;
@@ -321,10 +321,10 @@ public final class Currency
{
Locale[] allLocales;
/*
/*
* Throw a null pointer exception explicitly if currencyCode is null.
* One is not thrown otherwise. It results in an
* IllegalArgumentException.
* IllegalArgumentException.
*/
if (currencyCode == null)
{
@@ -336,35 +336,35 @@ public final class Currency
Currency newCurrency = (Currency) cache.get(currencyCode);
if (newCurrency == null)
{
/* Get all locales */
allLocales = Locale.getAvailableLocales();
/* Loop through each locale, looking for the code */
for (int i = 0;i < allLocales.length; i++)
{
try
{
Currency testCurrency = getInstance (allLocales[i]);
if (testCurrency != null &&
testCurrency.getCurrencyCode().equals(currencyCode))
{
return testCurrency;
}
}
catch (IllegalArgumentException exception)
{
/* Ignore locales without valid countries */
}
}
/*
* If we get this far, the code is not supported by any of
* our locales.
*/
throw new IllegalArgumentException("The currency code, " + currencyCode +
", is not supported.");
/* Get all locales */
allLocales = Locale.getAvailableLocales();
/* Loop through each locale, looking for the code */
for (int i = 0;i < allLocales.length; i++)
{
try
{
Currency testCurrency = getInstance (allLocales[i]);
if (testCurrency != null &&
testCurrency.getCurrencyCode().equals(currencyCode))
{
return testCurrency;
}
}
catch (IllegalArgumentException exception)
{
/* Ignore locales without valid countries */
}
}
/*
* If we get this far, the code is not supported by any of
* our locales.
*/
throw new IllegalArgumentException("The currency code, " + currencyCode +
", is not supported.");
}
else
{
return newCurrency;
return newCurrency;
}
}
@@ -413,27 +413,27 @@ public final class Currency
try
{
return ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
locale).getString(property);
locale).getString(property);
}
catch (MissingResourceException exception)
{
/* This means runtime support for the locale
* is not available, so we check providers. */
/* This means runtime support for the locale
* is not available, so we check providers. */
}
for (CurrencyNameProvider p :
ServiceLoader.load(CurrencyNameProvider.class))
ServiceLoader.load(CurrencyNameProvider.class))
{
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(locale))
{
String localizedString = p.getSymbol(currencyCode,
locale);
if (localizedString != null)
return localizedString;
break;
}
}
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(locale))
{
String localizedString = p.getSymbol(currencyCode,
locale);
if (localizedString != null)
return localizedString;
break;
}
}
}
if (locale.equals(Locale.ROOT)) // Base case
return currencyCode;
+199 -199
View File
@@ -49,11 +49,11 @@ import java.text.SimpleDateFormat;
/**
* <p>
* This class represents a specific time in milliseconds since the epoch.
* The epoch is 1970, January 1 00:00:00.0000 UTC.
* The epoch is 1970, January 1 00:00:00.0000 UTC.
* </p>
* <p>
* <code>Date</code> is intended to reflect universal time coordinate (UTC),
* but this depends on the underlying host environment. Most operating systems
* but this depends on the underlying host environment. Most operating systems
* don't handle the leap second, which occurs about once every year or
* so. The leap second is added to the last minute of the day on either
* the 30th of June or the 31st of December, creating a minute 61 seconds
@@ -127,13 +127,13 @@ public class Date
* An array of week names used to map names to integer values.
*/
private static final String[] weekNames = { "Sun", "Mon", "Tue", "Wed",
"Thu", "Fri", "Sat" };
"Thu", "Fri", "Sat" };
/**
* An array of month names used to map names to integer values.
*/
private static final String[] monthNames = { "Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec" };
"May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec" };
/**
* Creates a new Date Object representing the current time.
*/
@@ -187,7 +187,7 @@ public class Date
* Creates a new Date Object representing the given time.
*
* @deprecated use <code>new GregorianCalendar(year+1900, month,
* day, hour, min, sec)</code> instead.
* day, hour, min, sec)</code> instead.
* @param year the difference between the required year and 1900.
* @param month the month as a value between 0 and 11.
* @param day the day as a value between 0 and 31.
@@ -200,7 +200,7 @@ public class Date
public Date(int year, int month, int day, int hour, int min, int sec)
{
GregorianCalendar cal =
new GregorianCalendar(year + 1900, month, day, hour, min, sec);
new GregorianCalendar(year + 1900, month, day, hour, min, sec);
time = cal.getTimeInMillis();
}
@@ -208,7 +208,7 @@ public class Date
* Creates a new Date from the given string representation. This
* does the same as <code>new Date(Date.parse(s))</code>
* @see #parse
* @deprecated use <code>java.text.DateFormat.parse(s)</code> instead.
* @deprecated use <code>java.text.DateFormat.parse(s)</code> instead.
*/
public Date(String s)
{
@@ -226,11 +226,11 @@ public class Date
{
try
{
return super.clone();
return super.clone();
}
catch (CloneNotSupportedException ex)
{
return null;
return null;
}
}
@@ -253,7 +253,7 @@ public class Date
* @return the time in milliseconds since the epoch.
*/
public static long UTC(int year, int month, int date,
int hrs, int min, int sec)
int hrs, int min, int sec)
{
GregorianCalendar cal =
new GregorianCalendar(year + 1900, month, date, hrs, min, sec);
@@ -278,7 +278,7 @@ public class Date
* from this object is also used to determine whether or not daylight savings
* time is in effect. For example, the offset for the UK would be 0 if the
* month of the date object was January, and 1 if the month was August.
*
*
* @deprecated use
* <code>Calendar.get(Calendar.ZONE_OFFSET)+Calendar.get(Calendar.DST_OFFSET)</code>
* instead.
@@ -291,13 +291,13 @@ public class Date
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(time);
return - (cal.get(Calendar.ZONE_OFFSET)
+ cal.get(Calendar.DST_OFFSET)) / (60 * 1000);
+ cal.get(Calendar.DST_OFFSET)) / (60 * 1000);
}
/**
* Sets the time which this object should represent.
*
* @param time the time in milliseconds since the epoch.
* @param time the time in milliseconds since the epoch.
*/
public void setTime(long time)
{
@@ -309,7 +309,7 @@ public class Date
*
* @param when the other date
* @return true, if the date represented by this object is
* strictly later than the time represented by when.
* strictly later than the time represented by when.
*/
public boolean after(Date when)
{
@@ -334,7 +334,7 @@ public class Date
* @param obj the object to compare.
* @return true, if obj is a Date object and the time represented
* by obj is exactly the same as the time represented by this
* object.
* object.
*/
public boolean equals(Object obj)
{
@@ -348,7 +348,7 @@ public class Date
* @return 0, if the date represented
* by obj is exactly the same as the time represented by this
* object, a negative if this Date is before the other Date, and
* a positive value otherwise.
* a positive value otherwise.
*/
public int compareTo(Date when)
{
@@ -414,7 +414,7 @@ public class Date
* </li>
* </ul>
* <p>
* The <code>DateFormat</code> class should now be
* The <code>DateFormat</code> class should now be
* preferred over using this method.
* </p>
*
@@ -439,11 +439,11 @@ public class Date
+ sec.substring(sec.length() - 2) + " "
+
cal.getTimeZone().getDisplayName(cal.getTimeZone().inDaylightTime(this),
TimeZone.SHORT) + " " +
TimeZone.SHORT) + " " +
year.substring(year.length() - 4);
}
/**
/**
* Returns a locale-dependent string representation of this
* <code>Date</code> object.
*
@@ -457,7 +457,7 @@ public class Date
return java.text.DateFormat.getInstance().format(this);
}
/**
/**
* <p>
* Returns a string representation of this <code>Date</code>
* object using GMT rather than the local timezone.
@@ -497,7 +497,7 @@ public class Date
* the local timezone.
* </li>
* </ul>
*
*
* @deprecated Use DateFormat.format(Date) with a GMT TimeZone.
* @return A string of the form 'd mon yyyy hh:mm:ss GMT' using
* GMT as opposed to the local timezone.
@@ -526,12 +526,12 @@ public class Date
try
{
// parseInt doesn't handle '+' so strip off sign.
num = Integer.parseInt(tok.substring(1));
// parseInt doesn't handle '+' so strip off sign.
num = Integer.parseInt(tok.substring(1));
}
catch (NumberFormatException ex)
{
throw new IllegalArgumentException(tok);
throw new IllegalArgumentException(tok);
}
// Convert hours to minutes.
@@ -557,8 +557,8 @@ public class Date
// We could possibly use the fields of DateFormatSymbols but that is
// localized and thus might not match the English words specified.
String months[] = { "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY",
"JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER",
"NOVEMBER", "DECEMBER" };
"JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER",
"NOVEMBER", "DECEMBER" };
int i;
for (i = 0; i < 12; i++)
@@ -581,7 +581,7 @@ public class Date
// We could possibly use the fields of DateFormatSymbols but that is
// localized and thus might not match the English words specified.
String daysOfWeek[] = { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY",
"THURSDAY", "FRIDAY", "SATURDAY" };
"THURSDAY", "FRIDAY", "SATURDAY" };
int i;
for (i = 0; i < 7; i++)
@@ -591,7 +591,7 @@ public class Date
return false;
}
/**
/**
* <p>
* Parses a String and returns the time, in milliseconds since the
* epoch, it represents. Most syntaxes are handled, including
@@ -612,7 +612,7 @@ public class Date
* failure. The ASCII characters A-Z, a-z, 0-9, and ',', '+', '-',
* ':' and '/' are the only characters permitted within the string,
* besides whitespace and characters enclosed within parantheses
* '(' and ')'.
* '(' and ')'.
* </p>
* <p>
* A sequence of consecutive digits are recognised as a number,
@@ -729,15 +729,15 @@ public class Date
int len = string.length();
for (int i = 0; i < len; i++)
{
char ch = string.charAt(i);
if (ch >= 'a' && ch <= 'z')
ch -= 'a' - 'A';
if (ch == '(')
parenNesting++;
else if (parenNesting == 0)
buf.append(ch);
else if (ch == ')')
parenNesting--;
char ch = string.charAt(i);
if (ch >= 'a' && ch <= 'z')
ch -= 'a' - 'A';
if (ch == '(')
parenNesting++;
else if (parenNesting == 0)
buf.append(ch);
else if (ch == ')')
parenNesting--;
}
int tmpMonth;
@@ -747,163 +747,163 @@ public class Date
while (strtok.hasMoreTokens())
{
String tok = strtok.nextToken();
char firstch = tok.charAt(0);
if ((firstch == '+' || firstch == '-') && year >= 0)
{
timezone = parseTz(tok, firstch);
localTimezone = false;
}
else if (firstch >= '0' && firstch <= '9')
{
int lastPunct = -1;
while (tok != null && tok.length() > 0)
{
int punctOffset = tok.length();
int num = 0;
int punct;
for (int i = 0; ; i++)
{
if (i >= punctOffset)
{
punct = -1;
break;
}
else
{
punct = tok.charAt(i);
if (punct >= '0' && punct <= '9')
{
if (num > 999999999) // in case of overflow
throw new IllegalArgumentException(tok);
num = 10 * num + (punct - '0');
}
else
{
punctOffset = i;
break;
}
}
}
String tok = strtok.nextToken();
char firstch = tok.charAt(0);
if ((firstch == '+' || firstch == '-') && year >= 0)
{
timezone = parseTz(tok, firstch);
localTimezone = false;
}
else if (firstch >= '0' && firstch <= '9')
{
int lastPunct = -1;
while (tok != null && tok.length() > 0)
{
int punctOffset = tok.length();
int num = 0;
int punct;
for (int i = 0; ; i++)
{
if (i >= punctOffset)
{
punct = -1;
break;
}
else
{
punct = tok.charAt(i);
if (punct >= '0' && punct <= '9')
{
if (num > 999999999) // in case of overflow
throw new IllegalArgumentException(tok);
num = 10 * num + (punct - '0');
}
else
{
punctOffset = i;
break;
}
}
if (punct == ':')
{
if (hour < 0)
hour = num;
else
minute = num;
}
else if (lastPunct == ':' && hour >= 0 && (minute < 0 || second < 0))
{
if (minute < 0)
minute = num;
else
second = num;
}
else if ((num >= 70
&& (punct == ' ' || punct == ','
|| punct == '/' || punct < 0))
|| (num < 70 && day >= 0 && month >= 0 && year < 0))
{
if (num >= 100)
year = num;
else
{
int curYear = 1900 + new Date().getYear();
int firstYear = curYear - 80;
year = firstYear / 100 * 100 + num;
if (year < firstYear)
year += 100;
}
}
else if (punct == '/')
{
if (month < 0)
month = num - 1;
else
day = num;
}
else if (hour >= 0 && minute < 0)
minute = num;
else if (minute >= 0 && second < 0)
second = num;
else if (day < 0)
day = num;
else
throw new IllegalArgumentException(tok);
}
// Advance string if there's more to process in this token.
if (punct < 0 || punctOffset + 1 >= tok.length())
tok = null;
else
tok = tok.substring(punctOffset + 1);
lastPunct = punct;
}
}
else if (firstch >= 'A' && firstch <= 'Z')
{
if (tok.equals("AM"))
{
if (hour < 1 || hour > 12)
throw new IllegalArgumentException(tok);
if (hour == 12)
hour = 0;
}
else if (tok.equals("PM"))
{
if (hour < 1 || hour > 12)
throw new IllegalArgumentException(tok);
if (hour < 12)
hour += 12;
}
else if (parseDayOfWeek(tok))
{ /* Ignore it; throw the token away. */ }
else if (tok.equals("UT") || tok.equals("UTC") || tok.equals("GMT"))
localTimezone = false;
else if (tok.startsWith("UT") || tok.startsWith("GMT"))
{
int signOffset = 3;
if (tok.charAt(1) == 'T' && tok.charAt(2) != 'C')
signOffset = 2;
if (punct == ':')
{
if (hour < 0)
hour = num;
else
minute = num;
}
else if (lastPunct == ':' && hour >= 0 && (minute < 0 || second < 0))
{
if (minute < 0)
minute = num;
else
second = num;
}
else if ((num >= 70
&& (punct == ' ' || punct == ','
|| punct == '/' || punct < 0))
|| (num < 70 && day >= 0 && month >= 0 && year < 0))
{
if (num >= 100)
year = num;
else
{
int curYear = 1900 + new Date().getYear();
int firstYear = curYear - 80;
year = firstYear / 100 * 100 + num;
if (year < firstYear)
year += 100;
}
}
else if (punct == '/')
{
if (month < 0)
month = num - 1;
else
day = num;
}
else if (hour >= 0 && minute < 0)
minute = num;
else if (minute >= 0 && second < 0)
second = num;
else if (day < 0)
day = num;
else
throw new IllegalArgumentException(tok);
char sign = tok.charAt(signOffset);
if (sign != '+' && sign != '-')
throw new IllegalArgumentException(tok);
// Advance string if there's more to process in this token.
if (punct < 0 || punctOffset + 1 >= tok.length())
tok = null;
else
tok = tok.substring(punctOffset + 1);
lastPunct = punct;
}
}
else if (firstch >= 'A' && firstch <= 'Z')
{
if (tok.equals("AM"))
{
if (hour < 1 || hour > 12)
throw new IllegalArgumentException(tok);
if (hour == 12)
hour = 0;
}
else if (tok.equals("PM"))
{
if (hour < 1 || hour > 12)
throw new IllegalArgumentException(tok);
if (hour < 12)
hour += 12;
}
else if (parseDayOfWeek(tok))
{ /* Ignore it; throw the token away. */ }
else if (tok.equals("UT") || tok.equals("UTC") || tok.equals("GMT"))
localTimezone = false;
else if (tok.startsWith("UT") || tok.startsWith("GMT"))
{
int signOffset = 3;
if (tok.charAt(1) == 'T' && tok.charAt(2) != 'C')
signOffset = 2;
timezone = parseTz(tok.substring(signOffset), sign);
localTimezone = false;
}
else if ((tmpMonth = parseMonth(tok)) >= 0)
month = tmpMonth;
else if (tok.length() == 3 && tok.charAt(2) == 'T')
{
// Convert timezone offset from hours to minutes.
char ch = tok.charAt(0);
if (ch == 'E')
timezone = -5 * 60;
else if (ch == 'C')
timezone = -6 * 60;
else if (ch == 'M')
timezone = -7 * 60;
else if (ch == 'P')
timezone = -8 * 60;
else
throw new IllegalArgumentException(tok);
char sign = tok.charAt(signOffset);
if (sign != '+' && sign != '-')
throw new IllegalArgumentException(tok);
// Shift 60 minutes for Daylight Savings Time.
if (tok.charAt(1) == 'D')
timezone += 60;
else if (tok.charAt(1) != 'S')
throw new IllegalArgumentException(tok);
timezone = parseTz(tok.substring(signOffset), sign);
localTimezone = false;
}
else if ((tmpMonth = parseMonth(tok)) >= 0)
month = tmpMonth;
else if (tok.length() == 3 && tok.charAt(2) == 'T')
{
// Convert timezone offset from hours to minutes.
char ch = tok.charAt(0);
if (ch == 'E')
timezone = -5 * 60;
else if (ch == 'C')
timezone = -6 * 60;
else if (ch == 'M')
timezone = -7 * 60;
else if (ch == 'P')
timezone = -8 * 60;
else
throw new IllegalArgumentException(tok);
localTimezone = false;
}
else
throw new IllegalArgumentException(tok);
}
else
throw new IllegalArgumentException(tok);
// Shift 60 minutes for Daylight Savings Time.
if (tok.charAt(1) == 'D')
timezone += 60;
else if (tok.charAt(1) != 'S')
throw new IllegalArgumentException(tok);
localTimezone = false;
}
else
throw new IllegalArgumentException(tok);
}
else
throw new IllegalArgumentException(tok);
}
// Unspecified hours, minutes, or seconds should default to 0.
@@ -925,8 +925,8 @@ public class Date
= new GregorianCalendar(year, month, day, hour, minute, second);
if (!localTimezone)
{
cal.set(Calendar.ZONE_OFFSET, timezone * 60 * 1000);
cal.set(Calendar.DST_OFFSET, 0);
cal.set(Calendar.ZONE_OFFSET, timezone * 60 * 1000);
cal.set(Calendar.DST_OFFSET, 0);
}
return cal.getTimeInMillis();
}
@@ -965,7 +965,7 @@ public class Date
* @param year the year minus 1900.
* @deprecated Use Calendar instead of Date, and use
* set(Calendar.YEAR, year) instead. Note about the 1900
* difference in year.
* difference in year.
* @see #getYear()
* @see Calendar
*/
@@ -1008,13 +1008,13 @@ public class Date
* in the seconds value being reset to 0 and the minutes
* value being incremented by 1, if the new time does
* not include a leap second.
*
*
* @param month the month, with a zero-based index
* from January.
* @deprecated Use Calendar instead of Date, and use
* set(Calendar.MONTH, month) instead.
* @see #getMonth()
* @see Calendar
* @see Calendar
*/
public void setMonth(int month)
{
@@ -1059,7 +1059,7 @@ public class Date
*
* @param date the date.
* @deprecated Use Calendar instead of Date, and use
* set(Calendar.DATE, date) instead.
* set(Calendar.DATE, date) instead.
* @see Calendar
* @see #getDate()
*/
@@ -1121,7 +1121,7 @@ public class Date
* @deprecated Use Calendar instead of Date, and use
* set(Calendar.HOUR_OF_DAY, hours) instead.
* @see Calendar
* @see #getHours()
* @see #getHours()
*/
public void setHours(int hours)
{
@@ -1162,7 +1162,7 @@ public class Date
*
* @param minutes the minutes.
* @deprecated Use Calendar instead of Date, and use
* set(Calendar.MINUTE, minutes) instead.
* set(Calendar.MINUTE, minutes) instead.
* @see Calendar
* @see #getMinutes()
*/
@@ -1207,7 +1207,7 @@ public class Date
* @deprecated Use Calendar instead of Date, and use
* set(Calendar.SECOND, seconds) instead.
* @see Calendar
* @see #getSeconds()
* @see #getSeconds()
*/
public void setSeconds(int seconds)
{
+4 -4
View File
@@ -1,4 +1,4 @@
/* Dictionary.java -- an abstract (and essentially worthless)
/* Dictionary.java -- an abstract (and essentially worthless)
class which is Hashtable's superclass
Copyright (C) 1998, 2001, 2002, 2004 Free Software Foundation, Inc.
@@ -42,12 +42,12 @@ package java.util;
/**
* A Dictionary maps keys to values; <i>how</i> it does that is
* implementation-specific.
*
*
* This is an abstract class which has really gone by the wayside.
* People at Javasoft are probably embarrassed by it. At this point,
* it might as well be an interface rather than a class, but it remains
* this poor, laughable skeleton for the sake of backwards compatibility.
* At any rate, this was what came before the {@link Map} interface
* At any rate, this was what came before the {@link Map} interface
* in the Collections framework.
*
* @author Jon Zeppieri
@@ -77,7 +77,7 @@ public abstract class Dictionary<K, V>
*/
public abstract Enumeration<V> elements();
/**
/**
* Returns the value associated with the supplied key, or null
* if no such value exists. Since Dictionaries are not allowed null keys
* or elements, a null result always means the key is not present.
@@ -38,15 +38,15 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the flags supplied to the {@link Formatter#format()}
* method of a {@link Formatter} contain duplicates.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class DuplicateFormatFlagsException
public class DuplicateFormatFlagsException
extends IllegalFormatException
{
private static final long serialVersionUID = 18890531L;
@@ -72,7 +72,7 @@ public class DuplicateFormatFlagsException
super("Duplicate flag passed in " + flags);
if (flags == null)
throw new
NullPointerException("Null flags value passed to constructor.");
NullPointerException("Null flags value passed to constructor.");
this.flags = flags;
}
+173 -173
View File
@@ -40,10 +40,10 @@ package java.util;
import java.io.Serializable;
/**
/**
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class EnumMap<K extends Enum<K>, V>
@@ -82,29 +82,29 @@ public class EnumMap<K extends Enum<K>, V>
{
if (map instanceof EnumMap)
{
EnumMap<K, ? extends V> other = (EnumMap<K, ? extends V>) map;
store = (V[]) other.store.clone();
cardinality = other.cardinality;
enumClass = other.enumClass;
EnumMap<K, ? extends V> other = (EnumMap<K, ? extends V>) map;
store = (V[]) other.store.clone();
cardinality = other.cardinality;
enumClass = other.enumClass;
}
else
{
for (K key : map.keySet())
{
V value = map.get(key);
if (store == null)
{
enumClass = key.getDeclaringClass();
store = (V[]) new Object[enumClass.getEnumConstants().length];
}
int o = key.ordinal();
if (store[o] == emptySlot)
++cardinality;
store[o] = value;
}
// There must be a single element.
if (store == null)
throw new IllegalArgumentException("no elements in map");
for (K key : map.keySet())
{
V value = map.get(key);
if (store == null)
{
enumClass = key.getDeclaringClass();
store = (V[]) new Object[enumClass.getEnumConstants().length];
}
int o = key.ordinal();
if (store[o] == emptySlot)
++cardinality;
store[o] = value;
}
// There must be a single element.
if (store == null)
throw new IllegalArgumentException("no elements in map");
}
}
@@ -117,8 +117,8 @@ public class EnumMap<K extends Enum<K>, V>
{
for (V i : store)
{
if (i != emptySlot && AbstractCollection.equals(i , value))
return true;
if (i != emptySlot && AbstractCollection.equals(i , value))
return true;
}
return false;
}
@@ -150,8 +150,8 @@ public class EnumMap<K extends Enum<K>, V>
V result;
if (store[o] == emptySlot)
{
result = null;
++cardinality;
result = null;
++cardinality;
}
else
result = store[o];
@@ -179,12 +179,12 @@ public class EnumMap<K extends Enum<K>, V>
{
for (K key : map.keySet())
{
V value = map.get(key);
V value = map.get(key);
int o = key.ordinal();
if (store[o] == emptySlot)
++cardinality;
store[o] = value;
int o = key.ordinal();
if (store[o] == emptySlot)
++cardinality;
store[o] = value;
}
}
@@ -198,56 +198,56 @@ public class EnumMap<K extends Enum<K>, V>
{
if (keys == null)
{
keys = new AbstractSet<K>()
{
public int size()
{
return cardinality;
}
keys = new AbstractSet<K>()
{
public int size()
{
return cardinality;
}
public Iterator<K> iterator()
{
return new Iterator<K>()
{
int count = 0;
int index = -1;
public Iterator<K> iterator()
{
return new Iterator<K>()
{
int count = 0;
int index = -1;
public boolean hasNext()
{
return count < cardinality;
}
public boolean hasNext()
{
return count < cardinality;
}
public K next()
{
++count;
for (++index; store[index] == emptySlot; ++index)
;
return enumClass.getEnumConstants()[index];
}
public K next()
{
++count;
for (++index; store[index] == emptySlot; ++index)
;
return enumClass.getEnumConstants()[index];
}
public void remove()
{
--cardinality;
store[index] = (V) emptySlot;
}
};
}
public void remove()
{
--cardinality;
store[index] = (V) emptySlot;
}
};
}
public void clear()
{
EnumMap.this.clear();
}
public void clear()
{
EnumMap.this.clear();
}
public boolean contains(Object o)
{
return contains(o);
}
public boolean contains(Object o)
{
return contains(o);
}
public boolean remove(Object o)
{
return EnumMap.this.remove(o) != null;
}
};
public boolean remove(Object o)
{
return EnumMap.this.remove(o) != null;
}
};
}
return keys;
}
@@ -256,46 +256,46 @@ public class EnumMap<K extends Enum<K>, V>
{
if (values == null)
{
values = new AbstractCollection<V>()
{
public int size()
{
return cardinality;
}
values = new AbstractCollection<V>()
{
public int size()
{
return cardinality;
}
public Iterator<V> iterator()
{
return new Iterator<V>()
{
int count = 0;
int index = -1;
public Iterator<V> iterator()
{
return new Iterator<V>()
{
int count = 0;
int index = -1;
public boolean hasNext()
{
return count < cardinality;
}
public boolean hasNext()
{
return count < cardinality;
}
public V next()
{
++count;
for (++index; store[index] == emptySlot; ++index)
;
return store[index];
}
public V next()
{
++count;
for (++index; store[index] == emptySlot; ++index)
;
return store[index];
}
public void remove()
{
--cardinality;
store[index] = (V) emptySlot;
}
};
}
public void remove()
{
--cardinality;
store[index] = (V) emptySlot;
}
};
}
public void clear()
{
EnumMap.this.clear();
}
};
public void clear()
{
EnumMap.this.clear();
}
};
}
return values;
}
@@ -304,74 +304,74 @@ public class EnumMap<K extends Enum<K>, V>
{
if (entries == null)
{
entries = new AbstractSet<Map.Entry<K, V>>()
{
public int size()
{
return cardinality;
}
entries = new AbstractSet<Map.Entry<K, V>>()
{
public int size()
{
return cardinality;
}
public Iterator<Map.Entry<K, V>> iterator()
{
return new Iterator<Map.Entry<K, V>>()
{
int count = 0;
int index = -1;
public Iterator<Map.Entry<K, V>> iterator()
{
return new Iterator<Map.Entry<K, V>>()
{
int count = 0;
int index = -1;
public boolean hasNext()
{
return count < cardinality;
}
public boolean hasNext()
{
return count < cardinality;
}
public Map.Entry<K,V> next()
{
++count;
for (++index; store[index] == emptySlot; ++index)
;
// FIXME: we could just return something that
// only knows the index. That would be cleaner.
return new AbstractMap.SimpleEntry<K, V>(enumClass.getEnumConstants()[index],
store[index])
{
public V setValue(V newVal)
{
value = newVal;
return put(key, newVal);
}
};
}
public Map.Entry<K,V> next()
{
++count;
for (++index; store[index] == emptySlot; ++index)
;
// FIXME: we could just return something that
// only knows the index. That would be cleaner.
return new AbstractMap.SimpleEntry<K, V>(enumClass.getEnumConstants()[index],
store[index])
{
public V setValue(V newVal)
{
value = newVal;
return put(key, newVal);
}
};
}
public void remove()
{
--cardinality;
store[index] = (V) emptySlot;
}
};
}
public void remove()
{
--cardinality;
store[index] = (V) emptySlot;
}
};
}
public void clear()
{
EnumMap.this.clear();
}
public void clear()
{
EnumMap.this.clear();
}
public boolean contains(Object o)
{
if (! (o instanceof Map.Entry))
return false;
Map.Entry<K, V> other = (Map.Entry<K, V>) o;
return (containsKey(other.getKey())
&& AbstractCollection.equals(get(other.getKey()),
other.getValue()));
}
public boolean contains(Object o)
{
if (! (o instanceof Map.Entry))
return false;
Map.Entry<K, V> other = (Map.Entry<K, V>) o;
return (containsKey(other.getKey())
&& AbstractCollection.equals(get(other.getKey()),
other.getValue()));
}
public boolean remove(Object o)
{
if (! (o instanceof Map.Entry))
return false;
Map.Entry<K, V> other = (Map.Entry<K, V>) o;
return EnumMap.this.remove(other.getKey()) != null;
}
};
public boolean remove(Object o)
{
if (! (o instanceof Map.Entry))
return false;
Map.Entry<K, V> other = (Map.Entry<K, V>) o;
return EnumMap.this.remove(other.getKey()) != null;
}
};
}
return entries;
}
@@ -391,12 +391,12 @@ public class EnumMap<K extends Enum<K>, V>
EnumMap<K, V> result;
try
{
result = (EnumMap<K, V>) super.clone();
result = (EnumMap<K, V>) super.clone();
}
catch (CloneNotSupportedException ignore)
{
// Can't happen.
result = null;
// Can't happen.
result = null;
}
result.store = (V[]) store.clone();
return result;
+115 -115
View File
@@ -52,7 +52,7 @@ import java.io.Serializable;
* </p>
* <p>
* This class is designed to provide an alternative to using integer bit flags
* by providing a typesafe {@link Collection} interface with an underlying
* by providing a typesafe {@link Collection} interface with an underlying
* implementation that utilises the assumptions above to give an equivalent level
* of efficiency. The values in a {@link EnumSet} must all be from the same
* {@link Enum} type, which allows the contents to be packed into a bit vector.
@@ -76,7 +76,7 @@ import java.io.Serializable;
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @author Dalibor Topic (robilad@kaffe.org)
* @since 1.5
* @since 1.5
*/
// FIXME: serialization is special, uses SerializationProxy.
@@ -115,7 +115,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Returns a clone of the set.
*
*
* @return a clone of the set.
*/
public EnumSet<T> clone()
@@ -124,12 +124,12 @@ public abstract class EnumSet<T extends Enum<T>>
try
{
r = (EnumSet<T>) super.clone();
r = (EnumSet<T>) super.clone();
}
catch (CloneNotSupportedException _)
{
/* Can't happen */
return null;
/* Can't happen */
return null;
}
r.store = (BitSet) store.clone();
return r;
@@ -190,16 +190,16 @@ public abstract class EnumSet<T extends Enum<T>>
if (other instanceof EnumSet)
return copyOf((EnumSet<T>) other);
if (other.isEmpty())
throw new IllegalArgumentException("Collection is empty");
throw new IllegalArgumentException("Collection is empty");
EnumSet<T> r = null;
for (T val : other)
{
if (r == null)
r = of(val);
else
r.add(val);
if (r == null)
r = of(val);
else
r.add(val);
}
return r;
@@ -225,7 +225,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Creates a new {@link EnumSet} populated with the given element.
*
*
* @param first the element to use to populate the new set.
* @return an {@link EnumSet} containing the element.
* @throws NullPointerException if <code>first</code> is <code>null</code>.
@@ -236,149 +236,149 @@ public abstract class EnumSet<T extends Enum<T>>
{
public boolean add(T val)
{
if (store.get(val.ordinal()))
return false;
if (store.get(val.ordinal()))
return false;
store.set(val.ordinal());
++cardinality;
return true;
store.set(val.ordinal());
++cardinality;
return true;
}
public boolean addAll(Collection<? extends T> c)
{
boolean result = false;
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass == other.enumClass)
{
store.or(other.store);
int save = cardinality;
cardinality = store.cardinality();
result = save != cardinality;
}
}
else
{
for (T val : c)
{
if (add (val))
result = true;
}
}
return result;
boolean result = false;
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass == other.enumClass)
{
store.or(other.store);
int save = cardinality;
cardinality = store.cardinality();
result = save != cardinality;
}
}
else
{
for (T val : c)
{
if (add (val))
result = true;
}
}
return result;
}
public void clear()
{
store.clear();
cardinality = 0;
store.clear();
cardinality = 0;
}
public boolean contains(Object o)
{
if (! (o instanceof Enum))
return false;
if (! (o instanceof Enum))
return false;
Enum<T> e = (Enum<T>) o;
if (e.getDeclaringClass() != enumClass)
return false;
Enum<T> e = (Enum<T>) o;
if (e.getDeclaringClass() != enumClass)
return false;
return store.get(e.ordinal());
return store.get(e.ordinal());
}
public boolean containsAll(Collection<?> c)
{
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass == other.enumClass)
return store.containsAll(other.store);
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass == other.enumClass)
return store.containsAll(other.store);
return false;
}
return super.containsAll(c);
return false;
}
return super.containsAll(c);
}
public Iterator<T> iterator()
{
return new Iterator<T>()
{
int next = -1;
int count = 0;
return new Iterator<T>()
{
int next = -1;
int count = 0;
public boolean hasNext()
{
return count < cardinality;
}
public boolean hasNext()
{
return count < cardinality;
}
public T next()
{
next = store.nextSetBit(next + 1);
++count;
return enumClass.getEnumConstants()[next];
}
public T next()
{
next = store.nextSetBit(next + 1);
++count;
return enumClass.getEnumConstants()[next];
}
public void remove()
{
if (! store.get(next))
{
store.clear(next);
--cardinality;
}
}
};
public void remove()
{
if (! store.get(next))
{
store.clear(next);
--cardinality;
}
}
};
}
public boolean remove(Object o)
{
if (! (o instanceof Enum))
return false;
if (! (o instanceof Enum))
return false;
Enum<T> e = (Enum<T>) o;
if (e.getDeclaringClass() != enumClass)
return false;
Enum<T> e = (Enum<T>) o;
if (e.getDeclaringClass() != enumClass)
return false;
store.clear(e.ordinal());
--cardinality;
return true;
store.clear(e.ordinal());
--cardinality;
return true;
}
public boolean removeAll(Collection<?> c)
{
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass != other.enumClass)
return false;
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass != other.enumClass)
return false;
store.andNot(other.store);
int save = cardinality;
cardinality = store.cardinality();
return save != cardinality;
}
return super.removeAll(c);
store.andNot(other.store);
int save = cardinality;
cardinality = store.cardinality();
return save != cardinality;
}
return super.removeAll(c);
}
public boolean retainAll(Collection<?> c)
{
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass != other.enumClass)
return false;
if (c instanceof EnumSet)
{
EnumSet<T> other = (EnumSet<T>) c;
if (enumClass != other.enumClass)
return false;
store.and(other.store);
int save = cardinality;
cardinality = store.cardinality();
return save != cardinality;
}
return super.retainAll(c);
store.and(other.store);
int save = cardinality;
cardinality = store.cardinality();
return save != cardinality;
}
return super.retainAll(c);
}
public int size()
{
return cardinality;
return cardinality;
}
};
@@ -392,7 +392,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Creates a new {@link EnumSet} populated with the given two elements.
*
*
* @param first the first element to use to populate the new set.
* @param second the second element to use.
* @return an {@link EnumSet} containing the elements.
@@ -407,7 +407,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Creates a new {@link EnumSet} populated with the given three elements.
*
*
* @param first the first element to use to populate the new set.
* @param second the second element to use.
* @param third the third element to use.
@@ -423,7 +423,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Creates a new {@link EnumSet} populated with the given four elements.
*
*
* @param first the first element to use to populate the new set.
* @param second the second element to use.
* @param third the third element to use.
@@ -432,7 +432,7 @@ public abstract class EnumSet<T extends Enum<T>>
* @throws NullPointerException if any of the parameters are <code>null</code>.
*/
public static <T extends Enum<T>> EnumSet<T> of(T first, T second, T third,
T fourth)
T fourth)
{
EnumSet<T> r = of(first, second, third);
r.add(fourth);
@@ -441,7 +441,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Creates a new {@link EnumSet} populated with the given five elements.
*
*
* @param first the first element to use to populate the new set.
* @param second the second element to use.
* @param third the third element to use.
@@ -451,7 +451,7 @@ public abstract class EnumSet<T extends Enum<T>>
* @throws NullPointerException if any of the parameters are <code>null</code>.
*/
public static <T extends Enum<T>> EnumSet<T> of(T first, T second, T third,
T fourth, T fifth)
T fourth, T fifth)
{
EnumSet<T> r = of(first, second, third, fourth);
r.add(fifth);
@@ -460,7 +460,7 @@ public abstract class EnumSet<T extends Enum<T>>
/**
* Creates a new {@link EnumSet} populated with the given elements.
*
*
* @param first the first element to use to populate the new set.
* @param rest the other elements to use.
* @return an {@link EnumSet} containing the elements.
@@ -38,14 +38,14 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the flags supplied to the {@link Formatter#format()}
* method of a {@link Formatter} contains a flag that does not match
* the conversion character specified for it.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class FormatFlagsConversionMismatchException
extends IllegalFormatException
@@ -83,7 +83,7 @@ public class FormatFlagsConversionMismatchException
super("Invalid flag " + f + " for conversion " + c);
if (f == null)
throw new
NullPointerException("Null flag value passed to constructor.");
NullPointerException("Null flag value passed to constructor.");
this.f = f;
this.c = c;
}
+4 -4
View File
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.util;
/**
/**
* <p>
* The <code>Formattable</code> interface is used to provide customised
* formatting to arbitrary objects via the {@link Formatter}. The
@@ -54,7 +54,7 @@ package java.util;
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public interface Formattable
{
@@ -88,5 +88,5 @@ public interface Formattable
* between it and the arguments.
*/
public void formatTo(Formatter formatter, int flags, int width,
int precision);
int precision);
}
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.util;
/**
/**
* This class contains a set of flags used
* by the {@link Formattable#formatTo()} method.
* They are used to modify the output of the
@@ -48,7 +48,7 @@ package java.util;
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class FormattableFlags
{
File diff suppressed because it is too large Load Diff
@@ -38,15 +38,15 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when a method is called on a {@link Formatter} but
* it has already been closed.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class FormatterClosedException
public class FormatterClosedException
extends IllegalStateException
{
private static final long serialVersionUID = 18111216L;
+331 -331
View File
@@ -367,25 +367,25 @@ public class GregorianCalendar extends Calendar
if (month > 11)
{
year += (month / 12);
month = month % 12;
year += (month / 12);
month = month % 12;
}
if (month < 0)
{
year += (int) month / 12;
month = month % 12;
if (month < 0)
{
month += 12;
year--;
}
year += (int) month / 12;
month = month % 12;
if (month < 0)
{
month += 12;
year--;
}
}
int dayOfYear = dayCount[month] + 1;
if (month > 1)
if (isLeapYear(year))
dayOfYear++;
dayOfYear++;
boolean greg = isGregorian(year, dayOfYear);
int day = (int) getLinearDay(year, dayOfYear, greg);
@@ -431,29 +431,29 @@ public class GregorianCalendar extends Calendar
throw new IllegalArgumentException("Illegal MONTH.");
if (isSet[WEEK_OF_YEAR])
{
int daysInYear = 365 + leap;
daysInYear += (getFirstDayOfMonth(year, 0) - 1); // pad first week
int last = getFirstDayOfMonth(year, 11) + 4;
if (last > 7)
last -= 7;
daysInYear += 7 - last;
int weeks = daysInYear / 7;
if (fields[WEEK_OF_YEAR] < 1 || fields[WEEK_OF_YEAR] > weeks)
throw new IllegalArgumentException("Illegal WEEK_OF_YEAR.");
int daysInYear = 365 + leap;
daysInYear += (getFirstDayOfMonth(year, 0) - 1); // pad first week
int last = getFirstDayOfMonth(year, 11) + 4;
if (last > 7)
last -= 7;
daysInYear += 7 - last;
int weeks = daysInYear / 7;
if (fields[WEEK_OF_YEAR] < 1 || fields[WEEK_OF_YEAR] > weeks)
throw new IllegalArgumentException("Illegal WEEK_OF_YEAR.");
}
if (isSet[WEEK_OF_MONTH])
{
int weeks = (month == 1 && leap == 0) ? 5 : 6;
if (fields[WEEK_OF_MONTH] < 1 || fields[WEEK_OF_MONTH] > weeks)
throw new IllegalArgumentException("Illegal WEEK_OF_MONTH.");
int weeks = (month == 1 && leap == 0) ? 5 : 6;
if (fields[WEEK_OF_MONTH] < 1 || fields[WEEK_OF_MONTH] > weeks)
throw new IllegalArgumentException("Illegal WEEK_OF_MONTH.");
}
if (isSet[DAY_OF_MONTH])
if (fields[DAY_OF_MONTH] < 1
|| fields[DAY_OF_MONTH] > month_days[month]
+ ((month == 1) ? leap : 0))
throw new IllegalArgumentException("Illegal DAY_OF_MONTH.");
throw new IllegalArgumentException("Illegal DAY_OF_MONTH.");
if (isSet[DAY_OF_YEAR]
&& (fields[DAY_OF_YEAR] < 1 || fields[DAY_OF_YEAR] > 365 + leap))
@@ -465,10 +465,10 @@ public class GregorianCalendar extends Calendar
if (isSet[DAY_OF_WEEK_IN_MONTH])
{
int weeks = (month == 1 && leap == 0) ? 4 : 5;
if (fields[DAY_OF_WEEK_IN_MONTH] < -weeks
|| fields[DAY_OF_WEEK_IN_MONTH] > weeks)
throw new IllegalArgumentException("Illegal DAY_OF_WEEK_IN_MONTH.");
int weeks = (month == 1 && leap == 0) ? 4 : 5;
if (fields[DAY_OF_WEEK_IN_MONTH] < -weeks
|| fields[DAY_OF_WEEK_IN_MONTH] > weeks)
throw new IllegalArgumentException("Illegal DAY_OF_WEEK_IN_MONTH.");
}
if (isSet[AM_PM] && fields[AM_PM] != AM && fields[AM_PM] != PM)
@@ -522,78 +522,78 @@ public class GregorianCalendar extends Calendar
if (! isSet[MONTH] && (! isSet[DAY_OF_WEEK] || isSet[WEEK_OF_YEAR]))
{
// 5: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
if (isSet[WEEK_OF_YEAR])
{
int first = getFirstDayOfMonth(year, 0);
int offs = 1;
int daysInFirstWeek = getFirstDayOfWeek() - first;
if (daysInFirstWeek <= 0)
daysInFirstWeek += 7;
// 5: YEAR + DAY_OF_WEEK + WEEK_OF_YEAR
if (isSet[WEEK_OF_YEAR])
{
int first = getFirstDayOfMonth(year, 0);
int offs = 1;
int daysInFirstWeek = getFirstDayOfWeek() - first;
if (daysInFirstWeek <= 0)
daysInFirstWeek += 7;
if (daysInFirstWeek < getMinimalDaysInFirstWeek())
offs += daysInFirstWeek;
else
offs -= 7 - daysInFirstWeek;
month = 0;
day = offs + 7 * (fields[WEEK_OF_YEAR] - 1);
offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek();
if (daysInFirstWeek < getMinimalDaysInFirstWeek())
offs += daysInFirstWeek;
else
offs -= 7 - daysInFirstWeek;
month = 0;
day = offs + 7 * (fields[WEEK_OF_YEAR] - 1);
offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek();
if (offs < 0)
offs += 7;
day += offs;
}
else
{
// 4: YEAR + DAY_OF_YEAR
month = 0;
day = fields[DAY_OF_YEAR];
}
if (offs < 0)
offs += 7;
day += offs;
}
else
{
// 4: YEAR + DAY_OF_YEAR
month = 0;
day = fields[DAY_OF_YEAR];
}
}
else
{
if (isSet[DAY_OF_WEEK])
{
int first = getFirstDayOfMonth(year, month);
if (isSet[DAY_OF_WEEK])
{
int first = getFirstDayOfMonth(year, month);
// 3: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
if (isSet[DAY_OF_WEEK_IN_MONTH])
{
if (fields[DAY_OF_WEEK_IN_MONTH] < 0)
{
month++;
first = getFirstDayOfMonth(year, month);
day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH]);
}
else
day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH] - 1);
// 3: YEAR + MONTH + DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK
if (isSet[DAY_OF_WEEK_IN_MONTH])
{
if (fields[DAY_OF_WEEK_IN_MONTH] < 0)
{
month++;
first = getFirstDayOfMonth(year, month);
day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH]);
}
else
day = 1 + 7 * (fields[DAY_OF_WEEK_IN_MONTH] - 1);
int offs = fields[DAY_OF_WEEK] - first;
if (offs < 0)
offs += 7;
day += offs;
}
else
{ // 2: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
int offs = 1;
int daysInFirstWeek = getFirstDayOfWeek() - first;
if (daysInFirstWeek <= 0)
daysInFirstWeek += 7;
int offs = fields[DAY_OF_WEEK] - first;
if (offs < 0)
offs += 7;
day += offs;
}
else
{ // 2: YEAR + MONTH + WEEK_OF_MONTH + DAY_OF_WEEK
int offs = 1;
int daysInFirstWeek = getFirstDayOfWeek() - first;
if (daysInFirstWeek <= 0)
daysInFirstWeek += 7;
if (daysInFirstWeek < getMinimalDaysInFirstWeek())
offs += daysInFirstWeek;
else
offs -= 7 - daysInFirstWeek;
if (daysInFirstWeek < getMinimalDaysInFirstWeek())
offs += daysInFirstWeek;
else
offs -= 7 - daysInFirstWeek;
day = offs + 7 * (fields[WEEK_OF_MONTH] - 1);
offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek();
if (offs < 0)
offs += 7;
day += offs;
}
}
day = offs + 7 * (fields[WEEK_OF_MONTH] - 1);
offs = fields[DAY_OF_WEEK] - getFirstDayOfWeek();
if (offs < 0)
offs += 7;
day += offs;
}
}
// 1: YEAR + MONTH + DAY_OF_MONTH
// 1: YEAR + MONTH + DAY_OF_MONTH
}
if (era == BC && year > 0)
year = 1 - year;
@@ -603,9 +603,9 @@ public class GregorianCalendar extends Calendar
// get the hour (but no check for validity)
if (isSet[HOUR])
{
hour = fields[HOUR];
if (fields[AM_PM] == PM)
hour += 12;
hour = fields[HOUR];
if (fields[AM_PM] == PM)
hour += 12;
}
else
hour = fields[HOUR_OF_DAY];
@@ -619,41 +619,41 @@ public class GregorianCalendar extends Calendar
if (month < 0)
{
year += (int) month / 12;
month = month % 12;
if (month < 0)
{
month += 12;
year--;
}
year += (int) month / 12;
month = month % 12;
if (month < 0)
{
month += 12;
year--;
}
}
if (month > 11)
{
year += (month / 12);
month = month % 12;
year += (month / 12);
month = month % 12;
}
month_days[1] = isLeapYear(year) ? 29 : 28;
while (day <= 0)
{
if (month == 0)
{
year--;
month_days[1] = isLeapYear(year) ? 29 : 28;
}
month = (month + 11) % 12;
day += month_days[month];
if (month == 0)
{
year--;
month_days[1] = isLeapYear(year) ? 29 : 28;
}
month = (month + 11) % 12;
day += month_days[month];
}
while (day > month_days[month])
{
day -= (month_days[month]);
month = (month + 1) % 12;
if (month == 0)
{
year++;
month_days[1] = isLeapYear(year) ? 29 : 28;
}
day -= (month_days[month]);
month = (month + 1) % 12;
if (month == 0)
{
year++;
month_days[1] = isLeapYear(year) ? 29 : 28;
}
}
// ok, by here we have valid day,month,year,era and millisinday
@@ -719,19 +719,19 @@ public class GregorianCalendar extends Calendar
if (gregorian)
{
// subtract the days that are missing in gregorian calendar
// with respect to julian calendar.
//
// Okay, here we rely on the fact that the gregorian
// calendar was introduced in the AD era. This doesn't work
// with negative years.
//
// The additional leap year factor accounts for the fact that
// a leap day is not seen on Jan 1 of the leap year.
int gregOffset = (int) Math.floor((double) (year - 1) / 400.)
- (int) Math.floor((double) (year - 1) / 100.);
// subtract the days that are missing in gregorian calendar
// with respect to julian calendar.
//
// Okay, here we rely on the fact that the gregorian
// calendar was introduced in the AD era. This doesn't work
// with negative years.
//
// The additional leap year factor accounts for the fact that
// a leap day is not seen on Jan 1 of the leap year.
int gregOffset = (int) Math.floor((double) (year - 1) / 400.)
- (int) Math.floor((double) (year - 1) / 100.);
return julianDay + gregOffset;
return julianDay + gregOffset;
}
else
julianDay -= 2;
@@ -754,7 +754,7 @@ public class GregorianCalendar extends Calendar
weekday += 7;
fields[DAY_OF_WEEK] = weekday;
// get a first approximation of the year. This may be one
// get a first approximation of the year. This may be one
// year too big.
int year = 1970
+ (int) (gregorian
@@ -768,8 +768,8 @@ public class GregorianCalendar extends Calendar
// Now look in which year day really lies.
if (day < firstDayOfYear)
{
year--;
firstDayOfYear = getLinearDay(year, 1, gregorian);
year--;
firstDayOfYear = getLinearDay(year, 1, gregorian);
}
day -= firstDayOfYear - 1; // day of year, one based.
@@ -777,27 +777,27 @@ public class GregorianCalendar extends Calendar
fields[DAY_OF_YEAR] = (int) day;
if (year <= 0)
{
fields[ERA] = BC;
fields[YEAR] = 1 - year;
fields[ERA] = BC;
fields[YEAR] = 1 - year;
}
else
{
fields[ERA] = AD;
fields[YEAR] = year;
fields[ERA] = AD;
fields[YEAR] = year;
}
int leapday = isLeapYear(year) ? 1 : 0;
if (day <= 31 + 28 + leapday)
{
fields[MONTH] = (int) day / 32; // 31->JANUARY, 32->FEBRUARY
fields[DAY_OF_MONTH] = (int) day - 31 * fields[MONTH];
fields[MONTH] = (int) day / 32; // 31->JANUARY, 32->FEBRUARY
fields[DAY_OF_MONTH] = (int) day - 31 * fields[MONTH];
}
else
{
// A few more magic formulas
int scaledDay = ((int) day - leapday) * 5 + 8;
fields[MONTH] = scaledDay / (31 + 30 + 31 + 30 + 31);
fields[DAY_OF_MONTH] = (scaledDay % (31 + 30 + 31 + 30 + 31)) / 5 + 1;
// A few more magic formulas
int scaledDay = ((int) day - leapday) * 5 + 8;
fields[MONTH] = scaledDay / (31 + 30 + 31 + 30 + 31);
fields[DAY_OF_MONTH] = (scaledDay % (31 + 30 + 31 + 30 + 31)) / 5 + 1;
}
}
@@ -819,8 +819,8 @@ public class GregorianCalendar extends Calendar
if (millisInDay < 0)
{
millisInDay += (24 * 60 * 60 * 1000);
day--;
millisInDay += (24 * 60 * 60 * 1000);
day--;
}
calculateDay(fields, day, gregorian);
@@ -832,8 +832,8 @@ public class GregorianCalendar extends Calendar
millisInDay += fields[DST_OFFSET];
if (millisInDay >= 24 * 60 * 60 * 1000)
{
millisInDay -= 24 * 60 * 60 * 1000;
calculateDay(fields, ++day, gregorian);
millisInDay -= 24 * 60 * 60 * 1000;
calculateDay(fields, ++day, gregorian);
}
fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7;
@@ -845,7 +845,7 @@ public class GregorianCalendar extends Calendar
// nb 35 is the smallest multiple of 7 that ensures that
// the left hand side of the modulo operator is positive.
int relativeWeekdayOfFirst = (relativeWeekday - fields[DAY_OF_MONTH]
+ 1 + 35) % 7;
+ 1 + 35) % 7;
// which week of the month is the first of this month in?
int minDays = getMinimalDaysInFirstWeek();
@@ -853,11 +853,11 @@ public class GregorianCalendar extends Calendar
// which week of the month is this day in?
fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH]
+ relativeWeekdayOfFirst - 1) / 7 + weekOfFirst;
+ relativeWeekdayOfFirst - 1) / 7 + weekOfFirst;
int weekOfYear = (fields[DAY_OF_YEAR] - relativeWeekday + 6) / 7;
// Do the Correction: getMinimalDaysInFirstWeek() is always in the
// Do the Correction: getMinimalDaysInFirstWeek() is always in the
// first week.
int firstWeekday = (7 + getWeekDay(fields[YEAR], minDays)
- getFirstDayOfWeek()) % 7;
@@ -878,7 +878,7 @@ public class GregorianCalendar extends Calendar
areFieldsSet = isSet[ERA] = isSet[YEAR] = isSet[MONTH] = isSet[WEEK_OF_YEAR] = isSet[WEEK_OF_MONTH] = isSet[DAY_OF_MONTH] = isSet[DAY_OF_YEAR] = isSet[DAY_OF_WEEK] = isSet[DAY_OF_WEEK_IN_MONTH] = isSet[AM_PM] = isSet[HOUR] = isSet[HOUR_OF_DAY] = isSet[MINUTE] = isSet[SECOND] = isSet[MILLISECOND] = isSet[ZONE_OFFSET] = isSet[DST_OFFSET] = true;
}
/**
* Return a hash code for this object, following the general contract
* specified by {@link Object#hashCode()}.
@@ -931,76 +931,76 @@ public class GregorianCalendar extends Calendar
switch (field)
{
case YEAR:
complete();
fields[YEAR] += amount;
isTimeSet = false;
break;
complete();
fields[YEAR] += amount;
isTimeSet = false;
break;
case MONTH:
complete();
int months = fields[MONTH] + amount;
fields[YEAR] += months / 12;
fields[MONTH] = months % 12;
if (fields[MONTH] < 0)
{
fields[MONTH] += 12;
fields[YEAR]--;
}
int maxDay = getActualMaximum(DAY_OF_MONTH);
if (fields[DAY_OF_MONTH] > maxDay)
fields[DAY_OF_MONTH] = maxDay;
set(YEAR, fields[YEAR]);
set(MONTH, fields[MONTH]);
break;
complete();
int months = fields[MONTH] + amount;
fields[YEAR] += months / 12;
fields[MONTH] = months % 12;
if (fields[MONTH] < 0)
{
fields[MONTH] += 12;
fields[YEAR]--;
}
int maxDay = getActualMaximum(DAY_OF_MONTH);
if (fields[DAY_OF_MONTH] > maxDay)
fields[DAY_OF_MONTH] = maxDay;
set(YEAR, fields[YEAR]);
set(MONTH, fields[MONTH]);
break;
case DAY_OF_MONTH:
case DAY_OF_YEAR:
case DAY_OF_WEEK:
if (! isTimeSet)
computeTime();
time += amount * (24 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount * (24 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
case WEEK_OF_YEAR:
case WEEK_OF_MONTH:
case DAY_OF_WEEK_IN_MONTH:
if (! isTimeSet)
computeTime();
time += amount * (7 * 24 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount * (7 * 24 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
case AM_PM:
if (! isTimeSet)
computeTime();
time += amount * (12 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount * (12 * 60 * 60 * 1000L);
areFieldsSet = false;
break;
case HOUR:
case HOUR_OF_DAY:
if (! isTimeSet)
computeTime();
time += amount * (60 * 60 * 1000L);
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount * (60 * 60 * 1000L);
areFieldsSet = false;
break;
case MINUTE:
if (! isTimeSet)
computeTime();
time += amount * (60 * 1000L);
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount * (60 * 1000L);
areFieldsSet = false;
break;
case SECOND:
if (! isTimeSet)
computeTime();
time += amount * (1000L);
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount * (1000L);
areFieldsSet = false;
break;
case MILLISECOND:
if (! isTimeSet)
computeTime();
time += amount;
areFieldsSet = false;
break;
if (! isTimeSet)
computeTime();
time += amount;
areFieldsSet = false;
break;
case ZONE_OFFSET:
case DST_OFFSET:default:
throw new IllegalArgumentException("Invalid or unknown field");
throw new IllegalArgumentException("Invalid or unknown field");
}
}
@@ -1044,77 +1044,77 @@ public class GregorianCalendar extends Calendar
case ERA:
case YEAR:
case MONTH:
// check that day of month is still in correct range
if (fields[DAY_OF_MONTH] > getActualMaximum(DAY_OF_MONTH))
fields[DAY_OF_MONTH] = getActualMaximum(DAY_OF_MONTH);
isTimeSet = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
// check that day of month is still in correct range
if (fields[DAY_OF_MONTH] > getActualMaximum(DAY_OF_MONTH))
fields[DAY_OF_MONTH] = getActualMaximum(DAY_OF_MONTH);
isTimeSet = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
break;
case DAY_OF_MONTH:
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (24 * 60 * 60 * 1000L);
break;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (24 * 60 * 60 * 1000L);
break;
case WEEK_OF_MONTH:
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
isSet[DAY_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
case DAY_OF_WEEK_IN_MONTH:
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
case DAY_OF_YEAR:
isSet[MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (24 * 60 * 60 * 1000L);
break;
isSet[MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_WEEK] = false;
isSet[WEEK_OF_YEAR] = false;
time += delta * (24 * 60 * 60 * 1000L);
break;
case WEEK_OF_YEAR:
isSet[MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
isSet[MONTH] = false;
isSet[DAY_OF_MONTH] = false;
isSet[WEEK_OF_MONTH] = false;
isSet[DAY_OF_WEEK_IN_MONTH] = false;
isSet[DAY_OF_YEAR] = false;
time += delta * (7 * 24 * 60 * 60 * 1000L);
break;
case AM_PM:
isSet[HOUR_OF_DAY] = false;
time += delta * (12 * 60 * 60 * 1000L);
break;
isSet[HOUR_OF_DAY] = false;
time += delta * (12 * 60 * 60 * 1000L);
break;
case HOUR:
isSet[HOUR_OF_DAY] = false;
time += delta * (60 * 60 * 1000L);
break;
isSet[HOUR_OF_DAY] = false;
time += delta * (60 * 60 * 1000L);
break;
case HOUR_OF_DAY:
isSet[HOUR] = false;
isSet[AM_PM] = false;
time += delta * (60 * 60 * 1000L);
break;
isSet[HOUR] = false;
isSet[AM_PM] = false;
time += delta * (60 * 60 * 1000L);
break;
case MINUTE:
time += delta * (60 * 1000L);
break;
time += delta * (60 * 1000L);
break;
case SECOND:
time += delta * (1000L);
break;
time += delta * (1000L);
break;
case MILLISECOND:
time += delta;
break;
time += delta;
break;
}
}
@@ -1141,12 +1141,12 @@ public class GregorianCalendar extends Calendar
switch (field)
{
case DAY_OF_WEEK:
// day of week is special: it rolls automatically
add(field, amount);
return;
// day of week is special: it rolls automatically
add(field, amount);
return;
case ZONE_OFFSET:
case DST_OFFSET:
throw new IllegalArgumentException("Can't roll time zone");
throw new IllegalArgumentException("Can't roll time zone");
}
complete();
int min = getActualMinimum(field);
@@ -1162,7 +1162,7 @@ public class GregorianCalendar extends Calendar
/**
* The minimum values for the calendar fields.
*/
private static final int[] minimums =
private static final int[] minimums =
{
BC, 1, 0, 0, 1, 1, 1, SUNDAY, 1, AM,
1, 0, 0, 0, 0, -(12 * 60 * 60 * 1000),
@@ -1172,7 +1172,7 @@ public class GregorianCalendar extends Calendar
/**
* The maximum values for the calendar fields.
*/
private static final int[] maximums =
private static final int[] maximums =
{
AD, 5000000, 11, 53, 6, 31, 366,
SATURDAY, 5, PM, 12, 23, 59, 59, 999,
@@ -1235,16 +1235,16 @@ public class GregorianCalendar extends Calendar
switch (field)
{
case WEEK_OF_YEAR:
return 52;
return 52;
case DAY_OF_MONTH:
return 28;
return 28;
case DAY_OF_YEAR:
return 365;
return 365;
case DAY_OF_WEEK_IN_MONTH:
case WEEK_OF_MONTH:
return 4;
return 4;
default:
return maximums[field];
return maximums[field];
}
}
@@ -1263,17 +1263,17 @@ public class GregorianCalendar extends Calendar
{
if (field == WEEK_OF_YEAR)
{
int min = getMinimalDaysInFirstWeek();
if (min == 0)
return 1;
if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
int min = getMinimalDaysInFirstWeek();
if (min == 0)
return 1;
if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
int weekday = getWeekDay(year, min);
if ((7 + weekday - getFirstDayOfWeek()) % 7 >= min - 1)
return 1;
return 0;
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
int weekday = getWeekDay(year, min);
if ((7 + weekday - getFirstDayOfWeek()) % 7 >= min - 1)
return 1;
return 0;
}
return minimums[field];
}
@@ -1295,71 +1295,71 @@ public class GregorianCalendar extends Calendar
{
case WEEK_OF_YEAR:
{
if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
// This is wrong for the year that contains the gregorian change.
// I.e it gives the weeks in the julian year or in the gregorian
// year in that case.
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
int lastDay = isLeapYear(year) ? 366 : 365;
int weekday = getWeekDay(year, lastDay);
int week = (lastDay + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
// This is wrong for the year that contains the gregorian change.
// I.e it gives the weeks in the julian year or in the gregorian
// year in that case.
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
int lastDay = isLeapYear(year) ? 366 : 365;
int weekday = getWeekDay(year, lastDay);
int week = (lastDay + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
int minimalDays = getMinimalDaysInFirstWeek();
int firstWeekday = getWeekDay(year, minimalDays);
/*
* Is there a set of days at the beginning of the year, before the
* first day of the week, equal to or greater than the minimum number
* of days required in the first week?
*/
if (minimalDays - (7 + firstWeekday - getFirstDayOfWeek()) % 7 < 1)
return week + 1; /* Add week 1: firstWeekday through to firstDayOfWeek */
int minimalDays = getMinimalDaysInFirstWeek();
int firstWeekday = getWeekDay(year, minimalDays);
/*
* Is there a set of days at the beginning of the year, before the
* first day of the week, equal to or greater than the minimum number
* of days required in the first week?
*/
if (minimalDays - (7 + firstWeekday - getFirstDayOfWeek()) % 7 < 1)
return week + 1; /* Add week 1: firstWeekday through to firstDayOfWeek */
}
case DAY_OF_MONTH:
{
if (! areFieldsSet || ! isSet[MONTH])
complete();
int month = fields[MONTH];
if (! areFieldsSet || ! isSet[MONTH])
complete();
int month = fields[MONTH];
// If you change this, you should also change
// SimpleTimeZone.getDaysInMonth();
if (month == FEBRUARY)
{
if (! isSet[YEAR] || ! isSet[ERA])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
return isLeapYear(year) ? 29 : 28;
}
else if (month < AUGUST)
return 31 - (month & 1);
else
return 30 + (month & 1);
// If you change this, you should also change
// SimpleTimeZone.getDaysInMonth();
if (month == FEBRUARY)
{
if (! isSet[YEAR] || ! isSet[ERA])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
return isLeapYear(year) ? 29 : 28;
}
else if (month < AUGUST)
return 31 - (month & 1);
else
return 30 + (month & 1);
}
case DAY_OF_YEAR:
{
if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
return isLeapYear(year) ? 366 : 365;
if (! areFieldsSet || ! isSet[ERA] || ! isSet[YEAR])
complete();
int year = fields[ERA] == AD ? fields[YEAR] : 1 - fields[YEAR];
return isLeapYear(year) ? 366 : 365;
}
case DAY_OF_WEEK_IN_MONTH:
{
// This is wrong for the month that contains the gregorian change.
int daysInMonth = getActualMaximum(DAY_OF_MONTH);
// This is wrong for the month that contains the gregorian change.
int daysInMonth = getActualMaximum(DAY_OF_MONTH);
// That's black magic, I know
return (daysInMonth - (fields[DAY_OF_MONTH] - 1) % 7 + 6) / 7;
// That's black magic, I know
return (daysInMonth - (fields[DAY_OF_MONTH] - 1) % 7 + 6) / 7;
}
case WEEK_OF_MONTH:
{
int daysInMonth = getActualMaximum(DAY_OF_MONTH);
int weekday = (daysInMonth - fields[DAY_OF_MONTH]
+ fields[DAY_OF_WEEK] - SUNDAY) % 7 + SUNDAY;
return (daysInMonth + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
int daysInMonth = getActualMaximum(DAY_OF_MONTH);
int weekday = (daysInMonth - fields[DAY_OF_MONTH]
+ fields[DAY_OF_WEEK] - SUNDAY) % 7 + SUNDAY;
return (daysInMonth + 6 - (7 + weekday - getFirstDayOfWeek()) % 7) / 7;
}
default:
return maximums[field];
return maximums[field];
}
}
}
+9 -9
View File
@@ -349,7 +349,7 @@ public class HashMap<K, V> extends AbstractMap<K, V>
if (equals(key, e.key))
{
e.access(); // Must call this for bookkeeping in LinkedHashMap.
V r = e.value;
V r = e.value;
e.value = value;
return r;
}
@@ -384,12 +384,12 @@ public class HashMap<K, V> extends AbstractMap<K, V>
final Iterator<Map.Entry<K,V>> it = addMap.entrySet().iterator();
while (it.hasNext())
{
final Map.Entry<K,V> e = it.next();
final Map.Entry<K,V> e = it.next();
// Optimize in case the Entry is one of our own.
if (e instanceof AbstractMap.SimpleEntry)
{
AbstractMap.SimpleEntry<? extends K, ? extends V> entry
= (AbstractMap.SimpleEntry<? extends K, ? extends V>) e;
= (AbstractMap.SimpleEntry<? extends K, ? extends V>) e;
put(entry.key, entry.value);
}
else
@@ -702,8 +702,8 @@ public class HashMap<K, V> extends AbstractMap<K, V>
}
/**
* A simplified, more efficient internal implementation of putAll(). clone()
* should not call putAll or put, in order to be compatible with the JDK
* A simplified, more efficient internal implementation of putAll(). clone()
* should not call putAll or put, in order to be compatible with the JDK
* implementation with respect to subclasses.
*
* @param m the map to initialize this from
@@ -715,11 +715,11 @@ public class HashMap<K, V> extends AbstractMap<K, V>
size = 0;
while (it.hasNext())
{
final Map.Entry<K,V> e = it.next();
final Map.Entry<K,V> e = it.next();
size++;
K key = e.getKey();
int idx = hash(key);
addEntry(key, e.getValue(), idx, false);
K key = e.getKey();
int idx = hash(key);
addEntry(key, e.getValue(), idx, false);
}
}
+26 -26
View File
@@ -345,7 +345,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
}
}
return false;
return false;
}
/**
@@ -362,7 +362,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
public boolean containsValue(Object value)
{
// Delegate to older method to make sure code overriding it continues
// Delegate to older method to make sure code overriding it continues
// to work.
return contains(value);
}
@@ -511,12 +511,12 @@ public class Hashtable<K, V> extends Dictionary<K, V>
final Iterator<Map.Entry<K,V>> it = addMap.entrySet().iterator();
while (it.hasNext())
{
final Map.Entry<K,V> e = it.next();
final Map.Entry<K,V> e = it.next();
// Optimize in case the Entry is one of our own.
if (e instanceof AbstractMap.SimpleEntry)
{
AbstractMap.SimpleEntry<? extends K, ? extends V> entry
= (AbstractMap.SimpleEntry<? extends K, ? extends V>) e;
= (AbstractMap.SimpleEntry<? extends K, ? extends V>) e;
put(entry.key, entry.value);
}
else
@@ -850,8 +850,8 @@ public class Hashtable<K, V> extends Dictionary<K, V>
}
/**
* A simplified, more efficient internal implementation of putAll(). clone()
* should not call putAll or put, in order to be compatible with the JDK
* A simplified, more efficient internal implementation of putAll(). clone()
* should not call putAll or put, in order to be compatible with the JDK
* implementation with respect to subclasses.
*
* @param m the map to initialize this from
@@ -863,13 +863,13 @@ public class Hashtable<K, V> extends Dictionary<K, V>
size = 0;
while (it.hasNext())
{
final Map.Entry<K,V> e = it.next();
final Map.Entry<K,V> e = it.next();
size++;
K key = e.getKey();
int idx = hash(key);
HashEntry<K, V> he = new HashEntry<K, V>(key, e.getValue());
he.next = buckets[idx];
buckets[idx] = he;
K key = e.getKey();
int idx = hash(key);
HashEntry<K, V> he = new HashEntry<K, V>(key, e.getValue());
he.next = buckets[idx];
buckets[idx] = he;
}
}
@@ -991,7 +991,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
* @author Jon Zeppieri
* @author Fridjof Siebert
*/
private class EntryIterator
private class EntryIterator
implements Iterator<Entry<K,V>>
{
/**
@@ -1044,10 +1044,10 @@ public class Hashtable<K, V> extends Dictionary<K, V>
HashEntry<K, V> e = next;
while (e == null)
if (idx <= 0)
return null;
else
e = buckets[--idx];
if (idx <= 0)
return null;
else
e = buckets[--idx];
next = e.next;
last = e;
@@ -1081,7 +1081,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
* @author Fridtjof Siebert
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
private class KeyIterator
private class KeyIterator
implements Iterator<K>
{
@@ -1097,7 +1097,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
KeyIterator()
{
iterator = new EntryIterator();
iterator = new EntryIterator();
}
@@ -1109,7 +1109,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
public boolean hasNext()
{
return iterator.hasNext();
return iterator.hasNext();
}
/**
@@ -1137,7 +1137,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
iterator.remove();
}
} // class KeyIterator
/**
* A class which implements the Iterator interface and is used for
* iterating over values in Hashtables. This class uses an
@@ -1162,7 +1162,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
ValueIterator()
{
iterator = new EntryIterator();
iterator = new EntryIterator();
}
@@ -1174,7 +1174,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
public boolean hasNext()
{
return iterator.hasNext();
return iterator.hasNext();
}
/**
@@ -1218,7 +1218,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
* @author Jon Zeppieri
* @author Fridjof Siebert
*/
private class EntryEnumerator
private class EntryEnumerator
implements Enumeration<Entry<K,V>>
{
/** The number of elements remaining to be returned by next(). */
@@ -1315,7 +1315,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
public boolean hasMoreElements()
{
return enumerator.hasMoreElements();
return enumerator.hasMoreElements();
}
/**
@@ -1376,7 +1376,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
*/
public boolean hasMoreElements()
{
return enumerator.hasMoreElements();
return enumerator.hasMoreElements();
}
/**
@@ -789,10 +789,10 @@ public class IdentityHashMap<K,V> extends AbstractMap<K,V>
key = table[loc];
}
while (key == null);
return (I) (type == KEYS ? unxform(key)
: (type == VALUES ? unxform(table[loc + 1])
: new IdentityEntry(loc)));
return (I) (type == KEYS ? unxform(key)
: (type == VALUES ? unxform(table[loc + 1])
: new IdentityEntry(loc)));
}
/**
@@ -38,16 +38,16 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when a {@link Formatter} receives a character with an
* invalid Unicode codepoint, as defined by
* {@link Character#isValidCodePoint(int)}.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class IllegalFormatCodePointException
public class IllegalFormatCodePointException
extends IllegalFormatException
{
private static final long serialVersionUID = 19080630L;
@@ -38,16 +38,16 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the type of an argument supplied to the
* {@link Formatter#format()} method of a {@link Formatter}
* does not match the conversion character specified for it.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class IllegalFormatConversionException
public class IllegalFormatConversionException
extends IllegalFormatException
{
private static final long serialVersionUID = 17000126L;
@@ -81,7 +81,7 @@ public class IllegalFormatConversionException
public IllegalFormatConversionException(char c, Class<?> arg)
{
super("The type, " + arg + ", is invalid for the conversion character, " +
c + ".");
c + ".");
if (arg == null)
throw new NullPointerException("The supplied type was null.");
this.c = c;
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.util;
/**
/**
* A general exception thrown when a format string is supplied
* to a {@link Formatter} that contains either invalid syntax
* or a mismatch between the format specification and the
@@ -48,9 +48,9 @@ package java.util;
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class IllegalFormatException
public class IllegalFormatException
extends IllegalArgumentException
{
private static final long serialVersionUID = 18830826L;
@@ -38,15 +38,15 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the flags supplied to the {@link Formatter#format()}
* method of a {@link Formatter} form an illegal combination.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class IllegalFormatFlagsException
public class IllegalFormatFlagsException
extends IllegalFormatException
{
private static final long serialVersionUID = 790824L;
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the specified precision for a {@link Formatter}
* argument is illegal. This may be because the number is
* a negative number (other than -1), the argument does not
@@ -46,9 +46,9 @@ package java.util;
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class IllegalFormatPrecisionException
public class IllegalFormatPrecisionException
extends IllegalFormatException
{
private static final long serialVersionUID = 18711008L;
@@ -38,16 +38,16 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the specified width for a {@link Formatter}
* argument is illegal. This may be because the number is
* a negative number (other than -1) or for some other reason.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class IllegalFormatWidthException
public class IllegalFormatWidthException
extends IllegalFormatException
{
private static final long serialVersionUID = 16660902L;
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when a {@link Scanner} instance encounters a mismatch
* between the input data and the pattern it is trying to match it
* against. This could be because the input data represents an
@@ -47,9 +47,9 @@ package java.util;
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class InputMismatchException
public class InputMismatchException
extends NoSuchElementException
{
/**
@@ -76,9 +76,9 @@ package java.util;
* things like keep the map at a fixed size.
* <p>
*
* Under ideal circumstances (no collisions), LinkedHashMap offers O(1)
* Under ideal circumstances (no collisions), LinkedHashMap offers O(1)
* performance on most operations (<code>containsValue()</code> is,
* of course, O(n)). In the worst case (all keys map to the same
* of course, O(n)). In the worst case (all keys map to the same
* hash code -- very unlikely), most operations are O(n). Traversal is
* faster than in HashMap (proportional to the map size, and not the space
* allocated for the map), but other operations may be slower because of the
@@ -188,7 +188,7 @@ public class LinkedHashMap<K,V> extends HashMap<K,V>
succ = null;
pred = root.pred;
pred.succ = this;
root.pred = this;
root.pred = this;
}
}
}
@@ -477,7 +477,7 @@ public class LinkedHashMap<K,V> extends HashMap<K,V>
current = current.succ;
return type == VALUES ? last.value : type == KEYS ? last.key : last;
}
/**
* Removes from the backing HashMap the last element which was fetched
* with the <code>next()</code> method.
@@ -62,7 +62,7 @@ import java.io.Serializable;
* without needing the overhead of <code>TreeSet</code>.
* <p>
*
* Under ideal circumstances (no collisions), LinkedHashSet offers O(1)
* Under ideal circumstances (no collisions), LinkedHashSet offers O(1)
* performance on most operations. In the worst case (all elements map
* to the same hash code -- very unlikely), most operations are O(n).
* <p>
+13 -13
View File
@@ -684,7 +684,7 @@ public class LinkedList<T> extends AbstractSequentialList<T>
* Returns an Array whose component type is the runtime component type of
* the passed-in Array. The returned Array is populated with all of the
* elements in this LinkedList. If the passed-in Array is not large enough
* to store all of the elements in this List, a new Array will be created
* to store all of the elements in this List, a new Array will be created
* and returned; if the passed-in Array is <i>larger</i> than the size
* of this List, then size() index will be set to null.
*
@@ -1081,8 +1081,8 @@ public class LinkedList<T> extends AbstractSequentialList<T>
if (next == null)
throw new NoSuchElementException();
--position;
lastReturned = next;
next = lastReturned.previous;
lastReturned = next;
next = lastReturned.previous;
return lastReturned.data;
}
@@ -1101,9 +1101,9 @@ public class LinkedList<T> extends AbstractSequentialList<T>
checkMod();
if (lastReturned == null)
throw new IllegalStateException();
removeEntry(lastReturned);
lastReturned = null;
++knownMod;
removeEntry(lastReturned);
lastReturned = null;
++knownMod;
}
};
}
@@ -1217,7 +1217,7 @@ public class LinkedList<T> extends AbstractSequentialList<T>
{
addFirst(value);
}
/**
* Removes the first occurrence of the specified element
* from the list, when traversing the list from head to
@@ -1247,12 +1247,12 @@ public class LinkedList<T> extends AbstractSequentialList<T>
Entry<T> e = last;
while (e != null)
{
if (equals(o, e.data))
{
removeEntry(e);
return true;
}
e = e.previous;
if (equals(o, e.data))
{
removeEntry(e);
return true;
}
e = e.previous;
}
return false;
}
+1 -1
View File
@@ -232,7 +232,7 @@ public interface List<E> extends Collection<E>
* Obtains a hash code for this list. In order to obey the general
* contract of the hashCode method of class Object, this value is
* calculated as follows:
*
*
<p><pre>hashCode = 1;
Iterator i = list.iterator();
while (i.hasNext())
+82 -82
View File
@@ -215,7 +215,7 @@ public final class Locale implements Serializable, Cloneable
* got called.
*/
private static transient HashMap localeMap;
/**
* The default locale. Except for during bootstrapping, this should never be
* null. Note the logic in the main constructor, to detect when
@@ -249,12 +249,12 @@ public final class Locale implements Serializable, Cloneable
*
* @param language the language of the locale to retrieve.
* @return the locale.
*/
*/
private static Locale getLocale(String language)
{
return getLocale(language, "", "");
}
/**
* Retrieves the locale with the specified language and country
* from the cache.
@@ -262,12 +262,12 @@ public final class Locale implements Serializable, Cloneable
* @param language the language of the locale to retrieve.
* @param country the country of the locale to retrieve.
* @return the locale.
*/
*/
private static Locale getLocale(String language, String country)
{
return getLocale(language, country, "");
}
/**
* Retrieves the locale with the specified language, country
* and variant from the cache.
@@ -276,7 +276,7 @@ public final class Locale implements Serializable, Cloneable
* @param country the country of the locale to retrieve.
* @param variant the variant of the locale to retrieve.
* @return the locale.
*/
*/
private static Locale getLocale(String language, String country, String variant)
{
if (localeMap == null)
@@ -287,13 +287,13 @@ public final class Locale implements Serializable, Cloneable
if (locale == null)
{
locale = new Locale(language, country, variant);
localeMap.put(name, locale);
locale = new Locale(language, country, variant);
localeMap.put(name, locale);
}
return locale;
}
/**
* Convert new iso639 codes to the old ones.
*
@@ -418,17 +418,17 @@ public final class Locale implements Serializable, Cloneable
if (name.length() > 2)
country = name.substring(3);
int index = country.indexOf("_");
if (index > 0)
{
variant = country.substring(index + 1);
country = country.substring(0, index - 1);
}
int index = country.indexOf("_");
if (index > 0)
{
variant = country.substring(index + 1);
country = country.substring(0, index - 1);
}
availableLocales[i] = getLocale(language, country, variant);
}
}
return (Locale[]) availableLocales.clone();
}
@@ -442,7 +442,7 @@ public final class Locale implements Serializable, Cloneable
{
if (countryCache == null)
{
countryCache = getISOStrings("territories");
countryCache = getISOStrings("territories");
}
return (String[]) countryCache.clone();
@@ -458,7 +458,7 @@ public final class Locale implements Serializable, Cloneable
{
if (languageCache == null)
{
languageCache = getISOStrings("languages");
languageCache = getISOStrings("languages");
}
return (String[]) languageCache.clone();
}
@@ -480,27 +480,27 @@ public final class Locale implements Serializable, Cloneable
while (e.hasMoreElements())
{
String key = (String) e.nextElement();
if (key.startsWith(tableName + "."))
{
String str = key.substring(tableName.length() + 1);
String key = (String) e.nextElement();
if (str.length() == 2
&& Character.isLetter(str.charAt(0))
&& Character.isLetter(str.charAt(1)))
{
tempList.add(str);
++count;
}
}
if (key.startsWith(tableName + "."))
{
String str = key.substring(tableName.length() + 1);
if (str.length() == 2
&& Character.isLetter(str.charAt(0))
&& Character.isLetter(str.charAt(1)))
{
tempList.add(str);
++count;
}
}
}
String[] strings = new String[count];
for (int a = 0; a < count; ++a)
strings[a] = (String) tempList.get(a);
return strings;
}
@@ -687,7 +687,7 @@ public final class Locale implements Serializable, Cloneable
return "";
try
{
ResourceBundle res =
ResourceBundle res =
ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
inLocale,
ClassLoader.getSystemClassLoader());
@@ -696,23 +696,23 @@ public final class Locale implements Serializable, Cloneable
}
catch (MissingResourceException e)
{
/* This means runtime support for the locale
* is not available, so we check providers. */
/* This means runtime support for the locale
* is not available, so we check providers. */
}
for (LocaleNameProvider p :
ServiceLoader.load(LocaleNameProvider.class))
ServiceLoader.load(LocaleNameProvider.class))
{
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(inLocale))
{
String locLang = p.getDisplayLanguage(language,
inLocale);
if (locLang != null)
return locLang;
break;
}
}
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(inLocale))
{
String locLang = p.getDisplayLanguage(language,
inLocale);
if (locLang != null)
return locLang;
break;
}
}
}
if (inLocale.equals(Locale.ROOT)) // Base case
return language;
@@ -770,28 +770,28 @@ public final class Locale implements Serializable, Cloneable
ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
inLocale,
ClassLoader.getSystemClassLoader());
return res.getString("territories." + country);
}
catch (MissingResourceException e)
{
/* This means runtime support for the locale
* is not available, so we check providers. */
/* This means runtime support for the locale
* is not available, so we check providers. */
}
for (LocaleNameProvider p :
ServiceLoader.load(LocaleNameProvider.class))
ServiceLoader.load(LocaleNameProvider.class))
{
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(inLocale))
{
String locCountry = p.getDisplayCountry(country,
inLocale);
if (locCountry != null)
return locCountry;
break;
}
}
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(inLocale))
{
String locCountry = p.getDisplayCountry(country,
inLocale);
if (locCountry != null)
return locCountry;
break;
}
}
}
if (inLocale.equals(Locale.ROOT)) // Base case
return country;
@@ -850,28 +850,28 @@ public final class Locale implements Serializable, Cloneable
ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
inLocale,
ClassLoader.getSystemClassLoader());
return res.getString("variants." + variant);
}
catch (MissingResourceException e)
{
/* This means runtime support for the locale
* is not available, so we check providers. */
/* This means runtime support for the locale
* is not available, so we check providers. */
}
for (LocaleNameProvider p :
ServiceLoader.load(LocaleNameProvider.class))
ServiceLoader.load(LocaleNameProvider.class))
{
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(inLocale))
{
String locVar = p.getDisplayVariant(variant,
inLocale);
if (locVar != null)
return locVar;
break;
}
}
for (Locale loc : p.getAvailableLocales())
{
if (loc.equals(inLocale))
{
String locVar = p.getDisplayVariant(variant,
inLocale);
if (locVar != null)
return locVar;
break;
}
}
}
if (inLocale.equals(Locale.ROOT)) // Base case
return country;
@@ -989,8 +989,8 @@ public final class Locale implements Serializable, Cloneable
return false;
Locale l = (Locale) obj;
return (language == l.language
&& country == l.country
return (language == l.language
&& country == l.country
&& variant == l.variant);
}
@@ -1000,8 +1000,8 @@ public final class Locale implements Serializable, Cloneable
* @param s the stream to write to
* @throws IOException if the write fails
* @serialData The first three fields are Strings representing language,
* country, and variant. The fourth field is a placeholder for
* the cached hashcode, but this is always written as -1, and
* country, and variant. The fourth field is a placeholder for
* the cached hashcode, but this is always written as -1, and
* recomputed when reading it back.
*/
private void writeObject(ObjectOutputStream s)
+2 -2
View File
@@ -310,7 +310,7 @@ public interface Map<K, V>
* Returns the hash code of the entry. This is defined as the
* exclusive-or of the hashcodes of the key and value (using 0 for
* <code>null</code>). In other words, this must be:
*
*
<p><pre>(getKey() == null ? 0 : getKey().hashCode())
^ (getValue() == null ? 0 : getValue().hashCode())</pre>
*
@@ -322,7 +322,7 @@ public interface Map<K, V>
* Compares the specified object with this entry. Returns true only if
* the object is a mapping of identical key and value. In other words,
* this must be:
*
*
<p><pre>(o instanceof Map.Entry)
&& (getKey() == null ? ((Map.Entry) o).getKey() == null
: getKey().equals(((Map.Entry) o).getKey()))
@@ -38,16 +38,16 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the a format specification for a {@link Formatter}
* refers to an argument that is non-existent, or an argument index
* references a non-existent argument.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class MissingFormatArgumentException
public class MissingFormatArgumentException
extends IllegalFormatException
{
private static final long serialVersionUID = 19190115L;
@@ -71,8 +71,8 @@ public class MissingFormatArgumentException
*/
public MissingFormatArgumentException(String s)
{
super("The specification, " + s +
", refers to a non-existent argument.");
super("The specification, " + s +
", refers to a non-existent argument.");
if (s == null)
throw new NullPointerException("The specification is null.");
this.s = s;
@@ -38,15 +38,15 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when the a format specification for a {@link Formatter}
* does not include a width for a value where one is required.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class MissingFormatWidthException
public class MissingFormatWidthException
extends IllegalFormatException
{
private static final long serialVersionUID = 15560123L;
+85 -85
View File
@@ -79,23 +79,23 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
// Special case where we can find the comparator to use.
if (c instanceof SortedSet)
{
SortedSet<? extends E> ss = (SortedSet<? extends E>) c;
this.comparator = (Comparator<? super E>) ss.comparator();
// We can insert the elements directly, since they are sorted.
int i = 0;
for (E val : ss)
{
if (val == null)
throw new NullPointerException();
storage[i++] = val;
}
SortedSet<? extends E> ss = (SortedSet<? extends E>) c;
this.comparator = (Comparator<? super E>) ss.comparator();
// We can insert the elements directly, since they are sorted.
int i = 0;
for (E val : ss)
{
if (val == null)
throw new NullPointerException();
storage[i++] = val;
}
}
else if (c instanceof PriorityQueue)
{
PriorityQueue<? extends E> pq = (PriorityQueue<? extends E>) c;
this.comparator = (Comparator<? super E>)pq.comparator();
// We can just copy the contents.
System.arraycopy(pq.storage, 0, storage, 0, pq.storage.length);
PriorityQueue<? extends E> pq = (PriorityQueue<? extends E>) c;
this.comparator = (Comparator<? super E>)pq.comparator();
// We can just copy the contents.
System.arraycopy(pq.storage, 0, storage, 0, pq.storage.length);
}
addAll(c);
@@ -109,7 +109,7 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
public PriorityQueue(int cap, Comparator<? super E> comp)
{
if (cap < 1)
throw new IllegalArgumentException();
throw new IllegalArgumentException();
this.used = 0;
this.storage = (E[]) new Object[cap];
this.comparator = comp;
@@ -118,7 +118,7 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
public PriorityQueue(PriorityQueue<? extends E> c)
{
this(Math.max(1, (int) (1.1 * c.size())),
(Comparator<? super E>)c.comparator());
(Comparator<? super E>)c.comparator());
// We can just copy the contents.
System.arraycopy(c.storage, 0, storage, 0, c.storage.length);
}
@@ -126,14 +126,14 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
public PriorityQueue(SortedSet<? extends E> c)
{
this(Math.max(1, (int) (1.1 * c.size())),
(Comparator<? super E>)c.comparator());
(Comparator<? super E>)c.comparator());
// We can insert the elements directly, since they are sorted.
int i = 0;
for (E val : c)
{
if (val == null)
throw new NullPointerException();
storage[i++] = val;
if (val == null)
throw new NullPointerException();
storage[i++] = val;
}
}
@@ -157,22 +157,22 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
public boolean hasNext()
{
return count < used;
return count < used;
}
public E next()
{
while (storage[++index] == null)
;
++count;
return storage[index];
while (storage[++index] == null)
;
++count;
return storage[index];
}
public void remove()
{
PriorityQueue.this.remove(index);
index--;
PriorityQueue.this.remove(index);
index--;
}
};
}
@@ -209,14 +209,14 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
{
if (o != null)
{
for (int i = 0; i < storage.length; ++i)
{
if (o.equals(storage[i]))
{
remove(i);
return true;
}
}
for (int i = 0; i < storage.length; ++i)
{
if (o.equals(storage[i]))
{
remove(i);
return true;
}
}
}
return false;
}
@@ -237,12 +237,12 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
int save = used;
for (E val : c)
{
if (val == null)
throw new NullPointerException();
newSlot = findSlot(newSlot);
storage[newSlot] = val;
++used;
bubbleUp(newSlot);
if (val == null)
throw new NullPointerException();
newSlot = findSlot(newSlot);
storage[newSlot] = val;
++used;
bubbleUp(newSlot);
}
return save != used;
@@ -253,17 +253,17 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
int slot;
if (used == storage.length)
{
resize();
slot = used;
resize();
slot = used;
}
else
{
for (slot = start + 1; slot < storage.length; ++slot)
{
if (storage[slot] == null)
break;
}
// We'll always find a slot.
for (slot = start + 1; slot < storage.length; ++slot)
{
if (storage[slot] == null)
break;
}
// We'll always find a slot.
}
return slot;
}
@@ -275,28 +275,28 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
// the bottom of the tree.
while (storage[index] != null)
{
int child = 2 * index + 1;
int child = 2 * index + 1;
// See if we went off the end.
if (child >= storage.length)
{
storage[index] = null;
break;
}
// See if we went off the end.
if (child >= storage.length)
{
storage[index] = null;
break;
}
// Find which child we want to promote. If one is not null,
// we pick it. If both are null, it doesn't matter, we're
// about to leave. If neither is null, pick the lesser.
if (child + 1 >= storage.length || storage[child + 1] == null)
{
// Nothing.
}
else if (storage[child] == null
|| (Collections.compare(storage[child], storage[child + 1],
comparator) > 0))
++child;
storage[index] = storage[child];
index = child;
// Find which child we want to promote. If one is not null,
// we pick it. If both are null, it doesn't matter, we're
// about to leave. If neither is null, pick the lesser.
if (child + 1 >= storage.length || storage[child + 1] == null)
{
// Nothing.
}
else if (storage[child] == null
|| (Collections.compare(storage[child], storage[child + 1],
comparator) > 0))
++child;
storage[index] = storage[child];
index = child;
}
--used;
}
@@ -307,23 +307,23 @@ public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
// it up the tree to its natural resting place.
while (index > 0)
{
// This works regardless of whether we're at 2N+1 or 2N+2.
int parent = (index - 1) / 2;
if (Collections.compare(storage[parent], storage[index], comparator)
<= 0)
{
// Parent is the same or smaller than this element, so the
// invariant is preserved. Note that if the new element
// is smaller than the parent, then it is necessarily
// smaller than the parent's other child.
break;
}
// This works regardless of whether we're at 2N+1 or 2N+2.
int parent = (index - 1) / 2;
if (Collections.compare(storage[parent], storage[index], comparator)
<= 0)
{
// Parent is the same or smaller than this element, so the
// invariant is preserved. Note that if the new element
// is smaller than the parent, then it is necessarily
// smaller than the parent's other child.
break;
}
E temp = storage[index];
storage[index] = storage[parent];
storage[parent] = temp;
E temp = storage[index];
storage[index] = storage[parent];
storage[parent] = temp;
index = parent;
index = parent;
}
}
+73 -73
View File
@@ -75,7 +75,7 @@ import org.w3c.dom.ls.LSSerializer;
* and put it in the CLASSPATH. (The character
* <code>\</code><code>u00e4</code> is the german umlaut)
*
*
*
<pre>s1=3
s2=MeineDisk
s3=3. M\<code></code>u00e4rz 96
@@ -179,7 +179,7 @@ public class Properties extends Hashtable<Object, Object>
* <code>\\u</code><em>xxxx</em> notation are detected, and
* converted to the corresponding single character. <br>
*
*
*
<pre># This is a comment
key = value
k\:5 \ a string starting with space and ending with newline\n
@@ -204,21 +204,21 @@ label = Name:\\u0020</pre>
{
char c = 0;
int pos = 0;
// Leading whitespaces must be deleted first.
// Leading whitespaces must be deleted first.
while (pos < line.length()
&& Character.isWhitespace(c = line.charAt(pos)))
pos++;
// If empty line or begins with a comment character, skip this line.
if ((line.length() - pos) == 0
|| line.charAt(pos) == '#' || line.charAt(pos) == '!')
|| line.charAt(pos) == '#' || line.charAt(pos) == '!')
continue;
// The characters up to the next Whitespace, ':', or '='
// describe the key. But look for escape sequences.
// Try to short-circuit when there is no escape char.
int start = pos;
boolean needsEscape = line.indexOf('\\', pos) != -1;
// Try to short-circuit when there is no escape char.
int start = pos;
boolean needsEscape = line.indexOf('\\', pos) != -1;
CPStringBuilder key = needsEscape ? new CPStringBuilder() : null;
while (pos < line.length()
&& ! Character.isWhitespace(c = line.charAt(pos++))
@@ -232,8 +232,8 @@ label = Name:\\u0020</pre>
// is no next line, just treat it as a key with an
// empty value.
line = reader.readLine();
if (line == null)
line = "";
if (line == null)
line = "";
pos = 0;
while (pos < line.length()
&& Character.isWhitespace(c = line.charAt(pos)))
@@ -274,13 +274,13 @@ label = Name:\\u0020</pre>
boolean isDelim = (c == ':' || c == '=');
String keyString;
if (needsEscape)
keyString = key.toString();
else if (isDelim || Character.isWhitespace(c))
keyString = line.substring(start, pos - 1);
else
keyString = line.substring(start, pos);
String keyString;
if (needsEscape)
keyString = key.toString();
else if (isDelim || Character.isWhitespace(c))
keyString = line.substring(start, pos - 1);
else
keyString = line.substring(start, pos);
while (pos < line.length()
&& Character.isWhitespace(c = line.charAt(pos)))
@@ -294,14 +294,14 @@ label = Name:\\u0020</pre>
pos++;
}
// Short-circuit if no escape chars found.
if (!needsEscape)
{
put(keyString, line.substring(pos));
continue;
}
// Short-circuit if no escape chars found.
if (!needsEscape)
{
put(keyString, line.substring(pos));
continue;
}
// Escape char found so iterate through the rest of the line.
// Escape char found so iterate through the rest of the line.
StringBuilder element = new StringBuilder(line.length() - pos);
while (pos < line.length())
{
@@ -313,11 +313,11 @@ label = Name:\\u0020</pre>
// The line continues on the next line.
line = reader.readLine();
// We might have seen a backslash at the end of
// the file. The JDK ignores the backslash in
// this case, so we follow for compatibility.
if (line == null)
break;
// We might have seen a backslash at the end of
// the file. The JDK ignores the backslash in
// this case, so we follow for compatibility.
if (line == null)
break;
pos = 0;
while (pos < line.length()
@@ -438,7 +438,7 @@ label = Name:\\u0020</pre>
if (header != null)
writer.println("#" + header);
writer.println ("#" + Calendar.getInstance ().getTime ());
Iterator iter = entrySet ().iterator ();
int i = size ();
CPStringBuilder s = new CPStringBuilder (); // Reuse the same buffer.
@@ -528,7 +528,7 @@ label = Name:\\u0020</pre>
}
/**
* Prints the key/value pairs to the given print stream. This is
* Prints the key/value pairs to the given print stream. This is
* mainly useful for debugging purposes.
*
* @param out the print stream, where the key/value pairs are written to
@@ -645,7 +645,7 @@ label = Name:\\u0020</pre>
* Invoking this method provides the same behaviour as invoking
* <code>storeToXML(os, comment, "UTF-8")</code>.
* </p>
*
*
* @param os the stream to output to.
* @param comment a comment to include at the top of the XML file, or
* <code>null</code> if one is not required.
@@ -666,7 +666,7 @@ label = Name:\\u0020</pre>
* <a href="http://java.sun.com/dtd/properties.dtd">
* http://java.sun.com/dtd/properties.dtd</a>.
* </p>
*
*
* @param os the stream to output to.
* @param comment a comment to include at the top of the XML file, or
* <code>null</code> if one is not required.
@@ -685,53 +685,53 @@ label = Name:\\u0020</pre>
throw new NullPointerException("Null encoding supplied.");
try
{
DOMImplementationRegistry registry =
DOMImplementationRegistry.newInstance();
DOMImplementation domImpl = registry.getDOMImplementation("LS 3.0");
DocumentType doctype =
domImpl.createDocumentType("properties", null,
"http://java.sun.com/dtd/properties.dtd");
Document doc = domImpl.createDocument(null, "properties", doctype);
Element root = doc.getDocumentElement();
if (comment != null)
{
Element commentElement = doc.createElement("comment");
commentElement.appendChild(doc.createTextNode(comment));
root.appendChild(commentElement);
}
Iterator iterator = entrySet().iterator();
while (iterator.hasNext())
{
Map.Entry entry = (Map.Entry) iterator.next();
Element entryElement = doc.createElement("entry");
entryElement.setAttribute("key", (String) entry.getKey());
entryElement.appendChild(doc.createTextNode((String)
entry.getValue()));
root.appendChild(entryElement);
}
DOMImplementationLS loadAndSave = (DOMImplementationLS) domImpl;
LSSerializer serializer = loadAndSave.createLSSerializer();
LSOutput output = loadAndSave.createLSOutput();
output.setByteStream(os);
output.setEncoding(encoding);
serializer.write(doc, output);
DOMImplementationRegistry registry =
DOMImplementationRegistry.newInstance();
DOMImplementation domImpl = registry.getDOMImplementation("LS 3.0");
DocumentType doctype =
domImpl.createDocumentType("properties", null,
"http://java.sun.com/dtd/properties.dtd");
Document doc = domImpl.createDocument(null, "properties", doctype);
Element root = doc.getDocumentElement();
if (comment != null)
{
Element commentElement = doc.createElement("comment");
commentElement.appendChild(doc.createTextNode(comment));
root.appendChild(commentElement);
}
Iterator iterator = entrySet().iterator();
while (iterator.hasNext())
{
Map.Entry entry = (Map.Entry) iterator.next();
Element entryElement = doc.createElement("entry");
entryElement.setAttribute("key", (String) entry.getKey());
entryElement.appendChild(doc.createTextNode((String)
entry.getValue()));
root.appendChild(entryElement);
}
DOMImplementationLS loadAndSave = (DOMImplementationLS) domImpl;
LSSerializer serializer = loadAndSave.createLSSerializer();
LSOutput output = loadAndSave.createLSOutput();
output.setByteStream(os);
output.setEncoding(encoding);
serializer.write(doc, output);
}
catch (ClassNotFoundException e)
{
throw (IOException)
new IOException("The XML classes could not be found.").initCause(e);
throw (IOException)
new IOException("The XML classes could not be found.").initCause(e);
}
catch (InstantiationException e)
{
throw (IOException)
new IOException("The XML classes could not be instantiated.")
.initCause(e);
throw (IOException)
new IOException("The XML classes could not be instantiated.")
.initCause(e);
}
catch (IllegalAccessException e)
{
throw (IOException)
new IOException("The XML classes could not be accessed.")
.initCause(e);
throw (IOException)
new IOException("The XML classes could not be accessed.")
.initCause(e);
}
}
@@ -813,9 +813,9 @@ label = Name:\\u0020</pre>
}
catch (XMLStreamException e)
{
throw (InvalidPropertiesFormatException)
new InvalidPropertiesFormatException("Error in parsing XML.").
initCause(e);
throw (InvalidPropertiesFormatException)
new InvalidPropertiesFormatException("Error in parsing XML.").
initCause(e);
}
}
@@ -136,7 +136,7 @@ public final class PropertyPermission extends BasicPermission
{
// Initialising the class java.util.Locale ...
// tries to initialise the Locale.defaultLocale static
// which calls System.getProperty,
// which calls System.getProperty,
// which calls SecurityManager.checkPropertiesAccess,
// which creates a PropertyPermission with action "read,write",
// which calls setActions("read,write").
@@ -144,9 +144,9 @@ public final class PropertyPermission extends BasicPermission
// this would call Locale.getDefault() which returns null
// because Locale.defaultLocale hasn't been set yet
// then toLowerCase will fail with a null pointer exception.
//
//
// The solution is to take a punt on 'str' being lower case, and
// test accordingly. If that fails, we convert 'str' to lower case
// test accordingly. If that fails, we convert 'str' to lower case
// and try the tests again.
if ("read".equals(str))
actions = READ;
@@ -156,15 +156,15 @@ public final class PropertyPermission extends BasicPermission
actions = READ | WRITE;
else
{
String lstr = str.toLowerCase();
if ("read".equals(lstr))
actions = READ;
else if ("write".equals(lstr))
actions = WRITE;
else if ("read,write".equals(lstr) || "write,read".equals(lstr))
actions = READ | WRITE;
else
throw new IllegalArgumentException("illegal action " + str);
String lstr = str.toLowerCase();
if ("read".equals(lstr))
actions = READ;
else if ("write".equals(lstr))
actions = WRITE;
else if ("read,write".equals(lstr) || "write,read".equals(lstr))
actions = READ | WRITE;
else
throw new IllegalArgumentException("illegal action " + str);
}
}
@@ -67,7 +67,7 @@ class PropertyPermissionCollection extends PermissionCollection
/**
* A flag to detect if "*" is in the collection.
*
* @serial true if "*" is in the collection
* @serial true if "*" is in the collection
*/
private boolean all_allowed;
+6 -6
View File
@@ -227,7 +227,7 @@ public class Random implements Serializable
* an int value whose 32 bits are independent chosen random bits
* (0 and 1 are equally likely). The implementation for
* java.util.Random is:
*
*
<pre>public int nextInt()
{
return next(32);
@@ -246,7 +246,7 @@ public class Random implements Serializable
* each value has the same likelihodd (1/<code>n</code>).
* (0 and 1 are equally likely). The implementation for
* java.util.Random is:
*
*
<pre>
public int nextInt(int n)
{
@@ -266,7 +266,7 @@ public int nextInt(int n)
return val;
}</pre>
*
*
* <p>This algorithm would return every value with exactly the same
* probability, if the next()-method would be a perfect random number
* generator.
@@ -323,7 +323,7 @@ public int nextInt(int n)
/**
* Generates the next pseudorandom boolean. True and false have
* the same probability. The implementation is:
*
*
<pre>public boolean nextBoolean()
{
return next(1) != 0;
@@ -341,7 +341,7 @@ public int nextInt(int n)
* Generates the next pseudorandom float uniformly distributed
* between 0.0f (inclusive) and 1.0f (exclusive). The
* implementation is as follows.
*
*
<pre>public float nextFloat()
{
return next(24) / ((float)(1 &lt;&lt; 24));
@@ -375,7 +375,7 @@ public int nextInt(int n)
* Generates the next pseudorandom, Gaussian (normally) distributed
* double value, with mean 0.0 and standard deviation 1.0.
* The algorithm is as follows.
*
*
<pre>public synchronized double nextGaussian()
{
if (haveNextNextGaussian)
+82 -82
View File
@@ -95,7 +95,7 @@ public abstract class ResourceBundle
/**
* Maximum size of our cache of <code>ResourceBundle</code>s keyed by
* {@link BundleKey} instances.
*
*
* @see BundleKey
*/
private static final int CACHE_SIZE = 100;
@@ -120,7 +120,7 @@ public abstract class ResourceBundle
* {@link #CACHE_SIZE} accessed <code>ResourceBundle</code>s keyed by the
* tuple: default locale, resource-bundle name, resource-bundle locale, and
* classloader.
*
*
* @see BundleKey
*/
private static Map<BundleKey,Object> bundleCache =
@@ -188,8 +188,8 @@ public abstract class ResourceBundle
String className = getClass().getName();
throw new MissingResourceException("Key '" + key
+ "'not found in Bundle: "
+ className, className, key);
+ "'not found in Bundle: "
+ className, className, key);
}
/**
@@ -270,7 +270,7 @@ public abstract class ResourceBundle
{
set(dl, s, l, cl);
}
void set(Locale dl, String s, Locale l, ClassLoader cl)
{
defaultLocale = dl;
@@ -280,12 +280,12 @@ public abstract class ResourceBundle
hashcode = defaultLocale.hashCode() ^ baseName.hashCode()
^ locale.hashCode() ^ classLoader.hashCode();
}
public int hashCode()
{
return hashcode;
}
public boolean equals(Object o)
{
if (! (o instanceof BundleKey))
@@ -296,7 +296,7 @@ public abstract class ResourceBundle
&& baseName.equals(key.baseName)
&& locale.equals(key.locale)
&& classLoader.equals(key.classLoader);
}
}
public String toString()
{
@@ -313,11 +313,11 @@ public abstract class ResourceBundle
return builder.toString();
}
}
/** A cache lookup key. This avoids having to a new one for every
* getBundle() call. */
private static final BundleKey lookupKey = new BundleKey();
/** Singleton cache entry to represent previous failed lookups. */
private static final Object nullEntry = new Object();
@@ -383,7 +383,7 @@ public abstract class ResourceBundle
* <li>Locale("es", "ES"): result MyResources_es_ES.class, parent
* MyResources.class</li>
* </ul>
*
*
* <p>The file MyResources_fr_CH.properties is never used because it is hidden
* by MyResources_fr_CH.class.</p>
*
@@ -475,38 +475,38 @@ public abstract class ResourceBundle
rbClass = Class.forName(localizedName);
else
rbClass = classloader.loadClass(localizedName);
// Note that we do the check up front instead of catching
// ClassCastException. The reason for this is that some crazy
// programs (Eclipse) have classes that do not extend
// ResourceBundle but that have the same name as a property
// bundle; in fact Eclipse relies on ResourceBundle not
// instantiating these classes.
if (ResourceBundle.class.isAssignableFrom(rbClass))
bundle = (ResourceBundle) rbClass.newInstance();
// Note that we do the check up front instead of catching
// ClassCastException. The reason for this is that some crazy
// programs (Eclipse) have classes that do not extend
// ResourceBundle but that have the same name as a property
// bundle; in fact Eclipse relies on ResourceBundle not
// instantiating these classes.
if (ResourceBundle.class.isAssignableFrom(rbClass))
bundle = (ResourceBundle) rbClass.newInstance();
}
catch (Exception ex) {}
if (bundle == null)
{
try
{
InputStream is;
String resourceName
= localizedName.replace('.', '/') + ".properties";
if (classloader == null)
is = ClassLoader.getSystemResourceAsStream(resourceName);
else
is = classloader.getResourceAsStream(resourceName);
if (is != null)
bundle = new PropertyResourceBundle(is);
}
catch (IOException ex)
{
MissingResourceException mre = new MissingResourceException
("Failed to load bundle: " + localizedName, localizedName, "");
mre.initCause(ex);
throw mre;
}
try
{
InputStream is;
String resourceName
= localizedName.replace('.', '/') + ".properties";
if (classloader == null)
is = ClassLoader.getSystemResourceAsStream(resourceName);
else
is = classloader.getResourceAsStream(resourceName);
if (is != null)
bundle = new PropertyResourceBundle(is);
}
catch (IOException ex)
{
MissingResourceException mre = new MissingResourceException
("Failed to load bundle: " + localizedName, localizedName, "");
mre.initCause(ex);
throw mre;
}
}
return bundle;
@@ -524,13 +524,13 @@ public abstract class ResourceBundle
* @return the resource bundle if it was loaded, otherwise the backup
*/
private static ResourceBundle tryBundle(String baseName, Locale locale,
ClassLoader classLoader,
boolean wantBase)
ClassLoader classLoader,
boolean wantBase)
{
String language = locale.getLanguage();
String country = locale.getCountry();
String variant = locale.getVariant();
int baseLen = baseName.length();
// Build up a CPStringBuilder containing the complete bundle name, fully
@@ -538,23 +538,23 @@ public abstract class ResourceBundle
CPStringBuilder sb = new CPStringBuilder(baseLen + variant.length() + 7);
sb.append(baseName);
if (language.length() > 0)
{
sb.append('_');
sb.append(language);
if (country.length() > 0)
{
sb.append('_');
sb.append(country);
if (variant.length() > 0)
{
sb.append('_');
sb.append(variant);
}
}
sb.append('_');
sb.append(language);
if (country.length() > 0)
{
sb.append('_');
sb.append(country);
if (variant.length() > 0)
{
sb.append('_');
sb.append(variant);
}
}
}
// Now try to load bundles, starting with the most specialized name.
@@ -562,28 +562,28 @@ public abstract class ResourceBundle
String bundleName = sb.toString();
ResourceBundle first = null; // The most specialized bundle.
ResourceBundle last = null; // The least specialized bundle.
while (true)
{
ResourceBundle foundBundle = tryBundle(bundleName, classLoader);
if (foundBundle != null)
{
if (first == null)
first = foundBundle;
if (last != null)
last.parent = foundBundle;
foundBundle.locale = locale;
last = foundBundle;
}
int idx = bundleName.lastIndexOf('_');
// Try the non-localized base name only if we already have a
// localized child bundle, or wantBase is true.
if (idx > baseLen || (idx == baseLen && (first != null || wantBase)))
bundleName = bundleName.substring(0, idx);
else
break;
if (foundBundle != null)
{
if (first == null)
first = foundBundle;
if (last != null)
last.parent = foundBundle;
foundBundle.locale = locale;
last = foundBundle;
}
int idx = bundleName.lastIndexOf('_');
// Try the non-localized base name only if we already have a
// localized child bundle, or wantBase is true.
if (idx > baseLen || (idx == baseLen && (first != null || wantBase)))
bundleName = bundleName.substring(0, idx);
else
break;
}
return first;
}
@@ -611,14 +611,14 @@ public abstract class ResourceBundle
if (loader == null)
throw new NullPointerException("The loader can not be null.");
synchronized (ResourceBundle.class)
{
Iterator<BundleKey> iter = bundleCache.keySet().iterator();
while (iter.hasNext())
{
BundleKey key = iter.next();
if (key.classLoader == loader)
iter.remove();
}
{
Iterator<BundleKey> iter = bundleCache.keySet().iterator();
while (iter.hasNext())
{
BundleKey key = iter.next();
if (key.classLoader == loader)
iter.remove();
}
}
}
@@ -50,14 +50,14 @@ package java.util;
* <li>A listed class does not implement the service</li>
* <li>A listed class can not be instantiated</li>
* </ul>
*
*
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.6
*/
public class ServiceConfigurationError
extends Error
{
/**
* Compatible with JDK 1.6
*/
@@ -86,7 +86,7 @@ public class ServiceConfigurationError
* or inappropriate.
*/
public ServiceConfigurationError(String message,
Throwable cause)
Throwable cause)
{
super(message,cause);
}
+33 -33
View File
@@ -149,37 +149,37 @@ public final class ServiceLoader<S>
{
return new Iterator<S>()
{
/**
* The cache iterator.
*/
private Iterator<S> cacheIt = cache.iterator();
/**
* The cache iterator.
*/
private Iterator<S> cacheIt = cache.iterator();
public boolean hasNext()
{
if (cacheIt.hasNext())
return true;
if (serviceIt == null)
serviceIt =
ServiceFactory.lookupProviders(spi, loader, true);
return serviceIt.hasNext();
}
public boolean hasNext()
{
if (cacheIt.hasNext())
return true;
if (serviceIt == null)
serviceIt =
ServiceFactory.lookupProviders(spi, loader, true);
return serviceIt.hasNext();
}
public S next()
{
if (cacheIt.hasNext())
return cacheIt.next();
if (serviceIt == null)
serviceIt =
ServiceFactory.lookupProviders(spi, loader, true);
S nextService = serviceIt.next();
cache.add(nextService);
return nextService;
}
public S next()
{
if (cacheIt.hasNext())
return cacheIt.next();
if (serviceIt == null)
serviceIt =
ServiceFactory.lookupProviders(spi, loader, true);
S nextService = serviceIt.next();
cache.add(nextService);
return nextService;
}
public void remove()
{
throw new UnsupportedOperationException();
}
public void remove()
{
throw new UnsupportedOperationException();
}
};
}
@@ -196,7 +196,7 @@ public final class ServiceLoader<S>
public static <S> ServiceLoader<S> load(Class<S> service)
{
return load(service,
Thread.currentThread().getContextClassLoader());
Thread.currentThread().getContextClassLoader());
}
/**
@@ -215,7 +215,7 @@ public final class ServiceLoader<S>
* @return a new {@link ServiceLoader} instance.
*/
public static <S> ServiceLoader<S> load(Class<S> service,
ClassLoader loader)
ClassLoader loader)
{
if (loader == null)
loader = ClassLoader.getSystemClassLoader();
@@ -244,7 +244,7 @@ public final class ServiceLoader<S>
* of the system class loader, as in
* ClassLoader.getDefaultSystemClassLoader() */
return load(service,
ClassLoader.getSystemClassLoader().getParent());
ClassLoader.getSystemClassLoader().getParent());
}
/**
@@ -258,8 +258,8 @@ public final class ServiceLoader<S>
/**
* Returns a textual representation of this
* {@link ServiceLoader}.
*
* {@link ServiceLoader}.
*
* @return a textual representation of the
* service loader.
*/
+137 -137
View File
@@ -211,7 +211,7 @@ public class SimpleTimeZone extends TimeZone
* @serial
*/
private byte[] monthLength = monthArr;
private static final byte[] monthArr =
private static final byte[] monthArr =
{
31, 28, 31, 30, 31, 30, 31, 31, 30,
31, 30, 31
@@ -382,7 +382,7 @@ public class SimpleTimeZone extends TimeZone
int endTime, int endTimeMode, int dstSavings)
{
this(rawOffset, id, startMonth, startDayOfWeekInMonth, startDayOfWeek,
startTime, endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime);
startTime, endMonth, endDayOfWeekInMonth, endDayOfWeek, endTime);
if (startTimeMode < WALL_TIME || startTimeMode > UTC_TIME)
throw new IllegalArgumentException("startTimeMode must be one of WALL_TIME, STANDARD_TIME, or UTC_TIME");
@@ -425,28 +425,28 @@ public class SimpleTimeZone extends TimeZone
int daysInMonth = getDaysInMonth(month, 1);
if (dayOfWeek == 0)
{
if (day <= 0 || day > daysInMonth)
throw new IllegalArgumentException("day out of range");
return DOM_MODE;
if (day <= 0 || day > daysInMonth)
throw new IllegalArgumentException("day out of range");
return DOM_MODE;
}
else if (dayOfWeek > 0)
{
if (Math.abs(day) > (daysInMonth + 6) / 7)
throw new IllegalArgumentException("dayOfWeekInMonth out of range");
if (dayOfWeek > Calendar.SATURDAY)
throw new IllegalArgumentException("dayOfWeek out of range");
return DOW_IN_MONTH_MODE;
if (Math.abs(day) > (daysInMonth + 6) / 7)
throw new IllegalArgumentException("dayOfWeekInMonth out of range");
if (dayOfWeek > Calendar.SATURDAY)
throw new IllegalArgumentException("dayOfWeek out of range");
return DOW_IN_MONTH_MODE;
}
else
{
if (day == 0 || Math.abs(day) > daysInMonth)
throw new IllegalArgumentException("day out of range");
if (dayOfWeek < -Calendar.SATURDAY)
throw new IllegalArgumentException("dayOfWeek out of range");
if (day < 0)
return DOW_LE_DOM_MODE;
else
return DOW_GE_DOM_MODE;
if (day == 0 || Math.abs(day) > daysInMonth)
throw new IllegalArgumentException("day out of range");
if (dayOfWeek < -Calendar.SATURDAY)
throw new IllegalArgumentException("dayOfWeek out of range");
if (day < 0)
return DOW_LE_DOM_MODE;
else
return DOW_GE_DOM_MODE;
}
}
@@ -641,45 +641,45 @@ public class SimpleTimeZone extends TimeZone
int daylightSavings = 0;
if (useDaylight && era == GregorianCalendar.AD && year >= startYear)
{
int orig_year = year;
int time = startTime + (startTimeMode == UTC_TIME ? rawOffset : 0);
// This does only work for Gregorian calendars :-(
// This is mainly because setStartYear doesn't take an era.
boolean afterStart = ! isBefore(year, month, day, dayOfWeek, millis,
startMode, startMonth, startDay,
startDayOfWeek, time);
millis += dstSavings;
if (millis >= 24 * 60 * 60 * 1000)
{
millis -= 24 * 60 * 60 * 1000;
dayOfWeek = (dayOfWeek % 7) + 1;
if (++day > daysInMonth)
{
day = 1;
if (month++ == Calendar.DECEMBER)
{
month = Calendar.JANUARY;
year++;
}
}
}
time = endTime + (endTimeMode == UTC_TIME ? rawOffset : 0);
if (endTimeMode != WALL_TIME)
time += dstSavings;
boolean beforeEnd = isBefore(year, month, day, dayOfWeek, millis,
endMode, endMonth, endDay, endDayOfWeek,
time);
int orig_year = year;
int time = startTime + (startTimeMode == UTC_TIME ? rawOffset : 0);
// This does only work for Gregorian calendars :-(
// This is mainly because setStartYear doesn't take an era.
boolean afterStart = ! isBefore(year, month, day, dayOfWeek, millis,
startMode, startMonth, startDay,
startDayOfWeek, time);
millis += dstSavings;
if (millis >= 24 * 60 * 60 * 1000)
{
millis -= 24 * 60 * 60 * 1000;
dayOfWeek = (dayOfWeek % 7) + 1;
if (++day > daysInMonth)
{
day = 1;
if (month++ == Calendar.DECEMBER)
{
month = Calendar.JANUARY;
year++;
}
}
}
time = endTime + (endTimeMode == UTC_TIME ? rawOffset : 0);
if (endTimeMode != WALL_TIME)
time += dstSavings;
boolean beforeEnd = isBefore(year, month, day, dayOfWeek, millis,
endMode, endMonth, endDay, endDayOfWeek,
time);
if (year != orig_year)
afterStart = false;
if (startMonth < endMonth)
// use daylight savings, if the date is after the start of
// savings, and before the end of savings.
daylightSavings = afterStart && beforeEnd ? dstSavings : 0;
else
// use daylight savings, if the date is before the end of
// savings, or after the start of savings.
daylightSavings = beforeEnd || afterStart ? dstSavings : 0;
if (year != orig_year)
afterStart = false;
if (startMonth < endMonth)
// use daylight savings, if the date is after the start of
// savings, and before the end of savings.
daylightSavings = afterStart && beforeEnd ? dstSavings : 0;
else
// use daylight savings, if the date is before the end of
// savings, or after the start of savings.
daylightSavings = beforeEnd || afterStart ? dstSavings : 0;
}
return rawOffset + daylightSavings;
}
@@ -748,19 +748,19 @@ public class SimpleTimeZone extends TimeZone
* @param year The year.
*/
private int getDaysInMonth(int month, int year)
{
{
if (month == Calendar.FEBRUARY)
{
if ((year & 3) != 0)
return 28;
if ((year & 3) != 0)
return 28;
// Assume default Gregorian cutover,
// all years prior to this must be Julian
if (year < 1582)
return 29;
// Assume default Gregorian cutover,
// all years prior to this must be Julian
if (year < 1582)
return 29;
// Gregorian rules
return ((year % 100) != 0 || (year % 400) == 0) ? 29 : 28;
// Gregorian rules
return ((year % 100) != 0 || (year % 400) == 0) ? 29 : 28;
}
else
return monthArr[month];
@@ -800,66 +800,66 @@ public class SimpleTimeZone extends TimeZone
switch (mode)
{
case DOM_MODE:
if (calDayOfMonth != day)
return calDayOfMonth < day;
break;
if (calDayOfMonth != day)
return calDayOfMonth < day;
break;
case DOW_IN_MONTH_MODE:
{
// This computes the day of month of the day of type
// "dayOfWeek" that lies in the same (sunday based) week as cal.
calDayOfMonth += (dayOfWeek - calDayOfWeek);
// This computes the day of month of the day of type
// "dayOfWeek" that lies in the same (sunday based) week as cal.
calDayOfMonth += (dayOfWeek - calDayOfWeek);
// Now we convert it to 7 based number (to get a one based offset
// after dividing by 7). If we count from the end of the
// month, we get want a -7 based number counting the days from
// the end:
if (day < 0)
calDayOfMonth -= getDaysInMonth(calMonth, calYear) + 7;
else
calDayOfMonth += 6;
// Now we convert it to 7 based number (to get a one based offset
// after dividing by 7). If we count from the end of the
// month, we get want a -7 based number counting the days from
// the end:
if (day < 0)
calDayOfMonth -= getDaysInMonth(calMonth, calYear) + 7;
else
calDayOfMonth += 6;
// day > 0 day < 0
// S M T W T F S S M T W T F S
// 7 8 9 10 11 12 -36-35-34-33-32-31
// 13 14 15 16 17 18 19 -30-29-28-27-26-25-24
// 20 21 22 23 24 25 26 -23-22-21-20-19-18-17
// 27 28 29 30 31 32 33 -16-15-14-13-12-11-10
// 34 35 36 -9 -8 -7
// Now we calculate the day of week in month:
int week = calDayOfMonth / 7;
// day > 0 day < 0
// S M T W T F S S M T W T F S
// 7 8 9 10 11 12 -36-35-34-33-32-31
// 13 14 15 16 17 18 19 -30-29-28-27-26-25-24
// 20 21 22 23 24 25 26 -23-22-21-20-19-18-17
// 27 28 29 30 31 32 33 -16-15-14-13-12-11-10
// 34 35 36 -9 -8 -7
// Now we calculate the day of week in month:
int week = calDayOfMonth / 7;
// day > 0 day < 0
// S M T W T F S S M T W T F S
// 1 1 1 1 1 1 -5 -5 -4 -4 -4 -4
// 1 2 2 2 2 2 2 -4 -4 -4 -3 -3 -3 -3
// 2 3 3 3 3 3 3 -3 -3 -3 -2 -2 -2 -2
// 3 4 4 4 4 4 4 -2 -2 -2 -1 -1 -1 -1
// 4 5 5 -1 -1 -1
if (week != day)
return week < day;
// day > 0 day < 0
// S M T W T F S S M T W T F S
// 1 1 1 1 1 1 -5 -5 -4 -4 -4 -4
// 1 2 2 2 2 2 2 -4 -4 -4 -3 -3 -3 -3
// 2 3 3 3 3 3 3 -3 -3 -3 -2 -2 -2 -2
// 3 4 4 4 4 4 4 -2 -2 -2 -1 -1 -1 -1
// 4 5 5 -1 -1 -1
if (week != day)
return week < day;
if (calDayOfWeek != dayOfWeek)
return calDayOfWeek < dayOfWeek;
if (calDayOfWeek != dayOfWeek)
return calDayOfWeek < dayOfWeek;
// daylight savings starts/ends on the given day.
break;
// daylight savings starts/ends on the given day.
break;
}
case DOW_LE_DOM_MODE:
// The greatest sunday before or equal December, 12
// is the same as smallest sunday after or equal December, 6.
day = Math.abs(day) - 6;
// The greatest sunday before or equal December, 12
// is the same as smallest sunday after or equal December, 6.
day = Math.abs(day) - 6;
case DOW_GE_DOM_MODE:
// Calculate the day of month of the day of type
// "dayOfWeek" that lies before (or on) the given date.
calDayOfMonth -= (calDayOfWeek < dayOfWeek ? 7 : 0) + calDayOfWeek
- dayOfWeek;
if (calDayOfMonth < day)
return true;
if (calDayOfWeek != dayOfWeek || calDayOfMonth >= day + 7)
return false;
// Calculate the day of month of the day of type
// "dayOfWeek" that lies before (or on) the given date.
calDayOfMonth -= (calDayOfWeek < dayOfWeek ? 7 : 0) + calDayOfWeek
- dayOfWeek;
if (calDayOfMonth < day)
return true;
if (calDayOfWeek != dayOfWeek || calDayOfMonth >= day + 7)
return false;
// now we have the same day
break;
// now we have the same day
break;
}
// the millis decides:
@@ -971,28 +971,28 @@ public class SimpleTimeZone extends TimeZone
input.defaultReadObject();
if (serialVersionOnStream == 0)
{
// initialize the new fields to default values.
dstSavings = 60 * 60 * 1000;
endMode = DOW_IN_MONTH_MODE;
startMode = DOW_IN_MONTH_MODE;
startTimeMode = WALL_TIME;
endTimeMode = WALL_TIME;
serialVersionOnStream = 2;
// initialize the new fields to default values.
dstSavings = 60 * 60 * 1000;
endMode = DOW_IN_MONTH_MODE;
startMode = DOW_IN_MONTH_MODE;
startTimeMode = WALL_TIME;
endTimeMode = WALL_TIME;
serialVersionOnStream = 2;
}
else
{
int length = input.readInt();
byte[] byteArray = new byte[length];
input.read(byteArray, 0, length);
if (length >= 4)
{
// Lets hope that Sun does extensions to the serialized
// form in a sane manner.
startDay = byteArray[0];
startDayOfWeek = byteArray[1];
endDay = byteArray[2];
endDayOfWeek = byteArray[3];
}
int length = input.readInt();
byte[] byteArray = new byte[length];
input.read(byteArray, 0, length);
if (length >= 4)
{
// Lets hope that Sun does extensions to the serialized
// form in a sane manner.
startDay = byteArray[0];
startDayOfWeek = byteArray[1];
endDay = byteArray[2];
endDayOfWeek = byteArray[3];
}
}
}
@@ -1025,22 +1025,22 @@ public class SimpleTimeZone extends TimeZone
switch (startMode)
{
case DOM_MODE:
startDayOfWeek = Calendar.SUNDAY; // random day of week
startDayOfWeek = Calendar.SUNDAY; // random day of week
// fall through
case DOW_GE_DOM_MODE:
case DOW_LE_DOM_MODE:
startDay = (startDay + 6) / 7;
startDay = (startDay + 6) / 7;
}
switch (endMode)
{
case DOM_MODE:
endDayOfWeek = Calendar.SUNDAY;
endDayOfWeek = Calendar.SUNDAY;
// fall through
case DOW_GE_DOM_MODE:
case DOW_LE_DOM_MODE:
endDay = (endDay + 6) / 7;
endDay = (endDay + 6) / 7;
}
// the required part:
@@ -189,7 +189,7 @@ public class StringTokenizer implements Enumeration<Object>
int start = pos;
while (++pos < len && delim.indexOf(str.charAt(pos)) < 0)
;
return str.substring(start, pos);
}
throw new NoSuchElementException();
File diff suppressed because it is too large Load Diff
+180 -180
View File
@@ -111,11 +111,11 @@ public class Timer
{
elements++;
if (elements == heap.length)
{
TimerTask new_heap[] = new TimerTask[heap.length * 2];
System.arraycopy(heap, 0, new_heap, 0, heap.length);
heap = new_heap;
}
{
TimerTask new_heap[] = new TimerTask[heap.length * 2];
System.arraycopy(heap, 0, new_heap, 0, heap.length);
heap = new_heap;
}
heap[elements] = task;
}
@@ -130,11 +130,11 @@ public class Timer
heap[elements] = null;
elements--;
if (elements + DEFAULT_SIZE / 2 <= (heap.length / 4))
{
TimerTask new_heap[] = new TimerTask[heap.length / 2];
System.arraycopy(heap, 0, new_heap, 0, elements + 1);
heap = new_heap;
}
{
TimerTask new_heap[] = new TimerTask[heap.length / 2];
System.arraycopy(heap, 0, new_heap, 0, elements + 1);
heap = new_heap;
}
}
/**
@@ -145,25 +145,25 @@ public class Timer
{
// Check if it is legal to add another element
if (heap == null)
{
throw new IllegalStateException
("cannot enqueue when stop() has been called on queue");
}
{
throw new IllegalStateException
("cannot enqueue when stop() has been called on queue");
}
heap[0] = task; // sentinel
add(task); // put the new task at the end
heap[0] = task; // sentinel
add(task); // put the new task at the end
// Now push the task up in the heap until it has reached its place
int child = elements;
int parent = child / 2;
while (heap[parent].scheduled > task.scheduled)
{
heap[child] = heap[parent];
child = parent;
parent = child / 2;
}
{
heap[child] = heap[parent];
child = parent;
parent = child / 2;
}
// This is the correct place for the new task
heap[child] = task;
heap[0] = null; // clear sentinel
heap[0] = null; // clear sentinel
// Maybe sched() is waiting for a new element
this.notify();
}
@@ -175,13 +175,13 @@ public class Timer
private TimerTask top()
{
if (elements == 0)
{
return null;
}
{
return null;
}
else
{
return heap[1];
}
{
return heap[1];
}
}
/**
@@ -195,50 +195,50 @@ public class Timer
TimerTask task = null;
while (task == null)
{
// Get the next task
task = top();
{
// Get the next task
task = top();
// return null when asked to stop
// or if asked to return null when the queue is empty
if ((heap == null) || (task == null && nullOnEmpty))
{
return null;
}
// return null when asked to stop
// or if asked to return null when the queue is empty
if ((heap == null) || (task == null && nullOnEmpty))
{
return null;
}
// Do we have a task?
if (task != null)
{
// The time to wait until the task should be served
long time = task.scheduled - System.currentTimeMillis();
if (time > 0)
{
// This task should not yet be served
// So wait until this task is ready
// or something else happens to the queue
task = null; // set to null to make sure we call top()
try
{
this.wait(time);
}
catch (InterruptedException _)
{
}
}
}
else
{
// wait until a task is added
// or something else happens to the queue
try
{
this.wait();
}
catch (InterruptedException _)
{
}
}
}
// Do we have a task?
if (task != null)
{
// The time to wait until the task should be served
long time = task.scheduled - System.currentTimeMillis();
if (time > 0)
{
// This task should not yet be served
// So wait until this task is ready
// or something else happens to the queue
task = null; // set to null to make sure we call top()
try
{
this.wait(time);
}
catch (InterruptedException _)
{
}
}
}
else
{
// wait until a task is added
// or something else happens to the queue
try
{
this.wait();
}
catch (InterruptedException _)
{
}
}
}
// reconstruct the heap
TimerTask lastTask = heap[elements];
@@ -249,22 +249,22 @@ public class Timer
int child = 2;
heap[1] = lastTask;
while (child <= elements)
{
if (child < elements)
{
if (heap[child].scheduled > heap[child + 1].scheduled)
{
child++;
}
}
{
if (child < elements)
{
if (heap[child].scheduled > heap[child + 1].scheduled)
{
child++;
}
}
if (lastTask.scheduled <= heap[child].scheduled)
break; // found the correct place (the parent) - done
if (lastTask.scheduled <= heap[child].scheduled)
break; // found the correct place (the parent) - done
heap[parent] = heap[child];
parent = child;
child = parent * 2;
}
heap[parent] = heap[child];
parent = child;
child = parent * 2;
}
// this is the correct new place for the lastTask
heap[parent] = lastTask;
@@ -306,53 +306,53 @@ public class Timer
// Null out any elements that are canceled. Skip element 0 as
// it is the sentinel.
for (int i = elements; i > 0; --i)
{
if (heap[i].scheduled < 0)
{
++removed;
{
if (heap[i].scheduled < 0)
{
++removed;
// Remove an element by pushing the appropriate child
// into place, and then iterating to the bottom of the
// tree.
int index = i;
while (heap[index] != null)
{
int child = 2 * index;
if (child >= heap.length)
{
// Off end; we're done.
heap[index] = null;
break;
}
// Remove an element by pushing the appropriate child
// into place, and then iterating to the bottom of the
// tree.
int index = i;
while (heap[index] != null)
{
int child = 2 * index;
if (child >= heap.length)
{
// Off end; we're done.
heap[index] = null;
break;
}
if (child + 1 >= heap.length || heap[child + 1] == null)
{
// Nothing -- we're done.
}
else if (heap[child] == null
|| (heap[child].scheduled
> heap[child + 1].scheduled))
++child;
heap[index] = heap[child];
index = child;
}
}
}
if (child + 1 >= heap.length || heap[child + 1] == null)
{
// Nothing -- we're done.
}
else if (heap[child] == null
|| (heap[child].scheduled
> heap[child + 1].scheduled))
++child;
heap[index] = heap[child];
index = child;
}
}
}
// Make a new heap if we shrank enough.
int newLen = heap.length;
while (elements - removed + DEFAULT_SIZE / 2 <= newLen / 4)
newLen /= 2;
newLen /= 2;
if (newLen != heap.length)
{
TimerTask[] newHeap = new TimerTask[newLen];
System.arraycopy(heap, 0, newHeap, 0, elements + 1);
heap = newHeap;
}
{
TimerTask[] newHeap = new TimerTask[newLen];
System.arraycopy(heap, 0, newHeap, 0, elements + 1);
heap = newHeap;
}
return removed;
}
} // TaskQueue
} // TaskQueue
/**
* The scheduler that executes all the tasks on a particular TaskQueue,
@@ -378,63 +378,63 @@ public class Timer
{
TimerTask task;
while ((task = queue.serve()) != null)
{
// If this task has not been canceled
if (task.scheduled >= 0)
{
{
// If this task has not been canceled
if (task.scheduled >= 0)
{
// Mark execution time
task.lastExecutionTime = task.scheduled;
// Mark execution time
task.lastExecutionTime = task.scheduled;
// Repeatable task?
if (task.period < 0)
{
// Last time this task is executed
task.scheduled = -1;
}
// Repeatable task?
if (task.period < 0)
{
// Last time this task is executed
task.scheduled = -1;
}
// Run the task
try
{
task.run();
}
// Run the task
try
{
task.run();
}
catch (ThreadDeath death)
{
// If an exception escapes, the Timer becomes invalid.
queue.stop();
throw death;
}
catch (Throwable t)
{
// If an exception escapes, the Timer becomes invalid.
catch (Throwable t)
{
// If an exception escapes, the Timer becomes invalid.
queue.stop();
}
}
}
}
// Calculate next time and possibly re-enqueue.
if (task.scheduled >= 0)
{
if (task.fixed)
{
task.scheduled += task.period;
}
else
{
task.scheduled = task.period + System.currentTimeMillis();
}
// Calculate next time and possibly re-enqueue.
if (task.scheduled >= 0)
{
if (task.fixed)
{
task.scheduled += task.period;
}
else
{
task.scheduled = task.period + System.currentTimeMillis();
}
try
{
queue.enqueue(task);
}
catch (IllegalStateException ise)
{
// Ignore. Apparently the Timer queue has been stopped.
}
}
}
try
{
queue.enqueue(task);
}
catch (IllegalStateException ise)
{
// Ignore. Apparently the Timer queue has been stopped.
}
}
}
}
} // Scheduler
} // Scheduler
// Number of Timers created.
// Used for creating nice Thread names.
@@ -474,11 +474,11 @@ public class Timer
this(daemon, Thread.NORM_PRIORITY);
}
/**
* Create a new Timer whose Thread has the indicated name. It will have
* normal priority and will not be a daemon thread.
/**
* Create a new Timer whose Thread has the indicated name. It will have
* normal priority and will not be a daemon thread.
* @param name the name of the Thread
* @since 1.5
* @since 1.5
*/
public Timer(String name)
{
@@ -486,7 +486,7 @@ public class Timer
}
/**
* Create a new Timer whose Thread has the indicated name. It will have
* Create a new Timer whose Thread has the indicated name. It will have
* normal priority. The boolean argument controls whether or not it
* will be a daemon thread.
* @param name the name of the Thread
@@ -548,24 +548,24 @@ public class Timer
if (task.scheduled == 0 && task.lastExecutionTime == -1)
{
task.scheduled = time;
task.period = period;
task.fixed = fixed;
task.scheduled = time;
task.period = period;
task.fixed = fixed;
}
else
{
throw new IllegalStateException
("task was already scheduled or canceled");
throw new IllegalStateException
("task was already scheduled or canceled");
}
if (!this.canceled && this.thread != null)
{
queue.enqueue(task);
queue.enqueue(task);
}
else
{
throw new IllegalStateException
("timer was canceled or scheduler thread has died");
throw new IllegalStateException
("timer was canceled or scheduler thread has died");
}
}
@@ -573,7 +573,7 @@ public class Timer
{
if (delay < 0)
{
throw new IllegalArgumentException("delay is negative");
throw new IllegalArgumentException("delay is negative");
}
}
@@ -581,7 +581,7 @@ public class Timer
{
if (period < 0)
{
throw new IllegalArgumentException("period is negative");
throw new IllegalArgumentException("period is negative");
}
}
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -291,7 +291,7 @@ public class TreeSet<T> extends AbstractSet<T>
* The returned set is backed by the original, so changes
* in one appear in the other. The subset will throw an
* {@link IllegalArgumentException} for any attempt to access or add an
* element beyond the specified cutoff.
* element beyond the specified cutoff.
*
* @param to the cutoff point
* @param inclusive true if <code>to</code> should be included.
@@ -406,10 +406,10 @@ public class TreeSet<T> extends AbstractSet<T>
* @throws IllegalArgumentException if from is greater than to
*/
public NavigableSet<T> subSet(T from, boolean fromInclusive,
T to, boolean toInclusive)
T to, boolean toInclusive)
{
return new TreeSet<T>(map.subMap(from, fromInclusive,
to, toInclusive));
to, toInclusive));
}
/**
@@ -574,7 +574,7 @@ public class TreeSet<T> extends AbstractSet<T>
* no such element.
*
* @param e the element relative to the returned element.
* @return the least element greater than
* @return the least element greater than
* the given element, or <code>null</code> if there is
* no such element.
* @throws ClassCastException if the specified element can not
@@ -596,7 +596,7 @@ public class TreeSet<T> extends AbstractSet<T>
* no such element.
*
* @param e the element relative to the returned element.
* @return the greatest element less than
* @return the greatest element less than
* the given element, or <code>null</code> if there is
* no such element.
* @throws ClassCastException if the specified element can not
+39 -39
View File
@@ -44,29 +44,29 @@ import java.security.NoSuchAlgorithmException;
/**
* This class represents a 128-bit UUID value.
*
*
* There are several types of UUID, and while this class can be used to store
* them, only the Leach-Salz (variant 2) UUID specified in RFC-4122 will
* them, only the Leach-Salz (variant 2) UUID specified in RFC-4122 will
* give meaningful results from the method calls.
* See: http://tools.ietf.org/html/4122 for the details
*
* The format of a Leach-Salz (variant 2) time-based (version 1) UUID
* The format of a Leach-Salz (variant 2) time-based (version 1) UUID
* is as follows:
* time_low - upper 32 bits of the most significant 64 bits,
* this is the least-significant part of the timestamp.
*
* time_mid - bits 16-31 of the most significant 64 bits,
* this is the middle portion of the timestamp.
* this is the middle portion of the timestamp.
*
* version - bits 8-15 of the most significant 64 bits.
* version - bits 8-15 of the most significant 64 bits.
*
* time_hi - bits 0-7 of the most significant 64 bits,
* the most significant portion of the timestamp.
*
* clock_and_reserved - bits 48-63 of the least significant 64 bits.
* a variable number of bits hold the variant
* a variable number of bits hold the variant
* (see the spec)
*
*
* node identifier - bits 0-47 of the least signficant 64 bits.
*
* These fields are valid only for version 1, in the remaining versions,
@@ -75,8 +75,8 @@ import java.security.NoSuchAlgorithmException;
* @since 1.5
* @author Sven de Marothy
*/
public final class UUID
extends Object
public final class UUID
extends Object
implements Serializable, Comparable<UUID>
{
private static final long serialVersionUID = -4856846361193249489L;
@@ -106,7 +106,7 @@ public final class UUID
this.mostSigBits = mostSigBits;
this.leastSigBits = leastSigBits;
}
/**
* Returns the clock-sequence value of this UUID.
* This field only exists in a time-based (version 1) UUID.
@@ -147,8 +147,8 @@ public final class UUID
{
if( !(obj instanceof UUID ) )
return false;
return ( ((UUID)obj).mostSigBits == mostSigBits &&
((UUID)obj).leastSigBits == leastSigBits );
return ( ((UUID)obj).mostSigBits == mostSigBits &&
((UUID)obj).leastSigBits == leastSigBits );
}
/**
@@ -164,7 +164,7 @@ public final class UUID
StringTokenizer st = new StringTokenizer( name.trim(), "-" );
if( st.countTokens() < 5 )
throw new IllegalArgumentException( "Incorrect UUID string"+
" representation:"+name );
" representation:"+name );
long msb = (Long.parseLong(st.nextToken(), 16) << 32); // time low
msb |= (Long.parseLong(st.nextToken(), 16) << 16); // time mid
@@ -195,18 +195,18 @@ public final class UUID
return // time-low first
padHex( (( mostSigBits & 0xFFFFFFFF00000000L) >> 32) & 0xFFFFFFFFL, 8)
+ "-" + // then time-mid
padHex( (( mostSigBits & 0xFFFF0000L ) >> 16), 4 )
padHex( (( mostSigBits & 0xFFFF0000L ) >> 16), 4 )
+ "-" + // time-high
padHex( ( mostSigBits & 0x0000000000000000FFFFL ), 4 )
padHex( ( mostSigBits & 0x0000000000000000FFFFL ), 4 )
+ "-" + // clock (note - no reason to separate high and low here)
padHex( (((leastSigBits & 0xFFFF000000000000L) >> 48) & 0xFFFF), 4 )
padHex( (((leastSigBits & 0xFFFF000000000000L) >> 48) & 0xFFFF), 4 )
+ "-" + // finally the node value.
padHex(leastSigBits & 0xFFFFFFFFFFFFL, 12);
padHex(leastSigBits & 0xFFFFFFFFFFFFL, 12);
}
/**
* Returns the least significant 64 bits of the UUID as a <code>long</code>.
*/
*/
public long getLeastSignificantBits()
{
return leastSigBits;
@@ -214,7 +214,7 @@ public final class UUID
/**
* Returns the most significant 64 bits of the UUID as a <code>long</code>.
*/
*/
public long getMostSignificantBits()
{
return mostSigBits;
@@ -238,20 +238,20 @@ public final class UUID
* from a series of bytes representing a name.
*/
public static UUID nameUUIDFromBytes(byte[] name)
{
{
long msb, lsb;
byte[] hash;
try
{
MessageDigest md5 = MessageDigest.getInstance("MD5");
hash = md5.digest( name );
}
catch (NoSuchAlgorithmException e)
{
throw new UnsupportedOperationException("No MD5 algorithm available.");
MessageDigest md5 = MessageDigest.getInstance("MD5");
hash = md5.digest( name );
}
catch (NoSuchAlgorithmException e)
{
throw new UnsupportedOperationException("No MD5 algorithm available.");
}
msb = ((hash[0] & 0xFFL) << 56) | ((hash[1] & 0xFFL) << 48) |
((hash[2] & 0xFFL) << 40) | ((hash[3] & 0xFFL) << 32) |
((hash[4] & 0xFFL) << 24) | ((hash[5] & 0xFFL) << 16) |
@@ -262,23 +262,23 @@ public final class UUID
((hash[12] & 0xFFL) << 24) | ((hash[13] & 0xFFL) << 16) |
((hash[14] & 0xFFL) << 8) | (hash[15] & 0xFFL);
lsb &= 0x3FFFFFFFFFFFFFFFL;
lsb &= 0x3FFFFFFFFFFFFFFFL;
lsb |= 0x8000000000000000L; // set top two bits to variant 2
msb &= 0xFFFFFFFFFFFF0FFFL;
msb |= 0x3000; // Version 3;
msb &= 0xFFFFFFFFFFFF0FFFL;
msb |= 0x3000; // Version 3;
return new UUID(msb, lsb);
}
/**
* Returns the 48-bit node value in a long.
* Returns the 48-bit node value in a long.
* This field only exists in a time-based (version 1) UUID.
*
* @throws UnsupportedOperationException if the UUID type is not 1.
* @returns a long with the node value in the lower 48 bits.
*/
public long node()
public long node()
{
if( version() != 1 )
throw new UnsupportedOperationException("Not a type 1 UUID");
@@ -286,7 +286,7 @@ public final class UUID
}
/**
* Returns the 60-bit timestamp value of the UUID in a long.
* Returns the 60-bit timestamp value of the UUID in a long.
* This field only exists in a time-based (version 1) UUID.
*
* @throws UnsupportedOperationException if the UUID type is not 1.
@@ -309,15 +309,15 @@ public final class UUID
*
*/
public static UUID randomUUID()
{
long lsb = r.nextLong();
{
long lsb = r.nextLong();
long msb = r.nextLong();
lsb &= 0x3FFFFFFFFFFFFFFFL;
lsb &= 0x3FFFFFFFFFFFFFFFL;
lsb |= 0x8000000000000000L; // set top two bits to variant 2
msb &= 0xFFFFFFFFFFFF0FFFL;
msb |= 0x4000; // Version 4;
msb &= 0xFFFFFFFFFFFF0FFFL;
msb |= 0x4000; // Version 4;
return new UUID( msb, lsb );
}
@@ -350,7 +350,7 @@ public final class UUID
return 0;
if( (v & 0x02) == 0 ) // variant is 0 1 (Leach-Salz)
return 2;
return v; // 6 or 7
return v; // 6 or 7
}
/**
@@ -38,15 +38,15 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when a {@link Formatter} is supplied with an
* unknown conversion.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class UnknownFormatConversionException
public class UnknownFormatConversionException
extends IllegalFormatException
{
private static final long serialVersionUID = 19060418L;
@@ -38,15 +38,15 @@ exception statement from your version. */
package java.util;
/**
/**
* Thrown when a {@link Formatter} is supplied with an
* unknown flag.
*
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
* @since 1.5
*/
public class UnknownFormatFlagsException
public class UnknownFormatFlagsException
extends IllegalFormatException
{
private static final long serialVersionUID = 19370506L;
@@ -72,7 +72,7 @@ public class UnknownFormatFlagsException
super("Unknown flag passed in " + s);
if (s == null)
throw new
NullPointerException("Null flags value passed to constructor.");
NullPointerException("Null flags value passed to constructor.");
this.flags = s;
}
+6 -6
View File
@@ -1,5 +1,5 @@
/* Vector.java -- Class that provides growable arrays.
Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005, 2006,
Copyright (C) 1998, 1999, 2000, 2001, 2004, 2005, 2006,
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -167,8 +167,8 @@ public class Vector<T> extends AbstractList<T>
/**
* Copies the contents of the Vector into the provided array. If the
* array is too small to fit all the elements in the Vector, an
* {@link IndexOutOfBoundsException} is thrown without modifying the array.
* array is too small to fit all the elements in the Vector, an
* {@link IndexOutOfBoundsException} is thrown without modifying the array.
* Old elements in the array are overwritten by the new elements.
*
* @param a target array for the copy
@@ -578,7 +578,7 @@ public class Vector<T> extends AbstractList<T>
{
if (a.length < elementCount)
a = (S[]) Array.newInstance(a.getClass().getComponentType(),
elementCount);
elementCount);
else if (a.length > elementCount)
a[elementCount] = null;
System.arraycopy(elementData, 0, a, 0, elementCount);
@@ -800,7 +800,7 @@ public class Vector<T> extends AbstractList<T>
int end = index + csize;
if (elementCount > 0 && index != elementCount)
System.arraycopy(elementData, index,
elementData, end, elementCount - index);
elementData, end, elementCount - index);
elementCount += csize;
for ( ; index < end; index++)
elementData[index] = itr.next();
@@ -941,7 +941,7 @@ public class Vector<T> extends AbstractList<T>
// do so).
throw new ArrayIndexOutOfBoundsException(index + operator + elementCount);
}
/**
* Serializes this object to the given stream.
*
+3 -3
View File
@@ -86,7 +86,7 @@ import java.lang.ref.WeakReference;
* @since 1.2
* @status updated to 1.4 (partial 1.5)
*/
public class WeakHashMap<K,V> extends AbstractMap<K,V>
public class WeakHashMap<K,V> extends AbstractMap<K,V>
{
// WARNING: WeakHashMap is a CORE class in the bootstrap cycle. See the
// comments in vm/reference/java/lang/Runtime for implications of this fact.
@@ -704,12 +704,12 @@ public class WeakHashMap<K,V> extends AbstractMap<K,V>
while (next != bucket)
{
if (next == null) throw new InternalError("WeakHashMap in incosistent state");
prev = next;
prev = next;
next = prev.next;
}
if (prev == null)
buckets[slot] = bucket.next;
else
else
prev.next = bucket.next;
size--;
@@ -75,12 +75,12 @@ import java.util.RandomAccess;
* This class is especially useful when used with event handling, like the
* following code demonstrates:<br />
* <code><pre>
*
*
* CopyOnWriteArrayList<EventListener> listeners =
* new CopyOnWriteArrayList<EventListener>();
*
*
* [...]
*
*
* for (final EventListener listener : listeners)
* {
* Runnable dispatcher = new Runnable() {
@@ -89,22 +89,22 @@ import java.util.RandomAccess;
* listener.preferenceChange(event);
* }
* };
*
*
* Executor executor = Executors.newSingleThreadExecutor();
* executor.execute(dispatcher);
* }
* </pre></code>
*
*
* @since 1.5
*/
public class CopyOnWriteArrayList<E>
public class CopyOnWriteArrayList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
{
/**
*
*
*/
private static final long serialVersionUID = 8673264195747942595L;
/**
* Where the data is stored.
*/
@@ -121,7 +121,7 @@ public class CopyOnWriteArrayList<E>
/**
* Construct a new ArrayList, and initialize it with the elements in the
* supplied Collection. The initial capacity is 110% of the Collection's size.
*
*
* @param c
* the collection whose elements will initialize this list
* @throws NullPointerException
@@ -139,7 +139,7 @@ public class CopyOnWriteArrayList<E>
/**
* Construct a new ArrayList, and initialize it with the elements in the
* supplied array.
*
*
* @param array
* the array used to initialize this list
* @throws NullPointerException
@@ -152,7 +152,7 @@ public class CopyOnWriteArrayList<E>
/**
* Returns the number of elements in this list.
*
*
* @return the list size
*/
public int size()
@@ -162,7 +162,7 @@ public class CopyOnWriteArrayList<E>
/**
* Checks if the list is empty.
*
*
* @return true if there are no elements
*/
public boolean isEmpty()
@@ -172,7 +172,7 @@ public class CopyOnWriteArrayList<E>
/**
* Returns true if element is in this ArrayList.
*
*
* @param e
* the element whose inclusion in the List is being tested
* @return true if the list contains e
@@ -207,7 +207,7 @@ public class CopyOnWriteArrayList<E>
/**
* Returns the lowest index at which element appears in this List, or -1 if it
* does not appear.
*
*
* @param e
* the element whose inclusion in the List is being tested
* @return the index where e was found
@@ -243,7 +243,7 @@ public class CopyOnWriteArrayList<E>
/**
* Returns the highest index at which element appears in this List, or -1 if
* it does not appear.
*
*
* @param e
* the element whose inclusion in the List is being tested
* @return the index where e was found
@@ -278,7 +278,7 @@ public class CopyOnWriteArrayList<E>
/**
* Creates a shallow copy of this ArrayList (elements are not cloned).
*
*
* @return the cloned object
*/
public Object clone()
@@ -298,7 +298,7 @@ public class CopyOnWriteArrayList<E>
/**
* Returns an Object array containing all of the elements in this ArrayList.
* The array is independent of this list.
*
*
* @return an array representation of this list
*/
public Object[] toArray()
@@ -316,7 +316,7 @@ public class CopyOnWriteArrayList<E>
* of the elements in this List, a new Array will be created and returned; if
* the passed-in Array is <i>larger</i> than the size of this List, then
* size() index will be set to null.
*
*
* @param a
* the passed-in Array
* @return an array representation of this list
@@ -338,7 +338,7 @@ public class CopyOnWriteArrayList<E>
/**
* Retrieves the element at the user-supplied index.
*
*
* @param index
* the index of the element we are fetching
* @throws IndexOutOfBoundsException
@@ -352,7 +352,7 @@ public class CopyOnWriteArrayList<E>
/**
* Sets the element at the specified index. The new element, e, can be an
* object of any type or null.
*
*
* @param index
* the index at which the element is being set
* @param e
@@ -373,7 +373,7 @@ public class CopyOnWriteArrayList<E>
/**
* Appends the supplied element to the end of this list. The element, e, can
* be an object of any type or null.
*
*
* @param e
* the element to be appended to this list
* @return true, the add will always succeed
@@ -392,7 +392,7 @@ public class CopyOnWriteArrayList<E>
* Adds the supplied element at the specified index, shifting all elements
* currently at that index or higher one to the right. The element, e, can be
* an object of any type or null.
*
*
* @param index
* the index at which the element is being added
* @param e
@@ -412,7 +412,7 @@ public class CopyOnWriteArrayList<E>
/**
* Removes the element at the user-supplied index.
*
*
* @param index
* the index of the element to be removed
* @return the removed Object
@@ -423,20 +423,20 @@ public class CopyOnWriteArrayList<E>
{
if (index < 0 || index >= this.size())
throw new IndexOutOfBoundsException("index = " + index);
E[] snapshot = this.data;
E[] newData = (E[]) new Object[snapshot.length - 1];
E result = snapshot[index];
if (index > 0)
System.arraycopy(snapshot, 0, newData, 0, index);
System.arraycopy(snapshot, index + 1, newData, index,
snapshot.length - index - 1);
this.data = newData;
return result;
}
@@ -444,7 +444,7 @@ public class CopyOnWriteArrayList<E>
* Remove the first occurrence, if any, of the given object from this list,
* returning <code>true</code> if the object was removed, <code>false</code>
* otherwise.
*
*
* @param element the object to be removed.
* @return true if element was removed, false otherwise. false means also that
* the underlying storage was unchanged after this operation concluded.
@@ -458,7 +458,7 @@ public class CopyOnWriteArrayList<E>
return false;
E[] newData = (E[]) new Object[len - 1];
// search the element to remove while filling the backup array
// this way we can run this method in O(n)
int elementIndex = -1;
@@ -469,40 +469,40 @@ public class CopyOnWriteArrayList<E>
elementIndex = i;
break;
}
if (i < newData.length)
newData[i] = snapshot[i];
}
if (elementIndex < 0)
return false;
System.arraycopy(snapshot, elementIndex + 1, newData, elementIndex,
snapshot.length - elementIndex - 1);
this.data = newData;
return true;
}
/**
* Removes all the elements contained in the given collection.
* This method removes the elements that are contained in both
* this list and in the given collection.
*
*
* @param c the collection containing the elements to be removed from this
* list.
* @return true if at least one element was removed, indicating that
* the list internal storage changed as a result, false otherwise.
* the list internal storage changed as a result, false otherwise.
*/
public synchronized boolean removeAll(Collection<?> c)
{
if (c.size() == 0)
return false;
E [] snapshot = this.data;
E [] storage = (E[]) new Object[this.data.length];
E [] storage = (E[]) new Object[this.data.length];
boolean changed = false;
int length = 0;
for (E element : snapshot)
{
@@ -514,18 +514,18 @@ public class CopyOnWriteArrayList<E>
else
storage[length++] = element;
}
if (!changed)
return false;
E[] newData = (E[]) new Object[length];
System.arraycopy(storage, 0, newData, 0, length);
this.data = newData;
return true;
}
/**
* Removes all the elements that are not in the passed collection.
* If the collection is void, this method has the same effect of
@@ -533,7 +533,7 @@ public class CopyOnWriteArrayList<E>
* Please, note that this method is extremely slow (unless the argument has
* <code>size == 0</code>) and has bad performance is both space and time
* usage.
*
*
* @param c the collection containing the elements to be retained by this
* list.
* @return true the list internal storage changed as a result of this
@@ -548,31 +548,31 @@ public class CopyOnWriteArrayList<E>
this.clear();
return true;
}
E [] snapshot = this.data;
E [] storage = (E[]) new Object[this.data.length];
E [] storage = (E[]) new Object[this.data.length];
int length = 0;
for (E element : snapshot)
{
if (c.contains(element))
storage[length++] = element;
}
// means we retained all the elements previously in our storage
// we are running already slow here, but at least we avoid copying
// another array and changing the internal storage
if (length == snapshot.length)
return false;
E[] newData = (E[]) new Object[length];
System.arraycopy(storage, 0, newData, 0, length);
this.data = newData;
return true;
}
/**
* Removes all elements from this List
*/
@@ -586,7 +586,7 @@ public class CopyOnWriteArrayList<E>
* what happens if you modify the list while this is taking place; for
* example, if the collection contains this list. c can contain objects of any
* type, as well as null values.
*
*
* @param c
* a Collection containing elements to be added to this List
* @return true if the list was modified, in other words c is not empty
@@ -602,7 +602,7 @@ public class CopyOnWriteArrayList<E>
* Add all elements in the supplied collection, inserting them beginning at
* the specified index. c can contain objects of any type, as well as null
* values.
*
*
* @param index
* the index at which the elements will be inserted
* @param c
@@ -616,37 +616,37 @@ public class CopyOnWriteArrayList<E>
{
if (index < 0 || index > this.size())
throw new IndexOutOfBoundsException("index = " + index);
int csize = c.size();
if (csize == 0)
return false;
E[] data = this.data;
Iterator<? extends E> itr = c.iterator();
E[] newData = (E[]) new Object[data.length + csize];
// avoid this call at all if we were asked to put the elements at the
// beginning of our storage
if (index != 0)
System.arraycopy(data, 0, newData, 0, index);
int itemsLeft = index;
for (E value : c)
newData[index++] = value;
// now copy the remaining elements
System.arraycopy(data, itemsLeft, newData, 0, data.length - itemsLeft);
this.data = newData;
return true;
}
/**
* Adds an element if the list does not contains it already.
*
*
* @param val the element to add to the list.
* @return true if the element was added, false otherwise.
*/
@@ -661,7 +661,7 @@ public class CopyOnWriteArrayList<E>
/**
* Adds all the element from the given collection that are not already
* in this list.
*
*
* @param c the Collection containing the elements to be inserted
* @return true the list internal storage changed as a result of this
* operation, false otherwise.
@@ -671,28 +671,28 @@ public class CopyOnWriteArrayList<E>
int size = c.size();
if (size == 0)
return 0;
E [] snapshot = this.data;
E [] storage = (E[]) new Object[size];
size = 0;
for (E val : c)
{
if (!this.contains(val))
storage[size++] = val;
}
if (size == 0)
return 0;
// append storage to data
E [] newData = (E[]) new Object[snapshot.length + size];
System.arraycopy(snapshot, 0, newData, 0, snapshot.length);
System.arraycopy(storage, 0, newData, snapshot.length, size);
this.data = newData;
return size;
}
@@ -705,19 +705,19 @@ public class CopyOnWriteArrayList<E>
{
if (o == null)
return false;
if (this == o)
return true;
// let's see if 'o' is a list, if so, we need to compare the elements
// as returned by the iterator
if (o instanceof List)
{
List<?> source = (List<?>) o;
if (source.size() != this.size())
return false;
Iterator<?> sourceIterator = source.iterator();
for (E element : this)
{
@@ -727,10 +727,10 @@ public class CopyOnWriteArrayList<E>
return true;
}
return false;
}
public int hashCode()
{
// see http://java.sun.com/6/docs/api/java/util/List.html#hashcode()
@@ -741,14 +741,14 @@ public class CopyOnWriteArrayList<E>
}
return hashcode;
}
/**
* Return an Iterator containing the elements of this list.
* The Iterator uses a snapshot of the state of the internal storage
* at the moment this method is called and does <strong>not</strong> support
* update operations, so no synchronization is needed to traverse the
* iterator.
*
*
* @return an Iterator containing the elements of this list in sequence.
*/
public Iterator<E> iterator()
@@ -757,7 +757,7 @@ public class CopyOnWriteArrayList<E>
{
E [] iteratorData = CopyOnWriteArrayList.this.data;
int currentElement = 0;
public boolean hasNext()
{
return (currentElement < iteratorData.length);
@@ -776,14 +776,14 @@ public class CopyOnWriteArrayList<E>
}
};
}
/**
* Return a ListIterator containing the elements of this list.
* The Iterator uses a snapshot of the state of the internal storage
* at the moment this method is called and does <strong>not</strong> support
* update operations, so no synchronization is needed to traverse the
* iterator.
*
*
* @return a ListIterator containing the elements of this list in sequence.
*/
public ListIterator<E> listIterator()
@@ -800,7 +800,7 @@ public class CopyOnWriteArrayList<E>
* at the moment this method is called and does <strong>not</strong> support
* update operations, so no synchronization is needed to traverse the
* iterator.
*
*
* @param index the index at which to start iterating.
* @return a ListIterator containing the elements of this list in sequence.
*/
@@ -814,7 +814,7 @@ public class CopyOnWriteArrayList<E>
{
E [] iteratorData = CopyOnWriteArrayList.this.data;
int currentElement = index;
public void add(E o)
{
throw new UnsupportedOperationException("updating of elements in " +
@@ -836,7 +836,7 @@ public class CopyOnWriteArrayList<E>
{
if (hasNext() == false)
throw new java.util.NoSuchElementException();
return iteratorData[currentElement++];
}
@@ -849,7 +849,7 @@ public class CopyOnWriteArrayList<E>
{
if (hasPrevious() == false)
throw new java.util.NoSuchElementException();
return iteratorData[--currentElement];
}
@@ -871,10 +871,10 @@ public class CopyOnWriteArrayList<E>
"iterators is not supported " +
"by this class");
}
};
}
/**
* Obtain a List view of a subsection of this list, from fromIndex
* (inclusive) to toIndex (exclusive). If the two indices are equal, the
@@ -907,7 +907,7 @@ public class CopyOnWriteArrayList<E>
*
* All methods first check to see if the actual modCount of the backing
* list is equal to its expected value, and throw a
* ConcurrentModificationException if it is not.
* ConcurrentModificationException if it is not.
*
* @param fromIndex the index that the returned list should start from
* (inclusive)
@@ -941,7 +941,7 @@ public class CopyOnWriteArrayList<E>
* @author Original author unknown
* @author Eric Blake (ebb9@email.byu.edu)
*/
private static class SubList<E>
private static class SubList<E>
extends AbstractList<E>
{
// Package visible, for use by iterator.
@@ -968,7 +968,7 @@ public class CopyOnWriteArrayList<E>
offset = fromIndex;
size = toIndex - fromIndex;
}
/**
* This method checks the two modCount fields to ensure that there has
* not been a concurrent modification, returning if all is okay.
@@ -982,7 +982,7 @@ public class CopyOnWriteArrayList<E>
if (data != backingList.data)
throw new ConcurrentModificationException();
}
/**
* This method checks that a value is between 0 and size (inclusive). If
* it is not, an exception is thrown.
@@ -997,7 +997,7 @@ public class CopyOnWriteArrayList<E>
throw new IndexOutOfBoundsException("Index: " + index +
", Size:" + size);
}
/**
* This method checks that a value is between 0 (inclusive) and size
* (exclusive). If it is not, an exception is thrown.
@@ -1012,7 +1012,7 @@ public class CopyOnWriteArrayList<E>
throw new IndexOutOfBoundsException("Index: " + index +
", Size:" + size);
}
/**
* Specified by AbstractList.subList to return the private field size.
*
@@ -1028,7 +1028,7 @@ public class CopyOnWriteArrayList<E>
return size;
}
}
public void clear()
{
synchronized (backingList)
@@ -1037,17 +1037,17 @@ public class CopyOnWriteArrayList<E>
E[] newData = (E[]) new Object[snapshot.length - size];
int toIndex = size + offset;
System.arraycopy(snapshot, 0, newData, 0, offset);
System.arraycopy(snapshot, toIndex, newData, offset,
snapshot.length - toIndex);
backingList.data = newData;
this.data = backingList.data;
this.size = 0;
}
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -1070,14 +1070,14 @@ public class CopyOnWriteArrayList<E>
{
checkMod();
checkBoundsExclusive(index);
E el = backingList.set(index + offset, o);
this.data = backingList.data;
return el;
}
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -1093,11 +1093,11 @@ public class CopyOnWriteArrayList<E>
{
checkMod();
checkBoundsExclusive(index);
return backingList.get(index + offset);
}
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -1119,14 +1119,14 @@ public class CopyOnWriteArrayList<E>
{
checkMod();
checkBoundsInclusive(index);
backingList.add(index + offset, o);
this.data = backingList.data;
size++;
}
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -1145,14 +1145,14 @@ public class CopyOnWriteArrayList<E>
checkMod();
checkBoundsExclusive(index);
E o = backingList.remove(index + offset);
this.data = backingList.data;
size--;
return o;
}
}
/**
* Specified by AbstractList.subList to delegate to the backing list.
*
@@ -1178,14 +1178,14 @@ public class CopyOnWriteArrayList<E>
checkBoundsInclusive(index);
int csize = c.size();
boolean result = backingList.addAll(offset + index, c);
this.data = backingList.data;
size += csize;
return result;
}
}
/**
* Specified by AbstractList.subList to return addAll(size, c).
*
@@ -1208,7 +1208,7 @@ public class CopyOnWriteArrayList<E>
return addAll(size, c);
}
}
/**
* Specified by AbstractList.subList to return listIterator().
*
@@ -1218,7 +1218,7 @@ public class CopyOnWriteArrayList<E>
{
return listIterator();
}
/**
* Specified by AbstractList.subList to return a wrapper around the
* backing list's iterator.
@@ -1363,7 +1363,7 @@ public class CopyOnWriteArrayList<E>
/**
* Adds the supplied object before the element that would be returned
* by a call to <code>next()</code>, if the list supports addition.
*
*
* @param o The object to add to the list.
* @throws UnsupportedOperationException if the list doesn't support
* the addition of new elements.
@@ -1378,7 +1378,7 @@ public class CopyOnWriteArrayList<E>
{
throw new UnsupportedOperationException("Modification not supported " +
"on CopyOnWriteArrayList iterators");
}
}
};
}
} // class SubList
@@ -1407,7 +1407,7 @@ public class CopyOnWriteArrayList<E>
/**
* Serializes this object to the given stream.
*
*
* @param s
* the stream to write to
* @throws IOException
@@ -1430,7 +1430,7 @@ public class CopyOnWriteArrayList<E>
/**
* Deserializes this object from the given stream.
*
*
* @param s
* the stream to read from
* @throws ClassNotFoundException
@@ -1455,7 +1455,7 @@ public class CopyOnWriteArrayList<E>
{
return o1 == null ? o2 == null : o1.equals(o2);
}
Object[] getArray()
{
return data;
+48 -48
View File
@@ -67,7 +67,7 @@ import java.util.Set;
* @see java.util.jar.Attributes.Name
* @author Mark Wielaard (mark@klomp.org)
*/
public class Attributes
public class Attributes
implements Cloneable, Map<Object, Object>
{
@@ -87,16 +87,16 @@ public class Attributes
* know names for the general main attributes, stand alone application
* attributes, applet attributes, extension identification attributes,
* package versioning and sealing attributes, file contents attributes,
* bean objects attribute and signing attributes. See the
*
* bean objects attribute and signing attributes. See the
*
* <p>The characters of a Name must obey the following restrictions:</p>
*
*
* <ul>
* <li>Must contain at least one character</li>
* <li>The first character must be alphanumeric (a-z, A-Z, 0-9)</li>
* <li>All other characters must be alphanumeric, a '-' or a '_'</li>
* </ul>
*
*
* <p>When comparing Names (with <code>equals</code>) all characters are
* converted to lowercase. But you can get the original case sensitive
* string with the <code>toString()</code> method.</p>
@@ -125,13 +125,13 @@ public class Attributes
* the version of this Manifest file.
*/
public static final Name MANIFEST_VERSION = new Name(JarUtils.MANIFEST_VERSION);
/**
* General main attribute -
* the version of the jar file signature.
*/
public static final Name SIGNATURE_VERSION = new Name(JarUtils.SIGNATURE_VERSION);
/**
* General main attribute -
* (relative) file paths of the libraries/classpaths that the Classes in
@@ -172,7 +172,7 @@ public class Attributes
* the name if the extension library contained in the jar.
*/
public static final Name EXTENSION_NAME = new Name("Extension-Name");
/**
* Extension identification attribute -
* synonym for <code>EXTENSTION_NAME</code>.
@@ -180,42 +180,42 @@ public class Attributes
public static final Name EXTENSION_INSTALLATION = EXTENSION_NAME;
// Package versioning and sealing attributes
/**
* Package versioning -
* name of extension library contained in this jar.
*/
public static final Name IMPLEMENTATION_TITLE
= new Name("Implementation-Title");
/**
* Package versioning -
* version of the extension library contained in this jar.
*/
public static final Name IMPLEMENTATION_VERSION
= new Name("Implementation-Version");
/**
* Package versioning -
* name of extension library creator contained in this jar.
*/
public static final Name IMPLEMENTATION_VENDOR
= new Name("Implementation-Vendor");
/**
* Package versioning -
* unique id of extension library creator.
*/
public static final Name IMPLEMENTATION_VENDOR_ID
= new Name("Implementation-Vendor-Id");
/**
* Package versioning -
* location where this implementation can be downloaded.
*/
public static final Name IMPLEMENTATION_URL
= new Name("Implementation-URL");
/**
* Package versioning -
* title of the specification contained in this jar.
@@ -263,7 +263,7 @@ public class Attributes
* Creates a new Name from the given String.
* Throws an IllegalArgumentException if the given String is empty or
* contains any illegal Name characters.
*
*
* @param name the name of the new Name
* @exception IllegalArgumentException if name isn't a valid String
* representation of a Name
@@ -278,28 +278,28 @@ public class Attributes
// there must be at least one character
if (chars.length == 0)
throw new
IllegalArgumentException
("There must be at least one character in a name");
throw new
IllegalArgumentException
("There must be at least one character in a name");
// first character must be alphanum
char c = chars[0];
if (!((c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')))
throw new
IllegalArgumentException("First character must be alphanum");
(c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')))
throw new
IllegalArgumentException("First character must be alphanum");
// all other characters must be alphanums, '-' or '_'
for (int i = 1; i < chars.length; i++)
{
c = chars[i];
if (!((c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9') || (c == '-') || (c == '_')))
throw new
IllegalArgumentException
("Characters must be alphanums, '-' or '_'");
}
{
c = chars[i];
if (!((c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') ||
(c >= '0' && c <= '9') || (c == '-') || (c == '_')))
throw new
IllegalArgumentException
("Characters must be alphanums, '-' or '_'");
}
// Still here? Then convert to lower case and be done.
// Store the original name for toString();
@@ -325,23 +325,23 @@ public class Attributes
{
// Quick and dirty check
if (name == o)
return true;
return true;
try
{
// Note that the constructor already converts the strings to
// lowercase.
String otherName = ((Name) o).name;
return name.equals(otherName);
}
{
// Note that the constructor already converts the strings to
// lowercase.
String otherName = ((Name) o).name;
return name.equals(otherName);
}
catch (ClassCastException cce)
{
return false;
}
{
return false;
}
catch (NullPointerException npe)
{
return false;
}
{
return false;
}
}
/**
@@ -514,15 +514,15 @@ public class Attributes
try
{
return map.equals(((Attributes) o).map);
return map.equals(((Attributes) o).map);
}
catch (ClassCastException cce)
{
return false;
return false;
}
catch (NullPointerException npe)
{
return false;
return false;
}
}
@@ -591,8 +591,8 @@ public class Attributes
{
if (!(attr instanceof Attributes))
{
throw new
ClassCastException("Supplied Map is not an instance of Attributes");
throw new
ClassCastException("Supplied Map is not an instance of Attributes");
}
map.putAll(attr);
}
@@ -108,7 +108,7 @@ public class JarEntry extends ZipEntry
super(entry);
try
{
attr = entry.getAttributes();
attr = entry.getAttributes();
}
catch (IOException _)
{
@@ -130,11 +130,11 @@ public class JarEntry extends ZipEntry
{
if (attr != null)
{
return (Attributes) attr.clone();
return (Attributes) attr.clone();
}
else
{
return null;
return null;
}
}
+97 -97
View File
@@ -199,8 +199,8 @@ public class JarFile extends ZipFile
super(fileName);
if (verify)
{
manifest = readManifest();
verify();
manifest = readManifest();
verify();
}
}
@@ -236,8 +236,8 @@ public class JarFile extends ZipFile
super(file);
if (verify)
{
manifest = readManifest();
verify();
manifest = readManifest();
verify();
}
}
@@ -256,7 +256,7 @@ public class JarFile extends ZipFile
* @exception FileNotFoundException if the file does not exist
* @exception IOException if another IO exception occurs while reading
* @exception IllegalArgumentException when given an illegal mode
*
*
* @since 1.3
*/
public JarFile(File file, boolean verify, int mode) throws
@@ -265,8 +265,8 @@ public class JarFile extends ZipFile
super(file, mode);
if (verify)
{
manifest = readManifest();
verify();
manifest = readManifest();
verify();
}
}
@@ -280,8 +280,8 @@ public class JarFile extends ZipFile
// only check if manifest is not null
if (manifest == null)
{
verify = false;
return;
verify = false;
return;
}
verify = true;
@@ -295,23 +295,23 @@ public class JarFile extends ZipFile
{
try
{
ZipEntry manEntry = super.getEntry(MANIFEST_NAME);
if (manEntry != null)
{
InputStream in = super.getInputStream(manEntry);
manifestRead = true;
return new Manifest(in);
}
else
{
manifestRead = true;
return null;
}
ZipEntry manEntry = super.getEntry(MANIFEST_NAME);
if (manEntry != null)
{
InputStream in = super.getInputStream(manEntry);
manifestRead = true;
return new Manifest(in);
}
else
{
manifestRead = true;
return null;
}
}
catch (IOException ioe)
{
manifestRead = true;
return null;
manifestRead = true;
return null;
}
}
@@ -353,36 +353,36 @@ public class JarFile extends ZipFile
JarEntry jar = new JarEntry(zip);
Manifest manifest;
try
{
manifest = jarfile.getManifest();
}
{
manifest = jarfile.getManifest();
}
catch (IOException ioe)
{
manifest = null;
}
{
manifest = null;
}
if (manifest != null)
{
jar.attr = manifest.getAttributes(jar.getName());
}
{
jar.attr = manifest.getAttributes(jar.getName());
}
synchronized(jarfile)
{
if (jarfile.verify && !jarfile.signaturesRead)
try
{
jarfile.readSignatures();
}
catch (IOException ioe)
{
if (JarFile.DEBUG)
{
JarFile.debug(ioe);
ioe.printStackTrace();
}
jarfile.signaturesRead = true; // fudge it.
}
}
{
if (jarfile.verify && !jarfile.signaturesRead)
try
{
jarfile.readSignatures();
}
catch (IOException ioe)
{
if (JarFile.DEBUG)
{
JarFile.debug(ioe);
ioe.printStackTrace();
}
jarfile.signaturesRead = true; // fudge it.
}
}
jar.jarfile = jarfile;
return jar;
}
@@ -398,38 +398,38 @@ public class JarFile extends ZipFile
ZipEntry entry = super.getEntry(name);
if (entry != null)
{
JarEntry jarEntry = new JarEntry(entry);
Manifest manifest;
try
{
manifest = getManifest();
}
catch (IOException ioe)
{
manifest = null;
}
if (manifest != null)
{
jarEntry.attr = manifest.getAttributes(name);
JarEntry jarEntry = new JarEntry(entry);
Manifest manifest;
try
{
manifest = getManifest();
}
catch (IOException ioe)
{
manifest = null;
}
if (verify && !signaturesRead)
try
{
readSignatures();
}
catch (IOException ioe)
{
if (DEBUG)
{
debug(ioe);
ioe.printStackTrace();
}
signaturesRead = true;
}
if (manifest != null)
{
jarEntry.attr = manifest.getAttributes(name);
}
if (verify && !signaturesRead)
try
{
readSignatures();
}
catch (IOException ioe)
{
if (DEBUG)
{
debug(ioe);
ioe.printStackTrace();
}
signaturesRead = true;
}
jarEntry.jarfile = this;
return jarEntry;
return jarEntry;
}
return null;
}
@@ -734,11 +734,11 @@ public class JarFile extends ZipFile
/**
* Verifies that the digest(s) in a signature file were, in fact, made over
* the manifest entry for ENTRY.
*
*
* @param entry The entry name.
* @param attr The attributes from the signature file to verify.
* @param hmManifestEntries Mappings of Jar file entry names to their manifest
* entry text; i.e. the base-64 encoding of their
* entry text; i.e. the base-64 encoding of their
*/
private boolean verifyHashes(String entry, Attributes attr,
HashMap hmManifestEntries)
@@ -820,8 +820,8 @@ public class JarFile extends ZipFile
private boolean checked;
EntryInputStream(final ZipEntry entry,
final InputStream in,
final JarFile jar)
final InputStream in,
final JarFile jar)
throws IOException
{
super(in);
@@ -835,9 +835,9 @@ public class JarFile extends ZipFile
Attributes attr;
Manifest manifest = jarfile.getManifest();
if (manifest != null)
attr = manifest.getAttributes(entry.getName());
attr = manifest.getAttributes(entry.getName());
else
attr = null;
attr = null;
if (DEBUG)
debug("verifying entry " + entry + " attr=" + attr);
if (attr == null)
@@ -958,24 +958,24 @@ public class JarFile extends ZipFile
+ " comp=" + new java.math.BigInteger(hash).toString(16));
if (!Arrays.equals(hash, hashes[i]))
{
synchronized(jarfile)
{
if (DEBUG)
debug(entry + " could NOT be verified");
jarfile.verified.put(entry.getName(), Boolean.FALSE);
}
return;
// XXX ??? what do we do here?
// throw new ZipException("message digest mismatch");
synchronized(jarfile)
{
if (DEBUG)
debug(entry + " could NOT be verified");
jarfile.verified.put(entry.getName(), Boolean.FALSE);
}
return;
// XXX ??? what do we do here?
// throw new ZipException("message digest mismatch");
}
}
synchronized(jarfile)
{
if (DEBUG)
debug(entry + " has been VERIFIED");
jarfile.verified.put(entry.getName(), Boolean.TRUE);
}
{
if (DEBUG)
debug(entry + " has been VERIFIED");
jarfile.verified.put(entry.getName(), Boolean.TRUE);
}
}
}
}
@@ -108,18 +108,18 @@ public class JarInputStream extends ZipInputStream
{
firstEntry = (JarEntry) super.getNextEntry();
while ((firstEntry != null) &&
firstEntry.getName().startsWith("META-INF/"))
firstEntry.getName().startsWith("META-INF/"))
{
if (firstEntry.getName().equals(JarFile.MANIFEST_NAME))
{
manifest = new Manifest(this);
}
firstEntry = (JarEntry) super.getNextEntry();
if (firstEntry.getName().equals(JarFile.MANIFEST_NAME))
{
manifest = new Manifest(this);
}
firstEntry = (JarEntry) super.getNextEntry();
}
if (verify)
{
// XXX
// XXX
}
}
@@ -136,7 +136,7 @@ public class JarInputStream extends ZipInputStream
JarEntry jarEntry = new JarEntry(zipEntry);
if (manifest != null)
{
jarEntry.attr = manifest.getAttributes(name);
jarEntry.attr = manifest.getAttributes(name);
}
return jarEntry;
}
@@ -163,12 +163,12 @@ public class JarInputStream extends ZipInputStream
ZipEntry entry;
if (firstEntry != null)
{
entry = firstEntry;
firstEntry = null;
entry = firstEntry;
firstEntry = null;
}
else
{
entry = super.getNextEntry();
entry = super.getNextEntry();
}
return entry;
}
@@ -100,7 +100,7 @@ public class JarOutputStream extends ZipOutputStream
}
/**
* Prepares the JarOutputStream for writing the next entry.
* Prepares the JarOutputStream for writing the next entry.
* This implementation just calls <code>super.putNextEntry()</code>.
*
* @param entry The information for the next entry
@@ -108,6 +108,6 @@ public class JarOutputStream extends ZipOutputStream
*/
public void putNextEntry(ZipEntry entry) throws IOException
{
super.putNextEntry(entry); // XXX
super.putNextEntry(entry); // XXX
}
}
@@ -38,7 +38,7 @@ exception statement from your version. */
package java.util.jar;
import gnu.java.util.jar.JarUtils;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -48,7 +48,7 @@ import java.util.Map;
/**
* Reads, writes and manipulaties jar manifest files.
* XXX
*
*
* @since 1.2
* @author Mark Wielaard (mark@klomp.org)
*/
@@ -153,7 +153,7 @@ public class Manifest implements Cloneable
/**
* Read and merge a <code>Manifest</code> from the designated input stream.
*
*
* @param in the input stream to read from.
* @throws IOException if an I/O related exception occurs during the process.
*/
@@ -166,7 +166,7 @@ public class Manifest implements Cloneable
* Writes the contents of this <code>Manifest</code> to the designated
* output stream. Line-endings are platform-independent and consist of the
* 2-codepoint sequence <code>0x0D</code> and <code>0x0A</code>.
*
*
* @param out the output stream to write this <code>Manifest</code> to.
* @throws IOException if an I/O related exception occurs during the process.
*/
@@ -81,7 +81,7 @@ public class ConsoleHandler
public ConsoleHandler()
{
super(System.err, "java.util.logging.ConsoleHandler", Level.INFO,
/* formatter */ null, SimpleFormatter.class);
/* formatter */ null, SimpleFormatter.class);
}
@@ -82,7 +82,7 @@ public class ErrorManager
*/
public static final int CLOSE_FAILURE = 3;
/**
* Indicates that there was a problem upon opening
* an output stream.
@@ -146,7 +146,7 @@ public class ErrorManager
* widespread acceptance. See Classpath bug #2944.
*/
if (everUsed)
return;
return;
everUsed = true;
}
@@ -191,4 +191,3 @@ public class ErrorManager
ex.printStackTrace();
}
}
@@ -120,7 +120,7 @@ import java.util.ListIterator;
* system property <code>user.home</code>.</li>
*
* <li><code>%g</code> - replaced by a generation number for
* distinguisthing the individual items in the rotating set
* distinguisthing the individual items in the rotating set
* of log files. The generation number cycles through the
* sequence 0, 1, ..., <code>count</code> - 1.</li>
*
@@ -160,7 +160,7 @@ import java.util.ListIterator;
* step is performed after any generation number has been
* appended.
*
* <p><em>Examples for the GNU platform:</em>
* <p><em>Examples for the GNU platform:</em>
*
* <p><ul>
*
@@ -269,7 +269,7 @@ public class FileHandler
/**
* A linked list of files we are, or have written to. The entries
* are file path strings, kept in the order
* are file path strings, kept in the order
*/
private LinkedList logFiles;
@@ -291,9 +291,9 @@ public class FileHandler
throws IOException, SecurityException
{
this(LogManager.getLogManager().getProperty(PATTERN_KEY),
LogManager.getIntProperty(LIMIT_KEY, DEFAULT_LIMIT),
LogManager.getIntProperty(COUNT_KEY, DEFAULT_COUNT),
LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND));
LogManager.getIntProperty(LIMIT_KEY, DEFAULT_LIMIT),
LogManager.getIntProperty(COUNT_KEY, DEFAULT_COUNT),
LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND));
}
@@ -317,8 +317,8 @@ public class FileHandler
public FileHandler(String pattern, int limit, int count)
throws IOException, SecurityException
{
this(pattern, limit, count,
LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND));
this(pattern, limit, count,
LogManager.getBooleanProperty(APPEND_KEY, DEFAULT_APPEND));
}
@@ -368,16 +368,16 @@ public class FileHandler
* the Sun reference implementation.
*/
public FileHandler(String pattern,
int limit,
int count,
boolean append)
int limit,
int count,
boolean append)
throws IOException, SecurityException
{
super(/* output stream, created below */ null,
PROPERTY_PREFIX,
/* default level */ Level.ALL,
/* formatter */ null,
/* default formatter */ XMLFormatter.class);
PROPERTY_PREFIX,
/* default level */ Level.ALL,
/* formatter */ null,
/* default formatter */ XMLFormatter.class);
if ((limit <0) || (count < 1))
throw new IllegalArgumentException();
@@ -426,7 +426,7 @@ public class FileHandler
try
{
File file = new File(path);
File file = new File(path);
if (!file.exists () || append)
{
FileOutputStream fout = new FileOutputStream (file, append);
@@ -476,9 +476,9 @@ public class FileHandler
* <code>pattern</code>.
*/
private static String replaceFileNameEscapes(String pattern,
int generation,
int uniqueNumber,
int count)
int generation,
int uniqueNumber,
int count)
{
CPStringBuilder buf = new CPStringBuilder(pattern);
String replaceWith;
@@ -489,49 +489,49 @@ public class FileHandler
{
// Uncomment the next line for finding bugs.
// System.out.println(buf.substring(0,pos) + '|' + buf.substring(pos));
if (buf.charAt(pos) == '/')
{
/* The same value is also provided by java.io.File.separator. */
replaceWith = System.getProperty("file.separator");
buf.replace(pos, pos + 1, replaceWith);
pos = pos + replaceWith.length() - 1;
continue;
/* The same value is also provided by java.io.File.separator. */
replaceWith = System.getProperty("file.separator");
buf.replace(pos, pos + 1, replaceWith);
pos = pos + replaceWith.length() - 1;
continue;
}
if (buf.charAt(pos) == '%')
{
switch (buf.charAt(pos + 1))
{
case 't':
replaceWith = System.getProperty("java.io.tmpdir");
break;
{
case 't':
replaceWith = System.getProperty("java.io.tmpdir");
break;
case 'h':
replaceWith = System.getProperty("user.home");
break;
case 'h':
replaceWith = System.getProperty("user.home");
break;
case 'g':
replaceWith = Integer.toString(generation);
foundGeneration = true;
break;
case 'g':
replaceWith = Integer.toString(generation);
foundGeneration = true;
break;
case 'u':
replaceWith = Integer.toString(uniqueNumber);
break;
case 'u':
replaceWith = Integer.toString(uniqueNumber);
break;
case '%':
replaceWith = "%";
break;
case '%':
replaceWith = "%";
break;
default:
replaceWith = "??";
break; // FIXME: Throw exception?
}
default:
replaceWith = "??";
break; // FIXME: Throw exception?
}
buf.replace(pos, pos + 2, replaceWith);
pos = pos + replaceWith.length() - 1;
continue;
buf.replace(pos, pos + 2, replaceWith);
pos = pos + replaceWith.length() - 1;
continue;
}
}
while (++pos < buf.length() - 1);
@@ -150,7 +150,7 @@ public abstract class Formatter
{
try
{
msg = bundle.getString(msg);
msg = bundle.getString(msg);
}
catch (java.util.MissingResourceException _)
{
@@ -160,8 +160,8 @@ public abstract class Formatter
/* Format the message if there are parameters. */
params = record.getParameters();
if ((params != null)
&& (params.length > 0)
&& (msg.indexOf("{0") >= 0))
&& (params.length > 0)
&& (msg.indexOf("{0") >= 0))
{
msg = MessageFormat.format(msg, params);
}
@@ -179,7 +179,7 @@ h.setFormatter(h.getFormatter());</pre>
throws SecurityException
{
LogManager.getLogManager().checkAccess();
/* Throws a NullPointerException if formatter is null. */
formatter.getClass();
@@ -377,7 +377,7 @@ h.setFormatter(h.getFormatter());</pre>
{
if (record.getLevel().intValue() < level.intValue())
return false;
if (filter != null)
return filter.isLoggable(record);
else
+22 -23
View File
@@ -180,12 +180,12 @@ public class Level implements Serializable
* @param value the integer value of the level. Please note
* that the Java<small><sup>TM</sup></small>
* Logging API does not specify integer
* values for standard levels (such as
* Level.FINE). Therefore, a custom
* level should pass an integer value that
* is calculated at run-time, e.g.
* <code>(Level.FINE.intValue() + Level.CONFIG.intValue())
* / 2</code> for a level between FINE and CONFIG.
* values for standard levels (such as
* Level.FINE). Therefore, a custom
* level should pass an integer value that
* is calculated at run-time, e.g.
* <code>(Level.FINE.intValue() + Level.CONFIG.intValue())
* / 2</code> for a level between FINE and CONFIG.
*/
protected Level(String name, int value)
{
@@ -205,13 +205,13 @@ public class Level implements Serializable
*
* @param value the integer value of the level. Please note
* that the Java<small><sup>TM</sup></small>
* Logging API does not specify integer
* values for standard levels (such as
* Level.FINE). Therefore, a custom
* level should pass an integer value that
* is calculated at run-time, e.g.
* <code>(Level.FINE.intValue() + Level.CONFIG.intValue())
* / 2</code> for a level between FINE and CONFIG.
* Logging API does not specify integer
* values for standard levels (such as
* Level.FINE). Therefore, a custom
* level should pass an integer value that
* is calculated at run-time, e.g.
* <code>(Level.FINE.intValue() + Level.CONFIG.intValue())
* / 2</code> for a level between FINE and CONFIG.
*
* @param resourceBundleName the name of a resource bundle
* for localizing the level name, or <code>null</code>
@@ -243,7 +243,7 @@ public class Level implements Serializable
{
for (int i = 0; i < knownLevels.length; i++)
if (value == knownLevels[i].intValue())
return knownLevels[i];
return knownLevels[i];
return this;
}
@@ -286,7 +286,7 @@ public class Level implements Serializable
try
{
ResourceBundle b = ResourceBundle.getBundle(resourceBundleName);
localizedName = b.getString(name);
localizedName = b.getString(name);
}
catch (Exception _)
{
@@ -345,15 +345,15 @@ public class Level implements Serializable
// standard logging levels will be returned by this method, and
// they are all created using string literals.
if (name == knownLevels[i].name)
return knownLevels[i];
return knownLevels[i];
}
try
{
int num = Integer.parseInt(name);
for (int i = 0; i < knownLevels.length; i++)
if (num == knownLevels[i].value)
return knownLevels[i];
if (num == knownLevels[i].value)
return knownLevels[i];
}
catch (NumberFormatException _)
{
@@ -369,7 +369,7 @@ public class Level implements Serializable
* another object.
*
* @return <code>true</code> if <code>other</code> is an instance of
* <code>java.util.logging.Level</code> and has the same integer
* <code>java.util.logging.Level</code> and has the same integer
* value, <code>false</code> otherwise.
*/
public boolean equals(Object other)
@@ -388,7 +388,7 @@ public class Level implements Serializable
public int hashCode()
{
return value;
}
}
/**
@@ -409,9 +409,8 @@ public class Level implements Serializable
{
for (int i = 0; i < knownLevels.length; i++)
if (knownLevels[i] == this)
return true;
return true;
return false;
}
}
@@ -150,7 +150,7 @@ public class LogManager
* this case.
*/
private final PropertyChangeSupport pcs = new PropertyChangeSupport( /* source bean */
LogManager.class);
LogManager.class);
protected LogManager()
{
@@ -272,13 +272,13 @@ public class LogManager
ref = loggers.get(name);
if (ref != null)
{
if (ref.get() != null)
return false;
if (ref.get() != null)
return false;
/* There has been a logger under this name in the past,
* but it has been garbage collected.
*/
loggers.remove(ref);
/* There has been a logger under this name in the past,
* but it has been garbage collected.
*/
loggers.remove(ref);
}
/* Adding a named logger requires a security permission. */
@@ -292,10 +292,10 @@ public class LogManager
// The level of the newly added logger must be specified.
// The easiest case is if there is a level for exactly this logger
// in the properties. If no such level exists the level needs to be
// in the properties. If no such level exists the level needs to be
// searched along the hirachy. So if there is a new logger 'foo.blah.blub'
// and an existing parent logger 'foo' the properties 'foo.blah.blub.level'
// and 'foo.blah.level' need to be checked. If both do not exist in the
// and 'foo.blah.level' need to be checked. If both do not exist in the
// properties the level of the new logger is set to 'null' (i.e. it uses the
// level of its parent 'foo').
Level logLevel = logger.getLevel();
@@ -320,21 +320,21 @@ public class LogManager
*/
for (Iterator iter = loggers.keySet().iterator(); iter.hasNext();)
{
Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next()))
.get();
if ((possChild == null) || (possChild == logger)
|| (possChild.getParent() != parent))
continue;
if (! possChild.getName().startsWith(name))
continue;
if (possChild.getName().charAt(name.length()) != '.')
continue;
possChild.setParent(logger);
Logger possChild = (Logger) ((WeakReference) loggers.get(iter.next()))
.get();
if ((possChild == null) || (possChild == logger)
|| (possChild.getParent() != parent))
continue;
if (! possChild.getName().startsWith(name))
continue;
if (possChild.getName().charAt(name.length()) != '.')
continue;
possChild.setParent(logger);
}
return true;
}
@@ -369,20 +369,20 @@ public class LogManager
for (String candName : loggers.keySet())
{
candNameLength = candName.length();
candNameLength = candName.length();
if (candNameLength > bestNameLength
&& childNameLength > candNameLength
&& childName.startsWith(candName)
&& childName.charAt(candNameLength) == '.')
{
cand = loggers.get(candName).get();
if ((cand == null) || (cand == child))
continue;
if (candNameLength > bestNameLength
&& childNameLength > candNameLength
&& childName.startsWith(candName)
&& childName.charAt(candNameLength) == '.')
{
cand = loggers.get(candName).get();
if ((cand == null) || (cand == child))
continue;
bestNameLength = candName.length();
best = cand;
}
bestNameLength = candName.length();
best = cand;
}
}
return best;
@@ -447,22 +447,22 @@ public class LogManager
Iterator<WeakReference<Logger>> iter = loggers.values().iterator();
while (iter.hasNext())
{
WeakReference<Logger> ref;
Logger logger;
WeakReference<Logger> ref;
Logger logger;
ref = iter.next();
if (ref != null)
{
logger = ref.get();
ref = iter.next();
if (ref != null)
{
logger = ref.get();
if (logger == null)
iter.remove();
else if (logger != Logger.root)
{
logger.resetLogger();
logger.setLevel(null);
}
}
if (logger == null)
iter.remove();
else if (logger != Logger.root)
{
logger.resetLogger();
logger.setLevel(null);
}
}
}
Logger.root.setLevel(Level.INFO);
@@ -505,7 +505,7 @@ public class LogManager
try
{
inputStream = new URL(url).openStream();
}
}
catch (Exception e)
{
inputStream=null;
@@ -549,46 +549,46 @@ public class LogManager
while (keys.hasMoreElements())
{
String key = ((String) keys.nextElement()).trim();
String value = newProperties.getProperty(key);
String key = ((String) keys.nextElement()).trim();
String value = newProperties.getProperty(key);
if (value == null)
continue;
if (value == null)
continue;
value = value.trim();
value = value.trim();
if ("handlers".equals(key))
{
// In Java 5 and earlier this was specified to be
// whitespace-separated, but in reality it also accepted
// commas (tomcat relied on this), and in Java 6 the
// documentation was updated to fit the implementation.
StringTokenizer tokenizer = new StringTokenizer(value,
" \t\n\r\f,");
while (tokenizer.hasMoreTokens())
{
String handlerName = tokenizer.nextToken();
if ("handlers".equals(key))
{
// In Java 5 and earlier this was specified to be
// whitespace-separated, but in reality it also accepted
// commas (tomcat relied on this), and in Java 6 the
// documentation was updated to fit the implementation.
StringTokenizer tokenizer = new StringTokenizer(value,
" \t\n\r\f,");
while (tokenizer.hasMoreTokens())
{
String handlerName = tokenizer.nextToken();
Handler handler = (Handler)
createInstance(handlerName, Handler.class, key);
// Tomcat also relies on the implementation ignoring
// items in 'handlers' which are not class names.
if (handler != null)
Logger.root.addHandler(handler);
}
}
// Tomcat also relies on the implementation ignoring
// items in 'handlers' which are not class names.
if (handler != null)
Logger.root.addHandler(handler);
}
}
if (key.endsWith(".level"))
{
String loggerName = key.substring(0, key.length() - 6);
Logger logger = getLogger(loggerName);
if (key.endsWith(".level"))
{
String loggerName = key.substring(0, key.length() - 6);
Logger logger = getLogger(loggerName);
if (logger == null)
{
logger = Logger.getLogger(loggerName);
addLogger(logger);
}
if (logger == null)
{
logger = Logger.getLogger(loggerName);
addLogger(logger);
}
Level level = null;
try
try
{
level = Level.parse(value);
}
@@ -600,8 +600,8 @@ public class LogManager
{
logger.setLevel(level);
}
continue;
}
continue;
}
}
/* The API specification does not talk about the
@@ -640,11 +640,11 @@ public class LogManager
{
try
{
return Integer.parseInt(getLogManager().getProperty(name));
return Integer.parseInt(getLogManager().getProperty(name));
}
catch (Exception ex)
{
return defaultValue;
return defaultValue;
}
}
@@ -691,11 +691,11 @@ public class LogManager
{
try
{
return (Boolean.valueOf(getLogManager().getProperty(name))).booleanValue();
return (Boolean.valueOf(getLogManager().getProperty(name))).booleanValue();
}
catch (Exception ex)
{
return defaultValue;
return defaultValue;
}
}
@@ -717,14 +717,14 @@ public class LogManager
try
{
String value = getLogManager().getProperty(propertyName);
if (value != null)
return Level.parse(getLogManager().getProperty(propertyName));
if (value != null)
return Level.parse(getLogManager().getProperty(propertyName));
else
return defaultValue;
return defaultValue;
}
catch (Exception ex)
{
return defaultValue;
return defaultValue;
}
}
@@ -784,15 +784,15 @@ public class LogManager
try
{
return defaultClass.newInstance();
return defaultClass.newInstance();
}
catch (java.lang.InstantiationException ex)
{
throw new RuntimeException(ex.getMessage());
throw new RuntimeException(ex.getMessage());
}
catch (java.lang.IllegalAccessException ex)
{
throw new RuntimeException(ex.getMessage());
throw new RuntimeException(ex.getMessage());
}
}
@@ -140,7 +140,7 @@ public class LogRecord
*
* @param message the message text (which will be used as key
* for looking up the localized message text
* if a resource bundle has been associated).
* if a resource bundle has been associated).
*/
public LogRecord(Level level, String message)
{
@@ -182,7 +182,7 @@ public class LogRecord
{
parameters = new Object[numParams];
for (int i = 0; i < numParams; i++)
parameters[i] = in.readObject();
parameters[i] = in.readObject();
}
}
@@ -220,10 +220,10 @@ public class LogRecord
out.writeInt(parameters.length);
for (int i = 0; i < parameters.length; i++)
{
if (parameters[i] == null)
out.writeObject(null);
else
out.writeObject(parameters[i].toString());
if (parameters[i] == null)
out.writeObject(null);
else
out.writeObject(parameters[i].toString());
}
}
}
@@ -331,11 +331,11 @@ public class LogRecord
{
resourceBundleName = name;
bundle = null;
try
{
if (resourceBundleName != null)
bundle = ResourceBundle.getBundle(resourceBundleName);
bundle = ResourceBundle.getBundle(resourceBundleName);
}
catch (java.util.MissingResourceException _)
{
@@ -427,7 +427,7 @@ public class LogRecord
* parameter to some logging calls, and in certain cases, the
* logging framework tries to determine an approximation
* (which may or may not be accurate).
*
*
* @return the name of the class that issued the logging request,
* or <code>null</code> if this information could not
* be obtained.
@@ -450,7 +450,7 @@ public class LogRecord
* to the logging framework, applications should not modify it
* anymore. Therefore, this method should only be called on
* freshly constructed LogRecords.
*
*
* @param sourceClassName the name of the class that issued the
* logging request, or <code>null</code> to indicate that
* this information could not be obtained.
@@ -467,7 +467,7 @@ public class LogRecord
* parameter to some logging calls, and in certain cases, the
* logging framework tries to determine an approximation
* (which may or may not be accurate).
*
*
* @return the name of the method that issued the logging request,
* or <code>null</code> if this information could not
* be obtained.
@@ -490,7 +490,7 @@ public class LogRecord
* to the logging framework, applications should not modify it
* anymore. Therefore, this method should only be called on
* freshly constructed LogRecords.
*
*
* @param sourceMethodName the name of the method that issued the
* logging request, or <code>null</code> to indicate that
* this information could not be obtained.
@@ -543,7 +543,7 @@ public class LogRecord
*
* @param message the message text (which will be used as key
* for looking up the localized message text
* if a resource bundle has been associated).
* if a resource bundle has been associated).
*/
public void setMessage(String message)
{
+27 -27
View File
@@ -65,7 +65,7 @@ import java.security.PrivilegedAction;
* to perform any modifications to the logger.
* <p>
* FIXME: Write more documentation.
*
*
* @author Sascha Brawer (brawer@acm.org)
*/
public class Logger
@@ -85,7 +85,7 @@ public class Logger
* to avoid deadlocks. Yeah, no kidding, we got them :)
*/
private static final Object[] lock = new Object[0];
static
{
// Our class might be initialized from an unprivileged context
@@ -159,7 +159,7 @@ public class Logger
* (with ResourceBundle for localization) or
* {@link #getLogger(java.lang.String) getLogger} (without ResourceBundle),
* respectively.
*
*
* @param name the name for the logger, for example "java.awt" or
* "com.foo.bar". The name should be based on the name of the
* package issuing log records and consist of dot-separated Java
@@ -196,7 +196,7 @@ public class Logger
/**
* Finds a registered logger for a subsystem, or creates one in case no logger
* has been registered yet.
*
*
* @param name the name for the logger, for example "java.awt" or
* "com.foo.bar". The name should be based on the name of the
* package issuing log records and consist of dot-separated Java
@@ -232,7 +232,7 @@ public class Logger
* a different one than specified by <code>resourceBundleName</code>, an
* <code>IllegalArgumentException</code> is thrown.</li>
* </ul>
*
*
* @param name the name for the logger, for example "java.awt" or
* "org.gnu.foo". The name should be based on the name of the
* package issuing log records and consist of dot-separated Java
@@ -351,7 +351,7 @@ public class Logger
* <p>
* The parent of the newly created logger will the the root logger, from which
* the level threshold and the handlers are inherited.
*
*
* @param resourceBundleName the name of a resource bundle for localizing
* messages, or <code>null</code> to indicate that messages do
* not need to be localized.
@@ -372,7 +372,7 @@ public class Logger
/**
* Returns the name of the resource bundle that is being used for localizing
* messages.
*
*
* @return the name of the resource bundle used for localizing messages, or
* <code>null</code> if the parent's resource bundle is used for
* this purpose.
@@ -387,7 +387,7 @@ public class Logger
/**
* Returns the resource bundle that is being used for localizing messages.
*
*
* @return the resource bundle used for localizing messages, or
* <code>null</code> if the parent's resource bundle is used for
* this purpose.
@@ -405,7 +405,7 @@ public class Logger
* log records with a lower severity level will be discarded; a log record of
* the same or a higher level will be published unless an installed
* <code>Filter</code> decides to discard it.
*
*
* @return the severity level below which all log messages will be discarded,
* or <code>null</code> if the logger inherits the threshold from
* its parent.
@@ -421,7 +421,7 @@ public class Logger
/**
* Returns whether or not a message of the specified level would be logged by
* this logger.
*
*
* @throws NullPointerException if <code>level</code> is <code>null</code>.
*/
public boolean isLoggable(Level level)
@@ -443,7 +443,7 @@ public class Logger
* records with a lower severity level will be discarded immediately. A log
* record of the same or a higher level will be published unless an installed
* <code>Filter</code> decides to discard it.
*
*
* @param level the severity level below which all log messages will be
* discarded, or <code>null</code> to indicate that the logger
* should inherit the threshold from its parent.
@@ -502,7 +502,7 @@ public class Logger
/**
* Returns the name of this logger.
*
*
* @return the name of this logger, or <code>null</code> if the logger is
* anonymous.
*/
@@ -528,7 +528,7 @@ public class Logger
* create a new LogRecord and pass it to this method. Therefore, subclasses
* usually just need to override this single method for customizing the
* logging behavior.
*
*
* @param record the log record to be inspected and possibly forwarded.
*/
public void log(LogRecord record)
@@ -825,7 +825,7 @@ public class Logger
* understandable to an inexperienced, non-technical end user. Ideally, they
* explain in simple words what actions the user can take in order to resolve
* the problem.
*
*
* @see Level#SEVERE
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
@@ -847,7 +847,7 @@ public class Logger
* should be understandable to an inexperienced, non-technical end user.
* Ideally, they explain in simple words what actions the user can take in
* order to resolve the problem.
*
*
* @see Level#WARNING
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
@@ -871,7 +871,7 @@ public class Logger
* used only for messages that are important to end users and system
* administrators. Messages at this level should be understandable to an
* inexperienced, non-technical user.
*
*
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
* to pass <code>null</code>, this is not recommended, since a
@@ -890,7 +890,7 @@ public class Logger
* Logs a message with severity level CONFIG. {@link Level#CONFIG} is intended
* for static configuration messages, for example about the windowing
* environment, the operating system version, etc.
*
*
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
* to pass <code>null</code>, this is not recommended, since a
@@ -910,7 +910,7 @@ public class Logger
* messages that are relevant for developers using the component generating
* log messages. Examples include minor, recoverable failures, or possible
* inefficiencies.
*
*
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
* to pass <code>null</code>, this is not recommended, since a
@@ -929,7 +929,7 @@ public class Logger
* Logs a message with severity level FINER. {@link Level#FINER} is intended
* for rather detailed tracing, for example entering a method, returning from
* a method, or throwing an exception.
*
*
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
* to pass <code>null</code>, this is not recommended, since a
@@ -948,7 +948,7 @@ public class Logger
* Logs a message with severity level FINEST. {@link Level#FINEST} is intended
* for highly detailed tracing, for example reaching a certain point inside
* the body of a method.
*
*
* @param message the message text, also used as look-up key if the logger is
* localizing messages with a resource bundle. While it is possible
* to pass <code>null</code>, this is not recommended, since a
@@ -966,7 +966,7 @@ public class Logger
/**
* Adds a handler to the set of handlers that get notified when a log record
* is to be published.
*
*
* @param handler the handler to be added.
* @throws NullPointerException if <code>handler</code> is <code>null</code>.
* @throws SecurityException if this logger is not anonymous, a security
@@ -1001,7 +1001,7 @@ public class Logger
/**
* Removes a handler from the set of handlers that get notified when a log
* record is to be published.
*
*
* @param handler the handler to be removed.
* @throws SecurityException if this logger is not anonymous, a security
* manager exists, and the caller is not granted the permission to
@@ -1053,7 +1053,7 @@ public class Logger
/**
* Returns whether or not this Logger forwards log records to handlers
* registered for its parent loggers.
*
*
* @return <code>false</code> if this Logger sends log records merely to
* Handlers registered with itself; <code>true</code> if this Logger
* sends log records not only to Handlers registered with itself, but
@@ -1070,7 +1070,7 @@ public class Logger
/**
* Sets whether or not this Logger forwards log records to handlers registered
* for its parent loggers.
*
*
* @param useParentHandlers <code>false</code> to let this Logger send log
* records merely to Handlers registered with itself;
* <code>true</code> to let this Logger send log records not only
@@ -1101,7 +1101,7 @@ public class Logger
/**
* Returns the parent of this logger. By default, the parent is assigned by
* the LogManager by inspecting the logger's name.
*
*
* @return the parent of this logger (as detemined by the LogManager by
* inspecting logger names), the root logger if no other logger has a
* name which is a prefix of this logger's name, or <code>null</code>
@@ -1121,7 +1121,7 @@ public class Logger
* loggers reflects the hierarchical logger namespace. Basically, this method
* should not be public at all, but the GNU implementation follows the API
* specification.
*
*
* @throws NullPointerException if <code>parent</code> is <code>null</code>.
* @throws SecurityException if this logger is not anonymous, a security
* manager exists, and the caller is not granted the permission to
@@ -1155,7 +1155,7 @@ public class Logger
/**
* Gets the StackTraceElement of the first class that is not this class. That
* should be the initial caller of a logging method.
*
*
* @return caller of the initial logging method or null if unknown.
*/
private StackTraceElement getCallerStackFrame()
@@ -44,7 +44,7 @@ import java.util.List;
* This interface represents the management interface for logging.
* There is a single logging bean per VM instance, which can be
* retrieved via {@link LogManager#getLoggingMXBean()}.
*
*
* @since 1.5
*/
public interface LoggingMXBean
@@ -73,7 +73,7 @@ public interface LoggingMXBean
/**
* Sets the logging level for a particular logger.
*
*
* @param logger the name of the logger
* @param level the name of the new logging level, or null
* @throws IllegalArgumentException if the level is not
@@ -59,17 +59,17 @@ public final class LoggingPermission
public LoggingPermission(String name, String actions)
{
super("control", "");
if (!"control".equals(name))
{
throw new IllegalArgumentException(
"name of LoggingPermission must be \"control\"");
}
if ((actions != null) && (actions.length() != 0))
{
throw new IllegalArgumentException(
"actions of LoggingPermissions must be null or empty");
}
"actions of LoggingPermissions must be null or empty");
}
}
}
@@ -122,19 +122,19 @@ public class MemoryHandler
public MemoryHandler()
{
this((Handler) LogManager.getInstanceProperty(
"java.util.logging.MemoryHandler.target",
Handler.class, /* default */ null),
LogManager.getIntPropertyClamped(
"java.util.logging.MemoryHandler.size",
/* default */ 1000,
/* minimum value */ 1,
/* maximum value */ Integer.MAX_VALUE),
LogManager.getLevelProperty(
"java.util.logging.MemoryHandler.push",
/* default push level */ Level.SEVERE));
"java.util.logging.MemoryHandler.target",
Handler.class, /* default */ null),
LogManager.getIntPropertyClamped(
"java.util.logging.MemoryHandler.size",
/* default */ 1000,
/* minimum value */ 1,
/* maximum value */ Integer.MAX_VALUE),
LogManager.getLevelProperty(
"java.util.logging.MemoryHandler.push",
/* default push level */ Level.SEVERE));
}
/**
* Constructs a <code>MemoryHandler</code> for keeping a circular
* buffer of LogRecords, given some parameters. The values of the
@@ -162,7 +162,7 @@ public class MemoryHandler
* in those cases.
*/
public MemoryHandler(Handler target, int size, Level pushLevel)
{
{
if ((target == null) || (size <= 0) || (pushLevel == null))
throw new IllegalArgumentException();
@@ -235,9 +235,9 @@ public class MemoryHandler
else
{
for (i = position; i < buffer.length; i++)
target.publish(buffer[i]);
target.publish(buffer[i]);
for (i = 0; i < position; i++)
target.publish(buffer[i]);
target.publish(buffer[i]);
}
numPublished = 0;
@@ -298,7 +298,7 @@ public class MemoryHandler
target.close();
}
/**
* Returns the push level threshold for this <code>Handler</code>.
@@ -104,10 +104,10 @@ public class SocketHandler
throws java.io.IOException
{
this(LogManager.getLogManager().getProperty("java.util.logging.SocketHandler.host"),
getPortNumber());
getPortNumber());
}
/**
* Constructs a <code>SocketHandler</code> that publishes log
* records to a TCP/IP socket. With the exception of the internet
@@ -131,10 +131,10 @@ public class SocketHandler
throws java.io.IOException
{
super(createSocket(host, port),
"java.util.logging.SocketHandler",
/* default level */ Level.ALL,
/* formatter */ null,
/* default formatter */ XMLFormatter.class);
"java.util.logging.SocketHandler",
/* default level */ Level.ALL,
/* formatter */ null,
/* default formatter */ XMLFormatter.class);
}
@@ -218,4 +218,3 @@ public class SocketHandler
flush();
}
}
@@ -114,7 +114,7 @@ public class StreamHandler
public StreamHandler(OutputStream out, Formatter formatter)
{
this(out, "java.util.logging.StreamHandler", Level.INFO,
formatter, SimpleFormatter.class);
formatter, SimpleFormatter.class);
}
@@ -125,7 +125,7 @@ public class StreamHandler
Formatter formatter, Class defaultFormatterClass)
{
this.level = LogManager.getLevelProperty(propertyPrefix + ".level",
defaultLevel);
defaultLevel);
this.filter = (Filter) LogManager.getInstanceProperty(
propertyPrefix + ".filter",
@@ -136,14 +136,14 @@ public class StreamHandler
this.formatter = formatter;
else
this.formatter = (Formatter) LogManager.getInstanceProperty(
propertyPrefix + ".formatter",
propertyPrefix + ".formatter",
/* must be instance of */ Formatter.class,
/* default: new instance of */ defaultFormatterClass);
try
{
String enc = LogManager.getLogManager().getProperty(propertyPrefix
+ ".encoding");
+ ".encoding");
/* make sure enc actually is a valid encoding */
if ((enc != null) && (enc.length() > 0))
@@ -163,10 +163,10 @@ public class StreamHandler
}
catch (UnsupportedEncodingException uex)
{
/* This should never happen, since the validity of the encoding
* name has been checked above.
*/
throw new RuntimeException(uex.getMessage());
/* This should never happen, since the validity of the encoding
* name has been checked above.
*/
throw new RuntimeException(uex.getMessage());
}
}
}
@@ -263,9 +263,9 @@ public class StreamHandler
* null would throw an exception.
*/
if (encoding == null)
writer = new OutputStreamWriter(out);
writer = new OutputStreamWriter(out);
else
writer = new OutputStreamWriter(out, encoding);
writer = new OutputStreamWriter(out, encoding);
}
}
@@ -330,7 +330,7 @@ public class StreamHandler
* would depend on the exact behavior in this rather obscure,
* erroneous case -- especially since the API specification does not
* prescribe what is supposed to happen.
*
*
* @param record the log event to be published.
*/
public void publish(LogRecord record)
@@ -348,13 +348,13 @@ public class StreamHandler
}
catch (java.io.IOException ex)
{
reportError(null, ex, ErrorManager.WRITE_FAILURE);
return;
reportError(null, ex, ErrorManager.WRITE_FAILURE);
return;
}
catch (Exception ex)
{
reportError(null, ex, ErrorManager.GENERIC_FAILURE);
return;
reportError(null, ex, ErrorManager.GENERIC_FAILURE);
return;
}
streamState = STATE_PUBLISHED;
@@ -449,7 +449,7 @@ public class StreamHandler
/**
* Closes this <code>StreamHandler</code> after having forced any
* data that may have been buffered to the underlying output
* device.
* device.
*
* <p>As soon as <code>close</code> has been called,
* a <code>Handler</code> should not be used anymore. Attempts
@@ -496,20 +496,20 @@ public class StreamHandler
if (writer != null)
{
if (formatter != null)
{
/* Even if the StreamHandler has never published a record,
* it emits head and tail upon closing. An earlier version
* of the GNU Classpath implementation did not emitted
* anything. However, this had caused XML log files to be
* entirely empty instead of containing no log records.
*/
if (streamState == STATE_FRESH)
if (formatter != null)
{
/* Even if the StreamHandler has never published a record,
* it emits head and tail upon closing. An earlier version
* of the GNU Classpath implementation did not emitted
* anything. However, this had caused XML log files to be
* entirely empty instead of containing no log records.
*/
if (streamState == STATE_FRESH)
writer.write(formatter.getHead(this));
if (streamState != STATE_CLOSED)
writer.write(formatter.getTail(this));
}
streamState = STATE_CLOSED;
if (streamState != STATE_CLOSED)
writer.write(formatter.getTail(this));
}
streamState = STATE_CLOSED;
writer.close();
}
}
@@ -75,7 +75,7 @@ public class XMLFormatter
*/
private static final String lineSep = SimpleFormatter.lineSep;
/**
* A DateFormat for emitting time in the ISO 8601 format.
* Since the API specification of SimpleDateFormat does not talk
@@ -129,29 +129,29 @@ public class XMLFormatter
switch (c)
{
case '&':
buf.append("&amp;");
break;
buf.append("&amp;");
break;
case '<':
buf.append("&lt;");
break;
buf.append("&lt;");
break;
case '>':
buf.append("&gt;");
break;
buf.append("&gt;");
break;
default:
if (((c >= 0x20) && (c <= 0x7e))
|| (c == /* line feed */ 10)
|| (c == /* carriage return */ 13))
buf.append(c);
else
{
buf.append("&#");
buf.append((int) c);
buf.append(';');
}
break;
if (((c >= 0x20) && (c <= 0x7e))
|| (c == /* line feed */ 10)
|| (c == /* carriage return */ 13))
buf.append(c);
else
{
buf.append("&#");
buf.append((int) c);
buf.append(';');
}
break;
} /* switch (c) */
} /* for i */
@@ -190,11 +190,11 @@ public class XMLFormatter
Object[] params = record.getParameters();
ResourceBundle bundle = record.getResourceBundle();
String message;
buf.append("<record>");
buf.append(lineSep);
appendTag(buf, 1, "date", iso8601.format(new Date(millis)));
appendTag(buf, 1, "millis", millis);
appendTag(buf, 1, "sequence", record.getSequenceNumber());
@@ -346,7 +346,7 @@ public class XMLFormatter
*/
if (encoding == null)
encoding = "UTF-8";
/* On Windows XP localized for Swiss German (this is one of
* my [Sascha Brawer's] test machines), the default encoding
* has the canonical name "windows-1252". The "historical" name
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -118,7 +118,7 @@ public abstract class AbstractPreferences extends Preferences {
/**
* Creates a new AbstractPreferences node with the given parent and name.
*
*
* @param parent the parent of this node or null when this is the root node
* @param name the name of this node, can not be null, only 80 characters
* maximum, must be empty when parent is null and cannot
@@ -174,9 +174,9 @@ public abstract class AbstractPreferences extends Preferences {
*/
public boolean isUserNode() {
AbstractPreferences root = this;
while (root.parent != null)
root = root.parent;
return root == Preferences.userRoot();
while (root.parent != null)
root = root.parent;
return root == Preferences.userRoot();
}
/**
@@ -238,7 +238,7 @@ public abstract class AbstractPreferences extends Preferences {
// First get all cached node names
childrenNames.addAll(childCache.keySet());
// Then add any others
String names[] = childrenNamesSpi();
for (int i = 0; i < names.length; i++) {
@@ -339,7 +339,7 @@ public abstract class AbstractPreferences extends Preferences {
if (child == null) {
if (childName.length() > MAX_NAME_LENGTH)
throw new IllegalArgumentException(childName);
throw new IllegalArgumentException(childName);
// Not in childCache yet so create a new sub node
child = childSpi(childName);
@@ -457,7 +457,7 @@ public abstract class AbstractPreferences extends Preferences {
for (int i=0; i < names.length; i++)
if (name.equals(names[i]))
return childSpi(name);
// No child with that name found
return null;
}
@@ -523,8 +523,8 @@ public abstract class AbstractPreferences extends Preferences {
* This method locks this node and checks if the node has not been
* removed, if it has been removed it throws an exception, then it returns
* the result of calling <code>keysSpi()</code>.
*
* @exception BackingStoreException when the backing store cannot be
*
* @exception BackingStoreException when the backing store cannot be
* reached
* @exception IllegalStateException if this node has been removed
*/
@@ -597,7 +597,7 @@ public abstract class AbstractPreferences extends Preferences {
if ("false".equalsIgnoreCase(value))
return false;
return defaultVal;
}
@@ -625,7 +625,7 @@ public abstract class AbstractPreferences extends Preferences {
else
return defaultVal;
}
/**
* Helper method for decoding a Base64 string as an byte array.
* Returns null on encoding error. This method does not allow any other
@@ -807,7 +807,7 @@ public abstract class AbstractPreferences extends Preferences {
if (preferenceListeners != null)
fire(new PreferenceChangeEvent(this, key, value));
}
}
/**
@@ -948,7 +948,7 @@ public abstract class AbstractPreferences extends Preferences {
/**
* Removes the preferences entry from this preferences node.
* <p>
* <p>
* The result will be immediately visible in this VM, but may not be
* immediately written to the backing store.
* <p>
@@ -1040,7 +1040,7 @@ public abstract class AbstractPreferences extends Preferences {
public void sync() throws BackingStoreException {
flushNode(true);
}
/**
* Private helper method that locks this node and calls either
@@ -1247,7 +1247,7 @@ public abstract class AbstractPreferences extends Preferences {
listener.preferenceChange(event);
}
};
Executor executor =
Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory());
executor.execute(dispatcher);
@@ -1273,7 +1273,7 @@ public abstract class AbstractPreferences extends Preferences {
listener.childRemoved(event);
}
};
Executor executor =
Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory());
executor.execute(dispatcher);
@@ -1316,11 +1316,11 @@ public abstract class AbstractPreferences extends Preferences {
* not been removed. May throw an exception when the backing store cannot
* be accessed.
*
* @exception BackingStoreException when the backing store cannot be
* @exception BackingStoreException when the backing store cannot be
* reached
*/
protected abstract String[] keysSpi() throws BackingStoreException;
/**
* Returns the value associated with the key in this preferences node or
* null when the key does not exist in this preferences node.
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -58,8 +58,8 @@ import java.util.EventObject;
public class NodeChangeEvent extends EventObject {
// We have this to placate the compiler.
private static final long serialVersionUID =8068949086596572957L;
private static final long serialVersionUID =8068949086596572957L;
/**
* The sub node that was added or removed.
* Defined transient just like <code>EventObject.source</code> since
@@ -102,7 +102,7 @@ public class NodeChangeEvent extends EventObject {
{
throw new NotSerializableException("LineEvent is not serializable");
}
private void writeObject(ObjectOutputStream oos)
throws IOException
{
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -62,7 +62,7 @@ public class PreferenceChangeEvent extends EventObject {
// We have this to placate the compiler.
private static final long serialVersionUID = 793724513368024975L;
/**
* The key of the changed entry.
*/
@@ -116,7 +116,7 @@ public class PreferenceChangeEvent extends EventObject {
{
throw new NotSerializableException("LineEvent is not serializable");
}
private void writeObject(ObjectOutputStream oos)
throws IOException
{
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -213,28 +213,28 @@ public abstract class Preferences {
{
Iterator iter = ServiceFactory.lookupProviders
(PreferencesFactory.class, null);
if (iter != null && iter.hasNext())
factory = (PreferencesFactory) iter.next();
}
// Still no factory? Use our default.
if (factory == null)
{
{
try
{
{
Class cls = Class.forName (defaultFactoryClass);
factory = (PreferencesFactory) cls.newInstance();
}
catch (Exception e)
{
catch (Exception e)
{
throw new RuntimeException ("Couldn't load default factory"
+ " '"+ defaultFactoryClass +"'", e);
}
}
}
return factory;
}
@@ -305,7 +305,7 @@ public abstract class Preferences {
* @throws InvalidPreferencesFormatException if the XML is not properly
* formatted
*/
public static void importPreferences(InputStream is)
public static void importPreferences(InputStream is)
throws InvalidPreferencesFormatException,
IOException
{
@@ -318,7 +318,7 @@ public abstract class Preferences {
/**
* Returns the absolute path name of this preference node.
* The absolute path name of a node is the path name of its parent node
* The absolute path name of a node is the path name of its parent node
* plus a '/' plus its own name. If the node is the root node and has no
* parent then its name is "" and its absolute path name is "/".
*/
@@ -400,8 +400,8 @@ public abstract class Preferences {
// abstract methods (export)
/**
* Export this node, but not its descendants, as XML to the
* indicated output stream. The XML will be encoded using UTF-8
* Export this node, but not its descendants, as XML to the
* indicated output stream. The XML will be encoded using UTF-8
* and will use a specified document type:<br>
* <code>&lt;!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd"&gt;</code><br>
* @param os the output stream to which the XML is sent
@@ -414,8 +414,8 @@ public abstract class Preferences {
IOException;
/**
* Export this node and all its descendants as XML to the
* indicated output stream. The XML will be encoded using UTF-8
* Export this node and all its descendants as XML to the
* indicated output stream. The XML will be encoded using UTF-8
* and will use a specified document type:<br>
* <code>&lt;!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd"&gt;</code><br>
* @param os the output stream to which the XML is sent
@@ -670,7 +670,7 @@ public abstract class Preferences {
* <p>
* Note that according to the specification an implementation may delay
* removal of the node from the backing store till the <code>flush()</code>
* method is called. But the <code>flush()</code> method may throw a
* method is called. But the <code>flush()</code> method may throw a
* <code>IllegalStateException</code> when the node has been removed.
* So most implementations will actually remove the node and any subnodes
* from the backing store immediatly.
@@ -694,4 +694,3 @@ public abstract class Preferences {
public abstract void removePreferenceChangeListener
(PreferenceChangeListener listener);
}
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -48,25 +48,25 @@ public interface MatchResult
{
/** Returns the index just after the last matched character. */
int end();
/**
* Returns the index just after the last matched character of the
* given sub-match group.
* @param group the sub-match group
*/
*/
int end(int group);
/** Returns the substring of the input which was matched. */
String group();
/**
/**
* Returns the substring of the input which was matched by the
* given sub-match group.
* @param group the sub-match group
*/
String group(int group);
/** Returns the number of sub-match groups in the matching pattern. */
/** Returns the number of sub-match groups in the matching pattern. */
int groupCount();
/** Returns the index of the first character of the match. */
+56 -56
View File
@@ -46,14 +46,14 @@ import java.util.ArrayList;
/**
* Compiled regular expression ready to be applied.
* Compiled regular expression ready to be applied.
*
* @since 1.4
*/
public final class Pattern implements Serializable
{
private static final long serialVersionUID = 5073258162644648461L;
public static final int CANON_EQ = 128;
public static final int CASE_INSENSITIVE = 2;
public static final int COMMENTS = 4;
@@ -61,7 +61,7 @@ public final class Pattern implements Serializable
public static final int MULTILINE = 8;
public static final int UNICODE_CASE = 64;
public static final int UNIX_LINES = 1;
private final String regex;
private final int flags;
@@ -93,30 +93,30 @@ public final class Pattern implements Serializable
if ((flags & UNIX_LINES) != 0)
{
// Use a syntax set with \n for linefeeds?
syntax = new RESyntax(syntax);
syntax.setLineSeparator("\n");
// Use a syntax set with \n for linefeeds?
syntax = new RESyntax(syntax);
syntax.setLineSeparator("\n");
}
if ((flags & COMMENTS) != 0)
{
gnuFlags |= RE.REG_X_COMMENTS;
gnuFlags |= RE.REG_X_COMMENTS;
}
try
{
this.re = new RE(regex, gnuFlags, syntax);
this.re = new RE(regex, gnuFlags, syntax);
}
catch (REException e)
{
PatternSyntaxException pse;
pse = new PatternSyntaxException(e.getMessage(),
regex, e.getPosition());
pse.initCause(e);
throw pse;
PatternSyntaxException pse;
pse = new PatternSyntaxException(e.getMessage(),
regex, e.getPosition());
pse.initCause(e);
throw pse;
}
}
// package private accessor method
RE getRE()
{
@@ -133,7 +133,7 @@ public final class Pattern implements Serializable
{
return compile(regex, 0);
}
/**
* @param regex The regular expression
* @param flags The match flags, a bit mask
@@ -148,26 +148,26 @@ public final class Pattern implements Serializable
// FIXME: check which flags are really accepted
if ((flags & ~0xEF) != 0)
throw new IllegalArgumentException ();
return new Pattern (regex, flags);
return new Pattern (regex, flags);
}
public int flags ()
{
return this.flags;
}
/**
* @param regex The regular expression
* @param input The character sequence to be matched
*
* @exception PatternSyntaxException If the expression's syntax is invalid
*/
public static boolean matches (String regex, CharSequence input)
public static boolean matches (String regex, CharSequence input)
{
return compile(regex).matcher(input).matches();
}
/**
* @param input The character sequence to be matched
*/
@@ -175,7 +175,7 @@ public final class Pattern implements Serializable
{
return new Matcher(this, input);
}
/**
* @param input The character sequence to be matched
*/
@@ -183,7 +183,7 @@ public final class Pattern implements Serializable
{
return split(input, 0);
}
/**
* @param input The character sequence to be matched
* @param limit The result threshold
@@ -200,60 +200,60 @@ public final class Pattern implements Serializable
while (matched && (limit <= 0 || count < limit - 1))
{
++count;
end = matcher.start();
if (start == end)
empties++;
else
{
while (empties > 0)
{
list.add("");
empties--;
}
++count;
end = matcher.start();
if (start == end)
empties++;
else
{
while (empties > 0)
{
list.add("");
empties--;
}
String text = input.subSequence(start, end).toString();
list.add(text);
}
start = matcher.end();
matched = matcher.find();
String text = input.subSequence(start, end).toString();
list.add(text);
}
start = matcher.end();
matched = matcher.find();
}
// We matched nothing.
if (!matched && count == 0)
return new String[] { input.toString() };
// Is the last token empty?
boolean emptyLast = (start == input.length());
// Can/Must we add empties or an extra last token at the end?
if (list.size() < limit || limit < 0 || (limit == 0 && !emptyLast))
{
if (limit > list.size())
{
int max = limit - list.size();
empties = (empties > max) ? max : empties;
}
while (empties > 0)
{
list.add("");
empties--;
}
if (limit > list.size())
{
int max = limit - list.size();
empties = (empties > max) ? max : empties;
}
while (empties > 0)
{
list.add("");
empties--;
}
}
// last token at end
if (limit != 0 || (limit == 0 && !emptyLast))
{
String t = input.subSequence(start, input.length()).toString();
if ("".equals(t) && limit == 0)
{ /* Don't add. */ }
else
list.add(t);
String t = input.subSequence(start, input.length()).toString();
if ("".equals(t) && limit == 0)
{ /* Don't add. */ }
else
list.add(t);
}
return list.toArray(new String[list.size()]);
}
public String pattern ()
{
return regex;
@@ -58,7 +58,7 @@ public class PatternSyntaxException extends IllegalArgumentException
* The original pattern that contained the syntax error.
*/
private final String pattern;
/**
* Index of the first character in the String that was probably invalid,
* or -1 when unknown.
@@ -74,8 +74,8 @@ public class PatternSyntaxException extends IllegalArgumentException
* probably invalid, or -1 when unknown.
*/
public PatternSyntaxException(String description,
String pattern,
int index)
String pattern,
int index)
{
super(description);
this.desc = description;
@@ -123,11 +123,11 @@ public class PatternSyntaxException extends IllegalArgumentException
sb.append(pattern);
if (index != -1)
{
sb.append(lineSep);
sb.append('\t');
for (int i=0; i<index; i++)
sb.append(' ');
sb.append('^');
sb.append(lineSep);
sb.append('\t');
for (int i=0; i<index; i++)
sb.append(' ');
sb.append('^');
}
return sb.toString();
}
@@ -85,7 +85,7 @@ public abstract class LocaleNameProvider
* @see java.util.Locale#getDisplayCountry(java.util.Locale)
*/
public abstract String getDisplayCountry(String countryCode,
Locale locale);
Locale locale);
/**
* Returns the localized name for the specified ISO 639
@@ -111,7 +111,7 @@ public abstract class LocaleNameProvider
* @see java.util.Locale#getDisplayLanguage(java.util.Locale)
*/
public abstract String getDisplayLanguage(String langCode,
Locale locale);
Locale locale);
/**
* Returns the localized name for the specified variant
@@ -130,6 +130,6 @@ public abstract class LocaleNameProvider
* @see java.util.Locale#getDisplayVariant(java.util.Locale)
*/
public abstract String getDisplayVariant(String variant,
Locale locale);
Locale locale);
}
@@ -92,6 +92,6 @@ public abstract class TimeZoneNameProvider
* @see java.util.TimeZone#getDisplayName(boolean,int,java.util.Locale)
*/
public abstract String getDisplayName(String id, boolean daylight,
int style, Locale locale);
int style, Locale locale);
}
+33 -33
View File
@@ -45,8 +45,8 @@ package java.util.zip;
*/
/**
* Computes Adler32 checksum for a stream of data. An Adler32
* checksum is not as reliable as a CRC32 checksum, but a lot faster to
* Computes Adler32 checksum for a stream of data. An Adler32
* checksum is not as reliable as a CRC32 checksum, but a lot faster to
* compute.
*<p>
* The specification for Adler32 may be found in RFC 1950.
@@ -60,7 +60,7 @@ package java.util.zip;
* (excluding any dictionary data) computed according to Adler-32
* algorithm. This algorithm is a 32-bit extension and improvement
* of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073
* standard.
* standard.
*<p>
* Adler-32 is composed of two sums accumulated per byte: s1 is
* the sum of all bytes, s2 is the sum of all s1 values. Both sums
@@ -103,13 +103,13 @@ public class Adler32 implements Checksum
private int checksum; //we do all in int.
//Note that java doesn't have unsigned integers,
//so we have to be careful with what arithmetic
//we do. We return the checksum as a long to
//so we have to be careful with what arithmetic
//we do. We return the checksum as a long to
//avoid sign confusion.
/**
* Creates a new instance of the <code>Adler32</code> class.
* The checksum starts off with a value of 1.
* Creates a new instance of the <code>Adler32</code> class.
* The checksum starts off with a value of 1.
*/
public Adler32 ()
{
@@ -119,13 +119,13 @@ public class Adler32 implements Checksum
/**
* Resets the Adler32 checksum to the initial value.
*/
public void reset ()
public void reset ()
{
checksum = 1; //Initialize to 1
checksum = 1; //Initialize to 1
}
/**
* Updates the checksum with the byte b.
* Updates the checksum with the byte b.
*
* @param bval the data value to add. The high byte of the int is ignored.
*/
@@ -135,16 +135,16 @@ public class Adler32 implements Checksum
//would rather not have that overhead
int s1 = checksum & 0xffff;
int s2 = checksum >>> 16;
s1 = (s1 + (bval & 0xFF)) % BASE;
s2 = (s1 + s2) % BASE;
checksum = (s2 << 16) + s1;
}
/**
* Updates the checksum with the bytes taken from the array.
*
* Updates the checksum with the bytes taken from the array.
*
* @param buffer an array of bytes
*/
public void update (byte[] buffer)
@@ -153,8 +153,8 @@ public class Adler32 implements Checksum
}
/**
* Updates the checksum with the bytes taken from the array.
*
* Updates the checksum with the bytes taken from the array.
*
* @param buf an array of bytes
* @param off the start of the data used for this update
* @param len the number of bytes to use for this update
@@ -167,31 +167,31 @@ public class Adler32 implements Checksum
while (len > 0)
{
// We can defer the modulo operation:
// s1 maximally grows from 65521 to 65521 + 255 * 3800
// s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31
int n = 3800;
if (n > len)
n = len;
len -= n;
while (--n >= 0)
{
s1 = s1 + (buf[off++] & 0xFF);
s2 = s2 + s1;
}
s1 %= BASE;
s2 %= BASE;
// We can defer the modulo operation:
// s1 maximally grows from 65521 to 65521 + 255 * 3800
// s2 maximally grows by 3800 * median(s1) = 2090079800 < 2^31
int n = 3800;
if (n > len)
n = len;
len -= n;
while (--n >= 0)
{
s1 = s1 + (buf[off++] & 0xFF);
s2 = s2 + s1;
}
s1 %= BASE;
s2 %= BASE;
}
/*Old implementation, borrowed from somewhere:
int n;
while (len-- > 0) {
s1 = (s1 + (bs[offset++] & 0xff)) % BASE;
s1 = (s1 + (bs[offset++] & 0xff)) % BASE;
s2 = (s2 + s1) % BASE;
}*/
checksum = (s2 << 16) | s1;
}
+10 -10
View File
@@ -71,15 +71,15 @@ public class CRC32 implements Checksum
int[] crc_table = new int[256];
for (int n = 0; n < 256; n++)
{
int c = n;
for (int k = 8; --k >= 0; )
{
if ((c & 1) != 0)
c = 0xedb88320 ^ (c >>> 1);
else
c = c >>> 1;
}
crc_table[n] = c;
int c = n;
for (int k = 8; --k >= 0; )
{
if ((c & 1) != 0)
c = 0xedb88320 ^ (c >>> 1);
else
c = c >>> 1;
}
crc_table[n] = c;
}
return crc_table;
}
@@ -98,7 +98,7 @@ public class CRC32 implements Checksum
public void reset () { crc = 0; }
/**
* Updates the checksum with the int bval.
* Updates the checksum with the int bval.
*
* @param bval (the byte is taken as the lower 8 bits of bval)
*/
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -118,13 +118,13 @@ public class CheckedInputStream extends FilterInputStream
long s = 0;
while (n > 0)
{
int r = in.read(buf, 0, min);
if (r == -1)
break;
n -= r;
s += r;
min = (int) Math.min(n, 1024);
sum.update(buf, 0, r);
int r = in.read(buf, 0, min);
if (r == -1)
break;
n -= r;
s += r;
min = (int) Math.min(n, 1024);
sum.update(buf, 0, r);
}
return s;
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+106 -106
View File
@@ -41,10 +41,10 @@ package java.util.zip;
* This is the Deflater class. The deflater class compresses input
* with the deflate algorithm described in RFC 1951. It has several
* compression levels and three different strategies described below.
*
*
* This class is <i>not</i> thread safe. This is inherent in the API, due
* to the split of deflate and setInput.
*
*
* @author Jochen Hoenicke
* @author Tom Tromey
*/
@@ -52,11 +52,11 @@ public class Deflater
{
/**
* The best and slowest compression level. This tries to find very
* long and distant string repetitions.
* long and distant string repetitions.
*/
public static final int BEST_COMPRESSION = 9;
/**
* The worst but fastest compression level.
* The worst but fastest compression level.
*/
public static final int BEST_SPEED = 1;
/**
@@ -78,10 +78,10 @@ public class Deflater
*/
public static final int FILTERED = 1;
/**
/**
* This strategy will not look for string repetitions at all. It
* only encodes with Huffman trees (which means, that more common
* characters get a smaller encoding.
* characters get a smaller encoding.
*/
public static final int HUFFMAN_ONLY = 2;
@@ -123,13 +123,13 @@ public class Deflater
* (6) FINISHED_STATE is entered, when everything has been flushed to the
* internal pending output buffer.
* (7) At any time (7)
*
*
*/
private static final int IS_SETDICT = 0x01;
private static final int IS_FLUSHING = 0x04;
private static final int IS_FINISHING = 0x08;
private static final int INIT_STATE = 0x00;
private static final int SETDICT_STATE = 0x01;
private static final int INIT_FINISHING_STATE = 0x08;
@@ -151,7 +151,7 @@ public class Deflater
/** The total bytes of output written. */
private long totalOut;
/** The pending output. */
private DeflaterPending pending;
@@ -169,7 +169,7 @@ public class Deflater
/**
* Creates a new deflater with given compression level.
* @param lvl the compression level, a value between NO_COMPRESSION
* and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
* and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
* @exception IllegalArgumentException if lvl is out of range.
*/
public Deflater(int lvl)
@@ -180,7 +180,7 @@ public class Deflater
/**
* Creates a new deflater with given compression level.
* @param lvl the compression level, a value between NO_COMPRESSION
* and BEST_COMPRESSION.
* and BEST_COMPRESSION.
* @param nowrap true, iff we should suppress the deflate header at the
* beginning and the adler checksum at the end of the output. This is
* useful for the GZIP format.
@@ -201,26 +201,26 @@ public class Deflater
reset();
}
/**
/**
* Resets the deflater. The deflater acts afterwards as if it was
* just created with the same compression level and strategy as it
* had before.
* had before.
*/
public void reset()
public void reset()
{
state = (noHeader ? BUSY_STATE : INIT_STATE);
totalOut = 0;
pending.reset();
engine.reset();
}
/**
* Frees all objects allocated by the compressor. There's no
* reason to call this, since you can just rely on garbage
* collection. Exists only for compatibility against Sun's JDK,
* where the compressor allocates native memory.
* If you call any method (even reset) afterwards the behaviour is
* <i>undefined</i>.
* <i>undefined</i>.
*/
public void end()
{
@@ -229,7 +229,7 @@ public class Deflater
state = CLOSED_STATE;
}
/**
/**
* Gets the current adler checksum of the data that was processed so
* far.
*/
@@ -238,7 +238,7 @@ public class Deflater
return engine.getAdler();
}
/**
/**
* Gets the number of input bytes processed so far.
*/
public int getTotalIn()
@@ -246,7 +246,7 @@ public class Deflater
return (int) engine.getTotalIn();
}
/**
/**
* Gets the number of input bytes processed so far.
* @since 1.5
*/
@@ -255,7 +255,7 @@ public class Deflater
return engine.getTotalIn();
}
/**
/**
* Gets the number of output bytes so far.
*/
public int getTotalOut()
@@ -263,7 +263,7 @@ public class Deflater
return (int) totalOut;
}
/**
/**
* Gets the number of output bytes so far.
* @since 1.5
*/
@@ -272,7 +272,7 @@ public class Deflater
return totalOut;
}
/**
/**
* Finalizes this object.
*/
protected void finalize()
@@ -280,7 +280,7 @@ public class Deflater
/* Exists solely for compatibility. We don't have any native state. */
}
/**
/**
* Flushes the current input block. Further calls to deflate() will
* produce enough output to inflate everything in the current input
* block. This is not part of Sun's JDK so I have made it package
@@ -291,7 +291,7 @@ public class Deflater
state |= IS_FLUSHING;
}
/**
/**
* Finishes the deflater with the current input block. It is an error
* to give more input after this method was called. This method must
* be called to force all bytes to be flushed.
@@ -300,7 +300,7 @@ public class Deflater
state |= IS_FLUSHING | IS_FINISHING;
}
/**
/**
* Returns true iff the stream was finished and no more output bytes
* are available.
*/
@@ -314,7 +314,7 @@ public class Deflater
* You should then call setInput(). <br>
*
* <em>NOTE</em>: This method can also return true when the stream
* was finished.
* was finished.
*/
public boolean needsInput()
{
@@ -344,7 +344,7 @@ public class Deflater
* true again.
* @param input the buffer containing the input data.
* @param off the start of the data.
* @param len the length of the data.
* @param len the length of the data.
* @exception IllegalStateException if the buffer was finished() or ended()
* or if previous input is still pending.
*/
@@ -355,11 +355,11 @@ public class Deflater
engine.setInput(input, off, len);
}
/**
/**
* Sets the compression level. There is no guarantee of the exact
* position of the change, but if you call this when needsInput is
* true the change of compression level will occur somewhere near
* before the end of the so far given input.
* before the end of the so far given input.
* @param lvl the new compression level.
*/
public void setLevel(int lvl)
@@ -372,12 +372,12 @@ public class Deflater
if (level != lvl)
{
level = lvl;
engine.setLevel(lvl);
level = lvl;
engine.setLevel(lvl);
}
}
/**
/**
* Sets the compression strategy. Strategy is one of
* DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact
* position where the strategy is changed, the same as for
@@ -387,14 +387,14 @@ public class Deflater
public void setStrategy(int stgy)
{
if (stgy != DEFAULT_STRATEGY && stgy != FILTERED
&& stgy != HUFFMAN_ONLY)
&& stgy != HUFFMAN_ONLY)
throw new IllegalArgumentException();
engine.setStrategy(stgy);
}
/**
* Deflates the current input block to the given array. It returns
* the number of bytes compressed, or 0 if either
* Deflates the current input block to the given array. It returns
* the number of bytes compressed, or 0 if either
* needsInput() or finished() returns true or length is zero.
* @param output the buffer where to write the compressed data.
*/
@@ -404,15 +404,15 @@ public class Deflater
}
/**
* Deflates the current input block to the given array. It returns
* the number of bytes compressed, or 0 if either
* Deflates the current input block to the given array. It returns
* the number of bytes compressed, or 0 if either
* needsInput() or finished() returns true or length is zero.
* @param output the buffer where to write the compressed data.
* @param offset the offset into the output array.
* @param length the maximum number of bytes that may be written.
* @exception IllegalStateException if end() was called.
* @exception IndexOutOfBoundsException if offset and/or length
* don't match the array length.
* don't match the array length.
*/
public int deflate(byte[] output, int offset, int length)
{
@@ -423,78 +423,78 @@ public class Deflater
if (state < BUSY_STATE)
{
/* output header */
int header = (DEFLATED +
((DeflaterConstants.MAX_WBITS - 8) << 4)) << 8;
int level_flags = (level - 1) >> 1;
if (level_flags < 0 || level_flags > 3)
level_flags = 3;
header |= level_flags << 6;
if ((state & IS_SETDICT) != 0)
/* Dictionary was set */
header |= DeflaterConstants.PRESET_DICT;
header += 31 - (header % 31);
/* output header */
int header = (DEFLATED +
((DeflaterConstants.MAX_WBITS - 8) << 4)) << 8;
int level_flags = (level - 1) >> 1;
if (level_flags < 0 || level_flags > 3)
level_flags = 3;
header |= level_flags << 6;
if ((state & IS_SETDICT) != 0)
/* Dictionary was set */
header |= DeflaterConstants.PRESET_DICT;
header += 31 - (header % 31);
pending.writeShortMSB(header);
if ((state & IS_SETDICT) != 0)
{
int chksum = engine.getAdler();
engine.resetAdler();
pending.writeShortMSB(chksum >> 16);
pending.writeShortMSB(chksum & 0xffff);
}
pending.writeShortMSB(header);
if ((state & IS_SETDICT) != 0)
{
int chksum = engine.getAdler();
engine.resetAdler();
pending.writeShortMSB(chksum >> 16);
pending.writeShortMSB(chksum & 0xffff);
}
state = BUSY_STATE | (state & (IS_FLUSHING | IS_FINISHING));
state = BUSY_STATE | (state & (IS_FLUSHING | IS_FINISHING));
}
for (;;)
{
int count = pending.flush(output, offset, length);
offset += count;
totalOut += count;
length -= count;
if (length == 0 || state == FINISHED_STATE)
break;
int count = pending.flush(output, offset, length);
offset += count;
totalOut += count;
length -= count;
if (length == 0 || state == FINISHED_STATE)
break;
if (!engine.deflate((state & IS_FLUSHING) != 0,
(state & IS_FINISHING) != 0))
{
if (state == BUSY_STATE)
/* We need more input now */
return origLength - length;
else if (state == FLUSHING_STATE)
{
if (level != NO_COMPRESSION)
{
/* We have to supply some lookahead. 8 bit lookahead
* are needed by the zlib inflater, and we must fill
* the next byte, so that all bits are flushed.
*/
int neededbits = 8 + ((-pending.getBitCount()) & 7);
while (neededbits > 0)
{
/* write a static tree block consisting solely of
* an EOF:
*/
pending.writeBits(2, 10);
neededbits -= 10;
}
}
state = BUSY_STATE;
}
else if (state == FINISHING_STATE)
{
pending.alignToByte();
/* We have completed the stream */
if (!noHeader)
{
int adler = engine.getAdler();
pending.writeShortMSB(adler >> 16);
pending.writeShortMSB(adler & 0xffff);
}
state = FINISHED_STATE;
}
}
if (!engine.deflate((state & IS_FLUSHING) != 0,
(state & IS_FINISHING) != 0))
{
if (state == BUSY_STATE)
/* We need more input now */
return origLength - length;
else if (state == FLUSHING_STATE)
{
if (level != NO_COMPRESSION)
{
/* We have to supply some lookahead. 8 bit lookahead
* are needed by the zlib inflater, and we must fill
* the next byte, so that all bits are flushed.
*/
int neededbits = 8 + ((-pending.getBitCount()) & 7);
while (neededbits > 0)
{
/* write a static tree block consisting solely of
* an EOF:
*/
pending.writeBits(2, 10);
neededbits -= 10;
}
}
state = BUSY_STATE;
}
else if (state == FINISHING_STATE)
{
pending.alignToByte();
/* We have completed the stream */
if (!noHeader)
{
int adler = engine.getAdler();
pending.writeShortMSB(adler >> 16);
pending.writeShortMSB(adler & 0xffff);
}
state = FINISHED_STATE;
}
}
}
return origLength - length;
@@ -503,10 +503,10 @@ public class Deflater
/**
* Sets the dictionary which should be used in the deflate process.
* This call is equivalent to <code>setDictionary(dict, 0,
* dict.length)</code>.
* @param dict the dictionary.
* dict.length)</code>.
* @param dict the dictionary.
* @exception IllegalStateException if setInput () or deflate ()
* were already called or another dictionary was already set.
* were already called or another dictionary was already set.
*/
public void setDictionary(byte[] dict)
{
@@ -45,7 +45,7 @@ class DeflaterEngine implements DeflaterConstants
/**
* Hashtable, hashing three characters to an index for window, so
* that window[index]..window[index+2] have this hash code.
* that window[index]..window[index+2] have this hash code.
* Note that the array should really be unsigned short, so you need
* to and the values with 0xffff.
*/
@@ -53,7 +53,7 @@ class DeflaterEngine implements DeflaterConstants
/**
* prev[index & WMASK] points to the previous index that has the
* same hash code as the string starting at index. This way
* same hash code as the string starting at index. This way
* entries with the same hash code are in a linked list.
* Note that the array should really be unsigned short, so you need
* to and the values with 0xffff.
@@ -78,7 +78,7 @@ class DeflaterEngine implements DeflaterConstants
private int lookahead;
/**
* This array contains the part of the uncompressed stream that
* This array contains the part of the uncompressed stream that
* is of relevance. The current character is indexed by strstart.
*/
private byte[] window;
@@ -113,12 +113,12 @@ class DeflaterEngine implements DeflaterConstants
* second half is copied to the beginning.
*
* The head array is a hash table. Three characters build a hash value
* and they the value points to the corresponding index in window of
* and they the value points to the corresponding index in window of
* the last string with this hash. The prev array implements a
* linked list of matches with the same hash: prev[index & WMASK] points
* to the previous index with the same hash.
*
*
*
*
*/
@@ -180,44 +180,44 @@ class DeflaterEngine implements DeflaterConstants
niceLength = DeflaterConstants.NICE_LENGTH[lvl];
max_chain = DeflaterConstants.MAX_CHAIN[lvl];
if (DeflaterConstants.COMPR_FUNC[lvl] != comprFunc)
if (DeflaterConstants.COMPR_FUNC[lvl] != comprFunc)
{
if (DeflaterConstants.DEBUGGING)
System.err.println("Change from "+comprFunc +" to "
+ DeflaterConstants.COMPR_FUNC[lvl]);
switch (comprFunc)
{
case DEFLATE_STORED:
if (strstart > blockStart)
{
huffman.flushStoredBlock(window, blockStart,
strstart - blockStart, false);
blockStart = strstart;
}
updateHash();
break;
case DEFLATE_FAST:
if (strstart > blockStart)
{
huffman.flushBlock(window, blockStart, strstart - blockStart,
false);
blockStart = strstart;
}
break;
case DEFLATE_SLOW:
if (prevAvailable)
huffman.tallyLit(window[strstart-1] & 0xff);
if (strstart > blockStart)
{
huffman.flushBlock(window, blockStart, strstart - blockStart,
false);
blockStart = strstart;
}
prevAvailable = false;
matchLen = MIN_MATCH - 1;
break;
}
comprFunc = COMPR_FUNC[lvl];
if (DeflaterConstants.DEBUGGING)
System.err.println("Change from "+comprFunc +" to "
+ DeflaterConstants.COMPR_FUNC[lvl]);
switch (comprFunc)
{
case DEFLATE_STORED:
if (strstart > blockStart)
{
huffman.flushStoredBlock(window, blockStart,
strstart - blockStart, false);
blockStart = strstart;
}
updateHash();
break;
case DEFLATE_FAST:
if (strstart > blockStart)
{
huffman.flushBlock(window, blockStart, strstart - blockStart,
false);
blockStart = strstart;
}
break;
case DEFLATE_SLOW:
if (prevAvailable)
huffman.tallyLit(window[strstart-1] & 0xff);
if (strstart > blockStart)
{
huffman.flushBlock(window, blockStart, strstart - blockStart,
false);
blockStart = strstart;
}
prevAvailable = false;
matchLen = MIN_MATCH - 1;
break;
}
comprFunc = COMPR_FUNC[lvl];
}
}
@@ -225,7 +225,7 @@ class DeflaterEngine implements DeflaterConstants
if (DEBUGGING)
System.err.println("updateHash: "+strstart);
ins_h = (window[strstart] << HASH_SHIFT) ^ window[strstart + 1];
}
}
/**
* Inserts the current string in the head hash and returns the previous
@@ -238,13 +238,13 @@ class DeflaterEngine implements DeflaterConstants
if (DEBUGGING)
{
if (hash != (((window[strstart] << (2*HASH_SHIFT))
^ (window[strstart + 1] << HASH_SHIFT)
^ (window[strstart + 2])) & HASH_MASK))
throw new InternalError("hash inconsistent: "+hash+"/"
+window[strstart]+","
+window[strstart+1]+","
+window[strstart+2]+","+HASH_SHIFT);
if (hash != (((window[strstart] << (2*HASH_SHIFT))
^ (window[strstart + 1] << HASH_SHIFT)
^ (window[strstart + 2])) & HASH_MASK))
throw new InternalError("hash inconsistent: "+hash+"/"
+window[strstart]+","
+window[strstart+1]+","
+window[strstart+2]+","+HASH_SHIFT);
}
prev[strstart & WMASK] = match = head[hash];
@@ -259,22 +259,22 @@ class DeflaterEngine implements DeflaterConstants
matchStart -= WSIZE;
strstart -= WSIZE;
blockStart -= WSIZE;
/* Slide the hash table (could be avoided with 32 bit values
* at the expense of memory usage).
*/
for (int i = 0; i < HASH_SIZE; i++)
for (int i = 0; i < HASH_SIZE; i++)
{
int m = head[i] & 0xffff;
head[i] = m >= WSIZE ? (short) (m - WSIZE) : 0;
int m = head[i] & 0xffff;
head[i] = m >= WSIZE ? (short) (m - WSIZE) : 0;
}
/* Slide the prev table.
*/
for (int i = 0; i < WSIZE; i++)
for (int i = 0; i < WSIZE; i++)
{
int m = prev[i] & 0xffff;
prev[i] = m >= WSIZE ? (short) (m - WSIZE) : 0;
int m = prev[i] & 0xffff;
prev[i] = m >= WSIZE ? (short) (m - WSIZE) : 0;
}
}
@@ -298,30 +298,30 @@ class DeflaterEngine implements DeflaterConstants
*/
while (lookahead < DeflaterConstants.MIN_LOOKAHEAD && inputOff < inputEnd)
{
int more = 2*WSIZE - lookahead - strstart;
if (more > inputEnd - inputOff)
more = inputEnd - inputOff;
int more = 2*WSIZE - lookahead - strstart;
System.arraycopy(inputBuf, inputOff,
window, strstart + lookahead, more);
adler.update(inputBuf, inputOff, more);
inputOff += more;
totalIn += more;
lookahead += more;
if (more > inputEnd - inputOff)
more = inputEnd - inputOff;
System.arraycopy(inputBuf, inputOff,
window, strstart + lookahead, more);
adler.update(inputBuf, inputOff, more);
inputOff += more;
totalIn += more;
lookahead += more;
}
if (lookahead >= MIN_MATCH)
if (lookahead >= MIN_MATCH)
updateHash();
}
/**
* Find the best (longest) string in the window matching the
* Find the best (longest) string in the window matching the
* string starting at strstart.
*
* Preconditions:
* strstart + MAX_MATCH <= window.length.
*
*
*
* @param curMatch
*/
@@ -333,7 +333,7 @@ class DeflaterEngine implements DeflaterConstants
int match;
int best_end = this.strstart + matchLen;
int best_len = Math.max(matchLen, MIN_MATCH - 1);
int limit = Math.max(strstart - MAX_DIST, 0);
int strend = scan + MAX_MATCH - 1;
@@ -350,51 +350,51 @@ class DeflaterEngine implements DeflaterConstants
if (niceLength > lookahead)
niceLength = lookahead;
if (DeflaterConstants.DEBUGGING
&& strstart > 2*WSIZE - MIN_LOOKAHEAD)
if (DeflaterConstants.DEBUGGING
&& strstart > 2*WSIZE - MIN_LOOKAHEAD)
throw new InternalError("need lookahead");
do {
if (DeflaterConstants.DEBUGGING && curMatch >= strstart)
throw new InternalError("future match");
throw new InternalError("future match");
if (window[curMatch + best_len] != scan_end
|| window[curMatch + best_len - 1] != scan_end1
|| window[curMatch] != window[scan]
|| window[curMatch+1] != window[scan + 1])
continue;
|| window[curMatch + best_len - 1] != scan_end1
|| window[curMatch] != window[scan]
|| window[curMatch+1] != window[scan + 1])
continue;
match = curMatch + 2;
match = curMatch + 2;
scan += 2;
/* We check for insufficient lookahead only every 8th comparison;
* the 256th check will be made at strstart+258.
*/
while (window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& scan < strend)
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& window[++scan] == window[++match]
&& scan < strend)
;
if (scan > best_end) {
// if (DeflaterConstants.DEBUGGING && ins_h == 0)
// System.err.println("Found match: "+curMatch+"-"+(scan-strstart));
matchStart = curMatch;
best_end = scan;
best_len = scan - strstart;
if (best_len >= niceLength)
break;
// if (DeflaterConstants.DEBUGGING && ins_h == 0)
// System.err.println("Found match: "+curMatch+"-"+(scan-strstart));
matchStart = curMatch;
best_end = scan;
best_len = scan - strstart;
if (best_len >= niceLength)
break;
scan_end1 = window[best_end-1];
scan_end = window[best_end];
scan_end1 = window[best_end-1];
scan_end = window[best_end];
}
scan = strstart;
} while ((curMatch = (prev[curMatch & WMASK] & 0xffff)) > limit
&& --chainLength != 0);
&& --chainLength != 0);
matchLen = Math.min(best_len, lookahead);
return matchLen >= MIN_MATCH;
@@ -417,13 +417,13 @@ class DeflaterEngine implements DeflaterConstants
length--;
while (--length > 0)
{
insertString();
strstart++;
insertString();
strstart++;
}
strstart += 2;
blockStart = strstart;
}
}
private boolean deflateStored(boolean flush, boolean finish)
{
if (!flush && lookahead == 0)
@@ -434,25 +434,25 @@ class DeflaterEngine implements DeflaterConstants
int storedLen = strstart - blockStart;
if ((storedLen >= DeflaterConstants.MAX_BLOCK_SIZE)
/* Block is full */
|| (blockStart < WSIZE && storedLen >= MAX_DIST)
/* Block may move out of window */
|| flush)
if ((storedLen >= DeflaterConstants.MAX_BLOCK_SIZE)
/* Block is full */
|| (blockStart < WSIZE && storedLen >= MAX_DIST)
/* Block may move out of window */
|| flush)
{
boolean lastBlock = finish;
if (storedLen > DeflaterConstants.MAX_BLOCK_SIZE)
{
storedLen = DeflaterConstants.MAX_BLOCK_SIZE;
lastBlock = false;
}
boolean lastBlock = finish;
if (storedLen > DeflaterConstants.MAX_BLOCK_SIZE)
{
storedLen = DeflaterConstants.MAX_BLOCK_SIZE;
lastBlock = false;
}
if (DeflaterConstants.DEBUGGING)
System.err.println("storedBlock["+storedLen+","+lastBlock+"]");
if (DeflaterConstants.DEBUGGING)
System.err.println("storedBlock["+storedLen+","+lastBlock+"]");
huffman.flushStoredBlock(window, blockStart, storedLen, lastBlock);
blockStart += storedLen;
return !lastBlock;
huffman.flushStoredBlock(window, blockStart, storedLen, lastBlock);
blockStart += storedLen;
return !lastBlock;
}
return true;
}
@@ -464,78 +464,78 @@ class DeflaterEngine implements DeflaterConstants
while (lookahead >= MIN_LOOKAHEAD || flush)
{
if (lookahead == 0)
{
/* We are flushing everything */
huffman.flushBlock(window, blockStart, strstart - blockStart,
finish);
blockStart = strstart;
return false;
}
if (lookahead == 0)
{
/* We are flushing everything */
huffman.flushBlock(window, blockStart, strstart - blockStart,
finish);
blockStart = strstart;
return false;
}
if (strstart > 2 * WSIZE - MIN_LOOKAHEAD)
{
/* slide window, as findLongestMatch need this.
* This should only happen when flushing and the window
* is almost full.
*/
slideWindow();
}
if (strstart > 2 * WSIZE - MIN_LOOKAHEAD)
{
/* slide window, as findLongestMatch need this.
* This should only happen when flushing and the window
* is almost full.
*/
slideWindow();
}
int hashHead;
if (lookahead >= MIN_MATCH
&& (hashHead = insertString()) != 0
&& strategy != Deflater.HUFFMAN_ONLY
&& strstart - hashHead <= MAX_DIST
&& findLongestMatch(hashHead))
{
/* longestMatch sets matchStart and matchLen */
if (DeflaterConstants.DEBUGGING)
{
for (int i = 0 ; i < matchLen; i++)
{
if (window[strstart+i] != window[matchStart + i])
throw new InternalError();
}
}
boolean full = huffman.tallyDist(strstart - matchStart, matchLen);
lookahead -= matchLen;
if (matchLen <= max_lazy && lookahead >= MIN_MATCH)
{
while (--matchLen > 0)
{
strstart++;
insertString();
}
strstart++;
}
else
{
strstart += matchLen;
if (lookahead >= MIN_MATCH - 1)
updateHash();
}
matchLen = MIN_MATCH - 1;
if (!full)
continue;
}
else
{
/* No match found */
huffman.tallyLit(window[strstart] & 0xff);
strstart++;
lookahead--;
}
int hashHead;
if (lookahead >= MIN_MATCH
&& (hashHead = insertString()) != 0
&& strategy != Deflater.HUFFMAN_ONLY
&& strstart - hashHead <= MAX_DIST
&& findLongestMatch(hashHead))
{
/* longestMatch sets matchStart and matchLen */
if (DeflaterConstants.DEBUGGING)
{
for (int i = 0 ; i < matchLen; i++)
{
if (window[strstart+i] != window[matchStart + i])
throw new InternalError();
}
}
boolean full = huffman.tallyDist(strstart - matchStart, matchLen);
if (huffman.isFull())
{
boolean lastBlock = finish && lookahead == 0;
huffman.flushBlock(window, blockStart, strstart - blockStart,
lastBlock);
blockStart = strstart;
return !lastBlock;
}
lookahead -= matchLen;
if (matchLen <= max_lazy && lookahead >= MIN_MATCH)
{
while (--matchLen > 0)
{
strstart++;
insertString();
}
strstart++;
}
else
{
strstart += matchLen;
if (lookahead >= MIN_MATCH - 1)
updateHash();
}
matchLen = MIN_MATCH - 1;
if (!full)
continue;
}
else
{
/* No match found */
huffman.tallyLit(window[strstart] & 0xff);
strstart++;
lookahead--;
}
if (huffman.isFull())
{
boolean lastBlock = finish && lookahead == 0;
huffman.flushBlock(window, blockStart, strstart - blockStart,
lastBlock);
blockStart = strstart;
return !lastBlock;
}
}
return true;
}
@@ -547,127 +547,127 @@ class DeflaterEngine implements DeflaterConstants
while (lookahead >= MIN_LOOKAHEAD || flush)
{
if (lookahead == 0)
{
if (prevAvailable)
huffman.tallyLit(window[strstart-1] & 0xff);
prevAvailable = false;
if (lookahead == 0)
{
if (prevAvailable)
huffman.tallyLit(window[strstart-1] & 0xff);
prevAvailable = false;
/* We are flushing everything */
if (DeflaterConstants.DEBUGGING && !flush)
throw new InternalError("Not flushing, but no lookahead");
huffman.flushBlock(window, blockStart, strstart - blockStart,
finish);
blockStart = strstart;
return false;
}
/* We are flushing everything */
if (DeflaterConstants.DEBUGGING && !flush)
throw new InternalError("Not flushing, but no lookahead");
huffman.flushBlock(window, blockStart, strstart - blockStart,
finish);
blockStart = strstart;
return false;
}
if (strstart >= 2 * WSIZE - MIN_LOOKAHEAD)
{
/* slide window, as findLongestMatch need this.
* This should only happen when flushing and the window
* is almost full.
*/
slideWindow();
}
if (strstart >= 2 * WSIZE - MIN_LOOKAHEAD)
{
/* slide window, as findLongestMatch need this.
* This should only happen when flushing and the window
* is almost full.
*/
slideWindow();
}
int prevMatch = matchStart;
int prevLen = matchLen;
if (lookahead >= MIN_MATCH)
{
int hashHead = insertString();
if (strategy != Deflater.HUFFMAN_ONLY
&& hashHead != 0 && strstart - hashHead <= MAX_DIST
&& findLongestMatch(hashHead))
{
/* longestMatch sets matchStart and matchLen */
/* Discard match if too small and too far away */
if (matchLen <= 5
&& (strategy == Deflater.FILTERED
|| (matchLen == MIN_MATCH
&& strstart - matchStart > TOO_FAR))) {
matchLen = MIN_MATCH - 1;
}
}
}
/* previous match was better */
if (prevLen >= MIN_MATCH && matchLen <= prevLen)
{
if (DeflaterConstants.DEBUGGING)
{
for (int i = 0 ; i < matchLen; i++)
{
if (window[strstart-1+i] != window[prevMatch + i])
throw new InternalError();
}
}
huffman.tallyDist(strstart - 1 - prevMatch, prevLen);
prevLen -= 2;
do
{
strstart++;
lookahead--;
if (lookahead >= MIN_MATCH)
insertString();
}
while (--prevLen > 0);
strstart ++;
lookahead--;
prevAvailable = false;
matchLen = MIN_MATCH - 1;
}
else
{
if (prevAvailable)
huffman.tallyLit(window[strstart-1] & 0xff);
prevAvailable = true;
strstart++;
lookahead--;
}
int prevMatch = matchStart;
int prevLen = matchLen;
if (lookahead >= MIN_MATCH)
{
int hashHead = insertString();
if (strategy != Deflater.HUFFMAN_ONLY
&& hashHead != 0 && strstart - hashHead <= MAX_DIST
&& findLongestMatch(hashHead))
{
/* longestMatch sets matchStart and matchLen */
if (huffman.isFull())
{
int len = strstart - blockStart;
if (prevAvailable)
len--;
boolean lastBlock = (finish && lookahead == 0 && !prevAvailable);
huffman.flushBlock(window, blockStart, len, lastBlock);
blockStart += len;
return !lastBlock;
}
/* Discard match if too small and too far away */
if (matchLen <= 5
&& (strategy == Deflater.FILTERED
|| (matchLen == MIN_MATCH
&& strstart - matchStart > TOO_FAR))) {
matchLen = MIN_MATCH - 1;
}
}
}
/* previous match was better */
if (prevLen >= MIN_MATCH && matchLen <= prevLen)
{
if (DeflaterConstants.DEBUGGING)
{
for (int i = 0 ; i < matchLen; i++)
{
if (window[strstart-1+i] != window[prevMatch + i])
throw new InternalError();
}
}
huffman.tallyDist(strstart - 1 - prevMatch, prevLen);
prevLen -= 2;
do
{
strstart++;
lookahead--;
if (lookahead >= MIN_MATCH)
insertString();
}
while (--prevLen > 0);
strstart ++;
lookahead--;
prevAvailable = false;
matchLen = MIN_MATCH - 1;
}
else
{
if (prevAvailable)
huffman.tallyLit(window[strstart-1] & 0xff);
prevAvailable = true;
strstart++;
lookahead--;
}
if (huffman.isFull())
{
int len = strstart - blockStart;
if (prevAvailable)
len--;
boolean lastBlock = (finish && lookahead == 0 && !prevAvailable);
huffman.flushBlock(window, blockStart, len, lastBlock);
blockStart += len;
return !lastBlock;
}
}
return true;
}
}
public boolean deflate(boolean flush, boolean finish)
public boolean deflate(boolean flush, boolean finish)
{
boolean progress;
do
{
fillWindow();
boolean canFlush = flush && inputOff == inputEnd;
if (DeflaterConstants.DEBUGGING)
System.err.println("window: ["+blockStart+","+strstart+","
+lookahead+"], "+comprFunc+","+canFlush);
switch (comprFunc)
{
case DEFLATE_STORED:
progress = deflateStored(canFlush, finish);
break;
case DEFLATE_FAST:
progress = deflateFast(canFlush, finish);
break;
case DEFLATE_SLOW:
progress = deflateSlow(canFlush, finish);
break;
default:
throw new InternalError();
}
fillWindow();
boolean canFlush = flush && inputOff == inputEnd;
if (DeflaterConstants.DEBUGGING)
System.err.println("window: ["+blockStart+","+strstart+","
+lookahead+"], "+comprFunc+","+canFlush);
switch (comprFunc)
{
case DEFLATE_STORED:
progress = deflateStored(canFlush, finish);
break;
case DEFLATE_FAST:
progress = deflateFast(canFlush, finish);
break;
case DEFLATE_SLOW:
progress = deflateSlow(canFlush, finish);
break;
default:
throw new InternalError();
}
}
while (pending.isFlushed() /* repeat while we have no pending output */
&& progress); /* and progress was made */
&& progress); /* and progress was made */
return progress;
}
@@ -676,12 +676,12 @@ class DeflaterEngine implements DeflaterConstants
{
if (inputOff < inputEnd)
throw new IllegalStateException
("Old input was not completely processed");
("Old input was not completely processed");
int end = off + len;
/* We want to throw an ArrayIndexOutOfBoundsException early. The
* check is very tricky: it also handles integer wrap around.
* check is very tricky: it also handles integer wrap around.
*/
if (0 > off || off > end || end > buf.length)
throw new ArrayIndexOutOfBoundsException();
@@ -44,7 +44,7 @@ package java.util.zip;
* to the split of deflate and setInput.
*
* @author Jochen Hoenicke
* @date Jan 6, 2000
* @date Jan 6, 2000
*/
class DeflaterHuffman
{
@@ -79,7 +79,7 @@ class DeflaterHuffman
void reset() {
for (int i = 0; i < freqs.length; i++)
freqs[i] = 0;
freqs[i] = 0;
codes = null;
length = null;
}
@@ -87,10 +87,10 @@ class DeflaterHuffman
final void writeSymbol(int code)
{
if (DeflaterConstants.DEBUGGING)
{
freqs[code]--;
// System.err.print("writeSymbol("+freqs.length+","+code+"): ");
}
{
freqs[code]--;
// System.err.print("writeSymbol("+freqs.length+","+code+"): ");
}
pending.writeBits(codes[code] & 0xffff, length[code]);
}
@@ -98,13 +98,13 @@ class DeflaterHuffman
{
boolean empty = true;
for (int i = 0; i < freqs.length; i++)
if (freqs[i] != 0)
{
System.err.println("freqs["+i+"] == "+freqs[i]);
empty = false;
}
if (freqs[i] != 0)
{
System.err.println("freqs["+i+"] == "+freqs[i]);
empty = false;
}
if (!empty)
throw new InternalError();
throw new InternalError();
System.err.println("checkEmpty suceeded!");
}
@@ -120,31 +120,31 @@ class DeflaterHuffman
codes = new short[freqs.length];
if (DeflaterConstants.DEBUGGING)
System.err.println("buildCodes: "+freqs.length);
for (int bits = 0; bits < maxLength; bits++)
{
nextCode[bits] = code;
code += bl_counts[bits] << (15 - bits);
if (DeflaterConstants.DEBUGGING)
System.err.println("bits: "+(bits+1)+" count: "+bl_counts[bits]
+" nextCode: "+Integer.toHexString(code));
}
System.err.println("buildCodes: "+freqs.length);
for (int bits = 0; bits < maxLength; bits++)
{
nextCode[bits] = code;
code += bl_counts[bits] << (15 - bits);
if (DeflaterConstants.DEBUGGING)
System.err.println("bits: "+(bits+1)+" count: "+bl_counts[bits]
+" nextCode: "+Integer.toHexString(code));
}
if (DeflaterConstants.DEBUGGING && code != 65536)
throw new RuntimeException("Inconsistent bl_counts!");
throw new RuntimeException("Inconsistent bl_counts!");
for (int i=0; i < numCodes; i++)
{
int bits = length[i];
if (bits > 0)
{
if (DeflaterConstants.DEBUGGING)
System.err.println("codes["+i+"] = rev("
+Integer.toHexString(nextCode[bits-1])+"),"
+bits);
codes[i] = bitReverse(nextCode[bits-1]);
nextCode[bits-1] += 1 << (16 - bits);
}
}
{
int bits = length[i];
if (bits > 0)
{
if (DeflaterConstants.DEBUGGING)
System.err.println("codes["+i+"] = rev("
+Integer.toHexString(nextCode[bits-1])+"),"
+bits);
codes[i] = bitReverse(nextCode[bits-1]);
nextCode[bits-1] += 1 << (16 - bits);
}
}
}
private void buildLength(int childs[])
@@ -153,63 +153,63 @@ class DeflaterHuffman
int numNodes = childs.length / 2;
int numLeafs = (numNodes + 1) / 2;
int overflow = 0;
for (int i = 0; i < maxLength; i++)
bl_counts[i] = 0;
bl_counts[i] = 0;
/* First calculate optimal bit lengths */
int lengths[] = new int[numNodes];
lengths[numNodes-1] = 0;
for (int i = numNodes - 1; i >= 0; i--)
{
if (childs[2*i+1] != -1)
{
int bitLength = lengths[i] + 1;
if (bitLength > maxLength)
{
bitLength = maxLength;
overflow++;
}
lengths[childs[2*i]] = lengths[childs[2*i+1]] = bitLength;
}
else
{
/* A leaf node */
int bitLength = lengths[i];
bl_counts[bitLength - 1]++;
this.length[childs[2*i]] = (byte) lengths[i];
}
}
{
if (childs[2*i+1] != -1)
{
int bitLength = lengths[i] + 1;
if (bitLength > maxLength)
{
bitLength = maxLength;
overflow++;
}
lengths[childs[2*i]] = lengths[childs[2*i+1]] = bitLength;
}
else
{
/* A leaf node */
int bitLength = lengths[i];
bl_counts[bitLength - 1]++;
this.length[childs[2*i]] = (byte) lengths[i];
}
}
if (DeflaterConstants.DEBUGGING)
{
System.err.println("Tree "+freqs.length+" lengths:");
for (int i=0; i < numLeafs; i++)
System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]]
+ " len: "+length[childs[2*i]]);
}
{
System.err.println("Tree "+freqs.length+" lengths:");
for (int i=0; i < numLeafs; i++)
System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]]
+ " len: "+length[childs[2*i]]);
}
if (overflow == 0)
return;
return;
int incrBitLen = maxLength - 1;
do
{
/* Find the first bit length which could increase: */
while (bl_counts[--incrBitLen] == 0)
;
/* Move this node one down and remove a corresponding
* amount of overflow nodes.
*/
do
{
bl_counts[incrBitLen]--;
bl_counts[++incrBitLen]++;
overflow -= 1 << (maxLength - 1 - incrBitLen);
}
while (overflow > 0 && incrBitLen < maxLength - 1);
}
{
/* Find the first bit length which could increase: */
while (bl_counts[--incrBitLen] == 0)
;
/* Move this node one down and remove a corresponding
* amount of overflow nodes.
*/
do
{
bl_counts[incrBitLen]--;
bl_counts[++incrBitLen]++;
overflow -= 1 << (maxLength - 1 - incrBitLen);
}
while (overflow > 0 && incrBitLen < maxLength - 1);
}
while (overflow > 0);
/* We may have overshot above. Move some nodes from maxLength to
@@ -217,7 +217,7 @@ class DeflaterHuffman
*/
bl_counts[maxLength-1] += overflow;
bl_counts[maxLength-2] -= overflow;
/* Now recompute all bit lengths, scanning in increasing
* frequency. It is simpler to reconstruct all lengths instead of
* fixing only the wrong ones. This idea is taken from 'ar'
@@ -227,30 +227,30 @@ class DeflaterHuffman
* array.
*/
int nodePtr = 2 * numLeafs;
for (int bits = maxLength; bits != 0; bits--)
{
int n = bl_counts[bits-1];
while (n > 0)
{
int childPtr = 2*childs[nodePtr++];
if (childs[childPtr + 1] == -1)
{
/* We found another leaf */
length[childs[childPtr]] = (byte) bits;
n--;
}
}
}
for (int bits = maxLength; bits != 0; bits--)
{
int n = bl_counts[bits-1];
while (n > 0)
{
int childPtr = 2*childs[nodePtr++];
if (childs[childPtr + 1] == -1)
{
/* We found another leaf */
length[childs[childPtr]] = (byte) bits;
n--;
}
}
}
if (DeflaterConstants.DEBUGGING)
{
System.err.println("*** After overflow elimination. ***");
for (int i=0; i < numLeafs; i++)
System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]]
+ " len: "+length[childs[2*i]]);
}
{
System.err.println("*** After overflow elimination. ***");
for (int i=0; i < numLeafs; i++)
System.err.println("Node "+childs[2*i]+" freq: "+freqs[childs[2*i]]
+ " len: "+length[childs[2*i]]);
}
}
void buildTree()
void buildTree()
{
int numSymbols = freqs.length;
@@ -266,123 +266,123 @@ class DeflaterHuffman
int heapLen = 0;
int maxCode = 0;
for (int n = 0; n < numSymbols; n++)
{
int freq = freqs[n];
if (freq != 0)
{
/* Insert n into heap */
int pos = heapLen++;
int ppos;
while (pos > 0 &&
freqs[heap[ppos = (pos - 1) / 2]] > freq) {
heap[pos] = heap[ppos];
pos = ppos;
}
heap[pos] = n;
maxCode = n;
}
}
{
int freq = freqs[n];
if (freq != 0)
{
/* Insert n into heap */
int pos = heapLen++;
int ppos;
while (pos > 0 &&
freqs[heap[ppos = (pos - 1) / 2]] > freq) {
heap[pos] = heap[ppos];
pos = ppos;
}
heap[pos] = n;
maxCode = n;
}
}
/* We could encode a single literal with 0 bits but then we
* don't see the literals. Therefore we force at least two
* literals to avoid this case. We don't care about order in
* this case, both literals get a 1 bit code.
* this case, both literals get a 1 bit code.
*/
while (heapLen < 2)
{
int node = maxCode < 2 ? ++maxCode : 0;
heap[heapLen++] = node;
}
{
int node = maxCode < 2 ? ++maxCode : 0;
heap[heapLen++] = node;
}
numCodes = Math.max(maxCode + 1, minNumCodes);
int numLeafs = heapLen;
int[] childs = new int[4*heapLen - 2];
int[] values = new int[2*heapLen - 1];
int numNodes = numLeafs;
for (int i = 0; i < heapLen; i++)
{
int node = heap[i];
childs[2*i] = node;
childs[2*i+1] = -1;
values[i] = freqs[node] << 8;
heap[i] = i;
}
{
int node = heap[i];
childs[2*i] = node;
childs[2*i+1] = -1;
values[i] = freqs[node] << 8;
heap[i] = i;
}
/* Construct the Huffman tree by repeatedly combining the least two
* frequent nodes.
*/
do
{
int first = heap[0];
int last = heap[--heapLen];
/* Propagate the hole to the leafs of the heap */
int ppos = 0;
int path = 1;
while (path < heapLen)
{
if (path + 1 < heapLen
&& values[heap[path]] > values[heap[path+1]])
path++;
heap[ppos] = heap[path];
ppos = path;
path = path * 2 + 1;
}
/* Now propagate the last element down along path. Normally
* it shouldn't go too deep.
*/
int lastVal = values[last];
while ((path = ppos) > 0
&& values[heap[ppos = (path - 1)/2]] > lastVal)
heap[path] = heap[ppos];
heap[path] = last;
int second = heap[0];
/* Create a new node father of first and second */
last = numNodes++;
childs[2*last] = first;
childs[2*last+1] = second;
int mindepth = Math.min(values[first] & 0xff, values[second] & 0xff);
values[last] = lastVal = values[first] + values[second] - mindepth + 1;
/* Again, propagate the hole to the leafs */
ppos = 0;
path = 1;
while (path < heapLen)
{
if (path + 1 < heapLen
&& values[heap[path]] > values[heap[path+1]])
path++;
heap[ppos] = heap[path];
ppos = path;
path = ppos * 2 + 1;
}
/* Now propagate the new element down along path */
while ((path = ppos) > 0
&& values[heap[ppos = (path - 1)/2]] > lastVal)
heap[path] = heap[ppos];
heap[path] = last;
}
{
int first = heap[0];
int last = heap[--heapLen];
/* Propagate the hole to the leafs of the heap */
int ppos = 0;
int path = 1;
while (path < heapLen)
{
if (path + 1 < heapLen
&& values[heap[path]] > values[heap[path+1]])
path++;
heap[ppos] = heap[path];
ppos = path;
path = path * 2 + 1;
}
/* Now propagate the last element down along path. Normally
* it shouldn't go too deep.
*/
int lastVal = values[last];
while ((path = ppos) > 0
&& values[heap[ppos = (path - 1)/2]] > lastVal)
heap[path] = heap[ppos];
heap[path] = last;
int second = heap[0];
/* Create a new node father of first and second */
last = numNodes++;
childs[2*last] = first;
childs[2*last+1] = second;
int mindepth = Math.min(values[first] & 0xff, values[second] & 0xff);
values[last] = lastVal = values[first] + values[second] - mindepth + 1;
/* Again, propagate the hole to the leafs */
ppos = 0;
path = 1;
while (path < heapLen)
{
if (path + 1 < heapLen
&& values[heap[path]] > values[heap[path+1]])
path++;
heap[ppos] = heap[path];
ppos = path;
path = ppos * 2 + 1;
}
/* Now propagate the new element down along path */
while ((path = ppos) > 0
&& values[heap[ppos = (path - 1)/2]] > lastVal)
heap[path] = heap[ppos];
heap[path] = last;
}
while (heapLen > 1);
if (heap[0] != childs.length / 2 - 1)
throw new RuntimeException("Weird!");
throw new RuntimeException("Weird!");
buildLength(childs);
}
int getEncodedLength()
int getEncodedLength()
{
int len = 0;
for (int i = 0; i < freqs.length; i++)
len += freqs[i] * length[i];
len += freqs[i] * length[i];
return len;
}
@@ -391,46 +391,46 @@ class DeflaterHuffman
int min_count; /* min repeat count */
int count; /* repeat count of the current code */
int curlen = -1; /* length of current code */
int i = 0;
while (i < numCodes)
{
count = 1;
int nextlen = length[i];
if (nextlen == 0)
{
max_count = 138;
min_count = 3;
}
else
{
max_count = 6;
min_count = 3;
if (curlen != nextlen)
{
blTree.freqs[nextlen]++;
count = 0;
}
}
curlen = nextlen;
i++;
{
count = 1;
int nextlen = length[i];
if (nextlen == 0)
{
max_count = 138;
min_count = 3;
}
else
{
max_count = 6;
min_count = 3;
if (curlen != nextlen)
{
blTree.freqs[nextlen]++;
count = 0;
}
}
curlen = nextlen;
i++;
while (i < numCodes && curlen == length[i])
{
i++;
if (++count >= max_count)
break;
}
while (i < numCodes && curlen == length[i])
{
i++;
if (++count >= max_count)
break;
}
if (count < min_count)
blTree.freqs[curlen] += count;
else if (curlen != 0)
blTree.freqs[REP_3_6]++;
else if (count <= 10)
blTree.freqs[REP_3_10]++;
else
blTree.freqs[REP_11_138]++;
}
if (count < min_count)
blTree.freqs[curlen] += count;
else if (curlen != 0)
blTree.freqs[REP_3_6]++;
else if (count <= 10)
blTree.freqs[REP_3_10]++;
else
blTree.freqs[REP_11_138]++;
}
}
void writeTree(Tree blTree)
@@ -439,58 +439,58 @@ class DeflaterHuffman
int min_count; /* min repeat count */
int count; /* repeat count of the current code */
int curlen = -1; /* length of current code */
int i = 0;
while (i < numCodes)
{
count = 1;
int nextlen = length[i];
if (nextlen == 0)
{
max_count = 138;
min_count = 3;
}
else
{
max_count = 6;
min_count = 3;
if (curlen != nextlen)
{
blTree.writeSymbol(nextlen);
count = 0;
}
}
curlen = nextlen;
i++;
{
count = 1;
int nextlen = length[i];
if (nextlen == 0)
{
max_count = 138;
min_count = 3;
}
else
{
max_count = 6;
min_count = 3;
if (curlen != nextlen)
{
blTree.writeSymbol(nextlen);
count = 0;
}
}
curlen = nextlen;
i++;
while (i < numCodes && curlen == length[i])
{
i++;
if (++count >= max_count)
break;
}
while (i < numCodes && curlen == length[i])
{
i++;
if (++count >= max_count)
break;
}
if (count < min_count)
{
while (count-- > 0)
blTree.writeSymbol(curlen);
}
else if (curlen != 0)
{
blTree.writeSymbol(REP_3_6);
pending.writeBits(count - 3, 2);
}
else if (count <= 10)
{
blTree.writeSymbol(REP_3_10);
pending.writeBits(count - 3, 3);
}
else
{
blTree.writeSymbol(REP_11_138);
pending.writeBits(count - 11, 7);
}
}
if (count < min_count)
{
while (count-- > 0)
blTree.writeSymbol(curlen);
}
else if (curlen != 0)
{
blTree.writeSymbol(REP_3_6);
pending.writeBits(count - 3, 2);
}
else if (count <= 10)
{
blTree.writeSymbol(REP_3_10);
pending.writeBits(count - 3, 3);
}
else
{
blTree.writeSymbol(REP_11_138);
pending.writeBits(count - 11, 7);
}
}
}
}
@@ -514,9 +514,9 @@ class DeflaterHuffman
*/
static short bitReverse(int value) {
return (short) (bit4Reverse.charAt(value & 0xf) << 12
| bit4Reverse.charAt((value >> 4) & 0xf) << 8
| bit4Reverse.charAt((value >> 8) & 0xf) << 4
| bit4Reverse.charAt(value >> 12));
| bit4Reverse.charAt((value >> 4) & 0xf) << 8
| bit4Reverse.charAt((value >> 8) & 0xf) << 4
| bit4Reverse.charAt(value >> 12));
}
static {
@@ -550,8 +550,8 @@ class DeflaterHuffman
staticDLength[i] = 5;
}
}
public DeflaterHuffman(DeflaterPending pending)
public DeflaterHuffman(DeflaterPending pending)
{
this.pending = pending;
@@ -578,8 +578,8 @@ class DeflaterHuffman
int code = 257;
while (len >= 8)
{
code += 4;
len >>= 1;
code += 4;
len >>= 1;
}
return code + len;
}
@@ -588,8 +588,8 @@ class DeflaterHuffman
int code = 0;
while (distance >= 4)
{
code += 2;
distance >>= 1;
code += 2;
distance >>= 1;
}
return code + distance;
}
@@ -610,58 +610,58 @@ class DeflaterHuffman
}
public void compressBlock() {
for (int i = 0; i < last_lit; i++)
for (int i = 0; i < last_lit; i++)
{
int litlen = l_buf[i] & 0xff;
int dist = d_buf[i];
if (dist-- != 0)
{
if (DeflaterConstants.DEBUGGING)
System.err.print("["+(dist+1)+","+(litlen+3)+"]: ");
int litlen = l_buf[i] & 0xff;
int dist = d_buf[i];
if (dist-- != 0)
{
if (DeflaterConstants.DEBUGGING)
System.err.print("["+(dist+1)+","+(litlen+3)+"]: ");
int lc = l_code(litlen);
literalTree.writeSymbol(lc);
int lc = l_code(litlen);
literalTree.writeSymbol(lc);
int bits = (lc - 261) / 4;
if (bits > 0 && bits <= 5)
pending.writeBits(litlen & ((1 << bits) - 1), bits);
int bits = (lc - 261) / 4;
if (bits > 0 && bits <= 5)
pending.writeBits(litlen & ((1 << bits) - 1), bits);
int dc = d_code(dist);
distTree.writeSymbol(dc);
int dc = d_code(dist);
distTree.writeSymbol(dc);
bits = dc / 2 - 1;
if (bits > 0)
pending.writeBits(dist & ((1 << bits) - 1), bits);
}
else
{
if (DeflaterConstants.DEBUGGING)
{
if (litlen > 32 && litlen < 127)
System.err.print("("+(char)litlen+"): ");
else
System.err.print("{"+litlen+"}: ");
}
literalTree.writeSymbol(litlen);
}
bits = dc / 2 - 1;
if (bits > 0)
pending.writeBits(dist & ((1 << bits) - 1), bits);
}
else
{
if (DeflaterConstants.DEBUGGING)
{
if (litlen > 32 && litlen < 127)
System.err.print("("+(char)litlen+"): ");
else
System.err.print("{"+litlen+"}: ");
}
literalTree.writeSymbol(litlen);
}
}
if (DeflaterConstants.DEBUGGING)
System.err.print("EOF: ");
literalTree.writeSymbol(EOF_SYMBOL);
if (DeflaterConstants.DEBUGGING)
{
literalTree.checkEmpty();
distTree.checkEmpty();
literalTree.checkEmpty();
distTree.checkEmpty();
}
}
public void flushStoredBlock(byte[] stored,
int stored_offset, int stored_len,
boolean lastBlock) {
public void flushStoredBlock(byte[] stored,
int stored_offset, int stored_len,
boolean lastBlock) {
if (DeflaterConstants.DEBUGGING)
System.err.println("Flushing stored block "+ stored_len);
pending.writeBits((DeflaterConstants.STORED_BLOCK << 1)
+ (lastBlock ? 1 : 0), 3);
+ (lastBlock ? 1 : 0), 3);
pending.alignToByte();
pending.writeShort(stored_len);
pending.writeShort(~stored_len);
@@ -670,7 +670,7 @@ class DeflaterHuffman
}
public void flushBlock(byte[] stored, int stored_offset, int stored_len,
boolean lastBlock) {
boolean lastBlock) {
literalTree.freqs[EOF_SYMBOL]++;
/* Build trees */
@@ -687,8 +687,8 @@ class DeflaterHuffman
int blTreeCodes = 4;
for (int i = 18; i > blTreeCodes; i--)
{
if (blTree.length[BL_ORDER[i]] > 0)
blTreeCodes = i+1;
if (blTree.length[BL_ORDER[i]] > 0)
blTreeCodes = i+1;
}
int opt_len = 14 + blTreeCodes * 3 + blTree.getEncodedLength()
+ literalTree.getEncodedLength() + distTree.getEncodedLength()
@@ -701,36 +701,36 @@ class DeflaterHuffman
static_len += distTree.freqs[i] * staticDLength[i];
if (opt_len >= static_len)
{
/* Force static trees */
opt_len = static_len;
/* Force static trees */
opt_len = static_len;
}
if (stored_offset >= 0 && stored_len+4 < opt_len >> 3)
{
/* Store Block */
if (DeflaterConstants.DEBUGGING)
System.err.println("Storing, since " + stored_len + " < " + opt_len
+ " <= " + static_len);
flushStoredBlock(stored, stored_offset, stored_len, lastBlock);
/* Store Block */
if (DeflaterConstants.DEBUGGING)
System.err.println("Storing, since " + stored_len + " < " + opt_len
+ " <= " + static_len);
flushStoredBlock(stored, stored_offset, stored_len, lastBlock);
}
else if (opt_len == static_len)
{
/* Encode with static tree */
pending.writeBits((DeflaterConstants.STATIC_TREES << 1)
+ (lastBlock ? 1 : 0), 3);
literalTree.setStaticCodes(staticLCodes, staticLLength);
distTree.setStaticCodes(staticDCodes, staticDLength);
compressBlock();
reset();
/* Encode with static tree */
pending.writeBits((DeflaterConstants.STATIC_TREES << 1)
+ (lastBlock ? 1 : 0), 3);
literalTree.setStaticCodes(staticLCodes, staticLLength);
distTree.setStaticCodes(staticDCodes, staticDLength);
compressBlock();
reset();
}
else
{
/* Encode with dynamic tree */
pending.writeBits((DeflaterConstants.DYN_TREES << 1)
+ (lastBlock ? 1 : 0), 3);
sendAllTrees(blTreeCodes);
compressBlock();
reset();
/* Encode with dynamic tree */
pending.writeBits((DeflaterConstants.DYN_TREES << 1)
+ (lastBlock ? 1 : 0), 3);
sendAllTrees(blTreeCodes);
compressBlock();
reset();
}
}
@@ -739,14 +739,14 @@ class DeflaterHuffman
return last_lit == BUFSIZE;
}
public final boolean tallyLit(int lit)
public final boolean tallyLit(int lit)
{
if (DeflaterConstants.DEBUGGING)
{
if (lit > 32 && lit < 127)
System.err.println("("+(char)lit+")");
else
System.err.println("{"+lit+"}");
if (lit > 32 && lit < 127)
System.err.println("("+(char)lit+")");
else
System.err.println("{"+lit+"}");
}
d_buf[last_lit] = 0;
l_buf[last_lit++] = (byte) lit;
@@ -754,7 +754,7 @@ class DeflaterHuffman
return last_lit == BUFSIZE;
}
public final boolean tallyDist(int dist, int len)
public final boolean tallyDist(int dist, int len)
{
if (DeflaterConstants.DEBUGGING)
System.err.println("["+dist+","+len+"]");
@@ -57,21 +57,21 @@ import java.io.OutputStream;
* finishing the stream.
*
* @author Tom Tromey, Jochen Hoenicke
* @date Jan 11, 2001
* @date Jan 11, 2001
*/
public class DeflaterOutputStream extends FilterOutputStream
{
/**
/**
* This buffer is used temporarily to retrieve the bytes from the
* deflater and write them to the underlying output stream.
* deflater and write them to the underlying output stream.
*/
protected byte[] buf;
/**
/**
* The deflater which is used to deflate the stream.
*/
protected Deflater def;
/**
* Deflates everything in the def's input buffers. This will call
* <code>def.deflate()</code> until all bytes from the input buffers
@@ -81,19 +81,19 @@ public class DeflaterOutputStream extends FilterOutputStream
{
while (! def.needsInput())
{
int len = def.deflate(buf, 0, buf.length);
int len = def.deflate(buf, 0, buf.length);
// System.err.println("DOS deflated " + len + " out of " + buf.length);
if (len <= 0)
break;
out.write(buf, 0, len);
// System.err.println("DOS deflated " + len + " out of " + buf.length);
if (len <= 0)
break;
out.write(buf, 0, len);
}
if (! def.needsInput())
throw new InternalError("Can't deflate all input?");
}
/**
/**
* Creates a new DeflaterOutputStream with a default Deflater and
* default buffer size.
* @param out the output stream where deflated output should be written.
@@ -103,7 +103,7 @@ public class DeflaterOutputStream extends FilterOutputStream
this(out, new Deflater(), 4096);
}
/**
/**
* Creates a new DeflaterOutputStream with the given Deflater and
* default buffer size.
* @param out the output stream where deflated output should be written.
@@ -114,7 +114,7 @@ public class DeflaterOutputStream extends FilterOutputStream
this(out, defl, 4096);
}
/**
/**
* Creates a new DeflaterOutputStream with the given Deflater and
* buffer size.
* @param out the output stream where deflated output should be written.
@@ -131,7 +131,7 @@ public class DeflaterOutputStream extends FilterOutputStream
def = defl;
}
/**
/**
* Flushes the stream by calling flush() on the deflater and then
* on the underlying stream. This ensures that all bytes are
* flushed. This function doesn't work in Sun's JDK, but only in
@@ -147,17 +147,17 @@ public class DeflaterOutputStream extends FilterOutputStream
/**
* Finishes the stream by calling finish() on the deflater. This
* was the only way to ensure that all bytes are flushed in Sun's
* JDK.
* JDK.
*/
public void finish() throws IOException
{
def.finish();
while (! def.finished())
{
int len = def.deflate(buf, 0, buf.length);
if (len <= 0)
break;
out.write(buf, 0, len);
int len = def.deflate(buf, 0, buf.length);
if (len <= 0)
break;
out.write(buf, 0, len);
}
if (! def.finished())
throw new InternalError("Can't deflate all input?");
@@ -165,7 +165,7 @@ public class DeflaterOutputStream extends FilterOutputStream
}
/**
* Calls finish() and closes the stream.
* Calls finish() and closes the stream.
*/
public void close() throws IOException
{

Some files were not shown because too many files have changed in this diff Show More