2006-12-30  Casey Marshall  <csm@gnu.org>

	* gnu/java/security/x509/X509Certificate.java (serialVersionUID):
	new constant.
	(extensions): parameterize.
	(getExtendedKeyUsage): parameterize return type.
	(getSubjectAlternativeNames): parameterize return type; handle changes
	to `SubjectAlternativeNames' class.
	(getIssuerAlternativeNames): parameterize return type; handle changes
	to `IssuerAlternativeNames' class.
	(getCriticalExtensionOIDs, getNonCriticalExtensionOIDs): parameterize
	return type.
	* gnu/java/security/x509/ext/CertificatePolicies.java
	(policies, policyQualifierInfos): parameterize.
	* gnu/java/security/x509/ext/ExtendedKeyUsage.java (purposeIds): 
	parameterize.
	* gnu/java/security/x509/ext/Extension.java (<init>): add support
	for NameConstraints extension.
	* gnu/java/security/x509/ext/GeneralName.java: new class.
	* gnu/java/security/x509/ext/GeneralNames.java (names): parameterize;
	retrofit to use the GeneralName class. 
	* gnu/java/security/x509/ext/GeneralSubtree.java: new class.
	* gnu/java/security/x509/ext/IssuerAlternativeNames.java (getNames):
	change return type to GeneralName parameterized list.
	* gnu/java/security/x509/ext/NameConstraints.java: new class.
	* gnu/java/security/x509/ext/SubjectAlternativeNames.java (getNames):
	change return type to GeneralName parameterized list.
	* java/security/cert/X509CertSelector.java: re-sorted methods.
	(makeName): new method.
	(addPathToName, addPathToName, getPathToNames, getPolicy,
	getSubjectAlternativeNames, setPathToNames, setPolicy): implemented.
	(keyPurposeSet, altNames, policy): parametized.
	(pathToNames): new field.

2006-12-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/text/DateFormatSymbols:
	(DateFormatSymbols()): Update documentation.
	(DateFormatSymbols(Locale)): Likewise.
	(getInstance()): Implemented.
	(getInstance(Locale)): Partially implemented.
	* java/util/Calendar.java:
	(SHORT, LONG, ALL_STYLES): New constants.
	(getDisplayName(int,int,Locale)); Implemented.
	(getDisplayNames(int,int,Locale)): Likewise.
	
2006-12-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Arrays.java:
	(copyOf(boolean[],int)): Implemented.
	(copyOfRange(boolean[],int,int)): Likewise.
	(copyOf(byte[],int)): Likewise.
	(copyOfRange(byte[],int,int)): Likewise.
	(copyOf(char[],int)): Likewise.
	(copyOfRange(char[],int,int)): Likewise.
	(copyOf(double[],int)): Likewise.
	(copyOfRange(double[],int,int)): Likewise.
	(copyOf(float[],int)): Likewise.
	(copyOfRange(float[],int,int)): Likewise.
	(copyOf(int[],int)): Likewise.
	(copyOfRange(int[],int,int)): Likewise.
	(copyOf(long[],int)): Likewise.
	(copyOfRange(long[],int,int)): Likewise.
	(copyOf(short[],int)): Likewise.
	(copyOfRange(short[],int,int)): Likewise.
	(copyOf(T[],int)): Likewise.
	(copyOfRange(T[],int,int)): Likewise.
	(copyOf(U[],int,Class<? extends T>)): Likewise.
	(copyOfRange(U[],int,int,Class<? extends T>)):
	Likewise.
	* java/util/Collections.java:
	(asLifoQueue(Deque<T>)): Implemented.
	(newSetFromMap(Map<E>)): Likewise.
	(MapSet): New class for newSetFromMap.
	(LIFOQueue): New class for asLifoQueue.
	
2006-12-28  Jeroen Frijters  <jeroen@frijters.net>

	* javax/net/ssl/SSLServerSocketFactory.java:
	(getDefault): Return inoperative factory instead of throwing error
	(as per spec).
	(ErrorServerSocketFactory): New class.
	* javax/net/ssl/SSLSocketFactory.java:
	(getDefault): Return inoperative factory instead of throwing error
	(as per spec).
	(ErrorSocketFactory): New class.

2006-12-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/AbstractMap.java:
	(SimpleImmutableEntry): Document and add
	serialVersionUID.
	(SimpleEntry): Likewise, and fix JAPI errors.
	* java/util/TreeMap.java:
	(entrySet()): Return navigableSet instead.
	(headMap(K, boolean)): Implemented.
	(subMap(K, boolean, K, boolean)): Likewise.
	(tailMap(K, boolean)): Likewise.
	(highestLessThan(K,boolean)): Likewise.
	(lowestGreaterThan(K,boolean,boolean)): Likewise.
	(SubMap.ceilingEntry(K)): Likewise.
	(SubMap.ceilingKey(K)): Likewise.
	(SubMap.descendingKeySet()): Likewise.
	(SubMap.descendingMap()): Likewise.
	(SubMap.entrySet()): Return navigableSet instead.
	(SubMap.firstEntry()): Implemented.
	(SubMap.floorEntry(K)): Likewise.
	(SubMap.floorKey(K)): Likewise.
	(SubMap.headMap(K,boolean)): Likewise.
	(SubMap.higherEntry(K)): Likewise.
	(SubMap.higherKey(K)): Likewise.
	(SubMap.lastEntry()): Likewise.
	(SubMap.lowerEntry(K)): Likewise.
	(SubMap.lowerKey(K)): Likewise.
	(SubMap.navigableKeySet()): Likewise.
	(SubMap.pollFirstEntry()): Likewise.
	(SubMap.pollLastEntry()): Likewise.
	(SubMap.subMap(K,boolean,K,boolean)): Likewise.
	(SubMap.tailMap(K,boolean)): Likewise.
	(SubMap.KeySet): New class for keySet().
	(SubMap.NavigableKeySet): New class for navigableKeySet().
	(SubMap.EntrySet): New class for entrySet().
	(SubMap.NavigableEntrySet): Likewise.
	(ceilingEntry(K)): Likewise.
	(ceilingKey(K)): Likewise.
	(descendingKeySet()): Likewise.
	(descendingMap()): Likewise.
	(firstEntry()): Implemented.
	(floorEntry(K)): Likewise.
	(floorKey(K)): Likewise.
	(higherEntry(K)): Likewise.
	(higherKey(K)): Likewise.
	(lastEntry()): Likewise.
	(lowerEntry(K)): Likewise.
	(lowerKey(K)): Likewise.
	(navigableKeySet()): Likewise.
	(pollFirstEntry()): Likewise.
	(pollLastEntry()): Likewise.
	(DescendingMap): New class for descendingMap().
	(KeySet): New class for keySet().
	(NavigableKeySet): New class for navigableKeySet().
	(DescendingSet): New class for descendingSet().
	(EntrySet): New class for entrySet().
	(NavigableEntrySet): Likewise.
	* java/util/TreeSet.java:
	(headSet(T,boolean)): Implemented.
	(subSet(T,boolean,T,boolean)): Likewise.
	(tailSet(T,boolean)): Likewise.
	(descendingIterator()): Likewise.
	(descendingSet()): Likewise.
	(floor(T)): Likewise.
	(higher(T)): Likewise.
	(lower(T)): Likewise.
	(pollFirst(T)): Likewise.
	(pollLast(T)): Likewise.
	
2006-12-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/LinkedList.java:
	(offer(T)): Documented.
	(element()): Likewise.
	(peek()): Likewise.
	(poll()): Likewise.
	(remove()): Likewise.
	(descendingIterator()): Implemented.
	(offerFirst(T)): Likewise.
	(offerLast(T)): Likewise.
	(peekFirst()): Likewise.
	(peekLast()): Likewise.
	(pollFirst()): Likewise.
	(pollLast()): Likewise.
	(pop()): Likewise.
	(push(T)): Likewise.
	(removeFirstOccurrence(Object)): Likewise.
	(removeLastOccurrence(Object)): Likewise.
	
2006-12-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS: Mention 1.6 support for java.lang.management
	* configure.ac: Check for getloadavg.
	* examples/gnu/classpath/examples/management/TestOS.java:
	Print system load average.
	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java:
	(getSystemLoadAverage()): Implemented.
	* include/Makefile.am: Add new header.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h:
	Regenerated.
	* include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h:
	Generated.
	* java/lang/management/OperatingSystemMXBean.java:
	(getSystemLoadAverage()): Implemented.
	* native/jni/java-lang/Makefile.am: Add new native code.
	* native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
	New file.
	* vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java:
	Likewise.
	
2006-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Add information on threading bean VM update.
	
2006-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Updated to match new threading bean API.
	* gnu/java/lang/management/ThreadMXBeanImpl.java:
	(MONITOR_SUPPORT): New constant for object monitor
	lock support property.
	(SYNCHRONIZER_SUPPORT): New constant for ownable
	synchronizer lock support property.
	(dumpAllThreads(boolean,boolean)): Implemented.
	(findDeadlockedThreads()): Likewise.
	(getThreadInfo(long[],boolean,boolean)): Likewise.
	(isObjectMonitorUsageSupported()): Likewise.
	(isSynchronizerUsageSupported()): Likewise.
	* java/lang/management/ThreadInfo.java:
	(ThreadInfo(Thread,long,long,Object,Thread,long,
	long,boolean,boolean,StackTraceElement[],
	MonitorInfo[], LockInfo[])): New constructor.
	(ThreadInfo(long,String,Thread.State,long,long,
	String,long,String,long,long,boolean,boolean,
	StackTraceElement[],MonitorInfo[], LockInfo[])):
	Likewise.
	(from(CompositeData)): Updated to handle new attributes.
	(getLockedMonitors()): Implemented.
	(getLockedSynchronizers()): Likewise.
	(getLockInfo()): Likewise.
	(getLockName()): Handle blocking as documented in 1.6
	(getLockOwnerId()): Likewise.
	(getLockOwnerName()): Likewise.
	(toString()): Likewise.
	(isThreadBlocked()): Thread blocked check based on
	documented 1.6 semantics.
	* java/lang/management/ThreadMXBean.java:
	(dumpAllThreads(boolean,boolean)): Implemented.
	(findDeadlockedThreads()): Likewise.
	(getThreadInfo(long[],boolean,boolean)): Likewise.
	(isObjectMonitorUsageSupported()): Likewise.
	(isSynchronizerUsageSupported()): Likewise.
	* vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java:
	(findDeadlockedThreads()): New native method.
	(getLockInfo(ThreadInfo)): Likewise.
	(getMonitorInfo(ThreadInfo)): Likewise.
	
2006-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MonitorInfo.java:
	Make variables private.
	* java/util/Arrays.java:
	(binarySearch(byte[],byte)): Implemented in terms
	of range-based variant.
	(binarySearch(short[],short)): Likewise.
	(binarySearch(int[],int)): Likewise.
	(binarySearch(long[],long)): Likewise.
	(binarySearch(char[],char)): Likewise.
	(binarySearch(float[],float)): Likewise.
	(binarySearch(double[],double)): Likewise.
	(binarySearch(byte[],int,int,byte)): Implemented.
	(binarySearch(short[],int,int,short)): Likewise.
	(binarySearch(int[],int,int,int)): Likewise.
	(binarySearch(long[],int,int,long)): Likewise.
	(binarySearch(char[],int,int,char)): Likewise.
	(binarySearch(float[],int,int,float)): Likewise.
	(binarySearch(double[],int,int,double)): Likewise.
	(binarySearch(Object[],int,int,Object)): Likewise.
	(binarySearch(T[],int,int,T,Comparator)): Likewise.
	
2006-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/ConstructorProperties.java:
	New file.
	* java/lang/management/LockInfo.java:
	Likewise.
	* java/lang/management/MonitorInfo.java:
	Likewise.
	* java/lang/management/ThreadInfo.java:
	(getStackTraceType()): New method to
	make the StackTraceElement type accessible.
	(from(CompositeData)): Refactored to use
	getStackTraceType().
	
2006-12-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/classpath/Pair.java: New class.
	* java/io/ObjectInputStream.java:
	(readUnshared()): Implemented.
	(readObject(boolean)): Renamed from readObject
	in order to handle unshared serialization.
	(parseContent(byte,boolean)): Added unshared parameter.
	(assignNewHandle(Object,boolean)): Likewise.
	(rememberHandle(Object,boolean,int)): Likewise.
	(lookupHandle(int)): Added handling of invalidated handles.
	(processResolution(ObjectStreamClass,Object,int,boolean)):
	Added unshared parameter.
	* java/io/ObjectOutputStream.java:
	(writeUnshared()): Implemented.
	(writeObject(Object,boolean)): Renamed from
	writeObject(Object) in order to handle
	unshared serialization.
	
2006-12-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(translate(String)): Correct handling of
	CompositeData objects.
	* java/lang/management/ManagementFactory.java:
	(ManagementInvocationHandler.invoke(Object,
	Method,Object[])): Handle translation and notifications.
	(ManagementInvocationHandler.translate(Object,
	Method)): Implement type translation.
	* java/lang/management/MemoryUsage.java:
	(from(CompositeData)): Fix capitalisation.
	* java/lang/management/ThreadInfo.java:
	(from(CompositeData)): Likewise.
	* javax/management/StandardMBean.java:
	(getMBeanInfo()): Add notification handling.
		
2006-12-23  Sven de Marothy  <sven@physto.se>

	* java/util/GregorianCalendar.java,
	(add): Don't set fields directly anymore. Use set()

2006-12-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/30268:
	* javax/management/MBeanServerFactory.java:
	Initialise map of servers immediately.
	(createMBeanServer(String)): Remove map
	construction.

2006-12-22  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(shiftX): Remove rounding.
	(shiftY): Likewise.

2006-12-22  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(locked): Removed field.
	(BufferedImageGraphics): Remove locked flag.
	(drawComposite): Transform bounds properly; set cairo composite directly.
	(drawImage): Transform bounds properly.
	(updateBufferedImage): Remove locked flag; transform bounds properly.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copyArea): Add comment.
	(drawImage): Transform bounds properly; update clipping region.
	(getClipInDevSpace): Transform bounds properly.
	(getTransformedBounds): New method.
	(setAntialias): Updated javadoc.
	(setCustomPaint): Transform bounds properly.
	(updateClip): Avoid use of GeneralPath when possible.

2006-12-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/30217:
	* javax/management/ObjectName.java:
	(getKeyPropertyList()): Remove cast and call
	to UnmodifiableMap.
	
2006-12-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/30216:
	* javax/management/MBeanServerDelegate.java:
	Initialise list of listeners immediately.
	(addListener(NotificationListener)): Remove list
	construction.
	
2006-12-21  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/Headers.java: Update imports.  Implement
	Iterable<Headers.HeaderElement>.
	(iterator): Make public.
	* gnu/java/net/protocol/http/Request.java (dispatch): Use enhanced for
	loop.
	(notifyHeaderHandlers): Same.
	* gnu/java/net/protocol/http/SimpleCookieManager.java (addCookies):
	Remove unneeded cast.

2006-12-21  Mario Torre  <neugens@limasoftware.net>

	* .settings/org.eclipse.jdt.core.prefs: set compilation flag to warning
	instead of error for empty control flow statements.
	* gnu/javax/swing/text/html/css/CSSParser.java (parseSelector): 
	(parseValue): Reverted last change.
	* java/text/BreakIterator.java (preceding): likewise.
	* external/jsr166/java/util/AbstractQueue.java (clear): likewise.
	* gnu/java/io/Base64InputStream.java (read): likewise.
	* javax/swing/text/DefaultStyledDocument.java (ElementBuffer.insertUpdate): 
	likewise.
	* java/util/zip/DeflaterEngine.java (findLongestMatch): likewise.
	* java/util/zip/ZipInputStream.java (closeEntry): likewise.
	* java/util/zip/DeflaterHuffman.java (Tree.buildLength): likewise.
	* java/io/StreamTokenizer.java (nextToken): likewise.
	* gnu/javax/imageio/png/PNGICCProfile.java (PNGICCProfile): likewise.
	* gnu/java/awt/font/opentype/truetype/VirtualMachine.java (execute):
	likewise.
	* gnu/java/nio/charset/ByteCharset.java (Decoder.decodeLoop): likewise.
	Also fixed typo.
	* gnu/java/awt/print/PostScriptGraphics2D.java (spoolPostScript): likewise.
	* gnu/java/awt/print/JavaPrinterGraphics.java (spoolPostScript): likewise.
	* gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java (engineVerify):
	likewise.
	* javax/swing/text/html/CSSParser.java: 
	(parse): likewise.
	* java/lang/String.java (trim): likewise.
	* java/lang/StrictMath.java (remPiOver2): likewise.
	* gnu/java/awt/peer/qt/QtToolkit.java (QtToolkit): likewise.
	* javax/swing/JComponent.java (paintImmediately2): likewise.
	(paintChildren): likewise.
	* java/util/EnumMap.java (..next): likewise.
	* java/util/BitSet.java (length): likewise.
	* java/util/Collections.java (binarySearch): likewise.
	* java/util/StringTokenizer.java (nextToken): likewise.
	* java/util/PriorityQueue.java (.next): likewise.
	* java/math/BigInteger.java (BigInteger): likewise.
	* gnu/java/lang/management/BeanImpl.java (translate): likewise.

2006-12-19  Mario Torre  <neugens@limasoftware.net>

	* javax/imageio/spi/ServiceRegistry.java: fixed Empty control-flow
	statement.
	* tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java: likewise.
	* gnu/java/io/Base64InputStream.java (read): likewise.
	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java: likewise.
	* java/util/zip/DeflaterEngine.java (findLongestMatch): likewise.
	* java/util/zip/ZipInputStream.java (closeEntry): likewise.
	* java/util/zip/DeflaterHuffman.java (Tree.buildLength): likewise.
	* org/omg/CORBA/ORB.java: likewise.
	* javax/swing/plaf/metal/MetalFileChooserUI.java: likewise.
	* gnu/javax/imageio/png/PNGICCProfile.java (PNGICCProfile): likewise.
	* tools/external/asm/org/objectweb/asm/xml/ASMContentHandler.java: likewise.
	* java/text/MessageFormat.java (MessageFormatElement.setLocale): likewise.
	* java/text/BreakIterator.java (preceding): likewise.
	* gnu/javax/net/ssl/provider/SSLEngineImpl.java: likewise.
	* gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java (engineVerify):
	likewise.
	* java/beans/XMLEncoder.java (writeObject): likewise.
	* gnu/java/beans/encoder/ScanEngine.java (ScanEngine): likewise.
	* java/util/Collections.java (binarySearch): likewise.
	* java/util/StringTokenizer.java (nextToken): likewise.
	* java/util/PriorityQueue.java (.next): likewise.
	* java/util/EnumMap.java (..next): likewise.
	* java/util/BitSet.java (length): likewise.
	* java/util/Date.java (parse): likewise.
	* javax/swing/text/html/CSSParser.java (parse): likewise.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneScrollLayout.calculateTabRects): likewise.
	* java/lang/Character.java (UnicodeBlock): likewise.
	* java/lang/String.java (trim): likewise.
	* java/lang/StrictMath.java (remPiOver2): likewise. 
	* javax/swing/JFormattedTextField.java (commitEdit): likewise.
	* javax/swing/JComponent.java (paintImmediately2): likewise.
	(paintChildren): likewise.
	* javax/swing/JToolTip.java (paramString): likewise.
	* javax/swing/JEditorPane.java (JEditorPane): likewise.
	* gnu/CORBA/Poa/gnuPOA.java: likewise.
	* gnu/javax/security/auth/login/ConfigFileParser.java
	(parseAppOrOtherEntry): likewise.
	(parse): likewise.
	* java/math/BigInteger.java (setBitOp): likewise.
	(add): likewise.
	(BigInteger): likewise.
	* gnu/java/lang/management/BeanImpl.java (translate): likewise.
	* javax/swing/text/DefaultStyledDocument.java (ElementBuffer.insertUpdate):
	likewise.
	* javax/swing/text/AbstractDocument.java (BranchElement): likewise.
	* javax/swing/text/JTextComponent.java (getScrollableTracksViewportWidth): 
	likewise.
	* javax/swing/text/FieldView.java (checkContainer): likewise.
	* javax/swing/text/AsyncBoxView.java (ChildLocator.updateChildOffsets): 
	likewise.
	* java/text/DecimalFormat.java (formatToCharacterIterator): likewise.
	(parse): small refactoring.

2006-12-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Enum.java:
	(finalize()): Implemented.
	
2006-12-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(getAttribute(String)): Fix Map and List conversion.
	* java/lang/management/ManagementFactory.java:
	(newPlatformMXBeanProxy(MBeanServerConnection,
	String, Class<T>)): Add a comma.
	
2006-12-18  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/net/VMNetworkInterface.java (addresses):
	Genericized.
	(VMNetworkInterface): Updated.
	* java/net/URLClassLoader.java (urls): Genericized.
	(urlinfos): Likewise.
	(addURLImpl): Updated.
	(findClass): Likewise.
	(newInstance): Likewise.
	* java/net/URL.java (ph_cache): Genericized.
	(getURLStreamHandler): Updated.
	* java/net/ResolverCache.java (cache): Genericized.
	(killqueue): Likewise.
	* java/net/NetworkInterface.java (getInetAddresses): Genericized.
	* java/net/MimeTypeMapper.java (mime_types): Genericized.
	(fillFromFile): Likewise.
	(main): Likewise.
	* gnu/java/net/protocol/jar/Handler.java (flat): Genericized.
	* gnu/java/net/protocol/jar/Connection.java (JarFileCache.cache):
	Genericized.
	(JarFileCache.get): Updated.
	* gnu/java/net/protocol/http/SimpleCookieManager.java (cookies):
	Genericized.
	(SimpleCookieManager): Updated.
	(setCookie): Likewise.
	(getCookies): Likewise.
	(addCookies): Likewise.
	* gnu/java/net/protocol/http/Request.java (responseHeaderHandlers):
	Genericized.
	(Request): Updated.
	(createResponseBodyStream): Removed unused variable.
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Remove
	unused variable.
	(getRequestProperties): Genericized.
	* gnu/java/net/protocol/http/HTTPConnection.java
	(handshakeCompletedListeners): Genericized.
	(nonceCounts): Likewise.
	(HTTPConnection): Updated.
	(Pool.connectionPool): Likewise.
	(getNonceCount): Updated.
	(incrementNonce): Likewise.
	* gnu/java/net/protocol/http/Headers.java (headers): Genericized.
	* gnu/java/net/protocol/http/ChunkedInputStream.java (CR, LF): Removed
	unused fields.
	* gnu/java/net/protocol/ftp/FTPURLConnection.java (connect):
	Genericized.
	(getRequestProperties): Likewise.
	(addRequestPropertyValue): Likewise.  Fixed return result.
	* gnu/java/net/protocol/ftp/FTPConnection.java (nameList):
	Genericized.
	* gnu/java/net/local/LocalSocket.java: Fixed imports.
	* gnu/java/net/local/LocalServerSocket.java: Fixed imports.
	* gnu/java/net/loader/URLStreamHandlerCache.java (factoryCache):
	Genericized.
	(add): Updated.
	(get): Likewise.
	* gnu/java/net/loader/URLLoader.java (getClassPath): Genericized.
	* gnu/java/net/loader/JarURLLoader.java (classPath): Genericized.
	(initialize): Updated.
	(getClassPath): Genericized.
	* gnu/java/net/IndexListParser.java (prefixes): Genericized.
	(IndexListParser): Updated.
	(getHeaders): Likewise.
	* gnu/java/net/HeaderFieldHelper.java (headerFieldKeys): Genericized.
	(headerFieldValues): Likewise.
	(HeaderFieldHelper): Updated.
	(getHeaderFieldValueByKey): Likewise.
	(getHeaderFields): Likewise.
	* gnu/java/net/GetLocalHostAction.java: Genericized.
	* gnu/java/net/DefaultContentHandlerFactory.java (imageTypes):
	Genericized.

2006-12-18  Tom Tromey  <tromey@redhat.com>

	* java/util/prefs/Preferences.java (getFactory): Genericized.
	* java/util/prefs/AbstractPreferences.java (childCache): Genericized.
	(nodeListeners): Likewise.
	(preferenceListeners): Likewise.
	(cachedChildren): Rewrote.
	(childrenNames): Updated.
	(addNodeChangeListener): Likewise.
	(addPreferenceChangeListener): Likewise.
	* gnu/java/util/prefs/gconf/GConfNativePeer.java (getKeys):
	Genericized.
	(getChildrenNodes): Likewise.
	(gconf_client_all_nodes): Likewise.
	(gconf_client_all_keys): Likewise.
	* gnu/java/util/prefs/MemoryBasedPreferences.java (entries):
	Genericized.
	(keysSpi): Likewise.
	(getSpi): Likewise.
	* gnu/java/util/prefs/GConfBasedPreferences.java (childrenNamesSpi):
	Genericized.
	(keysSpi): Likewise.
	(postorderRemove): Likewise.
	* gnu/java/util/prefs/EventDispatcher.java (queue): Genericized.
	(run): Updated.

2006-12-18  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(drawGlyphVector): Round bounds instead of casting & truncating..

2006-12-17  Tom Tromey  <tromey@redhat.com>

	* javax/sound/sampled/BooleanControl.java (type): Removed unused
	field.
	* javax/sound/sampled/AudioSystem.java (getAudioFileTypes):
	Genericized.
	(getAudioInputStream): Removed unused variable.
	(getMixerInfo): Genericized.
	(getSourceLineInfo): Likewise.
	(getTargetEncodings): Likewise.
	(getTargetFormats): Likewise.
	(getTargetLineInfo): Likewise.
	* javax/sound/sampled/AudioFormat.java (properties): Genericized.
	(AudioFormat): Updated.
	* javax/sound/sampled/AudioFileFormat.java (properties): Genericized.
	(AudioFileFormat): Updated.

2006-12-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementFactory.java:
	(newPlatformMXBeanProxy(MBeanServerConnection,
	String, Class<T>)): Initial implementation.
	
2006-12-17  Tom Tromey  <tromey@redhat.com>

	* javax/naming/spi/Resolver.java: Fixed comments and imports.
	* javax/naming/ldap/InitialLdapContext.java (InitialLdapContext):
	Genericized.
	* javax/naming/directory/BasicAttributes.java (attributes):
	Genericized.
	(BasicAttributes): Updated.
	(get): Likewise.
	(getAll): Likewise.
	(getIDs): Rewrote.
	(readObject): Updated.
	(BasicAttributesEnumeration): Genericized.
	* javax/naming/directory/BasicAttribute.java (BasicAttribute):
	Genericized.
	(clone): Likewise.
	(readObject): Likewise.
	* javax/naming/Reference.java (Reference): Genericized.
	(clone): Likewise.
	(get): Likewise.
	(get): Likewise.
	* javax/naming/InitialContext.java (colon_list): Genericized.
	(merge): Likewise.
	* javax/naming/CompoundName.java (elts): Genericized.
	(CompoundName): Updated.
	(addAll): Likewise.
	(compareTo): Likewise.
	(endsWith): Likewise.
	(get): Likewise.
	(hashCode): Likewise.
	(startsWith): Likewise.
	(readObject): Likewise.
	* javax/naming/CompositeName.java (elts): Genericized.
	(CompositeName): Updated.
	(addAll): Likewise.
	(compareTo): Likewise.
	(get): Likewise.
	(getPrefix): Likewise.
	(getSuffix): Likewise.
	(toString): Likewise.
	(readObject): Likewise.

2006-12-17  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/include/layout.wml: Remove gif reference.
	* doc/www.gnu.org/include/macros.wml: Correct FSF contact info.

	* doc/www.gnu.org/newsitems.txt: Add 0.93.
	* doc/www.gnu.org/downloads/downloads.wml: Likewise.
	* doc/www.gnu.org/announce/20061211.wml: New file.

2006-12-17  Mark Wielaard  <mark@klomp.org>

	* examples/Makefile.am (JCOMPILER): Don't warn for deprecation,
	serial, typeHiding, unchecked, unused and varargsCast.
	* tools/Makefile.am (JCOMPILER): Likewise.

2006-12-17  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am (TOOLS_ZIP): Don't remove .lst files immediately.
	(clean-local): Remove all .lst files
	* tools/.cvsignore: Add *.lst.

2006-12-16  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/awt/HintingDemo.java:
	New demonstration program for the autohinter.

2006-12-16  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/FontDelegate.java
	(FLAG_FITTED): New constant field.
	(FLAG_NO_HINT_HORIZONTAL): New constant field.
	(FLAG_NO_HINT_VERTICAL): New constant field.w
	(FLAG_NO_HINT_EDGE_POINTS): New constant field.
	(FLAG_NO_HINT_STRONG_POINTS): New constant field.
	(FLAG_NO_HINT_WEAK_POINTS): New constant field.
	(TYPE_FITTED): Replaced by flags above.
	(TYPE_SCALED): Replaced by flags above.
	(TYPE_ORIGINAL): Replaced by flags above.
	* gnu/java/awt/font/GNUGlyphVector.java
	(getGlyphOutline): Use FLAG_FITTED.
	* gnu/java/awt/font/autofit/AutoHinter.java
	(setFlags): New method. Sets hinting flags.
	* gnu/java/awt/font/autofit/GlyphHints.java
	(flags): New field.
	(alignStrongPoint): Use 16.16 fixed arithmetic.
	(doAlignEdgePoints): New helper method.
	(doAlignStrongPoints): New helper method.
	(doAlignWeakPoints): New helper method.
	(doHorizonal): Check flags.
	(doVertical): Check flags.
	* gnu/java/awt/font/autofit/Latin.java
	(applyHints): Check hinting flags.
	(computeEdges): Also initialize fitted position.
	(scaleMetricsDim): Commented out buggy block.
	* gnu/java/awt/font/opentype/Hinter.java
	(setFlags): New method.
	* gnu/java/awt/font/opentype/OpenTypeFont.java
	(checkHinter): Accept flags parameter.
	(createGlyphVector): Pass flags to hinter.
	(getGlyphOutline): Pass flags to hinter.
	* gnu/java/awt/font/opentype/truetype/Fixed.java
	(floatValue16): New method.
	* gnu/java/awt/font/opentype/truetype/Zone.java
	(getX): Use new flags.
	(getY): Use new flags.

2006-12-16  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am (TOOLS_ZIP): Remove all-classes.lst.
	(clean-local): Likewise.

2006-12-16  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am (TOOLS_ZIP): Don't pass -w to JCOMPILER.

2006-12-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Collections.java:
	(toArray()): Return Object[] as required.
	(toArray(S[])): Use new type variable S rather than
	the class one.
	
2006-12-15  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* m4/acinclude.m4 (CLASSPATH_FIND_JAVAC): Added support for Sun's
	javac.
	(CLASSPATH_WITH_JAVAC): Added.
	(CLASSPATH_CHECK_JAVAC): Likewise.
	* lib/Makefile.am (JAVAC): Renamed to JCOMPILER.
	(FOUND_JAVAC): Added support for Sun's javac.
	* examples/Makefile.am: Likewise.
	* tools/Makefile.am: Likewise.

2006-12-15  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(draw): Pass boolean to setAntialias.
	(drawGlyphVector): Likewise.
	(drawString): Likewise.
	(fill): Likewise.
	(setAntialias): Change signature to accept boolean.

2006-12-15  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/FontDelegate.java
	(TYPE_FITTED): New constant.
	(TYPE_ORIGINAL): New constant.
	(TYPE_SCALED): New constant.
	(getGlyphOutline): Allow the kind of outline be specified as one
	of the constants above.
	* gnu/java/awt/font/GNUGlyphVector.java
	(getGlyphOutline(int,int)): Add type parameter for fetching
	the intermediate outlines for debugging.
	(getGlyphOutline(int)): Fetch TYPE_FITTED outline from font
	delegate.
	(getOutline(float,float,int)): Added for debugging purpose.
	(performDefaultLayout): Round the advance here for better hinting.
	This is only a workaround for not hinting the metrics right now.
	* gnu/java/awt/font/autofit/AxisHints.java
	(getEdgeIndex): New helper method. Fetches the index of
	a given edge in the array.
	(newEdge): Fixed sorting.
	* gnu/java/awt/font/autofit/Edge.java
	(pos): New field. Stores the fitted position.
	(scale): New field.
	(toString): More debug output.
	* gnu/java/awt/font/autofit/GlyphHints.java
	(alignEdgePoints): New method. Aligns the points of an outline
	to their edges hinted positions.
	(alignStrongPoints): New method. Aligns strong points.
	(alignWeakPoints): New method. Aligns weak points.
	(getPointIndex): New helper method.
	(iupInterp): New helper method. Interpolates points.
	(iupShift): New helper method. Shifts a complete contour.
	(storePoint): New helper method.
	* gnu/java/awt/font/autofit/Latin.java
	(alignEdgePoints): Moved to GlyphHints.
	(alignLinkedEdge): New helper method.
	(alignSerifEdge): New helper method.
	(alignStrongPoints): Moved to GlyphHints.
	(alignWeakPoints): Moved to GlyphHints.
	(applyHints): Call moved methods on GlyphHints.
	(computeStemWidth): New helper method.
	(doHorzSnap): New helper method.
	(doVertSnap): New helper method.
	(doMono): New helper method.
	(doneWidth): New helper method.
	(doStemAdjust): New helper method.
	(hintEdges): Implemented.
	(initWidths): Removed old comment.
	(snapWidth): New helper method.
	* gnu/java/awt/font/autofit/Width.java
	(toString): More debug output.
	* gnu/java/awt/font/opentype/OpenTypeFont.java
	(getGlyphOutline): Add type parameter for debugging.
	* gnu/java/awt/font/opentype/Scaler.java
	(getOutline): Add type parameter for debugging.
	* gnu/java/awt/font/opentype/truetype/Point.java
	Make all flags of short type. Add new accessor methods for
	coordinates that can return scaled and original shapes too.
	* gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java
	(getOutline): Add type parameter for debugging.
	* gnu/java/awt/font/opentype/truetype/Zone.java
	Add type parameter to X and Y accessors.
	(getPath): Add type parameter.
	(getPathIterator): Likewise.
	(transform): Do store transformed value in the x and y fields too.
	* gnu/java/awt/font/opentype/truetype/ZonePathIterator.java
	(type): New field.
	(ZonePathIterator): Add type parameter.
	(getSegment): Fetch coordinates with type.
	(getStartSegment): Likewise.

2006-12-15  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* autogen.sh: Check for all 2.6x autoconf versions.

2006-12-15  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(antialias): New private field.
	(ignoreAA): New private field.
	(cairoSetAntialias): New native method.
	(draw): Check anti-alias setting.
	(drawGlyphVector): Likewise.
	(drawString): Likewise.
	(fill): Likewise.
	(setAntialias): New private method.
	(setup): Set default antialias value.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c:
	(gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetAntialias): New method.

2006-12-15  Tom Tromey  <tromey@redhat.com>

	* external/jsr166/.cvsignore: Added Makefile.

2006-12-15  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/serialver/SerialVer.java (addFileURL):
	Genericized.
	(getClassLoader): Likewise.
	(classes): Likewise.
	* tools/gnu/classpath/tools/native2ascii/Native2ASCII.java (main):
	Removed unused variable.
	* tools/gnu/classpath/tools/jar/WorkSet.java (allItems): Genericize.
	(initSet): Likewise.
	* tools/gnu/classpath/tools/jar/Main.java (entries): Genericize.
	* tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile):
	Genericized.
	* tools/gnu/classpath/tools/jar/Creator.java (writeFile): Close the
	input stream.
	(writtenItems): Genericize.
	(addEntries): Likewise.
	(getAllEntries): Likewise.

2006-12-15  Tom Tromey  <tromey@redhat.com>

	PR classpath/29526:
	* gnu/java/nio/ChannelInputStream.java (read): New overload.
	(read): Mask return result.

2006-12-15  Andrew Haley  <aph@redhat.com>

	* tools/Makefile.am (TOOLS_ZIP): Pass -g -w to javac.
	Create all-classes.lst that contains all source filenames.
	Delete asm.lst.

	* tools/gnu/classpath/tools/jar/Creator.java (writeFile): Close
	the inputStream.

2006-12-14  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/HTTPURLConnection.java: Clean
	imports.
	(getHeaderFields): Change return type to Map<String,List<String>>
	* gnu/java/net/protocol/http/Headers.java: Clean imports.
	(headers) Change type to ArrayList<HeaderElement>.
	(iterator) Change return type to Iterator<HeaderElement>.
	(getValue) Remove casts.
	(put) Same.
	(putAll) Same.
	(remove) Same.
	(getAsMap) Change return type to Map<String,List<String>> and use
	generics internally.
	(getHeaderName) Remove casts.
	(getHeaderValue) Same.

2006-12-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/autofit/HintScaler.java
	Renamed Scaler to HintScaler to avoid name-clash.
	* gnu/java/awt/font/autofit/AutoHinter.java
	(scaler): New field.
	(applyHints): Scale the metrics before applying the hints.
	(init): Copy font into scaler.
	* gnu/java/awt/font/autofit/Edge.java
	(blueEdge): New field.
	(toString): Include first and last fields in debug output.
	* gnu/java/awt/font/autofit/GlyphHints.java
	(reload): Grab the scales here.
	* gnu/java/awt/font/autofit/Latin.java
	(computeBlueEdges): Implemented blue-edge detection.
	(computeEdges): Correctly calculate edgeDistanceThreshold and
	the scaled edge position.
	(initWidths): Renamed Scaler to HintScaler. Sort widths and
	store widthCount.
	(scaleMetrics): Add HintScaler parameter. Implemented to scale
	the metrics.
	(scaleMetricsDim): New helper method.
	* gnu/java/awt/font/autofit/LatinAxis.java
	(orgDelta): New field.
	(orgScale): New field.
	* gnu/java/awt/font/autofit/LatinBlue.java: Reordered flags.
	(FLAG_BLUE_ACTIVE): New flag.
	* gnu/java/awt/font/autofit/Scaler.java: Renamed to HintScaler.
	* gnu/java/awt/font/autofit/Script.java
	(scaleMetrics): Add HintScaler argument.
	* gnu/java/awt/font/autofit/ScriptMetrics.java
	Renamed Scaler to HintScaler.
	* gnu/java/awt/font/autofit/Utils.java
	(sort(int,Width[])): New helper method. Sorts Width arrays.
	(mulDiv): New helper method.
	(pixFloor): New helper method.
	(pixRound): New helper method.
	* gnu/java/awt/font/autofit/Width.java
	(toString): New method. For debug output.
	* gnu/java/awt/font/opentype/truetype/Fixed.java
	(mul16): New method. Multiplies with 16.16 fixed point arithmetics.
	(div16): New method. Divides with 16.16 fixed point arithmetics.
	(valueOf16): New method. Converts double to 16.16 fixed point.
	* gnu/java/awt/font/opentype/truetype/Zone.java
	(scaleX): New field.
	(scaleY): New field.
	(shearX): New field.
	(shearY): New field.
	(transform): Store translation and shearing in fields instead of
	local vars.

2006-12-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/autofit/AutoHinter.java
	(hints): New field.
	(applyHints): New method. Implements the actual hinting.
	* gnu/java/awt/font/autofit/AxisHints.java
	(edges): New field.
	(AxisHints): Initialize edges field.
	(newEdge): New method. Records a new edge and sorts it into the
	existing list.
	* gnu/java/awt/font/autofit/Edge.java: New class.
	* gnu/java/awt/font/autofit/GlyphHints.java
	(GlyphHints): Initialize the scales with 1.
	(doHorizontal): New method.
	(doVertical): New method.
	* gnu/java/awt/font/autofit/Latin.java
	(alignEdgePoints): New stub method.
	(alignStrongPoints): New stub method.
	(alignWeakPoints): New stub method.
	(applyHints): Take outline as argument. Implemented skeleton.
	(computeBlueEdges): New stub method.
	(computeEdges): New method. Detects edges on a glyph outline.
	(detectFeatures): New methods. Performs local feature analysis.
	(hintEdges): New stub method.
	(initBlues): Remove debug output.
	* gnu/java/awt/font/autofit/LatinAxis.java
	(edgeDistanceThreshold): Changed to be an int
	(as fixed-point decimal).
	* gnu/java/awt/font/autofit/Script.java
	(applyHints): Include the outline in the method call.
	* gnu/java/awt/font/autofit/Segment.java
	(FLAG_EDGE_NORMAL): Set value to 0.
	(FLAG_EDGE_SERIF): New constant.
	(FLAG_EDGE_DONE): New constant.
	(edge): New field.
	(edgeNext): New field.
	* gnu/java/awt/font/opentype/Hinter.java
	(applyHints): New method. Applies the hints to the specified outline.
	* gnu/java/awt/font/opentype/OpenTypeFont.java
	(getGlyphOutline): Check the hinter and call the scaler with the
	hinter.
	* gnu/java/awt/font/opentype/Scaler.java
	(getOutline): Also pass a Hinter.
	* gnu/java/awt/font/opentype/truetype/GlyphLoader.java
	(loadCompoundGlyph): Also accept a hinter argument.
	(loadGlyph): Also accept a hinter argument.
	(loadSimpleGlyph): Also accept a hinter argument. Hint the
	resulting outline.
	(loadSubGlyph): Also accept a hinter argument.
	* gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java
	(getOutline): Accept hinter and pass it to the loader.
	(getRawOutline): Pass null hinter to the loader.

2006-12-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/autofit/LatinBlue.java:
	New class.

2006-12-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/autofit/Latin.java
	(CAPITAL_TOP): New constant.
	(CAPITAL_BOTTOM): New constant.
	(SMALL_F_TOP): New constant.
	(SMALL_TOP): New constant.
	(SMALL_BOTTOM): New constant.
	(SMALL_MINOR): New constant.
	(BLUE_MAX): New constant.
	(IDENTITY): New constant transform.
	(MAX_TEST_CHARS): New constant.
	(TEST_CHARS): New constants.
	(initBlues): Implemented.
	(initWidths): Use constant identity transform for loading
	the test glyph.
	(isTopBlue): New helper method.
	* gnu/java/awt/font/autofit/LatinAxis.java
	(widths): Initialize in constructor.
	(blues): New field. Stores the blue zones.
	(blueCount): New field. The number of blue zones.
	(LatinAxis): New constructor.
	* gnu/java/awt/font/autofit/Utils.java
	(sort): New helper method.
	* gnu/java/awt/font/opentype/truetype/Zone.java
	(getContourEnd): New helper method.

2006-12-13  David Daney  <ddaney@avtrex.com>

	* java/lang/Collections.java
	(UnmodifiableEntrySet.toArray): Fix bad casts.

2006-12-13  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/autofit/AutoHinter.java: New class. The entry
	point into the autohinter.
	* gnu/java/awt/font/autofit/AxisHints.java
	(majorDir): New field.
	(numEdges): New field.
	(numSegments): New field.
	(AxisHints): New constructor.
	(newSegment): New method. Records a new segment.
	* gnu/java/awt/font/autofit/Constants.java
	(DIR_DOWN): New constant.
	(DIR_LEFT): New constant.
	(DIR_RIGHT): New constant.
	(DIR_TOP): New constant.
	(DIR_NONE): New constant.
	* gnu/java/awt/font/autofit/GlyphHints.java
	(contours): New field.
	(numContours): New field.
	(maxPoints): New field.
	(metrics): New field.
	(numPoints): New field.
	(points): New field.
	(GlyphHints): New constructor.
	(computeInflectionPoints): New helper method.
	(computeSegments): Moved to Latin.
	(linkSegments): Moved to Lating.
	(reload): Implemented.
	(rescale): Copy the metrics.
	(setWeakPoint): New helper method.
	* gnu/java/awt/font/autofit/Latin.java
	(MAX_WIDTH): Make package private.
	(computeSegments): New method. Computes the segments to a glyph.
	(initWidths): Implemented. Determines the standard widths of stems
	for the font.
	(linkSegments): New method. Links stem segments and determines
	serif segments.
	* gnu/java/awt/font/autofit/LatinMetrics.java
	(LatinMetrics()): New constructor.
	(LatinMetrics(OpenTypeFont)): New constructor.
	* gnu/java/awt/font/autofit/ScriptMetrics.java
	(ScriptMetrics): New constructor.
	* gnu/java/awt/font/autofit/Segment.java
	(FLAG_EDGE_NORMAL): New constant.
	(FLAG_EDGE_ROUND): New constant.
	(contour): New field.
	(dir): New field.
	(first): New field.
	(flags): New field.
	(index): Removed.
	(last): New field.
	(len): New field.
	(maxPos): New field.
	(minPos): New field.
	(numLinked): New field.
	(score): New field.
	(serif): New field.
	(toString): New method. For debug output.
	* gnu/java/awt/font/autofit/Utils.java: New utility class.
	* gnu/java/awt/font/opentype/Hinter.java: New interface for
	hinter implementations.
	* gnu/java/awt/font/opentype/OpenTypeFont.java
	(hinter): New field. Stores the hinter for that font.
	(checkHinter): Checks if a hinter is installed and installs one
	if necessary.
	(createGlyphVector): Check installed hinter.
	* gnu/java/awt/font/opentype/truetype/Fixed.java: Make class public
	for access in the autohinting package.
	* gnu/java/awt/font/opentype/truetype/Point.java: New class. Stores
	coordinates and additional info that describe the outline of a glyph.
	* gnu/java/awt/font/opentype/truetype/Zone.java: Use Point class
	for storing the points.

2006-12-13  Tom Tromey  <tromey@redhat.com>

	* java/security/BasicPermission.java: Remove gcj workaround.
	* java/security/cert/X509Certificate.java: Remove gcj workaround.
	* java/net/ServerSocket.java (ServerSocket): Remove gcj
	workaround.
	(getImpl): Likewise.
	* java/util/TreeMap.java (TreeIterator): Remove gcj workaround.
	* java/text/AttributedStringIterator.java (getRunLimit): Remove
	qualifications.
	(getRunStart): Likewise.
	* java/awt/AWTKeyStroke.java (removeEldestEntry): Remove gcj
	workaround.
	* java/awt/AlphaComposite.java (removeEldestEntry): Remove gcj
	workaround.
	* java/awt/geom/GeneralPath.java (WIND_EVEN_ODD, WIND_NON_ZERO,
	BIG_VALUE): Don't fully qualify.
	* gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Removed
	imports.
	* gnu/javax/sound/midi/alsa/AlsaPortDevice.java: Removed import.
	* gnu/javax/sound/midi/dssi/DSSISynthesizer.java: Removed import.
	* javax/swing/JComponent.java (firePropertyChange): Removed.
	* javax/swing/text/InternationalFormatter.java (clone):
	Uncomment.
	* javax/swing/text/AbstractDocument.java (addEdit): Remove gcj
	workaround.
	(getChange): Likewise.

2006-12-13  Tom Tromey  <tromey@redhat.com>

	* examples/Makefile.am: Removed gcjx code.
	* lib/Makefile.am: Removed gcjx code.
	* tools/Makefile.am: Removed gcjx code.
	* m4/acinclude.m4 (CLASSPATH_FIND_JAVAC): Removed gcjx code.
	(CLASSPATH_WITH_GCJX): Removed.
	(CLASSPATH_CHECK_GCJX): Likewise.

2006-12-13  Tom Tromey  <tromey@redhat.com>

	* tools/toolwrapper.c (MAINCLASS): New define.
	(main): Use it.
	* tools/Makefile.am (gnative2ascii_CFLAGS): Added -D for
	MAINCLASS.
	(gserialver_CFLAGS): Likewise.
	* tools/gnative2ascii.in: Main class is named Native2ASCII.
	* tools/gserialver.in: Main class is named SerialVer.

2006-12-12  Roman Kennke  <kennke@aicas.com>

	* javax/imageio/FileCacheImageOutputStream.java
	(cache): New field. The actual cache as RandomAccessFile.
	(cacheDir): Removed. Not needed at all.
	(cacheFile): New field. The cache file.
	(maxPos): New field. Stores the maximum position.
	(FileCacheImageOutputStream): Initialize cache file.
	(checkStreamClosed): Removed. This should be done by the super
	method checkClosed().
	(close): Properly close the stream and delete the cache.
	(flushBefore): Implemented to also flush the cache.
	(length): Implemented to return the length of the cache.
	(read()): Implemented to read from the cache.
	(read(byte[],int,int)): Likewise.
	(seek): Implemented to seek the cache too.
	(write(int)): Write to cache.
	(write(byte[],int,int))

2006-12-12  Francis Kung  <fkung@redhat.com>

	PR 30155
	* javax/imageio/spi/IIORegistry.java (IIORegistry): Register Toolkit SPIs.

2006-12-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeList.java:
	Extend ArrayList<Object>.
	
2006-12-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/30154:
	* javax/management/MBeanServer.java:
	(createMBeanServer(String)): Check for a null
	builder.

2006-12-11  Roman Kennke  <kennke@aicas.com>

	* java/awt/print/PrinterJob.java
	(lookupStreamPrintServices): Uncommented and fixed parameters.

2006-12-11  Roman Kennke  <kennke@aicas.com>

	* java/awt/datatransfer/SystemFlavorMap.java
	(flavorToNativeMap): Make typesafe.
	(nativeToFlavorMap): Make typesafe.
	(SystemFlavorMap): Read in mapping by reading the flavormap.properties.
	(addFlavorForUnencodedNative): Access maps in a typesafe way.
	(addUnencodedNativeForFlavor): Access maps in a typesafe way.
	(getFlavorsForNative): Implemented.
	(getNativesForFlavor): Implemented.
	(setupMapping): New helper method.

2006-12-11  Jeroen Frijters  <jeroen@frijters.net>

	* javax/net/ssl/SSLSocketFactory.java (getDefault):
	Chain exception cause.

2006-12-11  Roman Kennke  <kennke@aicas.com>

	* .classpath: Include ASM in Eclipse classpath.

2006-12-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(translate(String)): Trim strings of whitespace.
	* javax/management/MBeanAttributeInfo.java:
	(MBeanAttributeInfo(String,String,Method,Method)):
	Use Class.getName() for normal (non-parameterized) cases.
	* javax/management/MBeanConstructorInfo.java:
	(MBeanConstructorInfo(String, Constructor)):
	Likewise.
	* javax/management/MBeanOperationInfo.java:
	(MBeanOperationInfo(String, Method)):
	Likewise.

2006-12-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Class.java:
	(getClasses()): Return Class<?>[].
	(internalGetClasses()): Likewise.
	(getConstructor(Class<?>...)): Add type parameter
	to parameters.
	(getDeclaredConstructor(Class<?>...)): Likewise.
	(getDeclaredClasses()): Return Class<?>[].
	(getDeclaredClasses(boolean)): Likewise.
	(getDeclaredConstructors()): Return Constructor<?>[].
	(getDeclaredConstructors(boolean)): Likewise.
	(getDeclaredMethod(String,Class<?>...)): Add type
	parameter to parameters.
	(getInterfaces()): Return Class<?>[].
	(getMethods(String,Class<?>...)): Add type
	parameter to parameters.
	* java/text/CollationKey.java:
	Make non-final.
	* java/text/DecimalFormatSymbols.java:
	Likewise.
	
2006-12-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(translate(String)): Handle Map and List as
	Strings of the form "java.util.Map<K,V>" and
	"java.util.List<E>"
	* javax/management/MBeanAttributeInfo.java:
	(MBeanAttributeInfo(String,String,Method,Method)):
	Use generic parameter and return types.
	* javax/management/MBeanConstructorInfo.java:
	(MBeanConstructorInfo(String, Constructor)):
	Use generic parameter types.
	* javax/management/MBeanOperationInfo.java:
	(MBeanOperationInfo(String, Method)):
	Use generic parameter and return types.
	
2006-12-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(translate(String)): Comment out code for using type
	variables for Map and List.
	* java/lang/Thread.java:
	(Thread(ThreadGroup,Runnable,String,long)): Fix
	incrementation of totalThreadsCreated to be prior to use.
	
2006-12-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanServerFactory.java:
	(createMBeanServer(String)): Added security check.
	(findMBeanServer(String)): Likewise.
	(newMBeanServer(String)): Likewise.
	(releaseMBeanServer(String)): Likewise.
	* javax/management/MBeanServerPermission.java:
	New file.
	
2006-12-08  David Daney  <ddaney@avtrex.com>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c (is_non_blocking_fd):
	Fix comment.

2006-12-08  David Daney  <ddaney@avtrex.com>

	* NEWS: Mention URLConnection.[get|set]ReadTimeout.

2006-12-08  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/HTTPConnection.java (imports): Add
	SocketException.
	(HTTPConnection): Handle NumberFormatException in properties parsing.
	(Pool.get): Set timeout on reused sockets.
	* gnu/java/net/protocol/http/HTTPURLConnection.java (proxyPort):
	Initialize.
	(HTTPURLConnection): Cleanup properties handling.
	(getConnection): Use both connection and read timeouts.
	(setConnectTimeout): Removed.
	(setReadTimeout): New method.
	* java/net/URLConnection.java (timeout): Renamed to...
	(connectTimeout): ... connectTimeout throughout.
	(readTimeout): New field.
	(getReadTimeout): New method.
	(setReadTimeout): New method.

2006-12-08  Tania Bento  <tbento@redhat.com>

	* java/awt/ScrollPane.java
	(doLayout): Change the location of the scrollpane's child
	to (0, 0).

2006-12-08  David Daney  <ddaney@avtrex.com>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c (is_non_blocking_fd):
	New method.
	(Java_gnu_java_nio_VMChannel_read__ILjava_nio_ByteBuffer_2): Throw
	SocketTimeoutException if a blocking socket timesout.
	(Java_gnu_java_nio_VMChannel_readScattering): Same.
	(Java_gnu_java_nio_VMChannel_read__I): Same.
	(Java_gnu_java_nio_VMChannel_connect): Initialize the fd set.
	(Java_gnu_java_nio_VMChannel_connect6): Same.

2006-12-08  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.93-generics.
	* NEWS: Add release date.

2006-12-08  Tania Bento  <tbento@redhat.com>

	* java/awt/ScrollPane.java
	(getScrollPosition): Throw NullPointerException if scrollpane
	does have a child.
	(setScrollPosition(int, int)): Throw NullPointerException if
	scrollpane does have a child.  Check that both ints are within
	the allowed bounds; If they are not, scroll to the closest allowed
	bound.

2006-12-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(EditorKitMapping): New inner helper class.
	(editorKits): New static field for caching editor kit instances.
	(static_initiazer): Initialize static mappings here.
	(createEditorKitForContentType): Try to use cached instance.
	Use correct classloader for loading.
	(getEditorKitClassNameForContentType): Make use of EditorKitMapping
	class.
	(getEditorKitForContentType): Store the fetched editor kit.
	Fallback to createDefaultEditorKit().
	(init): Don't clean the static registry here.
	(registerEditorKitForContentType(String,String,ClassLoader)):
	Implemented.
	(registerEditorKitForContentType(String,String)): Delegate to
	the other version of this method with the thread's context
	classloader.

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(setPage): Don't convert URL to String for setPage().

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am (clean-local): Remove iasm and asm.lst.

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am: Explicitly define  and use bootclasspath as
	GLIBJ_BOOTCLASSPATH

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JEditorPane.java (createEditorKitForContentType):
	Always load from system class loader.

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* java/net/URL.java (URL(URL,String,URLStreamHandler,boolean)): New
	private constructor.
	(URL(URL,String,URLStreamHandler)): Call new constructor.
	(URL(URL,String)): Likewise.
	(URL(String)): Likewise.

2006-12-07  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention ASM.
	* INSTALL: Don't mention --with-asm.
	* tools/external/README: New file.
	* tools/toolwrapper.c (main): Don't use ASM_JAR.
	* tools/gjavah.in: Don't use PATH_TO_ASM.
	* tools/grmic.in: Likewise.
	* tools/Makefile.am (GLIBJ_CLASSPATH): Removed PATH_TO_ASM, added
	'asm'.
	(javah, rmic): Removed variables.
	(bin_PROGRAMS): Updated.
	(gappletviewer_CFLAGS): Don't define ASM_JAR.
	(gjarsigner_CFLAGS): Likewise.
	(gkeytool_CFLAGS): Likewise.
	(gjar_CFLAGS): Likewise.
	(gnative2ascii_CFLAGS): Likewise.
	(gserialver_CFLAGS): Likewise.
	(grmiregistry_CFLAGS): Likewise.
	(gtnameserv_CFLAGS): Likewise.
	(gorbd_CFLAGS): Likewise.
	(grmid_CFLAGS): Likewise.
	(gjavah_CFLAGS): Likewise.
	(grmic_CFLAGS): Likewise.
	(bin_SCRIPTS): Updated.
	(TOOLS_JAVA_FILES): Updated.
	($(TOOLS_ZIP)): Compile ASM sources.  Copy resource files.
	* configure.ac: Removed --with-asm.  Always build gjavah.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/BrowserEditorKit.java:
	New class.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(LoadActionListener): Call setPage() helper method.
	(createContent): Register tweaked editor kit. For FormSubmitEvents
	call submitForm(), otherwise setPage().
	(postData): Helper method for posting form data.
	(setPage): Helper method for navigating to a new URL.
	(submitForm): Helper method for submitting a form.
	* examples/gnu/classpath/examples/swing/forms.html:
	Added text/password fields and select boxes.
	* examples/gnu/classpath/examples/swing/welcome.html: Fixed typo.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(SubmitThread.postData): Implemented.
	(SubmitThread.run): Pass data to postData().
	(actionPerformed): Reset form when reset button is activated.
	(createComponent): Add support for select lists and comboboxes.
	Don't set value of text and password fields here, this is done
	now in HTMLDocument for consistency.
	(getElementFormData): Add support for fetching form data from
	select lists and comboboxes as well as textareas.
	(getSelectData): New helper method. Fetches form data from
	select boxes.
	(getTextAreaData): New helper method. Fetches form data from
	textareas.
	(resetForm): New helper method. Resets the entire form.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.FormAction.end): Handle SELECT and OPTION tags.
	(HTMLReader.FormAction.start): Handle SELECT and OPTION tags.
	(HTMLReader.FormAction.setModel): Initialize text and password
	values here. Also, use the resetable special models.
	Group radio buttons into ButtonGroup for exclusive selection.
	(HTMLReader.FormTagAction): New class. Handles FORM tags.
	(HTMLReader.buttonGroups): New field.
	(HTMLReader.numOptions): New field.
	(HTMLReader.option): New field.
	(HTMLReader.selectModel): New field.
	(HTMLReader.textAreaDocument): Make ResetablePlainDocument.
	(HTMLReader.handleText): Handle OPTION text.
	(HTMLReader.initTags): Map FORM tags to FormTagAction.
	(HTMLReader.textAreaContent): Set initial content.
	* javax/swing/text/html/Option.java
	(Option): Make copy of attribute set. Initialize selected state.
	(getValue): Fetch value from attribute set.
	* javax/swing/text/html/ResetableModel.java: New interface.
	* javax/swing/text/html/ResetablePlainDocument.java: New class.
	Supports resetting the state.
	* javax/swing/text/html/ResetableToggleButtonModel.java: Likewise.
	* javax/swing/text/html/SelectComboBoxModel.java: Likewise.
	* javax/swing/text/html/SelectListModel.java: Likewise.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(appear): Adjust visibility here.
	(setDotImpl): Don't adjust visibility here.
	(moveDotImpl): Don't adjust visibility here.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/AsyncImage.java
	(Loader.run): Synchronize on the AsyncImage to avoid threading
	issues.
	(addObservers): Check for obs==null outside and synchronize on
	this inside to avoid locking issues.
	(checkImage): New helper method.
	(notifyObservers): Check that the correct lock is held and
	remove actual locking.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(checkImage): Added special handling for AsyncImages.
	
2006-12-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(getIcon): Made package private.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(hyperlinkUpdate): Convert URL to string.

2006-12-06  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/AsyncImage.java (addObserver): Never notify
	null Observer.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/icons/back.png,
	* examples/gnu/classpath/examples/icons/reload.png:
	New icons for the HTML browser.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(history): New field. Manages the browsing history.
	(HtmlDemo): Initialize history.
	(createContent): Set location and add history. Add toolbar.
	(createToolBar): New helper method.
	(main): Make default size bigger.
	* examples/gnu/classpath/examples/swing/frame1.html,
	* examples/gnu/classpath/examples/swing/frame2.html,
	* examples/gnu/classpath/examples/swing/frame3.html,
	* examples/gnu/classpath/examples/swing/frame4.html,
	* examples/gnu/classpath/examples/swing/frames.html,
	* examples/gnu/classpath/examples/swing/tables.html:
	New example pages.
	* examples/gnu/classpath/examples/swing/welcome.html
	Add a couple of links and new test pages.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(getStream): Buffer the stream for efficiency.
	(setPage): Don't scroll the view at this point.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.paint): Call RootView's setSize to get synchronization.
	(RootView.setSize): Synchronize to prevent race in layout code.
	* javax/swing/text/AbstractDocument.java
	(notifyListeners): New field.
	(fireChangedUpdate): Track notifyListener field.
	(fireRemoveUpdate): Track notifyListener field.
	(fireIndertUpdate): Track notifyListener field.
	(writeLock): Check notifyListener and throw IllegalStateException.
	* javax/swing/text/View.java
	(preferenceChanged): Create local var for better thread safety and
	more efficiency.

2006-12-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/ScrollPane.java (addNotify): Add a parent panel for any
	lightweight component, not just for non-Panel components.
	(addImpl): Do not call doLayout.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(setNativeBounds): Ensure widget parent is a GtkFixed before
	calling gtk_fixed_move.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(setNativeBounds): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setNativeBounds): Likewise.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/TableView.java
	(RowView.layoutMajorAxis): Check column index for invalid value.
	(updateGrid): Check column index for invalid value.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/BlockView.java
	(getAlignment): Align blocks horizontally by the superclass.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Replace equals comparison by == for efficiency.
	Add mapping for misplaced tr, td and th tags. Include object mapping.
	* javax/swing/text/html/TableView.java
	(RowView.replace): Invalidate grid early.
	(gridValid): Initialize with false.
	(create): Only create RowView and CellView for correctly placed
	tags. Avoid unnecessary casts.
	(getAlignment): Removed.
	(replace): Invalidate grid early.

2006-12-06  Francis Kung  <fkung@redhat.com>

	* java/awt/geom/RectangularShape.java
	(getBounds): Remove empty rectangle check.

2006-12-06  Ben Konrath  <bkonrath@redhat.com>

	Fixes PR 29853.
	* gnu/xml/dom/DomAttr.java: Don't report mutation if oldValue and
	newValue are the same.
	* gnu/xml/dom/DomNode.java: Set parent if null during mutation.

2006-12-06  Tania Bento  <tbento@redhat.com>

	* javax/swing/border/CompoundBorder.java:
	(isBorderOpaque): If inside border is null, return true if outside
	border is opaque, false otherwise; if outside border is null, return
	true if inside border is opaque, false otherwise; if inside or
	outside border are both not null, then return true only if both the
	inside and outside border are opaque, false otherwise.

2006-12-06  Tania Bento  <tbento@redhat.com>

	* javax/swing/border/CompoundBorder.java:
	(isBorderOpaque): If inside and outside border both have a null
	value, return true.

2006-12-06  Chris Burdess  <dog@gnu.org>

	Fixes PR 29272.
	* javax/xml/parsers/DocumentBuilderFactory.java: Fix broken Javadoc.
	* gnu/xml/stream/SAXParser.java: Fix file descriptor leak.

2006-12-06  Chris Burdess  <dog@gnu.org>

	Fixes PR 29264.
	* gnu/xml/stream/XMLStreamWriterImpl.java: Allow arbitrary text in
	  writeDTD method.

2006-12-06  Chris Burdess  <dog@gnu.org>

	Fixes PR 28816.
	* javax/xml/validation/SchemaFactory.java: Use correct algorithm to
	  discover schema factory implementation class.

2006-12-05  Francis Kung  <fkung@redhat.com>

	* java/awt/BasicStroke.java
	(capEnd): Prevent division by zero.
	* java/awt/geom/Arc2D.java
	(ArcIterator.ArcIterator): Do not shift the arc to make the extent positive.
	(ArcIterator.currentSegment): Handle a negative extent.

2006-12-05  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(constructor): Handle translated subimages properly, ie, if the image's
	0,0 position is not the data buffer's first element.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/AsyncImage.java
	(Loader.run): Nullify observers after loading.
	(observers): Made package private.
	(addObserver): Check for null observers field. Create local
	variable for thread safety.
	(getHeight): Use addObserver() for checking state of field
	and notifying observer when necessary.
	(getWidth): Use addObserver() for checking state of field
	and notifying observer when necessary.
	(getProperty): Use addObserver() for checking state of field
	and notifying observer when necessary.
	(notifyObservers): Check for null observers field. Create local
	variable for thread safety.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Removed debug output.
	* javax/swing/text/html/InlineView.java
	(getBreakWeight): Likewise.
	* javax/swing/text/html/StyleSheet.java
	(addRule): Likewise.
	(ListPainter.paint): Removed debug output.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/BlockView.java
	(painter): Made package visible.
	* javax/swing/text/html/StyleSheet.java
	(translateBorder): New helper method.
	(translateHTMLToCSS): Add mappings for border attributes.
	* javax/swing/text/html/TableView.java
	Made class subclass of BlockView to get CSS goodness.
	(CellView.rowSpan): New field.
	(CellView.setPropertiesFromAttributes): Fetch rowspan.
	(RowView.overlap): New field.
	(RowView.rowIndex): New field.
	(RowView.layoutMajorAxis): Skip overlapping cells.
	(RowView.layoutMinorAxis): Layout cells that span more than 1 row.
	(numColumns): New field.
	(tmpRect): New field.
	(TableView): Initialize tmpRect.
	(calculateColumnRequirements): Adjusted and fixed for multirows.
	(getAlignment): Overridden to center tables.
	(paint): Overridden to fix clipping.
	(getStyleSheet): Made protected.
	(layoutMajorAxis): Invalidate rows.
	(setPropertiesFromAttributes): Made protected and call super.
	(updateGrid): Update the overlapping information for multirows.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/AsyncImage.java
	(addObserver): Check for null and ignore null observers.
	(getWidth): Check for null and ignore null observers.
	(getHeight): Check for null and ignore null observers.
	(getProperty): Check for null and ignore null observers.

2006-12-05  Francis Kung  <fkung@redhat.com>

	* java/awt/BasicStroke.java
	(capEnd): Prevent division by zero.
	* java/awt/geom/Arc2D.java
	(ArcIterator.ArcIterator): Do not shift the arc to make the extent positive.
	(ArcIterator.currentSegment): Handle a negative extent.

2006-12-05  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(constructor): Handle translated subimages properly, ie, if the image's
	0,0 position is not the data buffer's first element.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ImageView.java
	(imageUpdate): Use spans field to determine if the CSS width/height
	are set. Call safePreferenceChanged to protect view structure
	from threading issues.
	(spans): Made package private.
	(ImageView): Initialize loadOnDemand with false.
	(loadImage): Call Toolkit.prepareImage() to make sure we have
	our Observer registered.
	(safePreferenceChanged): New helper method. Calls preferenceChanged
	in a thread safe environment.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* NEWS: Add entry about improved HTML support.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ImageView.java
	(ImageView): Initialize spans array here.
	(setPropertiesFromAttributes): Moved init of spans array to
	constructor.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/BlockView.java
	(painter): Made package visible.
	* javax/swing/text/html/StyleSheet.java
	(translateBorder): New helper method.
	(translateHTMLToCSS): Add mappings for border attributes.
	* javax/swing/text/html/TableView.java
	Made class subclass of BlockView to get CSS goodness.
	(CellView.rowSpan): New field.
	(CellView.setPropertiesFromAttributes): Fetch rowspan.
	(RowView.overlap): New field.
	(RowView.rowIndex): New field.
	(RowView.layoutMajorAxis): Skip overlapping cells.
	(RowView.layoutMinorAxis): Layout cells that span more than 1 row.
	(numColumns): New field.
	(tmpRect): New field.
	(TableView): Initialize tmpRect.
	(calculateColumnRequirements): Adjusted and fixed for multirows.
	(getAlignment): Overridden to center tables.
	(paint): Overridden to fix clipping.
	(getStyleSheet): Made protected.
	(layoutMajorAxis): Invalidate rows.
	(setPropertiesFromAttributes): Made protected and call super.
	(updateGrid): Update the overlapping information for multirows.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Removed debug output.
	* javax/swing/text/html/InlineView.java
	(getBreakWeight): Likewise.
	* javax/swing/text/html/StyleSheet.java
	(addRule): Likewise.
	(ListPainter.paint): Removed debug output.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/BlockView.java
	(getAlignment): Align blocks horizontally by the superclass.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Replace equals comparison by == for efficiency.
	Add mapping for misplaced tr, td and th tags. Include object mapping.
	* javax/swing/text/html/TableView.java
	(RowView.replace): Invalidate grid early.
	(gridValid): Initialize with false.
	(create): Only create RowView and CellView for correctly placed
	tags. Avoid unnecessary casts.
	(getAlignment): Removed.
	(replace): Invalidate grid early.


2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/TableView.java
	(RowView.layoutMajorAxis): Check column index for invalid value.
	(updateGrid): Check column index for invalid value.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(getStream): Buffer the stream for efficiency.
	(setPage): Don't scroll the view at this point.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.paint): Call RootView's setSize to get synchronization.
	(RootView.setSize): Synchronize to prevent race in layout code.
	* javax/swing/text/AbstractDocument.java
	(notifyListeners): New field.
	(fireChangedUpdate): Track notifyListener field.
	(fireRemoveUpdate): Track notifyListener field.
	(fireIndertUpdate): Track notifyListener field.
	(writeLock): Check notifyListener and throw IllegalStateException.
	* javax/swing/text/View.java
	(preferenceChanged): Create local var for better thread safety and
	more efficiency.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/icons/back.png,
	* examples/gnu/classpath/examples/icons/reload.png:
	New icons for the HTML browser.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(history): New field. Manages the browsing history.
	(HtmlDemo): Initialize history.
	(createContent): Set location and add history. Add toolbar.
	(createToolBar): New helper method.
	(main): Make default size bigger.
	* examples/gnu/classpath/examples/swing/frame1.html,
	* examples/gnu/classpath/examples/swing/frame2.html,
	* examples/gnu/classpath/examples/swing/frame3.html,
	* examples/gnu/classpath/examples/swing/frame4.html,
	* examples/gnu/classpath/examples/swing/frames.html,
	* examples/gnu/classpath/examples/swing/tables.html:
	New example pages.
	* examples/gnu/classpath/examples/swing/welcome.html
	Add a couple of links and new test pages.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(getIcon): Made package private.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(hyperlinkUpdate): Convert URL to string.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultCaret.java
	(appear): Adjust visibility here.
	(setDotImpl): Don't adjust visibility here.
	(moveDotImpl): Don't adjust visibility here.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(SubmitThread.postData): Implemented.
	(SubmitThread.run): Pass data to postData().
	(actionPerformed): Reset form when reset button is activated.
	(createComponent): Add support for select lists and comboboxes.
	Don't set value of text and password fields here, this is done
	now in HTMLDocument for consistency.
	(getElementFormData): Add support for fetching form data from
	select lists and comboboxes as well as textareas.
	(getSelectData): New helper method. Fetches form data from
	select boxes.
	(getTextAreaData): New helper method. Fetches form data from
	textareas.
	(resetForm): New helper method. Resets the entire form.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.FormAction.end): Handle SELECT and OPTION tags.
	(HTMLReader.FormAction.start): Handle SELECT and OPTION tags.
	(HTMLReader.FormAction.setModel): Initialize text and password
	values here. Also, use the resetable special models.
	Group radio buttons into ButtonGroup for exclusive selection.
	(HTMLReader.FormTagAction): New class. Handles FORM tags.
	(HTMLReader.buttonGroups): New field.
	(HTMLReader.numOptions): New field.
	(HTMLReader.option): New field.
	(HTMLReader.selectModel): New field.
	(HTMLReader.textAreaDocument): Make ResetablePlainDocument.
	(HTMLReader.handleText): Handle OPTION text.
	(HTMLReader.initTags): Map FORM tags to FormTagAction.
	(HTMLReader.textAreaContent): Set initial content.
	* javax/swing/text/html/Option.java
	(Option): Make copy of attribute set. Initialize selected state.
	(getValue): Fetch value from attribute set.
	* javax/swing/text/html/ResetableModel.java: New interface.
	* javax/swing/text/html/ResetablePlainDocument.java: New class.
	Supports resetting the state.
	* javax/swing/text/html/ResetableToggleButtonModel.java: Likewise.
	* javax/swing/text/html/SelectComboBoxModel.java: Likewise.
	* javax/swing/text/html/SelectListModel.java: Likewise.

2006-12-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/BrowserEditorKit.java:
	New class.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(LoadActionListener): Call setPage() helper method.
	(createContent): Register tweaked editor kit. For FormSubmitEvents
	call submitForm(), otherwise setPage().
	(postData): Helper method for posting form data.
	(setPage): Helper method for navigating to a new URL.
	(submitForm): Helper method for submitting a form.
	* examples/gnu/classpath/examples/swing/forms.html:
	Added text/password fields and select boxes.
	* examples/gnu/classpath/examples/swing/welcome.html: Fixed typo.

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* java/net/URL.java (URL(URL,String,URLStreamHandler,boolean)): New
	private constructor.
	(URL(URL,String,URLStreamHandler)): Call new constructor.
	(URL(URL,String)): Likewise.
	(URL(String)): Likewise.

2006-12-07  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JEditorPane.java (createEditorKitForContentType):
	Always load from system class loader.

2006-12-06  Ben Konrath  <bkonrath@redhat.com>

	Fixes PR 29853.
	* gnu/xml/dom/DomAttr.java: Don't report mutation if oldValue and
	newValue are the same.
	* gnu/xml/dom/DomNode.java: Set parent if null during mutation.

2006-12-06  Chris Burdess  <dog@gnu.org>

	Fixes PR 29272.
	* javax/xml/parsers/DocumentBuilderFactory.java: Fix broken Javadoc.
	* gnu/xml/stream/SAXParser.java: Fix file descriptor leak.

2006-12-06  Chris Burdess  <dog@gnu.org>

	Fixes PR 29264.
	* gnu/xml/stream/XMLStreamWriterImpl.java: Allow arbitrary text in
	writeDTD method.

2006-12-056  Chris Burdess  <dog@gnu.org>

	Fixes PR 28816.
	* javax/xml/validation/SchemaFactory.java: Use correct algorithm to
	discover schema factory implementation class.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/AsyncImage.java: New class. Supports
	asynchronous loading of images.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Fetch real image from possibly AsyncImage.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Fetch real image from possibly AsyncImage.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(createImage(URL)): Create async image.
	(imageOrError): Made method static for easy access from AsyncImage.
	(prepareImage): For async images, register the observer to the
	image.

2006-12-05  Roman Kennke  <kennke@aicas.com>

	(paintComponent): Include paint area from event.
	(updateComponent): Include paint area from event.

2006-12-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/ScrollPane.java (addNotify): Add a parent panel for any
	lightweight component, not just for non-Panel components.
	(addImpl): Do not call doLayout.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
	(setNativeBounds): Ensure widget parent is a GtkFixed before
	calling gtk_fixed_move.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(setNativeBounds): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setNativeBounds): Likewise.

2006-12-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/Component.java (getFontImpl): Return a default font if
	topmost parent's font is null.

2006-12-04  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/CSS.java (parseMarginShorthand):
	Remove debug output.

2006-12-04  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/TextLayout.java
	(hitTestChar): Fixed conditions for inclusion of range.
	Use layout information in the run for more efficiency.

2006-12-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GlyphView.java
	(J2DGlyphPainter): New inner class.
	(checkPainter): For Java2D capable environments create
	a J2DGlyphPainter.

2006-12-04  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(FreeTypeGlyphVector): Don't filter control chars here.
	(getGlyphs): Filter control chars and replace them by
	hair space char.

2006-12-04  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c
	(Java_gnu_java_nio_VMChannel_connect): Retry on EINTR.

2006-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(translate(String)): Don't assume the list uses "E",
	just use the first and only type variable.
	* java/lang/management/ManagementFactory.java:
	(getPlatformMBeanServer()): Register logging bean.
	* javax/management/openmbean/OpenType.java:
	(OpenType(String,String,String)): Actually use
	the string created to handle arrays.
	
2006-12-04  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c
	(JCL_thread_interrupted): Use CallStaticBooleanMethod.

2006-12-04  Mark Wielaard  <mark@klomp.org>

	* vm/reference/gnu/java/nio/VMChannel.java (isThreadInterrupted):
	Make static.
	* native/jni/java-nio/gnu_java_nio_VMChannel.c
	(JCL_thread_interrupted): Only take JNIEnv.
	(vm_channel_class): New static variable.
	(initID): Set vm_channel_class.
	Wrap all reads() and writes() in do-while blocks that check
	interrupted status.

2006-12-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/javax/management/Server.java:
	Make map final and initialise it.
	(unregisterMBean(ObjectName)): Match against
	delegate's object name and not the instance.
	* java/lang/management/ManagementFactory.java:
	Added constant fields.
	(getPlatformMBeanServer()): Implemented.
	* javax/management/MBeanServerFactory.java: New file.
	
2006-12-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(paint): Replaced painting algorithm with more simple and more
	reliable painting of the box.
	* javax/swing/text/html/BlockView.java
	(PositionInfo): New inner class. Stores additional CSS
	positioning information.
	(positionInfo): New field.
	(BlockView): Initialize positionInfo field.
	(fetchLayoutInfo): New helper method. Fetches additional
	CSS positioning information.
	(layoutMajorAxis): Perform additional CSS layout.
	(layoutMinorAxis): Perform additional CSS layout.
	(positionView): New helper method.
	(replace): Overridden to fetch additional layout information.
	* javax/swing/text/html/CSS.java
	(Attribute.POSITION): New field.
	(Attribute.LEFT): New field.
	(Attribute.RIGHT): New field.
	(Attribute.TOP): New field.
	(Attribute.BOTTOM): New field.
	(getValue): Create Length for left, right, top and bottom
	attributes.

2006-12-04  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(Sgml): Consume any whitespace that immediately follows
	and sgml insertion.
	(parseDocument): Consume any initial whitespace.

2006-12-03  Mark Wielaard  <mark@klomp.org>

	* gnu/javax/management/Server.java (beans): Initialize.
	(registerMBean): Don't initialize beans.

2006-12-03  Mark Wielaard  <mark@klomp.org>

	* java/util/logging/LogManager.java (getLevelProperty): Check
	whether value is null before passing to Level.parse().

2006-12-04  Robert Lougher  <rob.lougher@gmail.com>

	* java/lang/management/ThreadInfo.java (ThreadInfo): Check
	whether given a null lock and lockOwner.

2006-12-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JEditorPane.java (PageLoader.in): Made a PageStream.
	(PageLoader.page): Made package local.
	(PageLoader.run): Don't reset loader.
	(PageLoader.cancel): New method.
	(loading): Renamed to loader.
	(getPage): Return loader.page.
	(setPage): Always set loader. Never reset to null.

2006-12-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (paint): Check whether
	path[k] is null.
	(isLastChild): Return false when path is null.

2006-12-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (paintArea): Renamed
	to currentPaintArea.
	(paintComponent): Work with local reference to currentPaintArea.
	(updateComponent): Likewise.
	(coalescePaintEvent): Set currentPaintArea.

2006-12-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanServerBuilder.java: New file.
	
2006-12-01  Mark Wielaard  <mark@klomp.org>

	* java/text/DecimalFormat.java (parse): Always increment parsing
	index and adjust pos result.

2006-12-01  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTML.java
	(Attribute.DYNAMIC_CLASS): New field.
	(Attribute.PSEUDO_CLASS): New field.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.CharacterAction.start): Initialize anchor with link
	pseudo attribute.
	(updateSpecialClass): New helper method. Updates the dynamic
	or pseudo class for anchor tags.
	* javax/swing/text/html/HTMLEditorKit.java
	(LinkController.lastAnchorElement): New field. For tracking
	enter/exit of anchors.
	(LinkController.activateLink): Set pseudo class to 'visited'.
	(LinkController.mouseMoved): Added support for tracking
	the 'hover' dynamic class.
	* javax/swing/text/html/InlineView.java
	(changedUpdate): Fetch new properties.
	* javax/swing/text/html/StyleSheet.java
	(attributeSetToMap): New helper method.
	(getRule): Also append dynamic and pseudo class to key.
	(resolveStyle): Resolve style based generally on all attributes.
	* javax/swing/text/html/TableView.java
	(RowView.layoutMajorAxis): Make sure the grid is valid.
	(updateGrid): Made package private.
	* gnu/javax/swing/text/html/css/Selector.java
	(calculateSpecificity): Added support for dynamic and pseudo classes.
	(matches): Changed to operate on general attributes.
	Added support for dynamic and pseudo classes.

2006-12-01  Mario Torre  <neugens@limasoftware.net>

	* java/text/DecimalFormat.java (formatInternal): move the formatting of
	fractional portion in a separate method.
	Also fixes the handling of decimal separator and its associated field.
	(handleFractionalPart): new method, needed to relax a bit
	formatInternal.
	
2006-12-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextServicesSupport.java:
	(BCSSProxyServiceProvider.getCurrentServiceSelectors(BeanContextServices,
	Class)): Implemented.
	(BCSSProxyServiceProvider.getService(BeanContextServices, Object,
	Class, Object)): Implemented.
	(BCSSProxyServiceProvider.releaseService(BeanContextServices,
	Object, Object)): Implemented.
	(BCSSProxyServiceProvider.serviceRevoked(BeanContextServiceRevokedEvent)):
	Implemented.
	(initialiseBeanContextResources()): Implemented.
	(releaseBeanContextResoures()): Implemented.
	
2006-12-01  Mark Wielaard  <mark@klomp.org>

	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerated.

2006-12-01  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/BorderStyle.java: New class for
	handling border styles.
	* gnu/javax/swing/text/html/css/BorderWidth.java
	(isValid): New method.
	* gnu/javax/swing/text/html/css/Length.java
	(isValid): New method.
	* javax/swing/text/html/CSS.java
	(addInternal): Added shorthand parsing for border, padding and
	margin.
	(parseBackgroundShorthand): Added API docs.
	(parsePaddingShorthand): New method. Handles padding shorthand
	values.
	(parseMarginShorthand): New method. Handles margin shorthand
	values.
	(parseBorderShorthand): New method. Handles border shorthand
	values.
	* javax/swing/text/html/StyleSheet.java
	(translateHTMLToCSS): Set specific padding attributes.
	(BoxPainter.BoxPainter): Don't handle PADDING and MARGIN here.
	These shorthands are now handled in CSS.
	(BoxPainter.paint): Exclude the outer margin.

2006-12-01  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/Length.java
	(emBase): New field.
	(exBase): New field.
	(isFontEMRelative): New field.
	(isFontEXRelative): New field.
	(Length): Recognize and setup EM and EX relative values.
	(getValue): Handle EM and EX relative values.
	(isEMRelative): New method.
	(isEXRelative): New method.
	(setEMBase): New method.
	(setEXBase): New method.
	(setFontBases): New method.
	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleEmptyTag): Use new isBlock() helper method.
	(_handleEndTag_remaining): Use new isBlock() helper method.
	(_handleStartTag): Consume whitespace after block start tag.
	(Comment): Consume whitespace after a comment.
	(isBlock): New helper method.
	(readAttributes): Consider all characters in unquoted attribute
	values.
	* javax/swing/text/html/BlockView.java
	(layoutMinorAxis): Use cached span value.
	(paint): Added debug code (commented out).
	(setPropertiesFromAttributes): Set the EM and EX base on lengths.
	* javax/swing/text/html/CSSBorder.java
	(CSSBorder): Take StyleSheet as argument. Call getBorderWidth()
	with stylesheet.
	(getBorderWidth): Set the EM and EX base on the length values.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.ParagraphAction.end): Do not set the inParagraph field.
	(HTMLReader.ParagraphAction.start): Do not set the inParagraph field.
	(HTMLReader.inImpliedParagraph): Removed.
	(HTMLReader.inParagraph): Removed.
	(HTMLReader.parseStack): New field.
	(HTMLReader.addContent): Use new paragraph handling.
	(HTMLReader.addSpecialElement): Use new paragraph handling.
	(HTMLReader.blockClose): Use new paragraph handling.
	(HTMLReader.blockOpen): Use new paragraph handling.
	(HTMLReader.inImpliedParagraph): New helper method.
	(HTMLReader.inParagraph): New helper method.
	* javax/swing/text/html/ImageView.java
	(attributes): New field. Caches view attributes.
	(spans): New field. Caches CSS spans.
	(getAttributes): Correctly setup CSS view attributes.
	(getPreferredSpan): Use caches spans.
	(getStyleSheet): Use the view's getDocument() method.
	(setPropertiesFromAttributes): Cache spans and setup EM and EX.
	(updateSize): Use cached spans.
	* javax/swing/text/html/ParagraphView.java
	(setPropertiesFromAttributes): Setup EM and EX.
	* javax/swing/text/html/StyleSheet.java
	(BoxPainter.BoxPainter): Setup EM and EX correctly.
	(getEMBase): New helper method.
	(getEXBase): New helper method.
	* javax/swing/text/html/TableView.java
	(width): New field. Caches the table width.
	(calculateMinorAxisRequirements): Use caches span.
	(setPropertiesFromAttributes): Cache span and setup EM/EX.
	(updateGrid): Correctly setup EM/EX.

2006-11-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormSubmitEvent.java: New class.
	* javax/swing/text/html/FormView.java
	(SubmitThread): New class for submitting data in a separate thread.
	(actionPerformed): Fetch the actual for data.
	(addData): New helper method.
	(getElementFormData): New helper method.
	(getFormData): New helper method.
	(getInputFormData): New helper method.
	(submitData): Implemented.
	* javax/swing/text/html/FrameView.java
	(createComponent): Add this as hyperlink listener.
	Set the target document as frame document.
	(getTopEditorPane): New helper method.
	(hyperlinkUpdate): Implementation of the HyperlinkListener interface.
	(handleHyperlinkEvent): New helper method.
	(handleFormSubmitEvent): New helper method.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.BaseAction.start): Track the base target.
	(HTMLReader.BaseAction.end): Removed.
	(baseTarget): New field.
	(frameDocument): New field.
	(getBaseTarget): New property accessor.
	(isFrameDocument): New property accessor.
	(processHTMLFrameHyperlinkEvent): Implemented.
	(setFrameDocument): New property accessor.
	(updateFrame): New helper method.
	(updateFrameSet): New helper method.
	* javax/swing/text/html/HTMLEditorKit.java
	(LinkController.createHyperlinkEvent): Handle frame documents.
	(autoFormSubmission): New field.
	(HTMLEditorKit): Set autoFormSubmission to true.
	(isAutoFormSubmission): New property accessor.
	(setAutoFormSubmission): New property accessor.

2006-11-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ElementIterator.java
	(ElementRef): New inner class.
	(currentDepth): Removed.
	(currentElement): Removed.
	(previousItem): Removed.
	(stack): New field. Holds the iteration stack.
	(state): Removed.
	(ElementIterator(Document)): Removed init of removed fields.
	(ElementIterator(Element)): Removed init of removed fields.
	(current): Changed to stack based algorithm.
	(deepestLeaf): New helper method.
	(depth): Changed to stack based algorithm.
	(first): Changed to stack based algorithm.
	(next): Changed to stack based algorithm.
	(previous): Changed to stack based algorithm.

2006-11-30  Francis Kung  <fkung@redhat.com>

	* .settings/org.eclipse.jdt.core.prefs: Set compilar compliance to 1.4.
	* .externalToolBuilders/ClasspathJar.launch: Include sun.* classses.

2006-11-30  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(draw): Set transform in buffered composite.
	(drawComposite): Do not transform bounds; round bounds.
	(drawGlyphVector):  Set transform in buffered composite.
	(drawRenderedImage):  Set transform in buffered composite.
	(fill):  Set transform in buffered composite.
	(updateBufferedImage): Fix scanline & height calculations.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(createPath): Simplify width & height calculation.
	(drawImage): Also transform width & height.

2006-11-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FrameSetView.java: New class. Implements
	HTML framesets.
	* javax/swing/text/html/FrameView.java: New class. Implements
	HTML frames.
	* javax/swing/text/html/HTMLDocument.java:
	(HTMLReader.addSpecialElement): Only add one artificial space.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Uncomment code for FrameSetView and FrameView.
	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleEmptyTag): Also consume whitespace after frame tags.

2006-11-30  Gary Benson  <gbenson@redhat.com>

	* java/lang/Thread.java: Javadoc fixes.

2006-11-29  Tom Tromey  <tromey@redhat.com>

	PR classpath/28203:
	* java/lang/Class.java (getAnnotations): Rewrote.

2006-11-29  Tania Bento  <tbento@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/TagParser.java:
	(parseParams): Unescape 'val' before putting it into the Map.
	(unescapeString): New private method.

2006-11-29  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/package.html: New file.

2006-11-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon.paintIcon()): Commented out gradient paint,
	(VerticalSliderThumbIcon.paintIcon()): Likewise.

2006-11-29  Mario Torre  <neugens@limasoftware.net>

	* java/text/NumberFormat.java (getCurrencyInstance): Replaced dollar sign
	with the default international currency sign \u00A4.
	* java/text/DecimalFormat.java (scanFix): Fix to use the localized symbol
	table for string formatting.
	(formatInternal): likewise.
	(scanNegativePattern): likewise.
	(applyPattern): likewise.
	* java/text/DecimalFormatSymbols.java (clone): Revert to old version as
	Locale is immutable and does not need clone.

2006-11-29  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawLine): Remove hard-coded pixel shifting.

2006-11-29  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(isShowing): Simplified condition code and avoid unnecessary
	if-codepaths.
	(coalesceEvents): Always coalesce paint events and let the peer
	figure out the expanding of the repaint area.
	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(currentPaintEvents): Removed. Replaced by paintArea.
	(paintArea): New field. Tracks the dirty area.
	(SwingComponentPeer): Removed init of currentPaintEvents.
	(coalescePaintEvent): Simplified to only union the dirty regions.
	(handleEvent): Paint dirty region that was tracked in paintArea.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(paintArea): New field. Tracks the dirty region.
	(coalescePaintEvent): Implemented to track the dirty region.
	(paintComponent): Use the dirty region in paintArea. Protect
	state by putting the paint and dispose code in a try-finally.
	(updateComponent): Use the dirty region in paintArea. Protect
	state by putting the paint and dispose code in a try-finally.

2006-11-29  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/TextLayout.java
	(getVisualHighlightShape): Removed debug output.

2006-11-28  Andrew Haley  <aph@redhat.com>

	* vm/reference/sun/reflect/misc/ReflectUtil.java
	(checkPackageAccess): Implement.

2006-11-28  Dalibor Topic  <robilad@kaffe.org>

        * native/jni/java-lang/java_lang_VMDouble.c:
        (parseDoubleFromChars) New function. Factored out from ...
        (Java_java_lang_VMDouble_parseDouble): Factored out the parsing.
        (dtoa_toString): New function. Factored out from ...
        (Java_java_lang_VMDouble_toString) : Factored out the conversion.
        Changed conversion mode to 2, as modes 0 and 1 don't round
        as the API spec demands. Invoke conversion function as often
        as necessary with growing precision until a reversible
        representation of the double in form of a string is reached.

2006-11-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(putClientProperty): Do not fire event when both old and new
	value are == null.

2006-11-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Enum.java:
	Make name and ordinal final.
	
2006-11-27  Casey Marshall  <csm@gnu.org>

	* java/util/jar/JarEntry.java (certs): removed.
	(jarfile): new field.
	(getCertificates): read the certificates from the containing JarFile.
	* java/util/jar/JarFile.java (JarEnumeration.nextElement): don't
	fill in 'certs,' fill in 'jarfile' for the entry.
	(getEntry): likewise.
	
2006-11-27  Francis Kung  <fkung@redhat.com>

	* java/awt/image/WritableRaster.java
	(createChild): Implemented.

2006-11-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/TextLayout.java
	(TextLayout(TextLayout,int,int)): Also layout the new runs.
	(getVisualHighlightShape): Implemented.
	(layoutRuns): Fixed boundary so that the last run is also laid out.
	(left): New helper method.
	(right): New helper method.

2006-11-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/TextLayout.java
	(getCaretShape(TextHitInfo,Rectangle2D)): Implemented.
	(getCaretShape(TextHitInfo)): Use natural bounds.
	(getCaretShapes(int,Rectangle2D,CaretPolicy)): New API method.
	(getCaretShapes(int,Rectangle2D)): Delegate to new method
	above with DEFAULT_CARET_POLICY.
	(getCaretShapes(int)): Use natural bounds.

2006-11-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/TextLayout.java
	(Run.font): New field.
	(Run.location): New field.
	(Run.Run): Initialize font.
	(font): Removed field. This is moved into Run as the actual font
	is something run-specific.
	(TextLayout(String,Font,FontRenderContext)): Set font on the
	single runs. Layout the runs here.
	(TextLayout(TextLayout,int,int)): Copy over the run fonts.
	(findRunAtIndex): New helper method.
	(getCaretInfo): Implemented.
	(layoutRuns): New helper method.
	(toString): Don't put font in output string.

2006-11-27  Raif S. Naffah  <classpath@naffah-raif.name>

	* AUTHORS: Added Jeroen Fritjers.

2006-11-27  neugens  <neugens@nirvana.limasoftware.net>

	* java/text/DecimalFormat.java (formatInternal): Add an explicit test
	for FieldPosition to be null.
	Check if the factional part is just 0 and can be omitted from the
	result.
	(scanNegativePattern): Fixed index out of bound exception when searching
	for international currency symbol in negative pattern.	

2006-11-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(readObject(ObjectInputStream)): Implemented.
	(writeObject(ObjectOutputStream)): Likewise.
	(BCSChild.getTargetChild()): Added.
	(bcsPreDeserializationHook()): Implemented.
	(bcsPreSerializationHook()): Likewise.
	(childDeserializedHook(Object,BCSChild)): Likewise.
	(isSerializing()): Likewise.
	(readChildren(ObjectInputStream)): Likewise.
	(writeChildren(ObjectOutputStream)): Likewise.
	
2006-11-26  Roger Sayle  <roger <at> eyesopen.com>
	    Ian Lance Taylor  <ian <at> airs.com>
	    Paolo Bonzini <bonzini <at> gnu.org>

	Fixes bug #25557.

	* lib/gen-classlist.sh.in:  Avoid using test's -ef operator for
	increased portability.  Likewise, use -f instead of -e.

2006-11-26  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am (propertydirs): Removed.
	(resources): Explicitly create all dirs.

2006-11-26  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/PlainSocketImpl.java (accept): Reset timeout on Socket.

2006-11-26  Dalibor Topic  <robilad@kaffe.org>

	* native/target/.cvsignore,
	native/target/generic/.cvsignore,
	native/target/Linux/.cvsignore:
	Removed no longer used files.

	* native/target: Removed no longer used directory.

2006-11-26  Dalibor Topic  <robilad@kaffe.org>

	Fixes bug #29133.

	* libraries/clib/nio/gnu_java_nio_VMSelector.c
	(Java_gnu_java_nio_VMSelector_select):
	Use strerror if strerror_r is not available.

	Reported by:  Michael Franz <mvfranz@gmail.com>,
		      Riccardo Mottola <zuse@libero.it>

2006-11-26  Dalibor Topic  <robilad@kaffe.org>

	Fixes bug #26756.
	
	* native/jni/midi-dssi/Makefile.am (AM_CFLAGS): Removed 
	STRICT_WARNING_CFLAGS since it caused the build to fail 
	on GNU/Linux.

2006-11-26  Ian Rogers  <ian.rogers@manchester.ac.uk>

	* doc/vmintegration.texinfo: Update VM Threading Model section.

2006-11-26  Tom Tromey  <tromey@redhat.com>

	* native/jni/java-net/java_net_VMNetworkInterface.c: Conditionally
	include ifaddrs.h.
	(Java_java_net_VMNetworkInterface_getVMInterfaces): Updated
	conditional.
	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c:
	Conditionally include ifaddrs.h.
	(getif_address): Updated conditional.
	(getif_index): Likewise.
	* configure.ac: Check for ifaddrs.h.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* java/io/File.java (list): Return empty list for unreadable dirs.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawGlyphVector):
	Synchronize on font peer.
	(setFont): Likewise.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java (getFontMetrics): Mark
	synchronized.
	(getTextMetrics): Likewise.

2006-11-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(getPositionsInRange): Rewritten to use the more efficient
	binary search searchFirst() and avoid an NPE that was caused
	by GC'ed positions.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/CompositeView.java (modelToView): Never return
	null.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/TableView.java (calculateColumnRequirements):
	Check whether rowView instanceof RowView.
	(updateGrid): Likewise.

2006-11-25  Mario Torre  <neugens@nirvana.limasoftware.net>

	PR28462
	* java/text/DecimalFormat.java: Almost new rewrite, and update to 1.5.
	* java/text/NumberFormat.java (format): all format methods, fixed
	FieldPosition argument should never be null.
	(format(Object, StringBuffer, FieldPosition)): fixed signature,
	method is not final.
	* java/text/DecimalFormatSymbols.java (clone): fixed to also clone
	locale.
	* AUTHORS: added my name to the file.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/StyleSheet.java (paint): Guard against
	getChildAllocation() returning null.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* gnu/javax/swing/text/html/css/Selector.java (calculateSpecificity):
	Use clazzIndex for id substring.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	* java/awt/EventQueue.java (pop): Only terminate dispatchThread when
	it is still running.

2006-11-25  Mark Wielaard  <mark@klomp.org>

	Fixes bug #28822
	* doc/api/Makefile.am (create_html): Guard GJDOC invocation with
	CREATE_API_DOCS

2006-11-24  Tania Bento  <tbento@redhat.com>

	* java/awt/font/TextHitInfo.java
	(equals(TextHitInfo)): If TextHitInfo parameter is null, return false.
	(beforeOffset): Decreased first parameter by 1.

2006-11-24  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(constructor): Check sample model when setting fastCM flag.
	(updateBufferedImage): Check scanline and sample model offsets before
	copying data directly into the image data buffer.

2006-11-24  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/java2d/QuadSegment.java
	(offsetSubdivided): Handle special straight-line cases.

2006-11-24  Roman Kennke  <kennke@aicas.com>

	* java/awt/dnd/DropTarget.java
	(DropTargetAutoScroller.HYSTERESIS): New constant.
	(DropTargetAutoScroller.DELAY): New constant.
	(DropTargetAutoScroller.inner): New field. A cached
	Rectangle instance.
	(DropTargetAutoScroller.outer): New field. A cached
	Rectangle instance.
	(DropTargetAutoScroller.timer): New field. The actual timer.
	(DropTargetAutoScroller.DropTargetAutoScroller):
	Initialize timer.
	(DropTargetAutoScroller.actionPerformed): Implemented.
	(DropTargetAutoScroller.stop): Implemented.
	(DropTargetAutoScroller.updateLocation): Implemented.
	(clearAutoscroll): Stop the autoscroller before nullifying it.
	(createDropTargetAutoScroller): Don't set the field here,
	only return a new instance.
	(dragEnter): Only do something when active. Initialize
	auto scrolling.
	(dragExit): Only do something when active. Stop auto scrolling.
	(dragOver): Only do something when active. Update auto scrolling.
	(drop): Only do something when active. Update auto scrolling.
	(dropActionChanged): Only do something when active. Update
	auto scrolling.
	(initializeAutoScrolling): Check if component is an instance
	of Autoscroll, otherwise do nothing.
	(setActive): Disable autoscrolling when deactivating.
	(setComponent): When component is set to null, disable autoscrolling.

2006-11-24  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextServicesSupport.java
	(getChildBeanContextServicesListener): Implemented.

2006-11-23  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java
	(createGraphics): Use constructor to create new instance of
	BufferedImageGraphics.
	* java/awt/Toolkit.java
	(getDefaultToolkit): Really try to get a real toolkit. Only
	use HeadlessToolkit if no other is available.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(checkHeadless): New helper method. Checks for headless environment
	and throws HeadlessException if appropriate.
	(createButton): Check for headless.
	(createCanvas): Check for headless.
	(createCheckbox): Check for headless.
	(createCheckboxMenuItem): Check for headless.
	(createChoice): Check for headless.
	(createDialog): Check for headless.
	(createDragGestureRecognizer): Check for headless.
	(createDragSourceContextPeer): Check for headless.
	(createEmbeddedWindow): Check for headless.
	(createFileDialog): Check for headless.
	(createFrame): Check for headless.
	(createCheckbox): Check for headless.
	(createLabel): Check for headless.
	(createList): Check for headless.
	(createMenu): Check for headless.
	(createMenuBar): Check for headless.
	(createMenuItem): Check for headless.
	(createPanel): Check for headless.
	(createPopupMenu): Check for headless.
	(createScrollbar): Check for headless.
	(createScrollPane): Check for headless.
	(createTextArea): Check for headless.
	(createTextField): Check for headless.
	(createWindow): Check for headless.

2006-11-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(deserialize): Implemented,
	(serialize): Implemented.

2006-11-23  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment.java
	(createGraphics): Try to use Cairo graphics if available.

2006-11-22  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(toArray): Added API docs,
	(toArray(Object[])): Added API docs, removed NotImplementedException.

2006-11-22  Tania Bento  <tbento@redhat.com>

	* javax/swing/JRootPane.java
	(setLayeredPane): Added documentation; throw 
	IllegalComponentStateException if layered pane parameter is null.

2006-11-22  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(avoidingGui): Removed NotImplementedException.

2006-11-22  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(drawGlyphVector): Clip updated area to glyph bounds.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(createPath): Eliminate distortion when pixel-shifting rectangles; separate
	x-coordinate and y-coordinate pixel shifting.
	(shifted): Removed method.
	(shiftX): New method, recognising scaling transforms.
	(shiftY): New method, recognising scaling transforms.
	(walkPath): Separate x-coordinate and y-coordinate pixel shifting.

2006-11-22  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/TextLayout.java
	(hash): New field. Caches the hash code.
	(hashCode): Implemented.

2006-11-22  Roman Kennke  <kennke@aicas.com>

	* java/awt/image/ImageFilter.java
	Reformat whole class.
	(getFilterInstance): Don't touch the consumer field. Don't check
	consumer.
	(imageComplete): Don't check consumer.
	(setColorModel): Don't check consumer.
	(setDimensions): Don't check consumer.
	(setHints): Don't check consumer.
	(setPixels): Don't check consumer.
	(setProperties): Pass the original property too.
	* java/awt/image/IndexColorModel.java
	(IndexColorModel(int,int,byte[],byte[],byte[],int)): Set the
	transparent pixel by calling the new helper method.
	(IndexColorModel(int,int,byte[],int,boolean,int)): Set the
	transparent pixel by calling the new helper method.
	(IndexColorModel(int,int,int[],int,boolean,int,int)): Set the
	transparent pixel by calling the new helper method.
	(coerceData): Removed. This is not needed.
	(getAlpha): Simply return value from color map. The transparent
	pixel has to be there.
	(setTransparentPixel): New helper method. Inserts the transparent
	pixel.
	* java/awt/image/RGBImageFilter.java
	Reformat whole class.
	(convertColorModelToDefault): Removed. No longer needed.
	(filterIndexColorModel): Don't handle transparent pixels
	separately.
	(filterRGBPixels): Set pixels on consumer already.
	(makeColor): Removed. No longer needed.
	* java/awt/image/ReplicateScaleFilter.java
	(replicatePixels): Removed.
	(setDimension): Correctly compute destination size, avoid double
	calculations.
	(setPixels): Avoid double calculations. Fixed some boundary cases.
	(setupSources): New helper method.
	* java/awt/image/SampleModel.java
	(setDataElements): Also handle TYPE_SHORT, TYPE_FLOAT
	and TYPE_DOUBLE.
	* java/awt/image/SinglePixelPackedSampleModel.java
	(setDataElements(int,int,int,int,Object,DataBuffer)): Removed.
	This is not needed as the superclass already copies line
	by line.
	(setDataElements(int,int,Object,DataBuffer)): Simplified code,
	removed some checks that the RI also doesn't perform. Call
	DataBuffer.setElem().

2006-11-22  Roman Kennke  <kennke@aicas.com>

	* java/awt/text/TextLayout.java
	(getLogicalRangesForVisualSelection): Implemented.

2006-11-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* sun/reflect/annotation/AnnotationParser.java,
	* sun/reflect/annotation/AnnotationType.java,
	* sun/reflect/annotation/EnumConstantNotPresentExceptionProxy.java,
	* sun/reflect/annotation/ExceptionProxy.java:
	Stubbed.
	* sun/misc/ServiceConfigurationError.java,
	* sun/misc/Service.java:
	Implemented.
	
2006-11-21  Roman Kennke  <kennke@aicas.com>

	* java/awt/text/TextLayout.java
	(Run.isLeftToRight): New helper method.
	(logicalToVisual): New field. Maps logical indices to visual
	indices.
	(visualToLogical): New field. Maps visual indices to logical
	indices.
	(TextLayout): Setup mappings.
	(setupMappings): New method for setting up the mappings.
	(getCharacterLevel): Reorganized code.
	(getNextLeftHit(int)): Implemented.
	(getNextLeftHit(int,CaretPolicy)): New method.
	(getNextLeftHit(TextHitInfo)): Implemented.
	(getNextRightHit(int)): Implemented.
	(getNextRightHit(int,CaretPolicy)): New method.
	(getNextRightHit(TextHitInfo)): New method.
	(getVisualOtherHit): Implemented.
	(checkHitInfo): New helper methods for checking parameters.
	(hitToCaret): New helper method. Maps hit infos to caret locations.
	(caretToHit): New helper method. Maps caret locations to hit infos.
	(isCharacterLTR): New helper method.
	(CaretPolicy.getStrongCaret): Implemented.

2006-11-21  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(draw): Include stroke width when calculating bounds.
	(updateBufferedImage): Round bounds more generously, handle negative
	height/width values, and clip more intelligently.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(createPath): Add shortcut optimization for lines.
	(draw): Include stroke width when calculating bounds.
	(drawLine): Delegate to main draw() method.
	(drawRect): Likewise.
	(fillRect): Delegate to main fill() method.
	(findStrokedBounds): New method.
	(setCustomPaint): Round bounds more generously.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawLine): Removed.
	(drawRect): Removed.
	(fillRect): Removed.

2006-11-21  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/java2d/TexturePaintContext.java
	(getRaster): Handle negative coordinate values.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(setPaint): Moved custom paint processing to a new method.
	(setPaintPixels): Added x, y parameters.
	(getRealBounds): Added documentation.
	(copy): Copy clipping information.
	(drawLine): Process custom paints.
	(setCustomPaint): New method.
	(fill): Process custom paints.
	(drawGlyphVector): Process custom paints.
	(drawRect): Process custom paints.
	(draw): Process custom paints.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(cairoCM_opaque): New constant.
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(argb32): Removed constant.
	(rgb32): Removed constant.
	(BufferedImageGraphics(BufferedImage)): Updated constant names.
	(BufferedImageGraphics(BufferedImageGraphics)): Copy color model flags.
	(updateBufferedImage): Transform to device-space before updating.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels): Added x, y
	parameters.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels): Set pattern
	source at designated x, y origin.

2006-11-21  Roman Kennke  <kennke@aicas.com>

	* java/awt/text/TextLayout.java
	(Run): New inner helper class.
	(length): New field.
	(naturalBounds): New field.
	(offset): New field.
	(runIndices): Removed. This is now encapsulate in a Run object.
	(runs): Changed to Run[].
	(string): Changed to char[].
	(totalAdvance): New field. Caches advance value.
	(TextLayout(String,Font,FontRenderContext)): Change to store
	string as char[] and run layout as Run[]. Clean out empty
	run items.
	(TextLayout(TextLayout,int,int)): Change to store
	string as char[] and run layout as Run[].
	(clone): Call private constructor for maximum efficiency.
	(determineWhitespace): Adapted to use char[] data.
	(draw): Adapted to use Run objects.
	(getAdvance): Cache computed total advance.
	(getBlackBoxBounds): Adapted to use Run objects.
	(getCaretInfo): Use natural layout bounds.
	(getCharacterCount): Return length field.
	(getLogicalHighlightShape): Adapted to use Run objects.
	(getNaturalBounds): New helper method. Calculates and returns the
	natural bounds of this text layout.
	(getOutline): Adapted to use Run objects.
	(getStringProperties): Adapted to use char[] data.
	(getVisibleAdvance): Adapted to use char[] and Run data.
	(handleJustify): Adapted to use char[] and Run data.
	(hitTestChar(float,float,Rectangle2D)): Implemented.
	(hitTestChar(float,float)): Use natural bounds.
	(setCharIndices): Adapted to use char[] and Run data.
	(toString): Adapted to use char[] and Run data.
	* java/text/Bidi.java
	(requiresBidi): Exclude paragraph separators from bidi-triggers.

2006-11-21  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkFontMetrics.java:
	Removed. This is now an inner class in GdkFontPeer.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawString(float,float)): Use text layout cache from
	GdkFontPeer.
	(getFontMetrics): Delegate to GdkFontPeer.
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(getGlyphCodes): Also check array size.
	(getGlyphPositions): Also check array size.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(GdkFontLineMetrics.fm): Removed.
	(GdkFontLineMetrics.strikeThroughOffset): Removed.
	(GdkFontLineMetrics.strikeThroughThickness): Removed.
	(GdkFontLineMetrics.underlineOffset): Removed.
	(GdkFontLineMetrics.underlineThickness): Removed.
	(GdkFontLineMetrics.GdkFontLineMetrics): Don't take
	FontMetrics argument. Don't init removed fields.
	(GdkFontLineMetrics.getAscent): Return font peer's field.
	(GdkFontLineMetrics.getDescent): Return font peer's field.
	(GdkFontLineMetrics.getHeight): Return font peer's field.
	(GdkFontLineMetrics.getLeading): Return font peer's field.
	(GdkFontLineMetrics.getNumChars): Reformat.
	(GdkFontLineMetrics.getStrikeThroughOffset): Return half ascent.
	(GdkFontLineMetrics.getStrikeThroughThickness): Return 1.
	(GdkFontLineMetrics.getUnderlineOffset): Return font peer's field.
	(GdkFontLineMetrics.getUnderlineThickness): Return font peer's field.
	(GdkFontMetrics): Moved class in here as inner class. 
	Make it use the font peer's fields and for the char(s) width
	and string width method, use TextLayout to measure the actual widths.
	(ascent): New field.
	(bundle): Removed.
	(DEFAULT_CTX): New constant field.
	(descent): New field.
	(FONT_METRICS_ASCENT): New constant.
	(FONT_METRICS_DESCENT): New constant.
	(FONT_METRICS_HEIGHT): New constant.
	(FONT_METRICS_MAX_ADVANCE): New constant.
	(FONT_METRICS_MAX_ASCENT): New constant.
	(FONT_METRICS_MAX_DESCENT): New constant.
	(FONT_METRICS_UNDERLINE_OFFSET): New constant.
	(FONT_METRICS_UNDERLINE_THICKNESS): New constant.
	(height): New field.
	(maxAdvance): New field.
	(maxAscent): New field.
	(maxDescent): New field.
	(metrics): New field. Stores a FontMetrics for this font.
	(textLayoutCache): New field. Caches TextLayout instances.
	(underlineOffset): New field.
	(underlineThickness): New field.
	(cinit): Don't initialize resource bundle.
	(GdkFontPeer): Setup the metrics.
	(getFontMetrics): Return stored metrics if possible.
	(getLineMetrics): Adapt to new constructor.
	(initFont): New helper method.
	(setupMetrics): New helper method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(LRUCache): Made class a static class.
	(getFontMetrics): Delegate to GdkFontPeer.
	* native/jni/gtk-peer/gdkfont.h
	Added new constant defines.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getFontMetrics): Rewritten to fetch the font metrics from
	FreeType.

2006-11-20  Tania Bento  <tbento@redhat.com>

	* javax/swing/ButtonGroup.java:
	(setSelected): Select the ButtonModel if all conditions
	are met.

2006-11-20  Tania Bento  <tbento@redhat.com>

	* javax/swing/JSlider.java:
	(updateLabelUIs): Removed casting.

2006-11-20  Mark Wielaard  <mark@klomp.org>

	* gnu/java/util/regex/RE.java (messages): Don't initialize.
	(bundle): New static final String field.
	(getLocalizedMessage): Initialize messages when still null.
	* gnu/java/util/regex/RESyntax.java (SYNTAX_IS_FINAL): Removed.
	(set): Use RE.getLocalizedMessage().
	(clear): Likewise.
	(setLineSeparator): Likewise.

2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/StyleSheet.java
	(linked): New field.
	(styleSheet): Replaced by linked.
	(addStyleSheet): Use an arraylist for simplicity.
	(getRule): Removed useless instantiation.
	(getStyleSheets): Convert array list to array.
	(removeStyleSheet): Use an arraylist for simplicity.
	(resolveStyle): Include styles from linked lists.

2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(BoxView): Initialize with invalid req's.
	(forwardUpdate): Trigger repaint when children changed the
	major axis.
	(getResizeWeight): Return resizable when the pref differs from
	the min or the pref differs from the max size.
	(layoutMajorAxis): Actually sum up the preferred sizes.
	(paint): Made binary search more robust.
	(replace): Let arrays shrink when needed.
	(replaceLayoutArray): Let arrays shrink when needed.
	(setAxis): Trigger preferenceChanged.
	* javax/swing/text/CompositeView.java
	(getInsideAllocation): Call insets method to take account
	of overriding subclasses.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.finishEdit): Clear the stack and edits buffer.
	(ElementBuffer.insertUpdate): Only remove the found element, not
	all.
	* javax/swing/text/GlyphView.java
	(insertUpdate): Pass null in preferenceChanged.
	(removeUpdate): Pass null in preferenceChanged.
	(changedUpdate): Pass null in preferenceChanged.
	* javax/swing/text/Utilities.java
	(drawTabbedText): Avoid single calls to charWidth() and instead
	call charsWidth() on whole chunks.
	* javax/swing/text/html/HTMLDocument.java
	(BlockElement.getName): Fall back to super when necessary.
	(RunElement.getName): Fall back to super when necessary.
	(HTMLReader.MAX_THRESHOLD): New constant field.
	(HTMLReader.GROW_THRESHOLD): New constant field.
	(HTMLReader.theshold): New field.
	(HTMLReader.HTMLReader): Fetch threshold from document.
	(HTMLReader.addContent): Sucessivly grow the threshold.
	(createLeafElement): Don't create two elemens and don't set
	attribute.
	* javax/swing/text/html/TableView.java
	(RowView.replace): Invalidate grid.
	(gridValid): Made package private.
	(layoutMinorAxis): Mark all rows as invalid.
	(replace): Invalidate grid.

2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(DefaultDocumentEvent.changes): Changed to be a HashMap.
	(DefaultDocumentEvent.modified): Made private.
	(DefaultDocumentEvent.THRESHOLD): New constant field.
	(DefaultDocumentEvent.DefaultDocumentEvent): Don't initialize
	changes table.
	(DefaultDocumentEvent.addEdit): Switch to hashmap only when
	exceeding threshold.
	(DefaultDocumentEvent.getChange): Use iterative approach
	when we have no hashmap yet.
	(documentCV): Removed.
	(numWriters): Renamed from numWritersWaiting.
	(createPosition): Reformat.
	(getCurrentWriter): Synchronized.
	(readLock): Implement more straightforward.
	(readUnlock): Implement more straightforward.
	(writeLock): Implement more straightforward.
	(writeUnlock): Implement more straightforward.
	(remove): Write-lock here.
	(removeImpl): Don't write-lock here.

2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(setPage): Set priority on loading thread.

2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.paint): Avoid allocation.
	(cachedInsets): New field. Caches an Insets instance.
	(getNextVisualPositionFrom): Read-lock the document to avoid
	thread nastiness. Push allocation.
	(getPreferredSize): Push fake allocation when not yet laid out.
	(getVisibleEditorRect): Use cached insets.
	(viewToModel): Read-lock the document to avoid
	thread nastiness. Push allocation.

2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/StyleContext.java
	(attributeSetPool): Synchronize this map.
	(addAttribute): Synchronize this method.
	(addAttributes: Synchronize this method.
	(readObject): Install synchronized map on target object.
	(removeAttribute): Synchronize this method.
	(removeAttributes): Synchronize this method.
	(removeAttributes): Synchronize this method.	
	
2006-11-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(GapContentPosition.GapContentPosition): Removed constructor.
	(Mark): Made subclass of WeakReference to refer directly to
	the associated position.
	(Mark.refCount): Removed.
	(Mark.Mark(int,GapContentPosition,ReferenceQueue):
	New constructor. Used to reference a position and register the
	reference queue.
	(Mark.Mark(index)): Call super and don't adjust mark offset.
	(Mark.compareTo): Removed.
	(Mark.equals): Removed.
	(Mark.getOffset): Return at least null. Removed assert.
	(Mark.getPosition): New helper method.
	(garbageMarks): New field.
	(positions): Removed.
	(searchMark): New field.
	(GapContent): Removed init of positions map.
	(addImpl): New helper method.
	(adjustPositionsInRange): Removed.
	(compare): New helper method.
	(createPosition): Rewritten for new datastructures. This now
	performs a much more efficient binary search for finding
	a position at the requested offste.
	(garbageCollect): Rewritten to collect unused marks.
	(getPositionsInRange): Adjusted for new data structures.
	(removeImpl): New helper method.
	(replace): Use new addImpl() and removeImpl() helper method for
	correctly adjusting the positions and gap.
	(search): Rewritten. Implements a more suitable binary search.
	(searchFirst): New helper method.
	(setPositionsInRange): Removed.
	(shiftEnd): Update the marks here.
	(shiftGap): Update the marks here.
	(shiftGapEndUp): Update the marks here.
	(shiftGapStartDown): Update the marks here.

2006-11-20  Marco Trudel <mtrudel@gmx.ch>

	* java/util/jar/JarFile.java (digestAlgorithms): New field used to cache
	digest algorithm implementations.
	(readSignatures): Parse the manifest once and reuse that data.
	Add support for line breaks.
	(verifyHashes): Use the parsed manifest entry.
	(readManifestEntry): Removed.

2006-11-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextServicesSupport.java:
	Added more documentation.
	(addService(Class,BeanContextServiceProvider,boolean)):
	Synchronized over global hierarchy lock.
	(bcsPreDeserializationHook(ObjectInputStream)): Implemented.
	(bcsPreSerializationHook(ObjectOutputStream)): Implemented.
	(childJustRemovedHook(Object,BCSChild)): Implemented.
	(createBCSSServiceProvider(Class,BeanContextServiceProvider)):
	Implemented.
	(fireServiceRevoked(BeanContextServiceRevokedEvent)):
	Added revocation-only listeners.
	(getBeanContextServicesPeer()): Implemented.
	(getCurrentServiceClasses(Class)): Synchronized over global
	hierarchy lock.
	(getCurrentServiceSelectors(Class)): Synchronized over global
	hierarchy lock, and fixed FIXME.
	(getService(BeanContextChild,Object,Class,Object,
	BeanContextServiceRevokedListener)): Implemented.
	(hasService(Class)): Synchronized over global hierarchy lock.
	(releaseService(BeanContextChild,Object,Object)): Implemented.
	(revokeService(Class,BeanContextServiceProvider,boolean)): Implemented.
	* java/beans/beancontext/BeanContextSupport.java:
	(remove(Object, boolean)): Documentation correction.
	
2006-11-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(PageStream): New inner class.
	(PageLoader): New inner class.
	(loading): New field.
	(setPage): Implemented asynchronous loading.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.create): New helper method.
	(create): Use new ElementBuffer method instead of hack.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.flushImpl): New helper method.
	(HTMLReader.addContent): Use flushImpl().
	(HTMLReader.blockClose): Added null check.
	(HTMLReader.flush): Use flushImpl().
	* javax/swing/text/html/HTMLEditorKit.java
	(createDefaultDocument): Set load priority to 4 and token threshold
	to 100.
	* javax/swing/text/html/TableView.java
	(insertUpdate): Overridden to provide correct view factory.
	(removeUpdate): Overridden to provide correct view factory.
	(changedUpdate): Overridden to provide correct view factory.

2006-11-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(clipRect): New field.
	(tmpRect): New field.
	(layout): Reorganized code. Now uses layoutAxis() helper method.
	(layoutAxis): New helper method.
	(paint): Optimized by using cached Rectangle objects and
	a binary search for child views inside the clip.
	* javax/swing/text/CompositeView.java
	(insideAllocation): Made private and initialized in constructor.
	(getInsideAllocation): Removed initialization block for
	insideAllocation field. Avoid unnecessary allocations.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.paint): Only paint the actual glyphs here
	The remaining stuff (background, underline and striking) is
	done in the GlpyhView itself. Avoid unnecessary allocations.
	(cached): A cached Segment instance.
	(getText): Return cached segment.
	(paint): Paint underline, strike and background here. Avoid
	unecessary allocs.

2006-11-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/StyleSheet.java
	(getFontSize): Removed debug output.
	(ListPainter.tmpRect): New field.
	(ListPainter.paint): Align bullet vertically centered to
	the first line of the paragraph.

2006-11-17  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSParser.java
	(parseDeclaration): Trim string before reporting.
	* gnu/javax/swing/text/html/css/FontSize.java
	(size): New field.
	(isRelative): New field.
	(sizeIndex): New field.
	(FontSize): Initialize new fields.
	(getValue): Changed to call getValue(int).
	(getValue(int)): New method. Implements relative font sizes.
	(isRelative): New method.
	(mapAbsolute): Store index.
	(mapEM): New helper method.
	(mapLarger): New helper method.
	(mapPercent): New helper method.
	(mapRelative): New helper method.
	(mapSmaller): New helper method.
	(mapValue): New helper method.
	* javax/swing/text/html/CSS.java
	(parseBackgroundShorthand): Create CSSColor directly.
	* javax/swing/text/html/StyleSheet.java
	(addRule): Invalidate resolved styles.
	(getFont): Call new getFontSize() method to resolve relative
	font sizes.
	(getFontSize): New helper method. Resolves relative font sizes.
	(translateHTMLToCSS): Create CSS objects directly.

2006-11-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/util/regex/RETokenNamedProperty.java:
	(getHandler(String)): Add support for 'all'.

2006-11-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/javax/management/Server.java:
	Initial implementation of a GNU management server.
	* javax/management/MBeanPermission.java,
	* javax/management/MBeanRegistration.java,
	* javax/management/MBeanTrustPermission.java:
	Implemented.
	
2006-11-17  Mark Wielaard  <mark@klomp.org>

	* docs/www.gnu.org/newsitems.txt: Add Sun GPL news announcement.

2006-11-17  Gary Benson  <gbenson@redhat.com>

	* java/net/DatagramSocket.java (getLocalAddress, connect,
	receive): Perform security check on address not hostname.

2006-11-16  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleText): Fixed condition for consuming whitespace.
	Removed validator check, this is superfluous now.

2006-11-16  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSParser.java
	(parseRuleset): Support 'combined' selectors.
	(main): Adapt callback for combined selectors support.
	* gnu/javax/swing/text/html/css/CSSParserCallback.java
	(startStatement): Take selector array as argument, to
	support combined selectors.
	* javax/swing/text/html/BlockView.java
	(calculateMinorAxisRequirements): Fetch and apply alignment.
	* javax/swing/text/html/StyleSheet.java
	(CSSStyle): Inverted the constants for correct precedence.
	(CSSStyleSheetParserCallback.styles): New field. Stores the current
	styles.
	(CSSStyleSheetParserCallback.style): Removed.
	(CSSStyleSheetParserCallback.declaration): Update multiple styles.
	(CSSStyleSheetParserCallback.end): Push multiple styles.
	(CSSStyleSheetParserCallback.start): Initialize multiple styles.

2006-11-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FlowView.java
	(LogicalView.getPreferredSpan): Calculate maximum correctly.
	* javax/swing/text/GlyphView.java
	(tabExpander): New field.
	(tabX): New field.
	(breakView): Set tabX on broken view.
	(getPartialSpan): Let the painter fetch the span.
	(getTabbedSpan): Update the tab expander field. Maybe trigger
	relayout.
	(getTabExpander): Simply return the stored expander.
	* javax/swing/text/Utilities.java
	(getTabbedTextOffset): Made algoritm a little smarter and more
	efficient.
	(getTabbedTextWidth): Don't add single char widths, instead add
	chunks of characters.
	* javax/swing/text/html/ParagraphView.java
	(calculateMinorAxisRequirements): Adjust margin only when the
	CSS span is not fixed.

2006-11-16  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(getChildBeanContextMembershipListener): Implemented,
	(getChildPropertyChangeListener): Implemented,
	(getChildSerializable): Implemented,
	(getChildVetoableChangeListener): Implemented,
	(getChildVisibility): Implemented,
	(setDesignTime): Use same property name as Sun's implementation.

2006-11-16  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/DesignMode.java: Reformatted and removed a FIXME,
	* java/beans/Statement.java
	(toString): Updated to match reference implementation.

2006-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(InsertHTMLTextAction.actionPerformed): Also try inserting
	the alternate tag. Adjust the selection accordingly.
	(InsertHTMLTextAction.adjustSelection): New helper method.
	Adjusts the selection after an insertion.
	(insertAtBoundary): Delegate to deprecated method.
	(insertAtBoundry): Implemented missing method.
	(tryInsert): New helper method.
	(defaultActions): Implemented to fill the array with
	a couple of InsertHTMLTextActions.

2006-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ImageView.java
	(Observer): New class. Observes image loading.
	(haveHeight): New field.
	(haveWidth): New field.
	(height): New field.
	(width): New field.
	(image): New field.
	(imageIcon): New field.
	(loading): New field.
	(observer): New field.
	(reloadImage): New field.
	(reloadProperties): New field.
	(ImageView): Initialize observer and some flags.
	(getImage): Update the image state and return the image.
	(loadImage): New helper method. Actually starts loading.
	(paint): Rewritten to paint the image directly, not via Icon.
	(reloadImage): Rewritten. Loads the image and its properties.
	(renderIcon): Removed. No more necessary.
	(setPropertiesFromAttributes): Don't nullify image here.
	Added comment about missing impl.
	(setSize): Added comment about missing impl.
	(updateSize): New helper method. Updates the size attributes.
	(updateState): New helper method. Makes sure the image
	and its properties are valid.

2006-11-15  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleEndTag_remaining): Consume whitespace after a closing
	block like tag.

2006-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.ParagraphAction.end): Call super instead of blockClose()
	directly.
	(HTMLReader.ParagraphAction.start): Call super instead of blockOpen()
	directly.
	(HTMLReader.parseStack): Removed.
	(HTMLReader.blockClose): Simply call addContent() with ' '
	instead of doing more complicated stuff. Removed parseStack
	handling.
	(HTMLReader.blockOpen): Removed parseStack handling.
	(getInsertingReader): Removed parseStack init.
	* gnu/javax/swing/text/html/parser/htmlValidator.java
	(closeTag): Return true only when the tag actually should be
	closed.
	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleEndTag): Only actually close the tag when the validator
	allows it.

2006-11-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/CSS.java
	(Attribute.BORDER_SPACING): New field for the CSS border-spacing
	attribute.
	* javax/swing/text/html/StyleSheet.java
	(BoxPainter.bottomPadding): New field.
	(BoxPainter.leftPadding): New field.
	(BoxPainter.rightPadding): New field.
	(BoxPainter.topPadding): New field.
	(BoxPainter.BoxPainter): Fetch the MARGIN and PADDING* attributes
	too.
	(BoxPainter.getInset): Recognize and include the padding.
	(translateHTMLToCSS): Added mapping for CELLPADDING and CELLSPACING.
	 javax/swing/text/html/TableView.java
	(RowView.calculateMajorAxisRequirements): Adjust req's for
	cellSpacing.
	(RowView.layoutMajorAxis): Adjust multi-column span for cellSpacing.
	(cellSpacing): New field.
	(columnRequirements): Made package private to avoid accessor method.
	(calculateMinorAxisRequirements): Include cellSpacing.
	(calculateMajorAxisRequirements): Overridden to include cellSpacing.
	(layoutMajorAxis): Likewise.
	(layoutColumns): Respect cellSpacing.
	(setParent): Overridden to fetch the CSS attributes when view gets
	connected.
	(setPropertiesFromAttributes): New method. Fetches the cell
	spacing from the CSS attributes.

2006-11-15  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleText): Consume whitespace directly before a closing tag.
	(restOfTag): Consume whitespace directly after opening.
	* gnu/javax/swing/text/html/parser/support/textPreProcessor.java
	(preprocess): Don't perform array boundary checking by
	catch AIOOBE, instead check the boundary in loop condition.
	* gnu/javax/swing/text/html/parser/support/low/Constants.java
	(TAG_CLOSE): New constants. Describes the token pattern for
	a closing tag.

2006-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ImageView.java
	(getPreferredSpan): Use CSS length values.
	* javax/swing/text/html/TableView.java
	(CellView.calculateMajorAxisRequirements): Overridden to
	set the maximum reqs to maximum.
	(RowView.getMaximumSize): For the X_AXIS, set the maximum
	span to maximum.
	(RowView.getMinimumSpan): Overridden. For the X_AXIS, return
	the total column reqs.
	(RowView.getPreferredSpan): Overridden. For the X_AXIS, return
	the total column reqs.
	* gnu/javax/swing/text/html/css/CSSColor.java
	(convertValue): Catch NumberFormatExceptions for more robustness.
	* gnu/javax/swing/text/html/css/FontSize.java
	(mapPixels): Actually map px values. Catch NFE for more robustness.

2006-11-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/font/autofit/AxisHints.java,
	* gnu/java/awt/font/autofit/Constants.java,
	* gnu/java/awt/font/autofit/GlyphHints.java,
	* nu/java/awt/font/autofit/Latin.java,
	* nu/java/awt/font/autofit/LatinAxis.java,
	* gnu/java/awt/font/autofit/LatinMetrics.java,
	* gnu/java/awt/font/autofit/Scaler.java,
	* gnu/java/awt/font/autofit/Script.java,
	* gnu/java/awt/font/autofit/ScriptMetrics.java,
	* gnu/java/awt/font/autofit/Segment.java,
	* gnu/java/awt/font/autofit/Width.java:
	New classes. This is some skeleton stuff for the FreeType-alike
	auto-gridfitter.
	* gnu/java/awt/font/opentype/CharGlyphMap.java: Made class public.
	* gnu/java/awt/font/opentype/OpenTypeFont.java
	(unitsPerEm): Made field public.
	(getRawGlyphOutline): New method. Fetches the raw outline.
	* gnu/java/awt/font/opentype/Scaler.java
	(getRawGlyphOutline): New method. Fetches the raw outline.
	* gnu/java/awt/font/opentype/truetype/GlyphLoader.java
	(loadGlyph): New method. This is used to load raw outlines.
	* gnu/java/awt/font/opentype/truetype/TrueTypeScaler.java
	(getRawOutline): New method. Fetches the raw outline.
	* gnu/java/awt/font/opentype/truetype/Zone.java:
	Made class public.

2006-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(RepaintManager): Fetch the default state for the double buffering
	from a system property gnu.swing.doublebuffering.

2006-11-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(cachedInsets): New field.
	(getFontMetrics): New helper method. Fetches the font metrics
	from the component or the toolkit.
	(getPreferredSize): Use getFontMetrics() helper method for
	fetching the font metrics.
	(paint): Use getFontMetrics() helper method for
	fetching the font metrics. Only paint if icon or text
	are != null. Use cached insets.
	(paintDisabledText): Don't store/restore color object. The
	JComponent painting mechanism takes care of this by calling
	create().
	(paintEnabledText): Don't store/restore color object. The
	JComponent painting mechanism takes care of this by calling
	create().

2006-11-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/GLightweightPeer.java
	(handleEvent): Try to do something reasonable and trigger painting
	for the lightweight component.
	(getFontMetrics): Fetch and return a font metrics object from
	the Toolkit.

2006-11-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/util/regex/RETokenNamedProperty.java:
	(getHandler(String)): Add support for 'all'.
	
2006-11-13  Andreas Tobler  <a.tobler@schweiz.org>

	* AUTHORS: Add myself.

2006-11-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* AUTHORS: Add Tania Bento, Thomas Fitzsimmons, Francis Kung and
	Dalibor Topic.  Re-order 'K' section.  Remove trailing space from
	Roman Kennke's entry.

2006-11-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/image/IndexColorModel.java
	(createCompatibleSampleModel): Implemented missing method.

2006-11-11  Andreas Tobler  <a.tobler@schweiz.org>

	* gnu/java/awt/peer/gtk/GtkImageConsumer.java (setPixels): Handle data
	from big endian systems correctly.

2006-11-11  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSColor.java
	(isValidColor): New helper method. Checks strings if they
	form a valid color value.
	* gnu/javax/swing/text/html/css/Length.java
	(Length): Catch number format exceptions.
	* javax/swing/text/html/CSS.java
	(addInternal): New method. Checks for shorthand CSS attributes
	and parses them.
	(parseBackgroundShorthand): New method. Parses the background
	shorthand attribute.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.LinkAction): Made class a subclass of HiddenAction.
	(HTMLReader.LinkAction.start): Implemented to load the linked
	stylesheet.
	(HTMLReader.LinkAction.end): Removed. This is not needed.
	* javax/swing/text/html/StyleSheet.java
	(CSSStyleSheetParserCallback.declaration): Push declaration
	through CSS.addInternal() to parse shorthand attributes.
	(addCSSAttribute): Push declaration through CSS.addInternal()
	to parse shorthand attributes.
	(importStyleSheet): Implemented. This adds a stylesheet from
	an URL.
	* javax/swing/text/html/TableView.java
	(calculateColumnRequirements): Increase column index for
	non CellView children to avoid endless loop.
	* javax/swing/text/CompositeView.java
	(setParent): Comparen with numChildren not with real arraylength.

2006-11-11  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(getChildBeanContextChild): Implemented.

2006-11-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(updateLayout): Only repaint when needed.

2006-11-10  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Collections.java
	(sort(List)): Minor API doc addition,
	(sort(List, Comparator)): Likewise.

2006-11-10  David Fu  <fchoong@netbeans.jp>

	* javax/swing/text/html/HTMLWriter.java
	(traverse): Removed Classpath specific handling of implied
	tags.
	(traverseHtmlFragment): Removed Classpath specific handling of
	implied	tags.

2006-11-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ParagraphView.java
	(Row.getMaximumSize): Removed. This method is not necessary.
	* javax/swing/text/html/TableView.java
	(CellView): Moved attribute init to setPropertiesFromAttributes().
	(setPropertiesFromAttributes): Fetch attributes here.
	(RowView.RowView): Documented.
	(RowView.getMaximumSpan): Overridden to restrict the max span
	in the Y direction.
	(RowView.layoutMajorAxis): Correctly layout the spans.
	(columnWidths): New field. Stores the width attributes of
	the columns.
	(calculateColumnRequirements): Added support for relative
	 (== percent) width attributes.
	(calculateMajorAxisRequirements): Removed.
	(calculateMinorAxisRequirements): Removed unnecessary code.
	(getMaximumSpan): Overridden to restrict the table's width.
	(layoutColumns): Documented. Implement more clever table layout,
	i.e. for relative columns etc.
	(layoutMinorAxis): Don't mark rows invalid.
	(updateGrid): Added docs. Initialize column widths.

2006-11-09  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/headless/HeadlessGraphicsEnvironment,
	* gnu/java/awt/peer/headless/HeadlessToolkit: New classes.
	Implement basic headless toolkit.
	* java/awt/Toolkit.java
	(getDefaultToolkit): Check headless property and create
	headless toolkit when true.

2006-11-09  Ingo Proetel  <proetel@aicas.com>
2006-11-09  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingButtonPeer.java
	(SwingButton.button): New field.
	(SwingButton.SwingButton): Added constructor.
	(SwingButton.isShowing): Access button field instead of
	the surrounding class.
	(SwingButton.getParent): Access button field instead of
	the surrounding class.
	(SwingButtonPeer): Call new SwingButton constructor.
	* gnu/java/awt/peer/swing/SwingComponent.java:
	Several documentation updates.
	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(currentPaintEvents): New field.
	(peerFont): New field.
	(SwingComponentPeer): Initialize currentPaintEvents fields.
	(coalescePaintEvents): Implemented.
	(dispose): Unregister peer from heavyweight list of its container.
	(getGraphics): Fetch graphics from parent component.
	(handleEvent): Discard paint event if its coalesced.
	(init): Register component with its container for proper painting.
	(paint): Call peerPaint().
	(peerPaint): Added argument that indicates if we should update.
	Call paint or update on the actual AWT component.
	(peerPaintComponent): New method. Paints the peer (Swing) component.
	(setFont): Set peerFont field.
	* gnu/java/awt/peer/swing/SwingContainerPeer.java
	(backbuffer): New field.
	(focusOwner): New field.
	(heavyweightDescendents): New field.
	(SwingContainerPeer): Take Container as argument. Don't call init
	yet.
	(addHeavyweightDescendent): New method.
	(getFocusOwner): New helper method.
	(getInsets): Delegate to insets().
	(handleKeyEvent): Dispatch event to focus owner.
	(handleMouseEvent): Dispatch to child component.
	(isDoubleBuffering): New helper method.
	(peerPaint): Overridden to implement container painting with
	double buffering.
	(peerPaintChildren): New method. Paints the descendents of this
	container.
	(removeHeavyweightDescendent): New helper method.	
	* gnu/java/awt/peer/swing/SwingFramePeer.java
	(peerPaint): Removed.
	(peerPaintComponent): Overridden to paint the menu bar.
	* gnu/java/awt/peer/swing/SwingLabelPeer.java
	(SwingLabel.label): New field.
	(SwingLabel.SwingLabel): Added constructor with Label argument.
	(SwingLabel.getGraphics): Implemented to fetch the graphics from
	the actual AWT component.
	(SwingLabel.getParent): Implemented to fetch the parent from
	the AWT component.
	(SwingLabel.isShowing): Access the label field.
	(SwingLabelPeer): Set alignment from label.
	* gnu/java/awt/peer/swing/SwingListPeer.java: New class.
	* gnu/java/awt/peer/swing/SwingMenuBarPeer.java: Documentation
	fixlet.
	* gnu/java/awt/peer/swing/SwingPanelPeer.java:
	Don't be a lighweight peer.
	(SwingPanelPeer): Call init.
	* gnu/java/awt/peer/swing/SwingTextAreaPeer.java: New class.
	* gnu/java/awt/peer/swing/SwingTextFieldPeer.java
	(SwingTextField.textField): New field.
	(SwingTextField.SwingTextField): New constructor.
	(SwingTextField.isShowing): Access field not enclosing class.
	(SwingTextField.getGraphics): New method.
	(SwingTextField.getParent): New method.
	(SwingTextFieldPeer): Call new constructor.
	(select): Renamed arguments.
	* gnu/java/awt/peer/swing/SwingWindowPeer.java
	(SwingWindowPeer): Call init.

2006-11-09  Tania Bento  <tbento@redhat.com>

	* javax/swing/JLabel.java
	(JLabel(Icon)): Changed documentation; Changed text to null.
	(JLabel(Icon,int)): Likewise.
	(JLabel(text)): Changed documenation.
	(JLabel(text,int)): Likewise.
	(JLabel(text,Icon,int)): Changed documentation; Throw 
	IllegalArgumentException if int is not one of LEFT, RIGHT,
	CENTER, LEADING or TRAILING.

2006-11-09  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(BeanContextSupport): Use correct dtime default,
	(BeanContextSupport(BeanContext)): Likewise,
	(BeanContextSupport(BeanContext, Locale)): Likewise, plus renamed
	locale argument,
	(BeanContextSupport(BeanContext, Locale, boolean)): Likewise,
	(BeanContextSupport(BeanContext, Locale, boolean, boolean)): Likewise.

2006-11-09  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/beancontext/BeanContextSupport.java
	(getBeanContextPeer): Implemented.

2006-11-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/BlockView.java
	(cssHeight): Removed.
	(cssWidth): Removed.
	(cssSpans): New field. Replaces the two fields above.
	(BlockView): Allocate cssSpans array.
	(layoutMinorAxis): Fetch and use child span, not this view's span.
	(setCSSSpan): Adjusted to use cssSpans array.
	(setPropertiesFromAttributes): Adjusted to use cssSpans array.

2006-11-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/InlineView.java
	(nowrap): New field.
	(getBreakWeight): Add support for nowrap.
	(setPropertiesFromAttributes): Fetch the nowrap setting.

2006-11-09  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSParser.java
	(parseRuleset): Use new Selector class.
	(parseValue): Parse multiple anys, not only one.
	(main): Allow stylesheet be specified on the command line.
	Use new Selector class.
	* gnu/javax/swing/text/html/css/CSSParserCallback.java
	(startStatement): Use Selector class.
	* gnu/javax/swing/text/html/css/CSSScanner.java
	(readName): Actually read a character in the loop to avoid
	endless loop.
	* gnu/javax/swing/text/html/css/Length.java
	(getValue): Only multiply when we have a percentage value.
	* gnu/javax/swing/text/html/css/Selector.java:
	New class. Provides handling of CSS selectors.
	* javax/swing/text/html/StyleSheet.java
	(CSSStyle.PREC_AUTHOR_IMPORTANT): New constant field.
	(CSSStyle.PREC_AUTHOR_NORMAL): New constant field.
	(CSSStyle.PREC_NORM): New constant field.
	(CSSStyle.PREC_UA): New constant field.
	(CSSStyle.PREC_USER_IMPORTANT): New constant field.
	(CSSStyle.precedence): New field.
	(CSSStyle.priority): Removed.
	(CSSStyle.selector): New field.
	(CSSStyle.CSSStyle(int,Selector)): Initialize with Selector
	and precendence.
	(CSSStyle.compareTo): Adjusted to use the precedence and
	specificity of the selector.
	(CSSStyleSheetParserCallback.precedence): New field.
	(CSSStyleSheetParserCallback.selector): Removed.
	(CSSStyleSheetParserCallback.style): New field.
	(CSSStyleSheetParserCallback.CSSStyleSheetParserCallback):
	Initialize with precedence.
	(CSSStyleSheetParserCallback.declaration): Don't look up
	existing rule, simply create new one.
	(CSSStyleSheetParserCallback.endStatement): Append style
	to stylesheet.
	(CSSStyleSheetParserCallback.startStatement): Use new Selector
	class.
	(css): Changed to be ArrayList.
	(addRule): Create parser with author-normal precendence.
	(getRule): Fixed implementation.
	(loadRules): Create parser with UA precendence.
	(resolveStyle): Use Selector class for resolving and matching
	stylesheet rules.
	(translateHTMLToCSS): Added mappings for a couple of HTML
	attributes.

2006-11-09  David Gilbert  <david.gilbert@object-refinery.com>

	Fixes bug #29770
	* java/beans/SimpleBeanInfo.java
	(loadImage): Check for nulls.

2006-11-09  Robert Schuster  <robertschuster@fsfe.org>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c:
	(getpeername): Added 16 byte offset to memcpy operation.

2006-11-09  Robert Schuster  <robertschuster@fsfe.org>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c:
	(getsockname): Added 16 byte offset to memcpy operation.

2006-11-08  Mark Wielaard  <mark@klomp.org>

	Fixes bug #29754
	* java/io/OutputStreamWriter.java
	(OutputStreamWriter(OutputStream,Charset)): Set encodingName.
	(OutputStreamWriter(OutputStream,CharsetEncoder)): Likewise.

2006-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(getParser): Use plain HTML_401F DTD.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.print): Removed method and all calls to it.
	(HTMLReader.printBuffer): Removed method and all calls to it.
	(HTMLReader.inImpliedParagraph): New field.
	(HTMLReader.inParagraph): New field.
	(HTMLReader.addContent): Create implied p-tag if necessary.
	(HTMLReader.addSpecialElement): Create implied p-tag if necessary.
	(HTMLReader.blockClose): Close implied p-tag if necessary.
	(HTMLReader.blockOpen): Close implied p-tag if necessary.
	* gnu/javax/swing/text/html/parser/HTML_401Swing.java: Removed.

2006-11-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Removed mapping for TD tag. This
	is done in TableView.
	* javax/swing/text/html/TableView.java:
	Implemented from scratch.

2006-11-07  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(_handleText): Check if text content is actually allowed before
	passing empty text fragments on to the parser callbacks.

2006-11-07  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/protocol/jar/Handler.java (parseURL): Flatten jar
	path.
	(flat): New method.

2006-11-07  Tania Bento  <tbento@redhat.com>

	* java/awt/FlowLayout.java
	(getSize): If parent does not have a component, then a 
	different formula is used to calcuate the width.

2006-11-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Include ListView.
	* javax/swing/text/html/ListView.java
	(paint): Removed comment.
	* javax/swing/text/html/StyleSheet.java
	(CSSStyle.priority): New field.
	(CSSStyle.CSSStyle(int)): New constructor with priority.
	(CSSStyle.compareTo): New method. Used for sorting the styles.
	(CSSStyleSheetParserCallback.declaration): Store the style
	with the complete selector.
	(ListPainter.attributes): Renamed as field.
	(ListPainter.styleSheet): New field.
	(ListPainter.type): New field.
	(ListPainter.ListPainter): Pass StyleSheet to constructor.
	(ListPainter.paint): Provide simplistic implementation.
	(getListPainter): Pass StyleSheet to constructor.
	(resolveStyle): Fixed CSS style resolving.

2006-11-07  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/BorderWidth.java:
	New class. Handles CSS border width values.
	* gnu/javax/swing/text/html/css/Length.java
	(floatValue): Made protected so that BorderWidth can access it.
	* javax/swing/text/html/CSS.java
	(Attribute.BORDER_BOTTOM_COLOR): New static field.
	(Attribute.BORDER_BOTTOM_STYLE): New static field.
	(Attribute.BORDER_LEFT_COLOR): New static field.
	(Attribute.BORDER_LEFT_STYLE): New static field.
	(Attribute.BORDER_RIGHT_COLOR): New static field.
	(Attribute.BORDER_RIGHT_STYLE): New static field.
	(Attribute.BORDER_TOP_COLOR): New static field.
	(Attribute.BORDER_TOP_STYLE): New static field.
	(getValue): Added some mappings for the border color and
	border width values.
	* javax/swing/text/html/CSSBorder.java: New class. Implements
	CSS borders.
	* javax/swing/text/html/StyleSheet.java
	(BoxPainter.background): New field.
	(BoxPainter.border): New field.
	(BoxPainter.bottomInset): Documented.
	(BoxPainter.leftInset): Documented.
	(BoxPainter.rightInset): Documented.
	(BoxPainter.topInset): Documented.
	(BoxPainter.BoxPainter): Added support for borders and background.
	(BoxPainter.getInset): Add border insets.
	(BoxPainter.paint): Implemented. Paints the background and the
	CSS border.
	(addRule): Be less picky about parse and IO exceptions.
	(getBoxPainter): Adjust to new BoxPainter constructor.

2006-11-07  Andreas  <a.tobler@schweiz.org>

	* examples/Makefile.am: Add rule to install the *.html files we use
	in the Swing Demo.

2006-11-06  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(fillRect): Handle custom composites.
	(drawRenderedImage): Handle custom composites.
	(drawImage): Handle custom composites.
	(createBuffer): New method.
	(drawLine): Handle custom composites.
	(drawComposite): New method.
	(fill): Handle custom composites.
	(getNativeCM): New method.
	(drawGlyphVector): Handle custom composites.
	(drawRect): Handle custom composites.
	(draw): Handle custom composites.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(drawComposite): Unset composite during draw call, to prevent parent
	from handling composite again.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(getBufferCM): Added comments.
	(getNativeCM): Made abstract.
	(setComposite): Removed comments.

2006-11-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Fixed initial window size and start document.

2006-11-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.addSpecialElement): Removed comment about
	htmlAttributeSet.
	(HTMLReader.handleComment): Create SimpleAttributeSet instead
	of htmlAttributeSet.
	* javax/swing/text/html/parser/DocumentParser.java
	(gnuParser.handleStartTag): Use SimpleAttributeSet instead
	of htmlAttributeSet.
	* javax/swing/text/html/parser/ParserDelegator.java
	(gnuParser.handleStartTag): Use SimpleAttributeSet instead
	of htmlAttributeSet.
	* gnu/javax/swing/text/html/parser/GnuParserDelegator.java
	(gnuParser.handleStartTag): Use SimpleAttributeSet instead
	of htmlAttributeSet.
	* gnu/javax/swing/text/html/parser/support/Parser.java
	(getAttributes): Return a SimpleAttributeSet.
	(restOfTag): Don't set resolving parent here.

2006-11-06  Tania Bento  <tbento@redhat.com>

	* java/awt/TextComponent.java
	(setSelectionStart): Added check.

2006-11-06  Tania Bento  <tbento@redhat.com>

	* java/awt/TextField.java
	(minimumSize(int)): Check if minimum size has been previously
	set and changed values of Dimension returned if peer == null.
	(preferredSize(int)): Check if preferred size has been previously
	set and changed values of Dimension returned if peer == null.

2006-11-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTree.java
	(TreeModelHandler.treeNodesRemoved): Implemented.
	(TreeModelHandler.treeStructureChanged): Implemented.
	(nodeStates): Made package private.

2006-11-06  Francis Kung  <fkung@redhat.com>

	PR 29420
	* javax/swing/JTree.java
	(clearSelectionPathStates): New private method to clean up nodeStates.
	(removeSelectionPath): Call clearSelectionPathStates().
	(removeSelectionPaths): Call clearSelectionPathStates().
	(removeSelectionRow): Call clearSelectionPathStates().
	(setSelectionPath): Call clearSelectionPathStates().
	(setSelectionPaths): Call clearSelectionPathStates().
	(setSelectionRow): Call clearSelectionPathStates().

2006-11-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #29703
	* java/util/regex/Matcher.java(reset): Reset inputCharIndexed.

2006-11-06  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Changed to implement a minimalistic browser.
	* examples/gnu/classpath/examples/swing/forms.html,
	* examples/gnu/classpath/examples/swing/textstyles.html,
	* examples/gnu/classpath/examples/swing/welcome.html:
	Some example content.

2006-11-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ComponentView.java
	(setParent): Lock the document and repaint the hosting
	container.
	* javax/swing/text/FlowView.java
	(FlowStrategy.createView): Removed comment.
	(FlowView): Initialize span with Short.MAX_VALUE.
	(getFlowStart): Return 0 unconditionally.
	(layout): Moved code around to make it more readable.
	(loadChildren): Always set the parent.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.fontMetrics): New field.
	(DefaultGlyphPainter.getAscent): Use new helper method to
	synchronize the font metrics.
	(DefaultGlyphPainter.getBoundedPosition): Use new helper method
	to synchronize the font	metrics.
	(DefaultGlyphPainter.getDescent): Use new helper method to
	synchronize the font metrics.
	(DefaultGlyphPainter.getHeight): Use new helper method to
	synchronize the font metrics.
	(DefaultGlyphPainter.getSpan): Use new helper method to
	synchronize the font metrics.
	(DefaultGlyphPainter.modelToView): Use new helper method to
	synchronize the font metrics.
	(DefaultGlyphPainter.updateFontMetrics): New helper method for
	font metrics caching.
	(DefaultGlyphPainter.viewToModel): Use new helper method to
	synchronize the font metrics. Fixed view to model mapping.
	* javax/swing/text/View.java
	(removeAll): Pass null to replace().
	(setParent): Only reparent children that have this view as parent.

2006-11-05  Mark Wielaard  <mark@klomp.org>

	* include/gnu_java_net_VMPlainDatagramSocketImpl.h: Removed.
	* include/gnu_java_nio_channels_FileChannelImpl.h: Removed.
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	Removed.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	Removed.
	* native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES):
	Remove gnu_java_nio_channels_FileChannelImpl.c.

2006-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/BlockView.java
	(attributes): New field.
	(cssHeight): New field.
	(cssWidth): New field.
	(painter): New field.
	(calculateMajorAxisRequirements): Overridden to account for
	CSS settings.
	(calculateMinorAxisRequirements): Overridden to account for
	CSS settings.
	(layoutMinorAxis): Overridden to account for CSS settings.
	(changedUpdate): Formatting fixlet.
	(constrainSize): New helper method.
	(getAlignment): Fix alignment.
	(getAttributes): Cache attributes for better performance.
	(getStyleSheet): Fetch stylesheet from document rather than creating
	a new one.
	(paint): Remove comment.
	(setCSSSpan): New helper method.
	(setPropertiesFromAttributes): Implemented to fetch the
	recognized properties.
	* javax/swing/text/html/CSS.java
	(getValue): Added mapping for width and height attributes.
	* javax/swing/text/html/InlineView.java
	(longestWord): New field.
	(getLongestWord): New helper method.
	(calculateLongestWord): New helper method.
	(getMinimumSpan): Overridden to constrain the minimum span by the
	longest word.
	* javax/swing/text/html/ParagraphView.java
	(cssHeight): New field.
	(cssWidth): New field.
	(calculateMinorAxisRequirements): Overridden to account for
	CSS settings.
	(setCSSSpan): New helper method.
	(setPropertiesFromAttributes): Fetch CSS width and height. Added
	null check.
	* gnu/javax/swing/text/html/css/Length.java
	(percentage): New field.
	(Length): Determine percentage values.
	(getValue(float)): New method for handling percentage values.
	(isPercentage): New method.

2006-11-03  Tania Bento  <tbento@redhat.com>

	* java/awt/TextArea.java
	(getMinimumSize): Changed documentation.
	(getPreferredSize): Changed documentation.
	(getMinimumSize(int,int)): Changed documenation.
	(getPreferredSize(int,int)): Changed documenation.
	(minimumSize): Changed documentation.
	(preferredSize): Changed documenation.
	(minimumSize(int,int)): Changed documentation.  Checked if 
	minimum size had been previously set and changed values of
	Dimension returned if peer == null.
	(preferredSize(int, int)): Checked if preferred size had been
	previously set and changed values of Dimension returned if
	peer = null.

2006-11-03  Tania Bento  <tbento@redhat.com>

	* java/awt/event/ComponentEvent.java
	(paramString): Changed format of string representation returned.

2006-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.FormAction.start): Added support for textarea.
	(HTMLReader.FormAction.end): Added support for textarea.
	(HTMLReader.HeadAction.end): Call super to actually close the
	block.
	(HTMLReader.inTextArea): New field.
	(HTMLReader.textAreaDocument): New field.
	(HTMLReader.handleText): Call textAreaContent when inside
	a textarea tag.
	(HTMLReader.textAreaContent): Implemented to initialize
	the text area's model.
	* javax/swing/text/html/FormView.java
	(createComponent): Added support for textarea tag.

2006-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.IsindexAction.start): Implemented.

2006-11-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/StyleSheet.java
	(addRule): Implemented.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.inStyleTag): New field.
	(HTMLReader.styles): New field.
	(HTMLReader.HeadAction.end): Implemented to read all stylesheets,
	if any.
	(HTMLReader.StyleAction.start): Set inStyleTag flag.
	(HTMLReader.StyleAction.end): Set inStyleTag flag.
	(HTMLReader.handleText): When inside a style tag, add
	content to the styles array.

2006-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(maxIsPreferred): New field.
	(createComponent): Initialize components correctly.
	(getMaximumSpan): Return the preferred span for components
	that need this. The maxIsPreferred flag is set accordingly
	in createComponent.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.FormAction.start): Implemented to set the
	correct model as attribute.
	(HTMLReader.FormAction.setModel): New helper method.
	(HTMLReader.FormAction.end): Call super to finish the element.
	Added TODO about things left to do.
	(HTMLReader.handleComment): Use SimpleAttributeSet rather
	than htmlAttributeSet.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create BlockView for FORM tags.
	Create FormView for INPUT, TEXTAREA and SELECT tags.

2006-11-02  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/geom/GeneralPath.java: API doc fixes.

2006-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ImageView.java
	(getImageURL): Fetch attribute from element. Consider the
	base URL for relative image locations.

2006-11-02  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(setContentType): Strip off attributes.
	* javax/swing/text/html/HTMLEditorKit.java
	(LinkController.activateLink(int,JEditorPane,int,int): New
	method. Implements activation of a hyperlink.
	(LinkController.activateLinke(int,JEditorPane)): Delegate
	to the other activateLink() method.
	(LinkController.createHyperlinkEvent): New helper method.
	(LinkController.mouseClicked): Implemented to activate the link.
	(LinkController.mouseDragged): Added comment that this
	method does nothing.
	(LinkController.mouseMoved): Update cursor for hyperlinks.
	(mouseHandler): Renamed field to linkController.
	(HTMLEditorKit): Create a link controller.
	(clone): Give the clone a new link controller.
	(deinstall): De-install link controller as mouseMotionListener too.
	(install): Install link controller as mouseMotionListener too.

2006-11-02  Roman Kennke  <kennke@aicas.com>

	PR 29644
	* javax/swing/text/FlowView.java
	(FlowStrategy.changedUpdate): Reversed condition. This caused
	wrong layout and bad performance.
	(FlowStrategy.insertUpdate): Reversed condition. This caused
	wrong layout and bad performance.
	(FlowStrategy.removeUpdate): Reversed condition. This caused
	wrong layout and bad performance.
	(LogicalView): Changed to be a subclass of CompositeView.
	(LogicalView()): Only take one Element argument.
	(LogicalView.childAllocation): New method for implementing
	the abstract CompositeView method.
	(LogicalView.forwardUpdateToView): Overridden for correct
	reparenting.
	(getMinimumSpan): Overridden to handle line breaking correctly.
	(getPreferredSpan): Implemented to handle line breaking correctly.
	(getViewAtPoint): New method for implementing
	the abstract CompositeView method.
	(getViewIndexAtPosition): Overridden to handle leaf elements
	correctly.
	(isAfter): New method for implementing
	the abstract CompositeView method.
	(isBefore): New method for implementing
	the abstract CompositeView method.
	(loadChildren): Overridden to handle leaf elements
	correctly.
	(paint): New method for implementing
	the abstract CompositeView method.
	(calculateMinorAxisRequirements): Use preferredSpan in calculation.
	(loadChildren): Initialize flow layout by sending a synthetic
	insertUpdate() to the layout strategy.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.getBoundedPosition): Fall back to Toolkit's
	font metrics if component is not available. Add initial offset
	to result.
	(breakView): Be more clever when breaking the view.
	(getBreakLocation): New helper method to determine a good
	break location.
	(getBreakWeight): Be more clever when breaking the view.
	(getTabbedSpan): Make sure we have a painter. Use view's
	start and end offset rather than the element's.
	* javax/swing/text/Utilities.java
	(drawTabbedText): Avoid useless add and sub with the y offset.

2006-11-02  Roman Kennke  <kennke@aicas.com>

	PR 29644
	* gnu/java/awt/peer/ClasspathFontPeer.java
	(getStringBounds): Removed abstract method. This is replaced
	in java.awt.Font to use a TextLayout.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(GtkWindowPeer): Set a font on the window object.
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(FreetypeGlyphVector(Font,String,FontRenderContext,int)):
	Changed to take char,int,int instead of String. Filter
	control characters.
	(FreetypeGlyphVector(Font,String,FontRenderContext)):
	Create char array out of string.
	(getLogicalBounds): Don't translate bounds. They already are
	translated.
	* gnu/java/awt/peer/gtk/GdkFontMetrics.java
	(stringWidth): Filter out control characters.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getStringBounds): Removed unneeded method.
	(layoutGlyphVector): Pass char array directly to FreetypeGlyphVector
	constructor.
	* gnu/java/awt/peer/qt/QtFontPeer.java
	(getStringBounds): Removed unneeded method.
	* gnu/java/awt/peer/x/XFontPeer.java
	(getStringBounds): Removed unneeded method.
	* gnu/java/awt/peer/x/XFontPeer2.java
	(getStringBounds): Removed unneeded method.
	* java/awt/Font.java
	(getStringBounds(char[],int,int,FontRenderContext)):
	Use TextLayout to determine the bounds.
	(getStringBounds(CharacterIterator,int,int,FontRenderContext)):
	Delegate to the char[] version of this method.
	(getStringBounds(String,FontRenderContext)):
	Delegate to the char[] version of this method.
	(getStringBounds(String,int,int,FontRenderContext)):
	Delegate to the String version of this method.

2006-11-01  Tania Bento  <tbento@redhat.com>

	* java/awt/ScrollPaneAdjustable.java
	(paramString): Changed format of string representation returned.
	(paramStringHelper): New private method.

2006-11-01  Tania Bento  <tbento@redhat.com>

	* java/awt/GridBagLayout.java
	(toString): Implemented method.

2006-10-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/gcjwebplugin.cc (GCJ_New): Move GLib threading
	initialization to NP_Initialize.
	(NP_Initialize): Initialize GLib threading.

2006-10-31  Tania Bento  <tbento@redhat.com>

	* javax/swing/JTextField.java
	(fireActionPerformed): When creating the new event, if
	actionCommand == null, then getText() is used.

2006-10-31  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(fillArc): Corrected arc type to Arc2D.PIE.

2006-10-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.PreAction.end): Implemented.
	(HTMLReader.PreAction.start): Implemented.
	(HTMLReader.inPreTag): New field.
	(HTMLReader.handleTag): When inside a pre tag, call preContent().
	(HTMLReader.preContent): Implemented.

2006-10-31  Tania Bento  <tbento@redhat.com>

	* javax/swing/JTextField.java
	(fireActionPerformed): When creating the new event, 
	actionCommand should be used as the command, not
	getText().

2006-10-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/HTMLEditorKit.java
	(write): Use HTMLWriter or MinimalHTMLWriter for writing
	HTML or Styled documents.

2006-10-31  David Fu  <fchoong@netbeans.jp>

	* javax/swing/text/html/HTMLWriter.java: New class.

2006-10-30  Roman Kennke  <kennke@aicas.com>

	* java/awt/dnd/DragSourceContext.java
	(dragExit): Use constant fields instead of 0.
	(updateCurrentCursor): Completed implementation.

2006-10-30  Roman Kennke  <kennke@aicas.com>

	* java/awt/dnd/DragGestureRecognizer.java
	(resetRecognizer): Added API docs. Do not replace the events object
	but rather clear() it. Removed not implemented tag.

2006-10-30  Roman Kennke  <kennke@aicas.com>

	* java/awt/datatransfer/DataFlavor.java
	(writeExternal): Remove not implemented tag.

2006-10-30  Roman Kennke  <kennke@aicas.com>

	* java/awt/datatransfer/DataFlavor.java
	(javaFileListFlavor): Don't explicitly specify class.
	(plainTextFlavor): Don't explicitly specify class.
	(mimeType): Changed to type MimeType. Remove final.
	(representationClass): Remove final.
	(DataFlavor): Don't do anything here.
	(DataFlavor(Class,String,String)): Removed.
	(DataFlavor(Class,String)): Initialize here.
	(DataFlavor(String,String,ClassLoader)): Initialize in init().
	(DataFlavor(String,String)): Initialize in init().
	(DataFlavor(String)): Initialize in init().
	(init): New initialization method.
	(getMimeType): Delegate to MimeType.toString().
	(getParameter(String,String)): Removed. Is now done in MimeType.
	(getParameter(String)): Delegate to MimeType.
	(getPrimaryType): Delegate to MimeType.
	(getRepresentationClassFromMime): Removed.
	(getRepresentationClassFromMimeThrows): Removed.
	(getSubType): Delegate to MimeType.
	(hashCode): Take MimeType.toString() for the hashCode.
	(isFlavorRemoveObjectType): Return true only when representation
	class is remove and serializable and the mime type is remote.
	(isFlavorSerializedObjectType): Return true only when representation
	class is serializable and the mime type is serialized.
	(isMimeTypeEqual): Rewritten to delegate to MimeType.matches().
	(isMimeTypeSerializedObject): Delegate to isMimeTypeEqual().
	(readExternal): Implemented stub method.
	(writeExternal): Implemented stub method.
	* java/awt/datatransfer/MimeType.java: New helper class.

2006-10-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/TransferHandler.java
	(importData): Implemented stub method. Added API docs.

2006-10-26  Christian Elias Naur  <elias@oddlabs.com>

	* native/jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_depth): New
	function.
	* native/jni/classpath/classpath_jawt.h: Likewise.
	* native/jawt/jawt.c (_Jv_GetDrawingSurfaceInfo): Added
	initializer for surface_info_x11->depth.

2006-10-26  Tania Bento  <tbento@redhat.com>
	
	* java/awt/FileDialog.java:
	(setFile): Changed if-clause condition.

2006-10-25  Francis Kung  <fkung@redhat.com>

	* include/gnu_java_nio_VMChannel.h,
	* include/java_net_VMNetworkInterface.h,
	* include/gnu_java_nio_EpollSelectorImpl.h,
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
	* include/gnu_java_nio_FileChannelImpl.h,
	* include/gnu_java_nio_KqueueSelectorImpl.h,
	* include/gnu_java_nio_VMPipe.h,
	* include/gnu_java_net_VMPlainSocketImpl.h: Regenerated.

2006-10-25  Tania Bento  <tbento@redhat.com>

	* java/awt/Dialog.java: Created new private variable
	next_dialog_number.
	(Dialog(Frame, String, boolean, GraphicsConfiguration)):
	Set cursor to default cursor.
	(Dialog(Dialog, STring, boolean, GraphicsConfiguration)):
	Same.
	(generateName): New method.
	(getUniqueLong): New private method.
	* java/awt/FileDialog.java: Created new private variable
	next_file_dialog_number.
	(setFile): If file == "", set it to null.
	(generateName): New method.
	(getUniqueLong): New private method.

2006-10-25  Robert Schuster  <robertschuster@fsfe.org>

	* java/net/MulticastSocket.java:
	(setNetworkInterface): Rewritten.

2006-10-25  Robert Schuster  <robertschuster@fsfe.org>

	* native/jni/java-net/javanet.h: Added declaration for
	_javanet_create_inetaddress.
	* native/jni/java-net/javanet.c:
	(_javanet_create_inetaddress): Removed static keyword.

2006-10-25  Robert Schuster  <robertschuster@fsfe.org>

        * gnu/java/net/PlainDatagramSocketImpl.java:
        (connect): Use VMChannel instance for connect call.
        (getTimeToLive): Call VMPlainSocketImpl.getTimeToLive.
        (setTimeToLive): Call VMPlainSocketImpl.setTimeToLive.
	(setOption): Handle multicast options.
	(getOption): Handle multicast options.
        * gnu/java/net/PlainSocketImpl.java:
        (getTimeToLive): Call VMPlainSocketImpl.getTimeToLive.
        (setTimeToLive): Call VMPlainSocketImpl.setTimeToLive.
	(setOption): Filter unappropriate options.
	(getOption): Filter unappropriate options.
	(connect): Use given SocketAddress.
	(close): Reset address and port.
	(getInetAddress): 
        * include/Makefile.am: Removed all occurences of
        gnu_java_net_VMPlainDatagramSocketImpl.h.
        * include/gnu_java_net_VMPlainDatagramSocketImpl.h: Removed.
        * native/jni/java-net/Makefile.am: Removed
        gnu_java_net_VMPlainDatagramSocketImpl.c from sources.
        * native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
        Removed.
        as SocketException, declare to throw SocketException.
        * native/jni/java-nio/gnu_java_nio_VMChannel.c: Added definitions
        for SocketException and ConnectException.
        (Java_gnu_java_nio_VMChannel_connect): Throw SocketException instead
        of IOException.
        (Java_gnu_java_nio_VMChannel_connect6): Throw SocketException instead
        of IOException.
	(Java_gnu_java_nio_VMChannel_accept): Rewritten.
	(JCL_thread_interrupted): New function.
	(initIDs): Added initialisation for isThreadInterrupted method id.
        * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: Added
        CPNET_IP_TTL to java_sockopt enum.
        (Java_gnu_java_net_VMPlainSocketImpl_setOption): Handle CPNET_IP_TTL
        case, handle SO_LINGER case properly.
        (Java_gnu_java_net_VMPlainSocketImpl_getOption): Handle CPNET_IP_TTL
        case, handle SO_LINGER case properly.
	(Java_gnu_java_net_VMPlainSocketImpl_getMulticastInterface): New
	function.
	(Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface): New
	function.
	(Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6): New
	function.
	(Java_gnu_java_net_VMPlainSocketImpl_leave6): Fixed constant to be
	IPV6_LEAVE_GROUP.
        * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java: Removed.
        * vm/reference/gnu/java/nio/VMChannel.java:
        (connect(int, byte[], int, int)): Declare to throw SocketException.
        (connect6): Declare to throw SocketException.
        (connect(InetSocketAddress, int)): Catch IOException and rethrow
	(isThreadInterrupted): New method.
        * vm/reference/gnu/java/net/VMPlainSocketImpl.java: Added CP_IP_TTL
        field.
        (setTimeToLive): New method.
        (getTimeToLive): New method.
	(setMulticastInterface(int, InetAddress)): New method.
	(setMulticastInterface(int, int, Inet4Address): New method.
	(setMulticastInterface6(int, int, Inet6Address): New method.
	(setOptions): Handle SO_LINGER case.
	(getOptions): Add missing SO_REUSEADDR case.
	* java/net/Socket.java:
	(Socket(InetAddress, int, InetAddress, int, boolean)): Close socket
	when exception was thrown out of connect().
	(setSoLinger): Replaced instantiations with valueOf calls, replaced
        Boolean.FALSE with Integer.valueOf(-1).
	* native/jni/native-lib/cpio.h: Added cpio_closeOnExec declaration.
	* native/jni/native-lib/cpio.c: Added cpio_closeOnExec implementation.
        * NEWS: Documented VM interface changes.

2006-10-25  Robert Schuster  <robertschuster@fsfe.org>

	* java/net/Inet6Address.java:
	(isMulticastAddress): Fixed check.

2006-10-25  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR29576
	* java/net/MulticastSocket.java:
	(getNetworkInterface): Return a special NetworkInterface instance
	if the socket's multicast interface is set to any.

2006-10-25  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR29576
	* java/net/NetworkInterface.java:
	(createAnyInterface): New method.
	(equals): Added if-statement to handle case where netif.name is null.
	* vm/reference/java/net/VMNetworkInterface.java:
	(hashCode): Rewritten.
	(VMNetworkInterface): New constructor.

2006-10-24  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* tools/Makefile.am: Add ASM_JAR define to each tool's CFLAGS.
	* tools/toolwrapper.c (main): Set bootclasspath, not classpath.
	Add ASM_JAR to bootclasspath.

2006-10-24  Tania Bento  <tbento@redhat.com>

	* java/awt/Scrollbar.java:
	(setLineIncrement): Removed unnecessary if-clause and if 
	lineIncrement == 0, then it should be set to 1, not 0.
	(setPageIncrement): Removed unnecessary if-clause and if
	pageIncrement == 0, then it should be set to 1, not 0.
	(setValues): If visibleAmount <= 0, it should be set to 1, not 0.
	If maximum <= minimum, maximum should be set to mininum + 1. The
	actual value of maximum is maximum - visibleAmount, so I made 
	this change to the appropriate if-check. Remove the two unneccessary
	if-clauses.

2006-10-23  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(cairoSetFont): New method.
	(copy): Set font using setFont method.
	(setFont): Call cairoSetFont.
	(setup): Set font using setFont method.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Added method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(install_font_peer): Removed.
	(cairoDrawGlyphVector): Removed call to install_font_peer.
	(cairoSetFont): New method.

2006-10-23  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/NativeEventLoopRunningEvent.java: New file.
	* gnu/java/awt/peer/gtk/GtkMainThread.java: Post
	NativeEventLoopRunningEvent after GTK main loop start and stop.
	* java/awt/EventQueue.java (isShutdown): Check nativeLoopRunning.
	(getNextEvent): Set dispatchThread to null.
	(postEventImpl): Set nativeLoopRunning.
	(pop): Interrupt event dispatch thread.
	* java/awt/Frame.java (noteFrame): Synchronize on weakFrames.

2006-10-22  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c (config-int.h):
	Added include.
	* native/jni/java-nio/gnu_java_nio_VMChannel.c (config-int.h):
	Likewise.

2006-10-23  Marco Trudel <mtrudel@gmx.ch>

	* gnu/javax/crypto/pad/PKCS7.java (unpad): Removed an unnecessary test.
	* javax/crypto/CipherOutputStream.java: Re-implemented.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java
	(engineUpdate(byte[], int, int)): Always keep data for unpadding in padded
	decryption mode and check if it is a complete block.
	(engineUpdate(byte[], int, int, byte[], int)): Likewise.
	(engineDoFinal(byte[], int, int)): In padded decryption mode, take
	partially processed data into account.

2006-10-21  Tom Tromey  <tromey@redhat.com>

	PR classpath/29086:
	* java/util/AbstractCollection.java (toArray): Removed cast.

2006-10-20  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/JniIncludePrinter.java (printClass):
	Don't use mangled class name for .h file.
	* tools/gnu/classpath/tools/javah/JniStubPrinter.java (printClass):
	Don't use mangled class name for .c file.
	* tools/gnu/classpath/tools/javah/CniPrintStream.java (writeClass):
	Handle classes from the default package.

2006-10-20  Francis Kung  <fkung@redhat.com>

	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Added missing constants.

2006-10-19  Francis Kung  <fkung@redhat.com>

	PR 29510
	* java/awt/image/BufferedImage.java
	(constructor): Updated some properties of default image types.
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(argb32): Updated field to match default in BufferedImage.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	PR 29419
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copyArea): Changed size comparison to return when size == 0
	too.
	* javax/swing/JViewport.java
	(paintBackingStore): Check width and height of blitted area
	and only do blit if its > 0.
	(paintBlit): Check width and height of blitted area
	and only do blit if its > 0.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	PR 27091
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(maximize): New native method.
	(unmaximize): New native method.
	(iconify): New native method.
	(deiconify): New native method.
	(getState): Implemented.
	(setState): Implemented.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(oldState): Rename to windowState and made protected, so that
	the FramePeer can access it.
	(postWindowEvent): Handle state change events more gently and
	correctly.
	* java/awt/Frame.java
	(getState): Fetch state from getExtendedState().
	(setExtendedState): Update the peer. Check if the state change
	is actually supported.
	(getExtendedState): Update the state from the peer.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	(maximize): New method.
	(unmaximize): New method.
	(iconify): New method.
	(deiconify): New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(AWT_FRAME_NORMAL): New macro.
	(AWT_FRAME_ICONIFIED): New macro.
	(AWT_FRAME_MAXIMIZED_BOTH): New macro.
	(window_window_state_cb): Rewritten to handle window state changes
	more gently (mostly on the java side of the world).
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Regenerated.

2006-10-18  Tania Bento  <tbento@redhat.com>

	* java/awt/CardLayout.java:
	(maximumLayoutSize): Return a new Dimension with Integer.MAX_VALUE as
	its height and width if Container passed as argument is null.
	(gotoComponent): Consider the case where the component is not visible.

2006-10-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	Rename file...
	* resource/gnu/classpath/tools/appletviewer/messages.properties:
	New file.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties:
	Remove file.
	* tools/gnu/classpath/tools/appletviewer/AppletWarning.java:
	Remove file.
	* tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java:
	Likewise.
	* tools/gnu/classpath/tools/appletviewer/Messages.java: New file.
	* tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java:
	Retrieve user-visible strings through Messages.getString.
	* tools/gnu/classpath/tools/appletviewer/Main.java: Likewise.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java:
	Likewise.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java:
	Likewise.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java:
	Likewise.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java:
	Likewise.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java:
	Likewise.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java:
	Likewise.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(AWT_WINDOW_OPENED): Remove unnecessary macro.
	(window_show_cb): Removed unnecessary function.
	(connect_signals): Don't connect signal for show.  *
	gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(hasBeenShown): Removed. This is handled in java.awt.Window.
	(postWindowEvent): Removed handling of WINDOW_OPENED. This is done
	in java.awt.Window.  * java/awt/Window.java
	(dispose): Post WINDOW_CLOSED here, not WINDOW_OPENED.

2006-10-18  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	(drawRenderedImage):  New method.
	(drawImage): New method.
	(CairoSurfaceGraphics): Set clip.
	(createBuffer): New method.
	(getBufferCM): New method.
	(drawComposite): New method.
	(fill): New method.
	(getNativeCM): New method.
	(drawGlyphVector): New method.
	(draw): New method.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(getNativeCM): Reflect renamed field.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(cairoCM_pre): Renamed from cairoColorModel.
	(cairoColorModel): Set premultiplication to false.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	PR 28769
	* javax/swing/JScrollPane.java
	(viewportBorder): Made field private.
	(wheelScrollingEnabled): Made field private.
	(JScrollPane): Enabled wheel scrolling by default.
	* javax/swing/JTree.java
	(TreeSelectionRedirector.valueChanged): Don't repaint anything
	here.
	(getScrollableUnitIncrement): Fixed thinko.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(static scrollByBlock): New static method to avoid code duplication
	for the BasicScrollPane wheel scrolling.
	(static scrollByUnits): New static method to avoid code duplication
	for the BasicScrollPane wheel scrolling.
	(scrollByBlock): Delegate to static helper method.
	(scrollByUnit): Delegate to static helper method.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(MouseWheelHandler.mouseWheelMoved): Delegate to BasicScrollBarUI
	static helper methods to avoid code duplication.
	(MouseWheelHandler.bounds): Removed.
	(MouseWheelHandler.getValue): Removed.
	(MouseWheelHandler.scroll): Removed.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	PR 29502
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(updateComponent): Don't override this here.
	* java/awt/Window.java
	(addWindowListener): Ignore null listener. Set newEventsOnly flag.
	(addWindowFocusListener): Ignore null listener. Set newEventsOnly
	flag.
	(addWindowStateListener): Ignore null listener. Set newEventsOnly
	flag.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(getStream): Try to detect and set the content type of the
	connection stream.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(RepaintWorkerEvent): Pass full set of params to super.
	(RepaintWorker.dispatch): Overridden to allow apps to call this
	via reflection.
	(addDirtyRegion): Synchronize a little more to protect the
	dirtyComponents field and avoid NPEs.
	(invokeLater): Pass full set of params to RepaintWorkerEvent
	constructor.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(page): Removed field. The page is now stored in the correct
	document property.
	(getPage): Fetch page URL from document property.
	(read): Set the document for this JEditorPane. Use a Reader
	for reading in the document.
	(setPage): Call getStream() to get the stream from which we read.
	Fire property change. Store page in document property.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/datatransfer/DataFlavor.java
	(DataFlavor(String)): Removed check for space in mime string.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(validateTree): Call ContainerPeer.begin|endLayout() rather than
	begin|endValidate().
	(validate): Call ContainerPeer.begin|endValidate() here.
	Added some local vars to avoid NPEs.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	* native/target/.cvsignore
	* native/target/Linux/.cvsignore
	* native/target/generic/.cvsignore:
	Added to let CVS ignore the generated Makefile and Makefile.in
	files.

2006-10-18  Roman Kennke  <kennke@aicas.com>

	PR 29448
	* java/awt/Window.java
	(eventTypeEnabled): Overridden to handle WindowEvents.
	(processEvent): Switch between processWindowEvent(),
	processWindowFocusEvent() and processWindowStateEvent() here,
	rather than simply calling processWindowEvent().
	(processWindowEvent): Only dispatch event to listener, do not
	switch to processWindowFocusEvent() or processWindowStateEvent()
	here.
	* javax/swing/JFrame.java
	(frameInit): Explicitly enable window and key events here.
	(processWindowEvent): Throw out some unnecessary code.
	* javax/swing/JWindow.java
	(windowInit): Explicitly enable key events here.
	* javax/swing/JDialog.java
	(close_action): Renamed to closeAction.
	(dialogInit): Explicitly enable window events here.
	(getDefaultCloseOperation): Renamed close_action to closeAction.
	(processWindowEvent): Throw out some unnecessary code.
	Renamed close_action to closeAction.
	(setDefaultCloseOperation): Renamed close_action to closeAction.

2006-10-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkMainThread.java: Introduce running flag
	to track native GTK event loop status.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Set and
	clear running flag when native GTK event loop starts and stops.

2006-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/TransferHandler.java
	(exportToClipboard): Implemented.

2006-10-17  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java (draw): Extend updated
	region to account for pixel-shifting.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (shiftDrawCalls): Made
	proctected.

2006-10-17  Francis Kung  <fkung@redhat.com>

	PR 29450
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(getLogicalBounds): Translate individual glyphs before appending bounds.
	(getOutline): Translate individual glyphs before appending outline.

2006-10-17  Cameron McCormack  <cam@mcc.id.au>

	PR 29014
	* java/awt/font/TextLayout.java
	(bidi): New field.
	(constructor): Store bidi in field.
	(getCharacterLevel): Implemented.

2006-10-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/TransferHandler.java
	(PropertyTransferable): New inner class. Handles transfers
	from component properties.
	(createTransferable): Implemented.

2006-10-17  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(drawComposite): Ensure	composite does not extend beyond buffer
	bounds.
	* java/awt/image/Raster.java
	(createChild): Ensure child does not extend beyond parent's
	bounds.
	* java/awt/image/WritableRaster.java
	(createWritableChild): Ensure child does not extend beyond
	parent's bounds.

2006-10-17  Jeroen Frijters  <jeroen@frijters.net>

	* native/jni/classpath/jcl.c
	(JNI_OnLoad): Corrected calling convention.

2006-10-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/TransferHandler.java
	(propertyName): New field.
	(TransferHandler(String)): Store property name in field.
	(canImport): Implemented stub method.
	(exportDone): This is a no-op. Removed not-implemented mark.
	(getPropertyDataFlavor): New helper method.
	(getPropertyDescriptor): New helper method.

2006-10-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleJButton.getAfterIndex): Implemented.
	(AccessibleJButton.getAtIndex): Implemented.
	(AccessibleJButton.getBeforeIndex): Implemented.
	(AccessibleJButton.getCharacterAttribute): Completed incomplete
	method implementation.

2006-10-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getIndexAtPoint): Implemented.
	(AccessibleJLabel.getCharacterBounds): Implemented.
	(AccessibleJLabel.getTextRectangle): New helper method.

2006-10-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/filechooser/FileSystemView.java
	(getFileSystemView): Mark as implemented.

2006-10-14  Roman Kennke  <kennke@aicas.com>

	PR 27957
	* javax/swing/JComponent.java
	(toolTipText): Removed field.
	(createToolTip): Don't set tooltip text here. This is done
	in the ToolTipManager.
	(setToolTipText): Set tooltip text as client property.
	(getToolTipText): Get tooltip text from client property.
	* javax/swing/ToolTipManager.java
	(currentComponent): Made field non-static and of type JComponent.
	(currentPoint): Made field non-static.
	(currentTip): Made field non-static.
	(popup): Made field non-static.
	(toolTipText): New field. Stores the current tooltip text.
	(checkTipUpdate): New helper method. Checks for updates of
	the tooltip text and triggers the appropriate actions.
	(getContentPaneDeepestComponent): Removed unneeded casts.
	(mouseEntered): Removed unneeded cast. Initially fetch tooltip
	text from component.
	(mouseMoved): Check for tooltip text updates.
	(showTip): Set tooltip text from current setting.

2006-10-14  Roman Kennke  <kennke@aicas.com>

	PR 27956
	* javax/swing/JSlider.java
	(setPaintLabels): Call setLabelTable() instead of setting
	the field directly. This also updates the label's size.

2006-10-13  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/ClassWrapper.java (toString): New
	method.

2006-10-13  Tania Bento  <tbento@redhat.com>

	* java/awt/ScrollPane.java
	(setLayout): Should throw AWTError whenever called.

2006-10-13  Roman Kennke  <kennke@aicas.com>

	PR 29448
	* java/awt/Component.java
	(dispatchEventImpl): Special handle ComponentReshapeEvents to
	update the AWT's knowledge about a component's size.
	* gnu/java/awt/ComponentReshapeEvent.java: New class.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(postConfigureEvent): Directly dispatch a ComponentReshapeEvent
	to update the AWT's knowledge about the component bounds.

2006-10-13  Tania Bento  <tbento@redhat.com>

	* java/awt/ScrollPaneAdjustable.java
	(setMaximum): Should throw AWTError whenever called.
	(setMinimum): Same.
	(setVisibleAmount): Same.

2006-10-13  Tania Bento  <tbento@redhat.com>

	* java/awt/ScrollPane.java
	(addImpl): When calling super, index should be value passed, 
	not -1.
	(getIsValidString): New helper method for paramString().
	(getScrollbarDisplayString): New helper method for paramString(). 
	(paramString): Changed format of outputted string.

2006-10-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(clone): Added cast to TreePath[].

2006-10-13  Roman Kennke  <kennke@aicas.com>

	PR 27780
	* javax/swing/JMenuItem.java
	(isDragging): New field. Indicates if we are inside a mouse
	drag.
	(createMenuDragMouseEvent): Removed unneeded method.
	(processMenuDragMouseEvent): Track if we are dragging.
	(processMouseEvent): Simply forward to processMenuDragMouseEvent().
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(MenuDragMouseHandler.menuDragMouseDragged): Fetch
	MenuSelectionManager from event.
	(MenuDragMouseHandler.menuDragMouseEntered): Fetch
	MenuSelectionManager from event.
	(MenuDragMouseHandler.menuDragMouseExited): Fetch
	MenuSelectionManager from event.
	(MenuDragMouseHandler.menuDragMouseReleased): Click on mouse
	release inside menu item, otherwise clear selection.
	(MenuInputHandler.mouseReleased): Avoid multiple calls to getX()
	and getY(). Call doClick() rather than the doClick() of JMenuItem.
	(doClick): Perform an immediate click.

2006-10-13  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/DefaultComboBoxModel.java (setSelectedItem): Simply
	return if object is not in the list.

2006-10-12  Andrew Haley  <aph@redhat.com>

	* java/lang/InheritableThreadLocal.java: Rename NULL to sentinel.
	* java/lang/ThreadLocal.java: Likewise.

2006-10-12  Roman Kennke  <kennke@aicas.com>

	PR 27956
	* javax/swing/JSlider.java
	(LabelUIResource): New inner class. A JLabel as UIResource.
	(createStandardLabels): Don't set label bounds here.
	Create LabelUIResource instances.
	(setInverted): Repaint.
	(setLabelTable): Update the label UIs. Revalidate and repaint.
	(setMajorTickSpacing): Update the label table. Repaint if
	necessary.
	(setMinorTickSpacing): Repaint if necessary.
	(setOrientation): Revalidate.
	(setPaintLabels): Revalidate and repaint.
	(setPaintTicks): Revalidate and repaint.
	(setPaintTrack): Repaint.
	(updateLabelUIs): Set the label sizes here.
	(updateUI): Also update the label UIs.
	* javax/swing/plaf/basic/BasicSliderUI.java
	(ComponentHandler.componentResized): Don't revalidate.
	(FocusHandler.focusGained): Don't set field.
	(FocusHandler.focusLost): Don't set field.
	(PropertyChangeHandler.propertyChange): Calculate geometry
	and repaint for a couple more properties.
	(TrackListener.mouseReleased): Repaint.
	(hasFocus): Removed unneeded field.
	(calculateContentRect): No need to check for content size < 0.
	(calculateFocusRect): Use insets from insetCache.
	(calculateLabelRect): Fixed calculation of label rectangle.
	It is relative to the tick rectangle, rather than the content
	rectangle.
	(calculateTickRect): Small restructuring to avoid unnecessary
	comparisons.
	(calculateTrackRect): Fixed calculation of track rectangle.
	(getMaximumSize): Fixed. Fetch preferred size and set
	the height of width to Short.MAX_VALUE.
	(getMinimumHorizontalSize): Fixed to return UIManager value.
	(getMinimumVerticalSize): Fixed to return UIManager value.
	(getPreferredHorizontalSize): Fixed to return UIManager value.
	(getPreferredVerticalSize): Fixed to return UIManager value.
	(getMinimumSize): Fixed to return the UIManager value plus
	insets added.
	(getPreferredSize): Fixed to return the UIManager value plus
	insets added.
	(getWidthOfWidestLabel): Restructured for more cleanness and
	efficiency.
	(hitClip): New helper method.
	(paintHorizontalLabel): Replaced by more efficient and clean
	implementation.
	(paintVerticalLabel): Replaced by more efficient and clean
	implementation.
	(paintLabels): Replaced by more efficient and clean
	implementation.
	(paint): Check if rectangles intersect with clip for maximum
	efficiency.
	(recalculateIfInsetsChanged): Fixed. This method should
	recalculate only when the insets changed.
	(setThumbLocation): Repaint with a reasonable clip.
	(xPositionForValue): Made more clean and efficient.
	(yPositionForValue): Made more clean and efficient.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponenDefaults):	Added Slider.horizontalSize,
	Slider.verticalSize, Slider.minimumHorizontalSize and
	Slider.minimumVerticalSize properties.
	* javax/swing/plaf/metal/MetalSliderUI.java
	(getTickLength): Add 1 for horizontal sliders and 3 for
	vertical sliders.
	(paintMajorTickForHorizSlider): Fix colors. Fix line locations.
	(paintMinorTickForHorizSlider): Fix colors. Fix line locations.
	(paintMajorTickForVertSlider): Fix colors. Fix line locations.
	(paintMinorTickForVertSlider): Fix colors. Fix line locations.

2006-10-12  Roman Kennke  <kennke@aicas.com>

	PR 28696
	* javax/swing/text/FlowView.java
	(FlowStrategy.layout): Preserve logical views from getting lost.
	(FlowStrategy.layoutRow): Fix line breaking.
	(FlowStrategy.adjustRow): Fix line breaking.
	(FlowStrategy.changedUpdate): Mark layout invalid, or repaint.
	(FlowStrategy.insertUpdate): Mark layout invalid, or repaint.
	(FlowStrategy.removeUpdate): Mark layout invalid, or repaint.
	(createView): Don't check index.
	(contains): New helper method.
	(reparent): New helper method.
	(layoutDirty): Removed unneeded field.
	(FlowView): Removed layoutDirty field init.
	(changedUpdate): Removed layoutDirty handling.
	(insertUpdate): Removed layoutDirty handling.
	(removeUpdate): Removed layoutDirty handling.
	(layout): Use isLayoutValid() rather than the layoutDirty field.
	* javax/swing/text/GlyphView.java
	(startOffset): Removed.
	(endOffset): Removed.
	(offset): New field.
	(length): New field.
	(GlyphView): Initialize new fields. Removed old fields.
	(createFragment): Create fragment with new relative offsets.
	(getEndOffset): Work with new relative offsets.
	(getStartOffset): Work with new relative offsets.
	* javax/swing/text/ParagraphView.java
	(Row.getStartOffset): Overidden to determine the minimum start
	offset from the children.
	(Row.getEndOffset): Overidden to determine the maximum end
	offset from the children.
	* javax/swing/text/html/BRView.java
	Make subclass of InlineView.
	(getBreakWeight): Fall back to super for Y_AXIS.

2006-10-12  Roman Kennke  <kennke@aicas.com>

	PR 28733
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabPaneLayout.normalizeTabRuns): Replaced algorithm with
	one that avoids faulty state that could cause division by zero
	error.

2006-10-12  Roman Kennke  <kennke@aicas.com>

	PR 28057
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Determine correct icon. Added support for HTML label.
	Added small optimizations.
	(getPreferredSize): Only consider the buttons iconTextGap, and
	only when the text is not null.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fetch border for RadioButton from
	BasicButtons.getRadioButtonBorder().
	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(paintFocus): Paint focus rectangle one pixel smaller.

2006-10-12  Roman Kennke  <kennke@aicas.com>

	PR 29418
	* javax/swing/tree/AbstractLayoutCache.java
	(getNodeDimensions): Don't throw InternalError, but instead
	return null.
	(getRowsForPaths): Check for null here.
	(isFixedRowHeight): Returns true when rowHeight > 0.
	(setSelectionModel): Set this as the row mapper for the selection
	model.
	* javax/swing/tree/VariableHeightLayoutCache.java
	(NodeRecord.NodeRecord): Initialize bounds field.
	(getBounds): Simply return the bounds field.
	(row2Node): Changed to be an ArrayList.
	(RECT_CACHE): New field. Caches a Rectangle instance.
	(countRows): Added y parameter and return value. The method
	now takes the current y position as parameter, and returns
	the updated y position.
	(getBounds): Fixed to return the correct bounds.
	(getPathForRow): Replaced by fixed implementation.
	(getPreferredHeight): Replaced by more efficient implementation.
	This simply fetches the last node record and returns its lower
	bounds.
	(getPreferredWidth): Added null check.
	(getVisibleChildCount): Added null check.
	(getVisiblePathsFrom): Added null check.
	(setExpandedState): Also expand the ancestors of the node
	to be expanded.
	(setModel): Set dirty flag rather than updating for real.
	(setNodeDimensions): Overridden to set the dirty flag.
	(setRowHeight): Overridden to set the dirty flag.
	(update): Don't special case the root here, this is done now
	in countRows().

2006-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintImmediately2): Added support for components which need
	to force themselves as paint root.
	(isPaintRoot): New method. This should be overridden by components
	which need to force themselves as paint root.
	* javax/swing/JViewport.java
	(isPaintRoot): Overridden to force the viewport as paint root
	when running in backingstore mode.

2006-10-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(PathPlaceHolder): New inner class. Wraps a path and its status
	wrt to its newness.
	(selectedPaths): New field. A supporting datastructure.
	(tmpPaths): New field. A supporting datastructure.
	(DefaultTreeSelectionModel): Initialize the list selection model,
	the leadIndex and the supporting datastructures.
	(addPropertyChangeListener): Create changeSupport object lazily.
	(addSelectionPaths): Mostly rewritten to handle the different
	selection modes correctly.
	(addSelectionPath): Delegate to addSelectionPaths().
	(arePathsContiguous): Replaced with more efficient implementation
	using BitSet
	(canPathBeAdded): Removed unneeded method.
	(canPathsBeAdded): Replaced with more efficient implementation.
	(clearSelection): Create correct event. Clear the fields correctly,
	including the supporting datastructures.
	(clone): Also clone the supporting datastructures and nullify
	changeSupport field.
	(getMaxSelectionRow): Delegate to list selection model.
	(getMinSelectionRow): Delegate to list selection model.
	(getPath): Removed unneeded method.
	(getPropertyChangeListeners): Handle null changeSupport field
	correctly.
	(getRow): Handle null rowMapper field correctly.
	(getSelectionRows): Handle invisible rows correctly.
	(insureRowContinuity): Replaced by more efficient and correct
	implementation.
	(isRowSelected): Delegate to list selection model.
	(notifyPathChange): Made more efficient by use of PathPlaceHolder
	class.
	(removePropertyChangeListener): Handle null changeSupport field.
	(removeSelectionPaths): Mostly rewritten to handle the different
	selection modes correctly.
	(removeSelectionPath): Delegate to removeSelectionPaths().
	(resetRowSelection): Handle list selection model.
	(selectOne): Removed unneeded field.
	(setRowMapper): Reset the row selection.
	(setSelectionMode): Check for invalid mode and set to
	DISCONTINUOUS_TREE_SELECTION in this case. Fire property change.
	(setSelectionPaths): Mostly rewritten to handle the different
	selection modes correctly.
	(setSelectionPath): Delegate to setSelectionPaths().
	(updateLeadIndex): Made more efficient.

2006-10-11  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(buffer, locked): New fields.
	(constructors): Initialize new variables.
	(createBuffer): New method.
	(draw): Implement custom composites.
	(drawComposite): New method.
	(drawGlyphVector): Implement custom composites.
	(drawImage): Implement custom composites.
	(drawRenderedImage): Implement custom composites.
	(fill): Implement custom composites.
	(getBufferCM): New method.
	(getNativeCM): New method.
	(updateBufferedImage): Fix premultiplication.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copy): Copy composite.
	(drawImage): Set background properly.
	(getBufferCM): New method.
	(setComposite): Reset alpha composite when using custom composite.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(cairoColorModel): New field.
	(nativeColorModel): Renamed.
	(constructor): Use renamed createCairoSampleModel method.
	(createCairoSampleModel): New method.
	(createNativeSampleModel): Renamed.
	(getBufferedImage): Use renamed cairoColorModel field.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	(gdkColorModel): New field.
	(createGdkSampleModel): New method.
	(getPixels): Added comments.
	(getSnapshot): Use GDK colour and sample models.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(createBuffer): Use GDK colour and sample models.
	(getNativeCM): Added comments.
	* java/awt/image/BufferedImage.java
	(constructor): Set premultiplied flag properly.
	
2006-10-11  Edwin Steiner  <edwin.steiner@gmx.net>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c
	(Java_gnu_java_nio_VMChannel_lock): Special case Long.MAX_VALUE.

2006-10-10  Francis Kung  <fkung@redhat.com>

	PR 29372
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(createPath): Added isDraw parameter.
	(draw): Updated createPath call.
	(fill): Updated createPath call.

2006-10-10  Tom Tromey  <tromey@redhat.com>

	PR classpath/29362:
	* gnu/xml/transform/TransformerImpl.java (transform): Only strip if
	there is a stylesheet.

2006-10-10  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getDefaultTookit): Make method synchronized to avoid
	accidentally creating more than one toolkits from different
	threads.

2006-10-10  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Redispatch MOUSE_WHEEL events too.
	(redispatch): Transfer the button to the redispatched event.

2006-10-10  Francis Kung  <fkung@redhat.com>

	* java/awt/image/ColorModel.java (coerceData): Implemented.

2006-10-09  Christian Elias Naur  <elias@oddlabs.com>

	* vm/reference/java/lang/VMClassLoader.java:
	(defineClassWithTransformers): Use proper class name format.

2006-10-09  Gary Benson  <gbenson@redhat.com>

	* java/net/ServerSocket.java
	(implAccept): Add security check.
	(accept): Close socket if security check fails.
	(setSocketFactory): Add security check and already-set check.

2006-10-09  Roman Kennke  <kennke@aicas.com>

	PR 29325
	* javax/swing/JSplitPane.java
	(dividerLocation): New field. Stores the divider location.
	(JSplitPane): Initialize dividerLocation with -1.
	(addImpl): Removed unneeded local variables.
	(getDividerLocation): Manage dividerLocation in the JSplitPane
	class, not in the UI.
	(setDividerLocation): Manage dividerLocation in the JSplitPane
	class, not in the UI. Only call the UI method for notification.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.layoutContainer): Fetch divider
	location from the JSplitPane. Honour the minimumSize, but only
	if the divider location hasn't been set explicitly.
	(BasicHorizontalLayoutManager.minimumLayoutSize): Removed unneeded
	statement.
	(BasicHorizontalLayoutManager.preferredLayoutSize): Removed unneeded
	statement.
	(BasicHorizontalLayoutManager.resetToPreferredSizes): Don't touch
	the divider location.
	(dividerLocationSet): New field.
	(dividerLocation): Removed field.
	(createActionMap): Fetch and set divider location on the JSplitPane.
	(getDividerLocation): Return the actual real divider location.
	(getMaximumSize): Removed unneeded cast.
	(getPreferredSize): Removed unneeded cast.
	(getMinimumSize): Removed unneeded cast.
	(installUI): Initialize dividerLocationSet with false.
	(uninstallUI): Initialize dividerLocationSet with false.
	(setDividerLocation): Set dividerLocationSet to true.

2006-10-09  Robert Schuster  <robertschuster@fsfe.org>

	* native/jni/java-net/gnu_java_net/VMPlainSocketImpl.c:
	(Java_gnu_java_net_VMPlainSocketImpl_joinGroup): Properly
	convert jstring into char *.
	(Java_gnu_java_net_VMPlainSocketImpl_joinGroup6): Dito.
	(Java_gnu_java_net_VMPlainSocketImpl_leaveGroup): Dito.
	(Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6): Dito.
	(getif_address): Added const modifier to second argument.
	(getif_index): Dito.

2006-10-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTree.java
	(isSelected): Added API docs.

2006-10-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTree.java
	(isSelected): Delegate to the selection model directly.

2006-10-09  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/nio/KqueueSelectorImpl.java: Renamed field
	sizeof_struct_kevent to _sizeof_struct_kevent.

2006-10-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/rmic/RMICException.java:
	javadoc corrections, reformatted.

2006-10-07  Christian Elias Naur  <elias@oddlabs.com>

	* gnu/java/lang/InstrumentationImpl.java:
	Made constructor package visible.

2006-10-05  Gary Benson  <gbenson@redhat.com>

	* java/net/Socket.java
	(Socket): Perform security check on address not hostname.

2006-10-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/VariableHeightLayoutCache.java
	(getBounds): When rect is null, create a new Rectangle.

2006-10-04  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/java-nio/javanio.c (cpnio_read, cpnio_readv)
	(cpnio_write, cpnio_writev, cpnio_socket, cpnio_connect)
	(cpnio_accept, cpnio_sendto, cpnio_recvfrom, cpnio_fcntl)
	(cpnio_select): Use CPNIO_EXPORT.
	* native/jni/java-nio/javanio.h (CPNIO_EXPORT): Define to static
	inline instead of extern inline, as newer GCCs changed their
	behavior.

2006-10-04  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java: Updated javadoc.
	(<clinit>, getByLiteral): Throw InternalError on failures.

2006-10-03  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(compCtx): New field for composite context.
	(copy): Copy composite.
	(dispose): Dispose of composite context.
	(getNativeCM): New method.
	(setComposite): Discard old composite context and set up new context.
	(setRenderingHints): Update composite context.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(nativeColorModel): New field, renamed from nativeModel.
	(nativeModel): Renamed field to nativeColorModel.
	(CairoSurface(int, int)): Call new method to create sample model.
	(createNativeSampleModel): New method.
	(getBufferedImage): Updated variable name.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(buffer): New field.
	(createBuffer): New method.
	(draw): New method.
	(drawComposite): New method.
	(drawGlyphVector): New method.
	(drawImage(Image, AffineTransform, Color, ImageObserver)): New method.
	(drawImage(Image, int, int, ImageObserver)): Check composite.
	(drawImage(Image, int, int, int, int, ImageObserver)): Check composite.
	(fill): New method.
	(getNativeCM): New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	(Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels): Use 
	intermediary pixbuf to grab on-screen pixels.

2006-10-03  Tom Tromey  <tromey@redhat.com>

	PR classpath/28987:
	* java/util/IdentityHashMap.java (tombstone): Removed.
	(emptyslot): Removed.
	(nullslot): New field.
	(IdentityHashMap): Don't fill array.
	(clear): Fill with null.
	(hash): Now final.  Use linear probing.
	(xform): New method.
	(unxform): Likewise.
	(removeAtIndex): Likewise.
	(clone, containsKey, containsValue, entrySet, get, hashCode,
	keySet, put, remove, values): Updated.
	(IdentityIterator, IdentityEntry): Likewise.
	(writeObject): Likewise.

2006-10-03  Tom Tromey  <tromey@redhat.com>

	* java/util/Locale.java (hashcode): Updated javadoc.
	(hashcodeCache): Removed.
	(Locale): Updated.
	(hashCode): Updated.
	(writeObject): New method.
	(readObject): Updated.

2006-10-02  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Recognise that raw data is alpha-premultiplied.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(clearRect): Paint background colour with AlphaComposite.SRC rule.
	(drawImage(Image, AffineTransform, Color, ImageObserver)): Alpha
	pre-multiply data before drawing.
	(fillRect): Draw using regular fill() method.
	(setComposite): Handle null case with AlphaComposite.SrcOver default.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(nativeModel): Use correct value for alpha premultiplication (true).
	* java/awt/image/BufferedImage.java
	(coerceData): Update isPremultiplied field.

2006-10-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/classpath/ListenerData.java:
	New class for holding listener data.
	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	ListenerData class moved to its own file.
	* javax/management/MBeanServerDelegate.java,
	* javax/management/MBeanServerDelegateMBean.java,
	* javax/management/MBeanServerNotification.java:
	Implemented.

2006-10-02  Tania Bento  <tbento@redhat.com>

	* java/ast/Rectangle.java:
	(Rectangle(Rectangle)): Do not throw NPE.
	(Rectangle(Point, Dimension)): Same.
	(Rectangle(Point)): Same.
	(Rectangle(Dimension)): Same.

2006-09-29  Casey Marshall  <csm@gnu.org>

	PR 29190
	* gnu/java/nio/EpollSelectionKeyImpl.java: extend
	`AbstractSelectionKey.'
	(cancel, isValid): removed.
	* gnu/java/nio/EpollSelectorImpl.java (cancelledKeys): removed.
	(events): new field.
	(INITIAL_CAPACITY, MAX_DOUBLING_CAPACITY, CAPACITY_INCREMENT): new
	fields.
	(<clinit>): initialize those constants.
	(<init>): don't initialize `cancelledKeys;' initialize `events.'
	(doSelect): deregister cancelled keys; remove keys attached to
	closed channels; wrap `epoll_wait' in `begin' and `end' calls; use
	`events' buffer; reallocate `events' buffer if needed.
	(register): reallocate `events' buffer if needed.
	(reallocateBuffer): new method.
	(cancel): removed.

2006-09-29  Roman Kennke  <kennke@aicas.com>

	PR 28929
	* javax/swing/JViewport.java
	(cinit): Renamed system property to gnu.swing.scrollmode
	to avoid bloat. Default to BACKINGSTORE, this is much
	more reliable.
	(repaint): Forward repaint() to parent as is specified.

2006-09-29  Tania Bento  <tbento@redhat.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(getPreferredSize): The number of iterations for the for-loop should be
	the number of columns in the table's column model, not the number of
	columns of the table.
	* javax/swing/JTable.java
	(JTable(TableModel, TableColumnModel, ListSelectionModel): Removed 4
	lines that are not needed.
	(initializeLocalVars): dragEnabled should be set to false, not true.
	(getCellRenderer): Added a check to prevent an
	ArrayIndexOutOfBoundsException.
	(doLayout): The number of iterations for the for-loops should be the
	number of columns in the table's column model, not the number of columns
	of the table.

2006-09-29  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java: Updated
	API docs.
	(isOptimized): Initialize with true.
	(paintRaster): Removed unneeded field.
	(shapeCache): New static field. Caches certain shapes for reuse.
	(computeIntersection): Removed unneeded casts.
	(drawArc): Use shape cache.
	(drawImage): Removed unneeded statement.
	(drawLine): Use shape cache. Pass untranslated coordinates
	to rawDrawLine().
	(drawOval): Use shape cache.
	(drawPolygon): Use shape cache.
	(drawRect): Overridden to provide accelerated rectangle drawing
	if possible and to use the shape cache.
	(drawRoundRect): Use shape cache.
	(fillArc): Use shape cache.
	(fillOval): Use shape cache.
	(fillPolygon): Use shape cache.
	(fillRect): Pass untranslated coordinates to rawFillRect().
	Use shape cache.
	(fillRoundRect): Use shape cache.
	(fillScanlineAA): Removed unneeded statement.
	(fillScanline): Updated API docs.
	(fillShapeAntialias): Removed unnecessary cast.
	(fillShapeImpl): Update API docs. Removed unnecessary cast.
	(fillShape): Updated API docs.
	(getShapeCache): New helper method.
	* gnu/java/awt/java2d/ShapeCache.java: New class. Caches
	certain shapes for reuse in AbstractGraphics2D.

2006-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/BadBinaryOpValueExpException.java:
	(getExp()): Implemented.
	* javax/management/MBeanConnection.java:
	Renamed to MBeanServerConnection.
	* javax/management/MBeanServer.java:
	(setAttribute(Attribute)): Fixed...
	(setAttribute(ObjectName,Attribute)): to this.
	* javax/management/MBeanServerConnection.java:
	Renamed from MBeanConnection.
	* javax/management/QueryExp.java:
	Extend Serializable.
	* javax/management/ValueExp.java:
	Likewise.
	* javax/management/loading/ClassLoaderRepository.java:
	(loadClass(String)): Throw ClassNotFoundException.
	(loadClassBefore(ClassLoader,String)): Likewise.
	(loadClassWithout(String, ClassLoader): Fixed...
	(loadClassWithout(ClassLoader,String)): to this.
	
2006-09-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/DefaultTreeCellRenderer.java
	(DefaultTreeCellRenderer): Fetch drawsFocusBorderAroundIcon
	property from UIManager.
	(paint): Rewritten to use super's implementation and only paint
	background and focus indicator before.
	(paintFocus): New helper method.
	(getXOffset): New helper method.

2006-09-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* javax/management/BadBinaryOpValueExpException.java,
	* javax/management/MBeanConnection.java,
	* javax/management/MBeanServer.java,
	* javax/management/ObjectInstance.java:
	Implemented.
	* javax/management/ObjectName.java:
	(setMBeanServer(MBeanServer)): Implemented.
	* javax/management/QueryExp.java,
	* javax/management/ValueExp.java,
	* javax/management/loading/ClassLoaderRepository.java:
	Implemented.

2006-09-27  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/nio/VMChannelOwner.java: Removed unneeded imports.

2006-09-27  Robert Schuster  <robertschuster@fsfe.org>

	* vm/reference/gnu/java/nio/VMChannel.java: Removed unneeded imports.
	* vm/reference/gnu/java/nio/VMPipe.java: Removed unneeded imports.
	* gnu/java/nio/EpollSelectorImpl.java:
	(doSelect): Use Integer.valueOf() instead of constructor call.
	(register): Use Integer.valueOf() instead of constructor call.

2006-09-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(addContainerListener): Activate newEventsOnly for the component.
	Ignore null listeners.

2006-09-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/EventQueue.java
	(Queue): New inner class. Implements the actual queue.
	(LOW_PRIORITY): New constant field.
	(NORM_PRIORITY): New constant field.
	(queueHead): Removed. Moved into Queue.
	(queueTail): Removed. Moved into Queue.
	(queues): New field.
	(EventQueue): Initialize two internal queues, one for
	normal events, one for low priority events.
	(getNextEventImpl): New helper method, fetches the next event.
	(getNextEvent): Use getNextEventImpl() for fetching the event.
	(peekEvent): Use getNextEventImpl() for fetching the event.
	(peekEvent(int)): Search for event in all queues.
	(postEventImpl(AWTEvent)): Moved actual posting into
	postEventImpl(AWTEvent,int). Prioritize events here.
	(postEventImpl(AWTEvent,int)): Take priority parameter and insert
	event into correct queue. Re-enable event coalescing.
	* gnu/java/awt/LowPriorityEvent.java: New marker interface.
	* javax/swing/RepaintManager.java
	(RepaintWorkerEvent): New internal class. This is a low priority
	event for the repaint worker.
	(addDirtyRegion): Use new internal invokeLater() for sending
	a low priority event.
	(addInvalidComponent): Use new internal invokeLater() for sending
	a low priority event.
	(commitBuffer): Added some null checks.
	(invokeLater): New helper method. Sends a low priority
	repaint worker event on the event queue.

2006-09-27  Roman Kennke  <kennke@aicas.com>

	PR 29036
	PR 29161
	* javax/swing/plaf/basic/BasicButtonUI.java
	(cachedInsets): New field.
	(installListeners): Fire synthetic property change to initialize
	TEXT_LAYOUT_CACHE for the button because the font has been
	installed before.
	(uninstallUI): Clear the TEXT_LAYOUT_CACHE for the button.
	(paint): Use cached insets.
	(paintText): Let new method forward to old one, not vice versa.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(defaultAcceleratorLabelGap): Removed unused field.
	(MenuGap): Removed unused field.
	(propertyChangeListener): Made private.
	(getAcceleratorRect): Removed unused method.
	(getAcceleratorText): Removed unused method.
	(getPath): Removed unnecessary cast.
	(installListeners): Fire synthetic property change to initialize
	TEXT_LAYOUT_CACHE for the button because the font has been
	installed before.
	(uninstallUI): Clear the TEXT_LAYOUT_CACHE for the button.
	(layoutMenuItem): Removed unused statements.
	
2006-09-27  Roman Kennke  <kennke@aicas.com>

	PR 29218
	* javax/swing/tree/DefaultTreeModel.java
	(isLeaf): Check if the node allows children when
	asksAllowsChildren is true, otherwise fall back
	to return the node's leaf property.

2006-09-27  Mario Torre  <neugens@limasoftware.net>

	* scripts/check_jni_methods.sh: removed methods from the
	ignore list:
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key
	* native/jni/gconf-peer/GConfNativePeer.c: fixed coding style
	to better follow the GNU style.
	* include/gnu_java_util_prefs_gconf_GConfNativePeer.h.
	regenerated header file for GConfNativePeer.

2006-09-27  Robert Schuster  <robertschuster@fsfe.org>

	* INSTALL: Added information about grmic being built when ASM
	is available, added information about gconf dependency, indented
	Qt4 dependency section.
	* configure.ac: Added information about grmic being built when ASM
	is available.

2006-09-27  Ian Rogers  <ian.rogers@manchester.ac.uk>

	* native/jni/classpath/jcl.c (JNI_OnLoad): Don't call
	DeleteGlobalRef on a local ref.

2006-09-24  Mario Torre  <neugens@limasoftware.net>

	* scripts/check_jni_methods.sh: added two new methods in the
	ignore list:
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key
	and
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key
	* native/jni/gconf-peer/GConfNativePeer.c:
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys):
	refacored method name, renamed from
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys.
	Added code to unescape escaped GConf key names.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes):
	refacored method name, renamed from
	Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes.
	Added code to unescape escaped GConf key names.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key):
	new function.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key):
	new function.
	* gnu/java/util/prefs/gconf/GConfNativePeer.java: removed
	version javadoc tag.
	(escapeString): new method.
	(unescapeString): likewise.
	(gconf_escape_key): new native method.
	(gconf_unescape_key): likewise.
	(gconf_client_suggest_sync): update native method signature, now
	explicity throws BackingStoreException.
	(gconf_client_all_nodes): update native method signature, now
	explicity throws BackingStoreException. Refactored method name,
	renamed from gconf_client_gconf_client_all_nodes.
	(gconf_client_all_keys): update native method signature, now
	explicity throws BackingStoreException. Refactored method name,
	renamed from gconf_client_gconf_client_all_keys.
	(getKeys): refactored to use the new method name
	gconf_client_all_keys.
	(getChildrenNodes): refactored to use the new method name
	gconf_client_all_nodes.
	* gnu/java/util/prefs/GConfBasedPreferences.java: removed
	version javadoc tag.
	(GConfBasedPreferences): Added code to escape node names from
	invalid characters so that GConf now accept invalid node names.
	(GConfBasedPreferences): Moved code to register the current
	node to the list of nodes watched by GConf outside the constructor.
	(childSpi): Added code to register the current node to the
	list of nodes watched by GConf.
	(getGConfKey): Added code to escape key names from
	invalid characters so that GConf now accept invalid key names.

2006-09-26  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/Printer.java (Printer): Don't
	call mkdirs in output-directory case.
	(getPrintStream): Create output directory.
	* tools/gnu/classpath/tools/javah/Main.java (makeOutputDirectory):
	Don't call mkdirs.

2006-09-27  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/javah/CniIncludePrinter.java (CniIncludePrinter):
	Accept three additional arguments.
	(writePreambleImpl): New method.
	(getPrintStreamImpl): Likewise.
	(printClass): Adapted to use new methods in Printer superclass.
	* tools/gnu/classpath/tools/javah/CniStubPrinter.java: Likewise.
	* tools/gnu/classpath/tools/javah/JniIncludePrinter.java: Likewise.
	* tools/gnu/classpath/tools/javah/JniStubPrinter.java: Likewise.
	* tools/gnu/classpath/tools/javah/Main.java (outFileName): New field.
	(force): Likewise.
	(getParser): Add support for -o option.
	Check that only one of -d or -o is defined.
	Add support for -jni option.
	Add support for -force option.
	(makeOutputFile): New method.
	(writeHeaders): Removed File argument from signature.
	(run): Take into account newly added fields.
	Invoke concrete PrintStream implementations with augmented constructors.
	* tools/gnu/classpath/tools/javah/Printer.java (outputFileObject): New field.
	(isDirectory): Likewise.
	(force): Likewise.
	(wrotePreamble): Likewise.
	(Printer): Changed ctor to accept three additional arguments.
	(printClass): Changed signature to accept one ClassWrapper argument.
	(writePreambleImpl): New abstract method.
	(getPrintStreamImpl): Likewise.
	(getPrintStream): New method.
	(writePreamble): Likewise.

2006-09-26  Tania Bento  <tbento@redhat.com>

	* java/awt/GridLayout.java
	(toString): There is no common before hgap.
	* java/awt/Rectangle.java
	(Rectangle(Rectangle)): Throw NPE if Rectangle is null.
	(Rectangle(Point, Rectangle)): Throw NPE if either Point or 
	Rectangle is null.
	(Rectangle(Point)): Throw NPE if Point is null.
	(Rectangle(Dimension)): Throw NPE if Dimension is null.

2006-09-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(FileIcon16.paintIcon): Apply vertical shift by the number of pixels
	returned by getShift(),
	(FileIcon16.getShift): Updated API docs,
	(FolderIcon16.paintIcon): Apply vertical shift by the number of pixels
	returned by getShift(),
	(FolderIcon16.getShift): Updated API docs,
	(TreeFolderIcon.getShift): Likewise,
	(TreeLeafIcon.getShift): Likewise.

2006-09-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(FileIcon16.paintIcon): Fetch colors from look and feel,
	(FolderIcon16.paintIcon): Likewise.

2006-09-25  Casey Marshall  <csm@gnu.org>

	* gnu/java/nio/FileChannelImpl.java (read): revert back to using
	`readScattering.'
	(write): revert back to using `writeGathering.'
	* vm/reference/gnu/java/nio/VMChannel.java (writeGathering): find
	the first buffer that has data remaining, and start at that one.

2006-09-25  Tom Tromey  <tromey@redhat.com>

	* native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): New
	variable.

2006-09-25  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Updated.

2006-09-25  Tom Tromey  <tromey@redhat.com>

	PR libgcj/29178:
	* gnu/java/nio/charset/US_ASCII.java (Encoder.canEncode): New method.
	(Encoder.canEncode): Likewise.
	(Encoder.encodeLoop): Return unmappable for all non-ASCII characters.
	* gnu/java/nio/charset/ByteCharset.java (Encoder.canEncode): New
	method.
	(Encoder.canEncode): Likewise.
	* gnu/java/nio/charset/ISO_8859_1.java (Encoder.canEncode): New
	method.
	(Encoder.canEncode): Likewise.

2006-09-25  Tom Tromey  <tromey@redhat.com>

	* native/fdlibm/mprec.c (mprec_calloc): Renamed.
	(Balloc): Updated.

2006-09-25  Francis Kung  <fkung@redhat.com>

	* java/awt/image/ColorModel.java
	(coerceData): Made abstract.
	(coerceDataWorker): New protected method.
	* java/awt/image/ComponentColorModel.java
	(coerceData): Return new instance of proper ColorModel.
	* java/awt/image/DirectColorModel.java
	(coerceData): Return new instance of proper ColorModel.
	* java/awt/image/IndexColorModel.java
	(coerceData): New method.

2006-09-24  Casey Marshall  <csm@gnu.org>

	* gnu/java/nio/FileChannelImpl.java
	(read): call `read' in a loop, don't use `readScattering.'
	(write): call `write' in a loop, don't use `writeGathering.'

2006-09-24  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Move -pedantic from WARNING to STRICT flags.

2006-09-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/nio/channels/spi/AbstractSelectableChannel.java
	(register): Set interestOps and attachment when the key already
	exists.

2006-09-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/ServerSocket.java
	(bind(SocketAddress,int)): Added support for null address.
	Throw proper exception if already bound.
	Handle unresolved addresses correctly. Ignore exceptions that
	happen during close in error path (to prevent losing the original
	exception.)

2006-09-24  Mark Wielaard  <mark@klomp.org>

	Suggested by Aaron M. Ucko <ucko@debian.org>
	Fixes bug #29203
	* native/fdlibm/mprec.c (ulp): Define L as int32_t.

2006-09-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/nio/channels/spi/AbstractSelectableChannel.java
	(implCloseChannel): Cancel all keys after closing the channel.

2006-09-22  Casey Marshall  <csm@gnu.org>

	* gnu/java/nio/EpollSelectorImpl.java (doSelect): remove keys
	after we delete them.
	(selectedKeys): return an empty set if nothing's been selected.
	* native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c
	(Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete): don't
	throw an exception on EBADF.
	(Java_gnu_java_nio_EpollSelectorImpl_epoll_1wait): don't
	throw exception on EINTR, just return 0.
	
2006-09-22  Casey Marshall  <csm@gnu.org>

	* native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_list):
	remove `const' from `filename.'
	* native/jni/native-lib/cpio.c (cpio_readDir): remove `const' from
	`filename.'
	* native/jni/native-lib/cpio.h (cpio_readDir): likewise.

2006-09-22  Casey Marshall  <csm@gnu.org>

	* configure.ac (AC_CHECK_FUNCS): check for `readdir_r.'
	* native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_list):
	allocate `filename,' and handle changes to `cpio_readDir.'
	* native/jni/native-lib/cpio.c (cpio_readDir): use `readdir_r' if
	available; copy the filename into the destination buffer; return
	an error code if readdir returns NULL, but errno is 0.
	* native/jni/native-lib/cpio.h (cpio_readDir): change second
	parameter to `const char *.'

2006-09-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/ObjectName.java:
	Implemented.
	
2006-09-22  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* resource/gnu/classpath/tools/orbd: New directory.
	* resource/gnu/classpath/tools/rmic: Likewise.
	* resource/gnu/classpath/tools/rmid: Likewise.
	* resource/gnu/classpath/tools/rmiregistry: Likewise.
	* resource/gnu/classpath/tools/tnameserv: Likewise.
	* tools/gnu/classpath/tools/giop: Move contents to...
	* tools/gnu/classpath/tools/orbd,
	tools/gnu/classpath/tools/tnameserv: New directories.
	* tools/gnu/classpath/tools/rmi/rmic: Move contents to...
	* tools/gnu/classpath/tools/rmic: New directory.
	* tools/gnu/classpath/tools/rmi/rmid: Move contents to...
	* tools/gnu/classpath/tools/rmid: New directory.
	* tools/gnu/classpath/tools/rmi/registry: Move contents to...
	* tools/gnu/classpath/tools/rmiregistry: New directory.
	* resource/gnu/classpath/tools/orbd/messages.properties: New file.
	* resource/gnu/classpath/tools/rmic/messages.properties: Likewise.
	* resource/gnu/classpath/tools/rmid/messages.properties: Likewise.
	* resource/gnu/classpath/tools/rmiregistry/messages.properties:
	Likewise.
	* resource/gnu/classpath/tools/tnameserv/messages.properties:
	Likewise.
	* tools/gnu/classpath/tools/orbd/Main.java,
	tools/gnu/classpath/tools/orbd/Messages.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/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/Messages.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/rmic/templates,
	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/Messages.java,
	tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java,
	tools/gnu/classpath/tools/rmiregistry/Main.java,
	tools/gnu/classpath/tools/rmiregistry/Messages.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/tnameserv/Main.java,
	tools/gnu/classpath/tools/tnameserv/Messages.java: New files.
	* tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java: Import
	RMIC.java from cp-tools.
	* configure.ac (AC_CONFIG_FILES): Add tools/grmiregistry,
	tools/gtnameserv, tools/gorbd, tools/grmid and tools/grmic.
	(AC_CONFIG_COMMANDS): Add grmiregistry, gtnameserv, gorbd, grmid
	and grmic.
	* examples/Makefile.am (GLIBJ_CLASSPATH): Add tools.zip.
	* gnu/CORBA/NamingService/NamingServiceTransient.java (main):
	Rename...
	(start): New method.
	* tools/Makefile.am: Add build support for new tool wrappers.
	* tools/gorbd.in: New file.
	* tools/grmic.in: Likewise.
	* tools/grmid.in: Likewise.
	* tools/grmiregistry.in: Likewise.
	* tools/gtnameserv.in: Likewise.
	* tools/gnu/classpath/tools/AbstractMethodGenerator.java: Move to...
	* tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java: New
	file.
	* tools/gnu/classpath/tools/HelpPrinter.java: Remove file.
	* tools/gnu/classpath/tools/rmi/Persistent.java: Move to...
	* tools/gnu/classpath/tools/common/Persistent.java: New file.

2006-09-22  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #29047
	* gnu/java/util/regex/RETokenRepeated.java
	(findMatch): Rewriten without using recursive calls,
	(FindMatchControlStack): New class,
	(FindMatchControl): New class,
	(TryAnotherResult): New class,
	(tryAnother): New method.

2006-09-22  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java
	(processHostport): Cope with IPv6 addresses with a
	one-digit first component.

2006-09-22  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(enableEvents): Set newEventsOnly flag.
	* java/awt/Container.java
	(dispatchEventImpl): Consume event if lightweight dispatcher
	dispatched the event. Don't call processEvent() here, this
	is already done in Component.dispatchEventImpl(). For
	heavyweights or when the lightweight dispatcher could
	not dispatch, fall back to calling super.
	(dispatchNoLightweight): New helper method to avoid
	recursivly calling the lightweight dispatcher.
	* java/awt/LightweightDispatcher.java
	(dragButton): Removed field.
	(dragTarget): Removed field.
	(mouseEventTarget): New field.
	(convertPointToChild): Removed method.
	(dispatchEvent): Don't depend on component beeing
	a window.
	(findTarget): Improved algorithm for finding a target.
	Before we went down to the deepest component and went
	up again to find a suitable target. Now we go
	down only once, without going up.
	(handleMouseEvent): Broke method down into some smaller
	helper methods.
	(isDragging): New helper method.
	(isMouseListening): New helper method.
	(redispatch): New helper method.
	(trackEnterExit): New helper method.

2006-09-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SizeSequence.java
	(getSize): Return 0 if index is out of bounds.

2006-09-21  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/PathOptionGroup.java
	(PathOptionGroup): Make -I a joined option.
	* tools/gnu/classpath/tools/keytool/CACertCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/MainCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/PrintCertCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Updated.
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: Updated.
	* tools/gnu/classpath/tools/appletviewer/Main.java: Updated.
	* tools/gnu/classpath/tools/jar/Main.java: Updated.
	* tools/gnu/classpath/tools/jarsigner/Main.java: Updated.
	* tools/gnu/classpath/tools/javah/Main.java: Updated.
	* tools/gnu/classpath/tools/native2ascii/Main.java: Updated.
	* tools/gnu/classpath/tools/serialver/SerialVer.java: Updated.
	* resource/gnu/classpath/tools/getopt/Messages.properties: Removed
	unused entries.
	* resource/gnu/classpath/tools/common/Messages.properties: New file.
	* tools/gnu/classpath/tools/common/Messages.java: New file.
	* tools/gnu/classpath/tools/getopt/Messages.java: Now package-private.
	* tools/gnu/classpath/tools/common/ClasspathToolParser.java: Moved
	from getopt.
	(ClasspathToolParser): Add -J option here.
	(ClasspathToolParser): Call other constructor in this class.
	* tools/gnu/classpath/tools/getopt/Parser.java (handleLongOption):
	Handle joined options.
	(handleShortOptions): Likewise.
	(handleShortOption): Removed.
	(finalGroup): New field.
	(Parser): Initialize new field.  Don't add -J option.
	(addFinal): New method.
	* tools/gnu/classpath/tools/getopt/OptionGroup.java (printHelp): Use
	isJoined.
	* tools/gnu/classpath/tools/getopt/Option.java (isJoined): New method.
	(Option): Check short option for validity.
	(Option): New constructors.
	(joined): New field.

2006-09-21  csm  <csm@pollux.local>

	* gnu/java/net/PlainDatagramSocketImpl.java (send): ignore
	`InterruptedIOException;' try again if it gets thrown.
	(receive): likewise, but re-throw `SocketTimeoutException.'
	* gnu/java/nio/EpollSelectorImpl.java (doSelect): just return 0
	if we have nothing to select.

2006-09-21  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java:
	(getLogicalBounds): Respect glyph transformations.
	(getGlyphOutline): Added null pointer check.
	(getGlyphTransform): Do not generate identity transform (API permits null).
	(setGlyphPosition): Do not invalidate transform.
	(setGlyphTransform): Do not modify glyph position.

2006-09-21  Francis Kung  <fkung@redhat.com>

	* java/awt/image/ColorModel.java (coerceData): Set alpha premultiplied flag.

2006-09-21  Francis Kung  <fkung@redhat.com>

	* java/awt/image/ColorModel.java (coerceData): Return proper colour model.
	* java/awt/image/ComponentColorModel.java (coerceData): Likewise.
	* java/awt/image/DirectColorModel.java (coerceData): Likewise.

2006-09-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JTabbedPane.java:
	(insertTab): Notify ChangeListeners if the tab inserted is selected.
	(setModel): A ChangeListener should be created only if there does not 
	currently exist one.

2006-09-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(MaximizeAction.actionPerformed): Change icon on maxButton.

2006-09-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(syncScrollPaneWithViewport): Fixed typo (hsb vs. vsb).
	Use more efficient getViewPosition() and getViewSize() methods
	to avoid creating a rectangle.
	(HSBChangeListener.stateChanged): Update the view position
	unconditionally. Let the Viewport figure out if something
	changed.
	(VSBChangeListener.stateChanged): Update the view position
	unconditionally. Let the Viewport figure out if something
	changed.
	* javax/swing/JViewport.java
	(ViewListener.componentResized): Fire state change, because
	the extentSize changes.
	(extentSize): Removed unneeded field.
	(viewSize): Removed unneeded field.
	(getExtentSize): Return the viewport's size here.
	(getViewRect): Reformatted.
	(getViewSize): Reordered for only one return statement.
	(paintImmediately2): Fixed up javadoc.
	(paint): Removed unneeded statement.
	(setExtentSize): Set viewport size and check for actual change
	of value.
	(setViewPosition): Simplified condition. Set scrollUnderway
	true and don't set isViewSizeSet. Avoid creating one Point
	object.
	(setViewSize): Fixed != comparison with equals(). Set scrollUnderway
	to false.
	* javax/swing/JScrollBar.java
	(ScrollBarListener): New class. Forwards change events from
	the model as adjustment events.
	(sbChangeListener): New field.
	(JScrollBar): Install listener on new model.
	(fireAdjustmentValueChanged(int,int,int)): Delegate to new helper
	method.
	(fireAdjustmentValueChanged(int,int,int,boolean)): New helper
	method to allow custom isAdjusting value.
	(setMaximum): Only forward to model.
	(setMinimum): Only forward to model.
	(setValue): Only forward to model.
	(setVisibleAmount): Only forward to model.
	(setValues): Only forward to model.
	(setModel): Update the change listener.

2006-09-20  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* java/util/Formatter.java (basicIntegralConversion): Removed 
	check for ZERO && !LEFT_JUSTIFY.
		
2006-09-20  Roman Kennke  <kennke@aicas.com>

	PR 29036
	* javax/swing/plaf/metal/DefaultMetalTheme.java
	(PLAIN_CONTROL_TEXT_FONT): New constant field.
	(BOLD_CONTROL_TEXT_FONT): New constant field.
	(PLAIN_MENU_TEXT_FONT): New constant field.
	(BOLD_MENU_TEXT_FONT): New constant field.
	(controlTextFont): Removed.
	(menuTextFont): Removed.
	(CONTROL_TEXT_FONT): New constant field.
	(MENU_TEXT_FONT): New constant field.
	(getControlTextFont): Use getFont() helper method for fetching
	the correct font.
	(getMenuTextFont): Use getFont() helper method for fetching
	the correct font.
	(getFont): New helper method.
	(isBoldMetal): New helper method.

2006-09-20  Casey Marshall  <csm@gnu.org>

	* NEWS: mention epoll selector along with the kqueue one.

2006-09-20  Casey Marshall  <csm@gnu.org>

	* native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c
	(Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete): ignore ENOENT.

2006-09-20  Francis Kung  <fkung@redhat.com>

	PR 29011
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java:
	(getGlyphTransform): Use translation instead of scale.
	(performDefaultLayout): Increment position values instead of resetting, and
	pre-increment instead of post-increment.
	(setGlyphTransform): Handle null case with identity transform.

2006-09-20  Casey Marshall  <csm@gnu.org>

	* configure.ac (AC_CHECK_HEADERS): check for `sys/epoll.h.'
	(AC_CHECK_FUNCS): check for `epoll_create.'
	* gnu/java/nio/EpollSelectionKeyImpl.java: new file.
	* gnu/java/nio/EpollSelectorImpl.java: new file.
	* gnu/java/nio/SelectorProviderImpl.java (epoll_failed): new class
	field.
	(openSelector): return epoll selector if requested and available.
	* include/Makefile.am (H_FILES): add gnu_java_nio_EpollSelectorImpl.h.
	(gnu_java_nio_EpollSelectorImpl.h): new target.
	* include/gnu_java_nio_EpollSelectorImpl.h: new file.
	* native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES): add
	gnu_java_nio_EpollSelectorImpl.c.
	* native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c: new file.

2006-09-20  Casey Marshall  <csm@gnu.org>

	* gnu/java/nio/SocketChannelImpl.java (finishConnect): don't
	call `isConnected.'
	(isConnected): return false if `connectionPending' is true.

2006-09-20  Francis Kung  <fkung@redhat.com>

	PR 29011
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java:
	(constructor): Expanded glyphPositions array to accomodate Y-coordinates.
	(getGlyphOutline): Call getGylphTransform to generate transform.
	(getGylphPosition): Read position directly out of array.
	(getGlyphPositions): Read positions directly out of array.
	(getGlyphTransform): Generate transform based on gylphPositions array.
	(performDefaultLayout): Populate glyphPositions array instead of transforms.
	(setGlyphPosition): Set position directly into array.
	(setGlyphTransform): Update positions array as well.

2006-09-20  David Daney  <ddaney@avtrex.com>

	PR classpath/28661
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connect):  Add
	default content-type for POST method.

2006-09-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(BasicRadioButtonUI): Don't fetch icon here,
	(installDefaults): Initialise icon here,
	(getDefaultIcon): Just return icon.

2006-09-20  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES):
	Add gnu_java_nio_channels_FileChannelImpl.c and javanio.h.
	(EXTRA_DIST): Include javanio.c.

2006-09-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/geom/RoundRectangle2D.java:
	(getPathIterator): Reimplemented,
	and updated various API doc comments.

2006-09-20  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(addImpl): Set the new component's parent after it has been
	added to the array. Call addNotify() and invalidate()
	after the component has been added, so that the peer
	gets to know about the component structure when it is created.
	* java/awt/Window.java
	(dispatchEventImpl): Only revalidate when window is resized,
	let the other stuff be processed by the superclass.
	(dispose): Post WINDOW_CLOSED event only when some listener
	is registered or event is explicitly enabled.
	(show): Post WINDOW_OPENED event when appropriate.

2006-09-20  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(addNotify): Invalidate here. Fetch peer font.
	(getFont): Delegate to helper method, to protect from
	overriding client code. Lock the tree while fetching the font.
	(getFontImpl): New helper method. Moved code from getFont() in
	here.
	(removeNotify): Nullify peerFont too.
	(setFont): Synchronize on tree and component to avoid threading
	issues. Update the peerFont correctly.
	(validate): Update the peer font if necessary, before validating.
	(getGraphics): Revert to recursive graphics fetching.
	Set component font on the Graphics object.
	(translateEvent): Removed unnecessary cast.
	* java/awt/Container.java
	(invalidateTree): Made final and private. Made implementation
	slightly more efficient.
	(setFont): Get old and new font via getFont() to account for
	the real font, and only invalidate the tree when they are not
	the same and not equal.
	(visitChild): Set the font of the child on the component graphics.
	* java/awt/Frame.java
	(setMenuBar): Create local reference of peer for thread safety.
	Only call simple invalidate, not invalidateTree().

2006-09-19  Cameron McCormack  <cam@mcc.id.au>

	PR 29012
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java:
	(constructor): Copy image field.

2006-09-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenuBar.java
	(getHelpMenu): Implemented to throw an Error, and added API docs,
	(getMargin): Added API docs,
	(setMargin): Likewise.

2006-09-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Don't call updateUI(),
	* javax/swing/JButton.java
	(JButton(String, Icon)): Call setModel() before init(),
	* javax/swing/JMenuItem.java
	(JMenuItem()): Delegate to another constructor,
	(JMenuItem(Icon)): Likewise,
	(JMenuItem(Action)): Set model,
	(JMenuItem(String, Icon)): Likewise,
	* javax/swing/JToggleButton.java
	(init): Call setModel() before init().

2006-09-19  Mark Wielaard  <mark@klomp.org>

	Fixes bug #29137
	* java/util/logging/LogManager.java (addLogger): Always check for
	existing children of a new Logger.

2006-09-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(HSBChangeListener.stateChanged): Moved handling of header to
	syncScrollPaneWithViewport().
	(VSBChangeListener.stateChanged): Moved handling of header to
	syncScrollPaneWithViewport().
	(ViewportChangedHandler.stateChanged): Removed unused statements.
	(syncScrollPaneWithViewport): Added null checks. Use setValues
	rather then the single setter methods to avoid multiple
	adjustments and side effects. Also snyc the headers here.
	(updateScrollBarDisplayPolicy): Revalidate and repaint here.
	(uninstallUI): Removed unnecessary cast and this qualifier as well
	as the call to super.

2006-09-19  Gary Benson  <gbenson@redhat.com>

	* java/net/ResolverCache.java: New class (a DNS cache).
	* java/net/InetAddress.java
	(internalGetCanonicalHostName, getAllByName): Use the above.

2006-09-19  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/nio/SocketChannelImpl.java: Removed unused import.
	* java/net/ServerSocket.java
	(port): New field.
	(bind): Set port field.
	(close): Set impl to null.
	(isClosed): Check impl and channel instead of using VMChannel.
	(toString): Use port field and getLocalPort() method.
	* java/net/Socket.java
	(isClosed): Check impl and channel instead of using VMChannel.

2006-09-18  Tom Tromey  <tromey@redhat.com>

	* java/util/concurrent/CopyOnWriteArrayList.java
	(CopyOnWriteArrayList): New constructor.

2006-09-18  Casey Marshall  <csm@gnu.org>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
	(Java_gnu_java_net_VMPlainSocketImpl_listen): remove debug printf.

2006-09-18  Tom Tromey  <tromey@redhat.com>

	* gnu/javax/net/ssl/provider/SSLSocket.java (isBound, isClosed,
	isConnected): Removed old comment.
	(getRemoteSocketAddress): Uncommented.
	(setOOBInline, getOOBInline, setKeepAlive, getKeepAlive,
	setTrafficClass, getTrafficClass, setReuseAddress,
	getReuseAddress, shutdownInput, shutdownOutput, isInputShutdown,
	isOutputShutdown): Uncommented.

2006-09-18  David Pirkle  <dpirkle@symyx.com>

	Fixes PR 28589
	* gnu/xml/transform/XSLURIResolver.java: Test SAXSource for specific
	  input stream during resolution.

2006-09-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget): Correctly translate child coordinates.
	Use Component.eventTypeEnabled() for checking if a component
	has a certain event enabled.
	(handleMouseEvent): Find the correct mouse event target.
 	Use Component.eventTypeEnabled() for checking if a component
	has a certain event enabled.

2006-09-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(show): Test for the peer beeing lightweight directly.
	(paintAll): Validate before painting. Don't paint when not
	showing. Call peer.paint() when the component is heavyweight.
	(repaint): Delegate to the parent when lightweight, rather
	than skipping to the nearest heavyweight.
	(createImage): Added null check to prevent NPE.
	(dispatchEvent): Moved old event dispatching and toolkit
	event dispatching to dispatchEventImpl.
	(addComponentListener): Don't enable event. Only add listener
	when not null. Switch to new event dispatching only.
	(addFocusListener): Likewise.
	(addHierarchyListener): Likewise.
	(addHierarchyBoundsListener): Likewise.
	(addKeyListener): Likewise.
	(addMouseListener): Likewise.
	(addMouseMotionListener): Likewise.
	(addMouseWheelListener): Likewise.
	(addInputMethodListener): Likewise.
	(coalesceEvents): For mouse events coalesce them only when
	their modifiers are equal. For paint events coalesce the events
	when one contains the other, without going through complicated
	heuristics.
	(dispatchEventImpl): Moved old event dispatching and toolkit
	event dispatching to dispatchEventImpl.
	(coalescePaintEvents): Removed.
	(HeavyweightInLightweightListener.componentHidden):
	Fixed condition.
	* java/awt/Container.java
	(addImpl): Don't enable events on lightweights.
	(remove): Reordered operations. Don't remove any listeners.
	Throw ArrayIndexOutOfBoundsException when index >= ncomponents.
	Only removeNotify() when peer is != null. Only invalidate if 
	not already invalid. Only fire ContainerEvent if there is
	an interested listener or the event is enabled. Dispatch this
	event directly without the event queue.
	(removeAll): Likewise.
	(paintComponents): Only paint when showing. Also paint heavyweights.
	Don't paint the container itself.
	(removeNotify): Create local variables for improved thread safety.
	(addNotifyContainerChildren): Don't enable events for lightweights.

2006-09-18  Roman Kennke  <kennke@aicas.com>

	* java/awt/EventQueue.java
	(INITIAL_QUEUE_DEPTH): Removed obsolete field.
	(next_in): Removed obsolete field.
	(next_out): Removed obsolete field.
	(queueHead): New field. Markes the head of the queue.
	(queueTail): New field. Markes the tail of the queue.
	(queue): Removed obsolete field.
	(EventQueue): Documented empty block.
	(getNextEvent): Changed array based implementation to single-linked
	list based implementation.
	(invokeAndWait): Use an Object as synchronization object rather
	than the current thread.
	(peekEvent(int)): Changed array based implementation to single-linked
	list based implementation.
	(peekEvent()): Changed array based implementation to single-linked
	list based implementation.
	(pop()): Changed array based implementation to single-linked
	list based implementation.
	(postEvent): Foward to postEventImpl.
	(postEventImpl): Changed array based implementation to single-linked
	list based implementation.
	(push): Changed array based implementation to single-linked
	list based implementation.
	* java/awt/AWTEvent.java
	(queueNext): New field. Implements a single-linked list for
	the EventQueue.

2006-09-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLEditorKit (getStyleSheet): Load
	resource from HTMLEditorKit.class.

2006-09-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(setBorderToNonRollover): Check whether border is null.
	(setBorderToRollover): Likewise.

2006-09-17  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JTree.java (setLeadSelectionPath): Handle null path.

2006-09-17  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-nio/javanio.c (cpnio_fcntl): Last argument is long.
	* native/jni/java-nio/javanio.h (cpnio_fcntl): Likewise.
	* native/jni/java-nio/gnu_java_nio_VMChannel.c
	(Java_gnu_java_nio_VMChannel_lock): Likewise.
	(Java_gnu_java_nio_VMChannel_unlock): Likewise.

2006-09-17  Casey Marshall  <csm@gnu.org>

	* native/jni/classpath/jcl.c (JNI_OnLoad): mark `reserved' as
	unused.

2006-09-17  Chris Burdess  <dog@gnu.org>

	Fixes PR 27610 27687.
	* gnu/xml/dom/ls/SAXEventSink.java: Permit limited subclassing.
	* gnu/xml/transform/SAXTemplatesHandler.java,
	* gnu/xml/transform/SAXTransformerHandler.java: New files.
	* gnu/xml/transform/TransformerFactoryImpl.java: Implement
	  SAXTransformerFactory.

2006-09-16  Casey Marshall  <csm@gnu.org>

	* NEWS: updated.
	* configure.ac (AC_CHECK_HEADERS): check for `sys/event.h'.
	(AC_CHECK_FUNCS): add checks for readv, writev, getifaddrs,
	kqueue, and kevent.
	(HAVE_INET6): define if IPv6 is supported.
	* gnu/java/net/PlainDatagramSocketImpl.java (channel): new field.
	(native_fd): removed.
	(impl): new field.
	(<init>): throw IOException; initialize fields.
	(finalize): removed.
	(getNativeFD): removed.
	(bind): use `PlainSocketImpl.bind.'
	(create): use `PlainSocketImpl.initSocket.'
	(disconnect): use `PlainSocketImpl.disconnect.'
	(getLocalPort): new method.
	(send): use `VMChannel.send.'
	(receive): use `VMChannel.receive.'
	(setOption): use `PlainSocketImpl.setOption.'
	(getOption): use `PlainSocketImpl.getOption.'
	(close): use `VMChannel.State.close.'
	(join): use `PlainSocketImpl.join.'
	(leave): use `PlainSocketImpl.leave.'
	(joinGroup, leaveGroup): implemented.
	* gnu/java/net/PlainSocketImpl.java: make non-final.
	(native_fd): removed.
	(impl): new field.
	(channel): new field.
	(<init>): initialize `impl.'
	(finalize, getNativeFD): removed.
	(setOption): use `PlainSocketImpl.setOption.'
	(getOption): use `PlainSocketImpl.getOption.'
	(shutdownInput): use `PlainSocketImpl.shutdownInput.'
	(shutdownOutput): use `PlainSocketImpl.shutdownOutput.'
	(create): create `channel,' initialize `impl's native state.
	(connect): use `connect(SocketAddress, int).'
	(connect): use `SocketChannelImpl.connect;' initialize `address'
	and `port.'
	(bind): use `VMPlainSocketImpl.bind.'
	(listen): use `VMPlainSocketImpl.listen.'
	(accept): use `SocketChannelImpl.accept.'
	(available): use `VMChannel.available.'
	(close): use `PlainSocketImpl.close.'
	(sendUrgentData): use `PlainSocketImpl.sendUrgentData.'
	(getVMChannel, getInetAddress, getLocalPort, getLocalAddress,
	getPort): new methods.
	(SocketInputStream.read): use `VMChannel.read.'
	(SocketInputStream.read): use `SocketChannel.read.'
	(SocketOutputStream.write): use `VMChannel.write.'
	(SocketOutputStream.write): use `SocketChannel.write.'
	* gnu/java/nio/DatagramChannelImpl.java: implement VMChannel.
	(channel): new field.
	(<init>): initialize `channel.'
	(implCloseSelectableChannel): use `VMChannel.close.'
	(implConfigureBlocking): use `VMChannel.setBlocking.'
	(connect): use `VMChannel.connect.'
	(disconnect): use `VMChannel.disconnect.'
	(isConnected): use `VMChannel.getPeerAddress.'
	(write): use `VMChannel.write.'
	(write): use `VMChannel.writeGathering.'
	(read): use `VMChannel.read.'
	(read): use `VMChannel.readScattering.'
	(receive): use `VMChannel.receive.'
	(send): use `VMChannel.send.'
	(getVMChannel): new method.
	* gnu/java/nio/DatagramChannelSelectionKey.java (getNativeFD):
	access native FD through VMChannel.State.
	* gnu/java/nio/FileChannelImpl.java: moved from
	gnu/java/nio/channels/FileChannelImpl.java.
	* gnu/java/nio/FileLockImpl.java: fix imports.
	* gnu/java/nio/KqueueSelectionKeyImpl.java: new file.
	* gnu/java/nio/KqueueSelectorImpl.java: new file.
	* gnu/java/nio/NIOSocket.java (impl): removed.
	(channel): new field.
	(<init>): init superclass with a `NIOSocketImpl;' init `channel.'
	(getPlainSocketImpl, setChannel): removed.
	(isConnected): new method.
	* gnu/java/nio/NIOSocketImpl.java: new file.
	* gnu/java/nio/PipeImpl.java (SourceChannelImpl): implement
	`VMChannelOwner.'
	(SourceChannelImpl.native_fd): removed.
	(SourceChannelImpl.<init>): init with a `VMChannel.'
	(SourceChannelImpl.getNativeFD): removed.
	(SourceChannelImpl.getVMChannel): new method.
	(SourceChannelImpl.implCloseSelectableChannel): implement.
	(SinkChannelImpl): implement `VMChannelOwner.'
	(SinkChannelImpl.native_fd): removed.
	(SinkChannelImpl.<init>): init with a `VMChannel.'
	(SinkChannelImpl.implCloseSelectableChannel): implement.
	(SinkChannelImpl.getNativeFD): removed.
	(SinkChannelImpl.getVMChannel): new method.
	* gnu/java/nio/SelectionKeyImpl.java (getNativeFD): mark
	deprecated.
	* gnu/java/nio/SelectorProviderImpl.java (SELECTOR_IMPL_KQUEUE,
	SELECTOR_IMPL_EPOLL, SELECTOR_IMPL): new constants.
	(openSelector): return kqueue selector if available.
	* gnu/java/nio/ServerSocketChannelImpl.java: implement
	`VMChannelOwner.'
	(channel): new field.
	(<init>): init `channel.'
	(finalizer): check if the `VMChannel.State' is valid.
	(implCloseSelectableChannel): use `VMChannel.close.'
	(implConfigureBlocking): use `VMChannel.setBlocking.'
	(accept): use `VMChannel.accept.'
	(getVMChannel): new method.
	* gnu/java/nio/ServerSocketChannelSelectionKey.java (getNativeFD):
	access native FD through `VMChannel.State.'
	* gnu/java/nio/SocketChannelImpl.java: implement `VMChannelOwner.'
	(impl): removed.
	(channel, connected, connectAddress): new field.
	(<init>): new constructors.
	(getPlainSocketImpl): removed.
	(implCloseSelectableChannel): use `VMChannel.close.'
	(implConfigureBlocking): use `VMChannel.setBlocking.'
	(connect): use `connect(SocketAddress,int).'
	(connect): use `VMChannel.connect.'
	(finishConnect): don't use a selector.
	(isConnected): use `VMChannel.getPeerAddress.'
	(read): use `VMChannel.read.'
	(read): use `VMChannel.readScattering.'
	(write): use `VMChannel.write.'
	(write): use `VMChannel.writeGathering.'
	(getVMChannel): new method.
	* gnu/java/nio/SocketChannelSelectionKey.java (getNativeFD): get
	native FD from `VMChannel.State.'
	* gnu/java/nio/SocketChannelSelectionKeyImpl.java (getNativeFD):
	get native FD from `VMChannel.State.'
	* gnu/java/nio/VMChannelOwner.java: new file.
	* gnu/java/nio/channels/FileChannelImpl.java: removed.
	* include/Makefile.am: generate `gnu_java_nio_FileChannelImpl.h'
	and `gnu_java_nio_KqueueSelectorImpl.h;' don't generate
	`gnu_java_nio_channels_FileChannelImpl.h.'
	* include/gnu_java_net_VMPlainSocketImpl.h: regenerated.
	* include/gnu_java_nio_FileChannelImpl.h: new file.
	* include/gnu_java_nio_KqueueSelectorImpl.h: new file.
	* include/gnu_java_nio_VMChannel.h: regenerated.
	* include/gnu_java_nio_VMPipe.h: regenerated.
	* include/java_net_VMNetworkInterface.h: regenerated.
	* java/io/FileDescriptor.java: fix imports.
	* java/io/FileInputStream.java (<init>): handle exceptions.
	(read): wrap the destination arary.
	* java/io/FileOutputStream.java (<init>): handle exceptions.
	(write): wrap the source array.
	* java/io/RandomAccessFile.java (<init>): handle exceptions.
	* java/net/DatagramSocket.java (<init>): handle exceptions.
	(receive): handle length/port setting.
	(connect): bind to any address/port if the argument is null.
	* java/net/NetworkInterface.java (name, inetAddress): removed.
	(netif): new field.
	(<init>): make private.
	(getName): return `netif.name.'
	(getInetAddresses): access `netif.addresses.'
	(getDisplayName): return `netif.name.'
	(getByName, getByAddress): handle changes to `VMNetworkInterface.'
	(condense): removed.
	(getNetworkInterfaces): handle changes to `VMNetworkInterface.'
	(equals): compare `netif' fields.
	(hashCode): get hash codes from `netif.'
	(toString): use a StringBuffer.
	* java/net/ServerSocket.java (close): don't set `impl' to null.
	(isClosed): use `VMChannel.State.isClosed.'
	* java/net/Socket.java (getLocalAddress): don't use `getOption' if
	the `SocketImpl' is a `PlainSocketImpl.'
	(close): just close the `impl.'
	(toString): use `super.toString' in the value we return.
	(isConnected): just access `impl,' not `getImpl.'
	(isBound): use `PlainSocketImpl' methods if we can.
	(isClosed): look at `VMChannel.State.'
	* native/jni/classpath/jcl.c (JNI_OnLoad): new function.
	(JCL_NewRawDataObject): don't initialize cached fields here; throw
	an exception if they were not.
	(JCL_GetRawData): throw an exception if cached fields weren't
	created.
	* native/jni/java-lang/java_lang_VMProcess.c: handle
	FileChannelImpl move.
	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
	(IO_EXCEPTION, SOCKET_EXCEPTION, BIND_EXCEPTION,
	THROW_NO_NETWORK): new macros.
	(Java_gnu_java_net_VMPlainSocketImpl_bind): reipmlemented.
	(Java_gnu_java_net_VMPlainSocketImpl_bind6): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_listen): reimplemented.
	(java_sockopt): new enum.
	(Java_gnu_java_net_VMPlainSocketImpl_setOption): reimplemented.
	(Java_gnu_java_net_VMPlainSocketImpl_getOption): reimplemented.
	(Java_gnu_java_net_VMPlainSocketImpl_shutdownInput):
	reimplemented.
	(Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput):
	reimplemented.
	(Java_gnu_java_net_VMPlainSocketImpl_sendUrgentData): new
	function.
	(Java_gnu_java_net_VMPlainSocketImpl_join): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_join6): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_read): removed.
	(Java_gnu_java_net_VMPlainSocketImpl_leave): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_leave6): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_joinGroup): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_write): removed.
	(Java_gnu_java_net_VMPlainSocketImpl_joinGroup6): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_leaveGroup): new function.
	(Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6): new function.
	(getif_address): new function.
	(getif_index): new function.
	* native/jni/java-net/java_net_VMNetworkInterface.c
	(java_net_VMNetworkInterface_init,
	java_net_VMNetworkInterface_addAddress): new file-scope globals.
	(Java_java_net_VMNetworkInterface_initIds): new function.
	(struct netif_entry): new struct.
	(free_netif_list): new function.
	(Java_java_net_VMNetworkInterface_getInterfaces): removed.
	(Java_java_net_VMNetworkInterface_getVMInterfaces): new function.
	* native/jni/java-nio/Makefile.am (libjavanio_la_SOURCES): remove
	gnu_java_nio_channels_FileChannelImpl.c, add
	gnu_java_nio_KqueueSelectorImpl.c.
	* native/jni/java-nio/gnu_java_nio_KqueueSelectorImpl.c: new file.
	* native/jni/java-nio/gnu_java_nio_VMChannel.c
	(INTERRUPTED_IO_EXCEPTION, SOCKET_TIMEOUT_EXCEPTION, ALIGN_UP,
	ALIGN_DOWN): new macros.
	(JCL_init_buffer): get the address through GetDirectBufferAddress
	if possible.
	(Java_gnu_java_nio_VMChannel_stdin_1fd,
	Java_gnu_java_nio_VMChannel_stdout_1fd,
	Java_gnu_java_nio_VMChannel_stderr_1fd): new functions.
	(Java_gnu_java_nio_VMChannel_setBlocking): fix setting blocking
	value.
	(Java_gnu_java_nio_VMChannel_read): renamed...
	(Java_gnu_java_nio_VMChannel_read__ILjava_nio_ByteBuffer_2): to
	this; handle interrupted IO; add HAVE_READ check.
	(Java_gnu_java_nio_VMChannel_write): renamed...
	(Java_gnu_java_nio_VMChannel_write__ILjava_nio_ByteBuffer_2): to
	this; handle zero-length write; add HAVE_WRITE check.
	(Java_gnu_java_nio_VMChannel_receive): new function.
	(Java_gnu_java_nio_VMChannel_send): new function.
	(Java_gnu_java_nio_VMChannel_send6): new function.
	(Java_gnu_java_nio_VMChannel_read__I): new function.
	(Java_gnu_java_nio_VMChannel_write__II): new function.
	(Java_gnu_java_nio_VMChannel_socket): new function.
	(Java_gnu_java_nio_VMChannel_connect): new function.
	(Java_gnu_java_nio_VMChannel_connect6): new function.
	(Java_gnu_java_nio_VMChannel_getsockname): new function.
	(Java_gnu_java_nio_VMChannel_getpeername): new function.
	(Java_gnu_java_nio_VMChannel_accept): new function.
	(Java_gnu_java_nio_VMChannel_disconnect): new function.
	(Java_gnu_java_nio_VMChannel_close): new function.
	(Java_gnu_java_nio_VMChannel_available): new function.
	(FileChannel_mode): new enum.
	(Java_gnu_java_nio_VMChannel_open): new function.
	(Java_gnu_java_nio_VMChannel_position): new function.
	(Java_gnu_java_nio_VMChannel_seek): new function.
	(Java_gnu_java_nio_VMChannel_truncate): new funciton.
	(Java_gnu_java_nio_VMChannel_lock): new function.
	(Java_gnu_java_nio_VMChannel_unlock): new function.
	(Java_gnu_java_nio_VMChannel_size): new function.
	(Java_gnu_java_nio_VMChannel_map): new function.
	(Java_gnu_java_nio_VMChannel_flush): new function.
	* native/jni/java-nio/gnu_java_nio_VMPipe.c
	(Java_gnu_java_nio_VMPipe_init): removed.
	(Java_gnu_java_nio_VMPipe_pipe0): new function.
	* native/jni/java-nio/javanio.c: new file.
	* native/jni/java-nio/javanio.h: new file.
	* native/jni/native-lib/cpnet.c (cpnet_getHostByName): fix for
	systems without `gethostbyname_r.'
	* vm/reference/gnu/java/net/VMPlainSocketImpl.java (nfd): new
	field.
	(<init>, <init>): new constructors.
	(setOption, getOption): make instance methods; defer to native
	implementation.
	(connect): removed.
	(bind): make an instance method; defer to native methods.
	(accept): removed.
	(available): removed.
	(listen): make an instance method; defer to native method.
	(read): removed.
	(join, leave): new methods.
	(write): removed.
	(joinGroup, leaveGroup): new methods.
	(shutdownInput, shutdownOutput): make instance methods.
	(sendUrgentData): removed.
	(State): new class.
	* vm/reference/gnu/java/nio/VMChannel.java: make final.
	(fd): removed.
	(nfd): new field.
	(<init>): new, public constructors.
	(getVMChannel): methods removed.
	(getState, getStdin, getStdout, getStderr, stdin_fd, stdout_fd,
	stderr_fd): new methods.
	(setBlocking): make an instance method.
	(available): new method.
	(read): get native fd from `nfd.'
	(read): new single-byte read method.
	(readScattering): get native fd from `nfd.'
	(receive): new method.
	(write, writeGathering): get native fd from `nfd.'
	(send): new method.
	(write): new single-byte write method.
	(initSocket): new method.
	(connect): new method.
	(disconnect): new method.
	(getLocalAddress): new method.
	(getPeerAddress): new method.
	(accept): new method.
	(openFile): new method.
	(position): new method.
	(seek): new method.
	(truncate): new method.
	(lock): new method.
	(unlock): new method.
	(size): new method.
	(map): new method.
	(flush): new method.
	(close): new method.
	(State): new class.
	(Kind): new class.
	* vm/reference/gnu/java/nio/VMPipe.java (init): removed.
	(pipe, pipe0): new method.
	* vm/reference/java/net/VMNetworkInterface.java (name, addresses):
	new fields.
	(<clinit>): call `initIds.'
	(initIds): new method.
	(getInterfaces): removed.
	(getVMInterfaces): new method.
	(addAddress): new method.
	* vm/reference/java/nio/channels/VMChannels.java: fix imports.

2006-09-16  Chris Burdess  <dog@gnu.org>

	Fixes PR 28572.
	* gnu/xml/transform/StreamSerializer.java: Don't escape XML entities
	  when in text output mode.

2006-09-16  Chris Burdess  <dog@gnu.org>

	Fixes PR 27293.
	* gnu/xml/dom/DomNode.java: Increment length of node during insert.

2006-09-14  Michael Koch  <konqueror@gmx.de>

	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Recreated.

2006-09-15  Chistian Elias Naur  <elias@oddlabs.com>

	* java/io/ObjectStreamClass.java (setClass(Class, ObjectStreamClass)):
	Added !cl.isArray() to serialVersionUID mismatch check.

2006-09-14  Francis Kung  <fkung@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(gnu_java_awt_peer_gtk_CairoGraphics2D_setGradient): Updated constants to
	be compatibe with Cairo 1.2.x.

2006-09-14  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java: Added interpolation constants.
	(cairoSurfaceSetFilter): Removed method.
	(drawImage): Pass interpolation type as argument to drawing methods.
	(drawPixels): Added interpolation parameter.
	(drawRaster): Pass interpolation type as argument to drawing method.
	(getInterpolation): New method.
	(setRenderingHint): Store hints, but do not set interpolation in cairo.
	(setRenderingHints): Store hints, but do not set interpolation in cairo.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(drawSurface): Added interpolation parameter.
	(nativeDrawSurface): Added interpolation parameter.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels): Added interpolation
	parameter.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter): Removed.
	* native/jni/gtk-peer/cairographics2d.h
	(java_awt_rendering_hints_filter): Added bicubic interpolation constant.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels): Added interpolation
	parameter.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter): Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface): Added
	interpolation parameter.

2006-09-14  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java
	(internalGetCanonicalHostName): New method.
	(getCanonicalHostName): Use internalGetCanonicalHostName.
	(getByLiteral): New method.
	(getAllByName): Use getByLiteral.
	* java/net/SocketPermission.java
	(host): Replaced with...
	(hostname, address): New fields.
	(equals, hashcode): Reflect the above.
	(setHostPort): Parse host into hostname or address.
	(implies): Rewrite host checks.

2006-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	Fixes PR28699
	* java/awt/Menu.java
	(insert(MenuItem, int)): Fixed loop range,
	(insert(String, int)): Updated API docs.

2006-09-14  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	Fixes PR22800
	* native/fdlibm/mprec.h (Storeinc): Define correctly for LE
	architectures (like Arm).
	* native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits):
	Reverted SWAP_DOUBLE patch.
	(doubleToRawLongBits): Likewise.
	(longBitsToDouble): Likewise.

2006-09-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Menu.java: Reformatted source file.

2006-09-14  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/rmi/server/ActivatableRef.java
	(readExternal, writeExternal): Partial fix for serialization format.

2006-09-14  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/28984
	* java/io/InputStreamReader.java
	(read(char[],int,int)): Fixed bug.

2006-09-13  Francis Kung  <fkung@redhat.com>

	* java/awt/image/BandCombineOp.java: Updated documentation.
	(filter(Raster, WritableRaster)): Use int arrays, and added simple cache.

2006-09-13  Tom Tromey  <tromey@redhat.com>

	PR classpath/29034:
	* java/io/PipedReader.java (read): Return early if len==0.
	* java/io/PipedInputStream.java (read): Return early if len==0.

2006-09-13  Francis Kung  <fkung@redhat.com>

	* java/awt/image/ConvolveOp.java (filter(Raster, WritableRaster)):
	Removed hard-coded max sample value.
	* java/awt/image/RescaleOp.java (filter(Raster, WritableRaster)): 
	Fixed finding of max sample value.

2006-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(setPaint): Check null argument ('p').

2006-09-12  Francis Kung  <fkung@redhat.com>

	PR 27940
	* gnu/java/awt/java2d/TexturePaintContext.java
	(constructor): Fixed typo, getMinY instead of getMaxX.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(setPaint): Implemented support for custom Paint classes.
	(setPaintPixels): Renamed from setTexturePixels, added repeat parameter.
	(setTexturePixels): Renamed to setPaintPixels, added repeat parameter.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Renamed setTexturePixels
	to setPaintPixels, and added repeat parameter.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c:
	 Renamed setTexturePixels to setPaintPixels, and added repeat parameter.

2006-09-12  Gary Benson  <gbenson@redhat.com>

	* java/net/NetworkInterface.java (getInetAddresses):
	Fix port used in security check.

2006-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/DefaultMetalTheme.java
	(CONTROL_TEXT_FONT): Renamed 'controlTextFont',
	(MENU_TEXT_FONT): Renamed 'menuTextFont',
	(getControlTextFont): Check 'swing.boldMetal' setting before 
	initialising font,
	(getMenuTextFont): Likewise.

2006-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Added 'List.focusCellHighlightBorder' entry.

2006-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(InternalFrameDefaultMenuIcon.paintIcon): Use theme colors.

2006-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractSpinnerModel.java: API doc updates.

2006-09-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Initialise textIconGap field.

2006-09-11  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/FieldHelper.java (print): Print
	"volatile" when needed.

2006-09-11  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/AttributedCharacterIterator.java
	(LANGUAGE): Initialise with lower case string,
	(INPUT_METHOD_SEGMENT): Likewise,
	(READING): Likewise,
	* java/text/AttributedStringIterator.java
	(getRunLimit): Check all attributes for changes.

2006-09-11  David Gilbert  <david.gilbert@object-refinery.com>

	* java/text/AttributedCharacterIterator.java: Added @since tag, 
	renamed some variables (no underscores) and removed some spaces to
	match the common style,
	* java/text/AttributedString.java: Likewise,
	* java/text/AttributedStringIterator.java: Likewise.

2006-09-11  Gary Benson  <gbenson@redhat.com>

	* java/net/Inet4Address.java
	(FAMILY): Renamed back to AF_INET.
	(<init>, writeReplace): Reflect the above.
	* java/net/Inet6Address.java
	(FAMILY): Renamed back to AF_INET6.
	(<init>): Reflect the above.

2006-09-11  Cameron McCormack  <cam-gcc-bugzilla@aka.mcc.id.au>

	Fixes PR29010
	* java/text/AttributedString.java
	(AttributedString(AttributedCharacterIterator, int, int, 
	AttributedCharacterIterator.Attribute[])): Fixed check for defined 
	attribute.

2006-09-11  Gary Benson  <gbenson@redhat.com>

	* java/net/Inet4Address.java
	(AF_INET): Renamed to FAMILY.
	(<init>, writeReplace): Reflect the above.
	* java/net/Inet6Address.java
	(AF_INET6): Renamed to FAMILY.
	(<init>): Reflect the above.

2006-09-10  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #28867
	Originally in Kaffe: 2004-04-16  Helmer Kraemer <hkraemer@freenet.de>
	* java/net/ServerSocket.java(implAccept): Deleted socket.implCreated.
	* java/net/Socket.java: Avoid creating a redundant file descriptor.
	(implCreated): Deleted, (getImpl): Don't check impleCreated,
	(bind): Call getImpl().create(true).

2006-09-09  Chris Burdess  <dog@gnu.org>

	* gnu/xml/xpath/Expr.java: Ensure that node-set evaluation returns
	  an instance of org.w3c.dom.NodeList.

2006-09-08  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/Main.java: Warn about
	missing security manager when run in standalone mode.

2006-09-08  Francis Kung  <fkung@redhat.com>

	* java/awt/image/AffineTransformOp.java: Updated documentation.
	(createCompatibleDestRaster): Updated formatting.
	(filter(BufferedImage, BufferedImage)): Updated formatting.
	(filter(Raster, WritableRaster)): Delegated processing to native peers for
	if colour model is compatible.
	(filterBicubic): Get entire pixel at once, and use appropriate array type.
	(filterBilinear): Get entire pixel at once, and use appropriate array type.

2006-09-08  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java
	(family): Updated javadoc and made private.
	(<init>): Add an address family argument.
	(readObject): Don't overwrite family.
	* java/net/Inet4Address.java
	(AF_INET): New constant.
	(<init>): Use AF_INET as the family.
	(writeReplace): Likewise.
	* java/net/Inet6Address.java
	(AF_INET6): New constant.
	(<init>): Use AF_INET6 as the family.

2006-09-08  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java
	(getHostName): Move lookup into getCanonicalHostName.
	(getCanonicalHostName): Move lookup from getHostName,
	Perform security check on canonical name (ie after lookup).

2006-09-08  Gary Benson  <gbenson@redhat.com>

	* java/net/Inet4Address.java (isMulticastAddress,
	isLoopbackAddress, isAnyLocalAddress, isLinkLocalAddress,
	isSiteLocalAddress, isMCGlobal, isMCNodeLocal, isMCLinkLocal,
	isMCSiteLocal, isMCOrgLocal, getHostAddress): Moved
	implementations from InetAddress.
	* java/net/InetAddress.java (isMulticastAddress,
	isLoopbackAddress, isAnyLocalAddress, isLinkLocalAddress,
	isSiteLocalAddress, isMCGlobal, isMCNodeLocal, isMCLinkLocal,
	isMCSiteLocal, isMCOrgLocal, getHostAddress): Replace
	implementations with UnsupportedOperationExceptions.
	
2006-09-08  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java
	(inaddr_any): Removed.
	(ANY_IF, LOCALHOST): Create using getByAddress.
	(<init>): Updated javadoc.
	(getHostName): Cache hostname even if the lookup failed.
	(getByAddress): Create Inet4Address objects when passed
	IPv4-mapped IPv6 addresses.
	(aton): Removed.
	(getAllByName): Create address objects using getByAddress.
	Do not perform security checks unless actually required.
	Do not strip whitespace from the hostname.
	(getInaddrAny): Removed.
	(getLocalHost): Return the loopback address if getByName
	throws a SecurityException.
	(readResolve): Updated javadoc.
	* vm/reference/java/net/VMInetAddress.java (aton): Declared.
	* include/java_net_VMInetAddress.h
	(Java_java_net_VMInetAddress_aton): Likewise.
	* native/jni/java-net/java_net_VMInetAddress.c
	(Java_java_net_VMInetAddress_aton): New method.
	* native/jni/native-lib/cpnet.h (cpnet_aton): Declared.
	* native/jni/native-lib/cpnet.c (cpnet_aton): New method.
	* configure.ac (AC_CHECK_FUNCS): Checks for cpnet_aton.
	* java/net/Inet4Address.java (writeReplace): Updated javadoc.
	* NEWS: Added note about updated VM interface.

2006-09-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(setNorthPane): Assign component to titlePane.

2006-09-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/NamingService/NameParser.java (corbaloc):
	Remove unused variable alt_addr.
	* gnu/CORBA/NamingService/NameTransformer.java (toName):
	Remove unused variables.

2006-09-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(installDefaults): Initialise scrollBarWidth from UI defaults here,
	(createDecreaseButton): Don't fetch scrollBarWidth here, 
	(createIncreaseButton): Likewise.

2006-09-07  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MemoryImageSource.java: Added API docs.

2006-09-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(installDefaults): Call configureScrollBarColors().

2006-09-06  Francis Kung  <fkung@redhat.com>

	* java/awt/image/RescaleOp.java: Updated documentation and formatting.
	(constructor): Make copy of arrays.
	(createCompatibleDestImage): Changed treatment of null ColorModel.
	(filter(BufferedImage, BufferedImage)): Re-implemented.
	(filter(Raster, WritableRaster, boolean[])): New method.
	(filter(Raster, WritableRaster)): Re-implemented.
	(getOffsets): Prevent ArrayIndexOutOfBoundsException.
	(getPoint2D): Cleaned up formatting.
	(getScaleFactors): Prevent ArrayIndexOutOfBoundsException.

2006-09-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java
	(getBoolean(Object)): Reimplemented,
	(getBoolean(Object, Locale)): Likewise,
	(getBorder(Object)): Likewise,
	(getBorder(Object, Locale)): Likewise,
	(getColor(Object)): Likewise,
	(getColor(Object, Locale)): Likewise,
	(getDimension(Object)): Likewise,
	(getDimension(Object, Locale)): Likewise,
	(getFont(Object)): Likewise,
	(getFont(Object, Locale)): Likewise,
	(getIcon(Object)): Likewise,
	(getIcon(Object, Locale)): Likewise,
	(getInsets(Object)): Updated API docs,
	(getInsets(Object, Locale)): Likewise,
	(getInt(Object)): Reimplemented,
	(getInt(Object, Locale)): Likewise,
	(getString(Object)): Likewise,
	(getString(Object, Locale)): Likewise.

2006-09-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/UIManager.java
	(MultiplexUIDefaults.MultiplexUIDefaults()): Don't allow null fallback,
	(getDefaults): Initialise MultiplexUIDefaults with empty fallback.

2006-09-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Corrected various font defaults.

2006-09-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/List.java: Added @since to various methods.

2006-09-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/native-lib/cpprocess.c:
	(forkAndExec(char*,char*,int,int,pid_t,char*)):
	Add redirection of stdout to stderr.
	* native/jni/native-lib/cpprocess.h:
	Added redirect argument.
	* native/jni/java-lang/java_lang_VMProcess.c
	(Java_java_lang_VMProcess_nativeSpawn): Readd redirect argument.
	* vm/reference/java/lang/VMProcess.java: Likewise.
	* include/java_lang_VMProcess.h: Regenerated.
	
2006-09-05  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c: Adjust
	__attribute to __attribute__.

	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c: Remove duplicate
	header include.

2006-09-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/List.java: Source code reformatted.

2006-09-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CollocatedOrbs.java,
	gnu/CORBA/SafeForDirectCalls.java: New files.
	* gnu/CORBA/NamingService/Binding_iterator_impl.java:
	Implement gnu.CORBA.SafeForDirectCalls.
	* gnu/CORBA/NamingService/Ext.java: Likewise.
	* gnu/CORBA/NamingService/TransientContext.java: Likewise.
	* gnu/CORBA/OrbFunctional.java (createIor):Cache the address
	of the local host. (ior_to_object): Return the local object
	where possible. (run): Register/unregister this ORB.
	* gnu/CORBA/Poa/LocalRequest.java (v_invoke): Call gnuPOA.checkDiscarding.	
	* gnu/CORBA/Poa/gnuPOA.java (checkDiscarding): Made package private.
	* gnu/CORBA/Poa/gnuServantObject.java (noRetain): New field.
	(constructors): Initialize noRetain. (_invoke): Drop servant
	if noRetain is true. (getHandler): Always seach for the new servant
	if noRetain is true.
	* gnu/CORBA/SimpleDelegate.java (create_request): Implemented.
	* NEWS: Added note about the new feature.

2006-09-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Choice.java
	(addItem): Fixed API doc glitch.

2006-09-05  Francis Kung  <fkung@redhat.com>

	* java/awt/image/LookupOp.java: Updated documentation & formatting.
	(createCompatibleDestImage): Re-implemented.
	(filter(BufferedImage, BufferedImage)): Added check for src/dest image
	compatibility, and use ColorConvertOp for color conversion if needed.
	(filter(Raster, WritableRaster)): Made exceptions more descriptive.

2006-09-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	gnu/CORBA/CDR/Vio.java,
	org/omg/CORBA_2_3/ORB.java,
	org/omg/CORBA_2_3/portable/InputStream.java,
	org/omg/CORBA_2_3/portable/OutputStream.java,
	org/omg/CosNaming/BindingIteratorHelper.java,
	org/omg/CosNaming/BindingTypeHelper.java,
	org/omg/CosNaming/NameComponentHelper.java,
	org/omg/CosNaming/NameHelper.java,
	org/omg/CosNaming/NamingContextExtHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java,
	org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java,
	org/omg/CosNaming/NamingContextHelper.java,
	org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/InvalidName.java,
	org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java,
	org/omg/DynamicAny/AnySeqHelper.java,
	org/omg/DynamicAny/DynAnyFactoryHelper.java,
	org/omg/DynamicAny/DynAnyFactoryOperations.java,
	org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java,
	org/omg/DynamicAny/DynAnyHelper.java,
	org/omg/DynamicAny/DynAnyOperations.java,
	org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.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/DynStructOperations.java,
	org/omg/DynamicAny/DynUnionHelper.java,
	org/omg/DynamicAny/DynValueHelper.java,
	org/omg/DynamicAny/NameDynAnyPairHelper.java,
	org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
	org/omg/IOP/CodecFactoryHelper.java,
	org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java,
	org/omg/IOP/CodecOperations.java,
	org/omg/IOP/CodecPackage/FormatMismatchHelper.java,
	org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java,
	org/omg/IOP/CodecPackage/TypeMismatchHelper.java,
	org/omg/IOP/ComponentIdHelper.java,
	org/omg/IOP/ExceptionDetailMessage.java,
	org/omg/IOP/MultipleComponentProfileHelper.java,
	org/omg/IOP/ProfileIdHelper.java,
	org/omg/IOP/ServiceContextListHelper.java,
	org/omg/IOP/ServiceIdHelper.java,
	org/omg/IOP/TAG_CODE_SETS.java,
	org/omg/PortableInterceptor/ClientRequestInfoOperations.java,
	org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java,
	org/omg/PortableInterceptor/CurrentHelper.java,
	org/omg/PortableInterceptor/IORInfo.java,
	org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java,
	org/omg/PortableInterceptor/ORBIdHelper.java,
	org/omg/PortableInterceptor/ORBInitInfoOperations.java,
	org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java,
	org/omg/PortableInterceptor/ORBInitializerOperations.java,
	org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java,
	org/omg/PortableInterceptor/RequestInfoOperations.java,
	org/omg/PortableInterceptor/ServerIdHelper.java,
	org/omg/PortableInterceptor/ServerRequestInfoOperations.java,
	org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java,
	org/omg/PortableServer/AdapterActivatorOperations.java,
	org/omg/PortableServer/CurrentHelper.java,
	org/omg/PortableServer/CurrentPackage/NoContextHelper.java,
	org/omg/PortableServer/ForwardRequestHelper.java,
	org/omg/PortableServer/IdAssignmentPolicyValue.java,
	org/omg/PortableServer/IdUniquenessPolicyValue.java,
	org/omg/PortableServer/ImplicitActivationPolicyValue.java,
	org/omg/PortableServer/LifespanPolicyValue.java,
	org/omg/PortableServer/POA.java,
	org/omg/PortableServer/POAHelper.java,
	org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java,
	org/omg/PortableServer/POAManagerPackage/State.java,
	org/omg/PortableServer/POAOperations.java,
	org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java,
	org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java,
	org/omg/PortableServer/POAPackage/InvalidPolicy.java,
	org/omg/PortableServer/POAPackage/NoServantHelper.java,
	org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/WrongAdapterHelper.java,
	org/omg/PortableServer/POAPackage/WrongPolicyHelper.java,
	org/omg/PortableServer/RequestProcessingPolicyValue.java,
	org/omg/PortableServer/ServantActivatorHelper.java,
	org/omg/PortableServer/ServantLocatorHelper.java,
	org/omg/PortableServer/ServantLocatorOperations.java,
	org/omg/PortableServer/ServantRetentionPolicyValue.java,
	org/omg/PortableServer/ThreadPolicyValue.java,
	org/omg/PortableServer/_ServantActivatorStub.java,
	org/omg/PortableServer/_ServantLocatorStub.java,
	org/omg/PortableServer/portable/Delegate.java: Documentation fixes.

2006-09-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/rmi/CORBA/Tie.java,
	org/omg/CORBA/AnyHolder.java,
	org/omg/CORBA/AnySeqHelper.java,
	org/omg/CORBA/AnySeqHolder.java,
	org/omg/CORBA/BooleanHolder.java,
	org/omg/CORBA/BooleanSeqHelper.java,
	org/omg/CORBA/BooleanSeqHolder.java,
	org/omg/CORBA/ByteHolder.java,
	org/omg/CORBA/CharHolder.java,
	org/omg/CORBA/CharSeqHelper.java,
	org/omg/CORBA/CharSeqHolder.java,
	org/omg/CORBA/Context.java,
	org/omg/CORBA/CurrentHelper.java,
	org/omg/CORBA/CustomValue.java,
	org/omg/CORBA/DataOutputStream.java,
	org/omg/CORBA/DefinitionKindHelper.java,
	org/omg/CORBA/DomainManagerOperations.java,
	org/omg/CORBA/DoubleHolder.java,
	org/omg/CORBA/DoubleSeqHelper.java,
	org/omg/CORBA/DoubleSeqHolder.java,
	org/omg/CORBA/DynAny.java,
	org/omg/CORBA/DynSequence.java,
	org/omg/CORBA/DynValue.java,
	org/omg/CORBA/DynamicImplementation.java,
	org/omg/CORBA/FieldNameHelper.java,
	org/omg/CORBA/FixedHolder.java,
	org/omg/CORBA/FloatHolder.java,
	org/omg/CORBA/FloatSeqHelper.java,
	org/omg/CORBA/FloatSeqHolder.java,
	org/omg/CORBA/IdentifierHelper.java,
	org/omg/CORBA/IntHolder.java,
	org/omg/CORBA/LocalObject.java,
	org/omg/CORBA/LongHolder.java,
	org/omg/CORBA/LongLongSeqHelper.java,
	org/omg/CORBA/LongLongSeqHolder.java,
	org/omg/CORBA/LongSeqHelper.java,
	org/omg/CORBA/LongSeqHolder.java,
	org/omg/CORBA/ORB.java,
	org/omg/CORBA/ObjectHelper.java,
	org/omg/CORBA/ObjectHolder.java,
	org/omg/CORBA/OctetSeqHelper.java,
	org/omg/CORBA/OctetSeqHolder.java,
	org/omg/CORBA/PolicyErrorCodeHelper.java,
	org/omg/CORBA/PolicyErrorHelper.java,
	org/omg/CORBA/PolicyHelper.java,
	org/omg/CORBA/PolicyListHelper.java,
	org/omg/CORBA/PolicyTypeHelper.java,
	org/omg/CORBA/PrincipalHolder.java,
	org/omg/CORBA/RepositoryIdHelper.java,
	org/omg/CORBA/Request.java,
	org/omg/CORBA/ShortHolder.java,
	org/omg/CORBA/ShortSeqHelper.java,
	org/omg/CORBA/ShortSeqHolder.java,
	org/omg/CORBA/StringSeqHelper.java,
	org/omg/CORBA/StringSeqHolder.java,
	org/omg/CORBA/ULongLongSeqHelper.java,
	org/omg/CORBA/ULongLongSeqHolder.java,
	org/omg/CORBA/ULongSeqHelper.java,
	org/omg/CORBA/ULongSeqHolder.java,
	org/omg/CORBA/UShortSeqHelper.java,
	org/omg/CORBA/UShortSeqHolder.java,
	org/omg/CORBA/ValueBaseHelper.java,
	org/omg/CORBA/ValueBaseHolder.java,
	org/omg/CORBA/VersionSpecHelper.java,
	org/omg/CORBA/WCharSeqHelper.java,
	org/omg/CORBA/WCharSeqHolder.java,
	org/omg/CORBA/WStringSeqHelper.java,
	org/omg/CORBA/WStringSeqHolder.java,
	org/omg/CORBA/WrongTransactionHelper.java,
	org/omg/CORBA/_IDLTypeStub.java,
	org/omg/CORBA/_PolicyStub.java,
	org/omg/CORBA/portable/BoxedValueHelper.java,
	org/omg/CORBA/portable/Delegate.java,
	org/omg/CORBA/portable/ObjectImpl.java,
	org/omg/CORBA/portable/ServantObject.java,
	org/omg/CORBA/portable/StreamableValue.java,
	org/omg/CosNaming/BindingType.java,
	org/omg/CosNaming/IstringHelper.java,
	org/omg/DynamicAny/FieldNameHelper.java,
	org/omg/PortableServer/Servant.java: Documentation fixes.

2006-09-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Rectangle.java
	(setRect(double, double, double, double)): Modified rounding of input
	values.

2006-09-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/HTML_401F.java (defineElements):
	Disallow H1 - H6 in the paragraphs.
	* gnu/javax/swing/text/html/parser/support/textPreProcessor.java
	(preprocess): Leave at most one leading and/or trailing space.
	* javax/swing/text/html/HTMLDocument.java (HTMLReader.handleText):
	Do not add any text after closing the HTML tag.

2006-09-02  Roman Kennke  <kennke@aicas.com>

	PR 28928
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getPreferredSpan): Default to 10 when there is no
	real view.
	(RootView.getMinimumSpan): Forward to view and default to 10
	when there is no real view.
	(RootView.getMaximumSpan): Return Integer.MAX_VALUE.
	(getMaximumSize): Check for overflow.
	* javax/swing/text/FieldView.java
	(getResizeWeight): Removed unneeded assignment.

2006-09-01  Francis Kung  <fkung@redhat.com>
	* java/awt/image/ColorConvertOp.java
	(copyImage): Updated javadoc and comments.
	(copyRaster): Add javadoc.
	(createCompatibleColorModel): Add javadocs and comments.
	(createCompatibleDestImage): Use correct transfer type.
	(createCompatibleDestRaster): Add new parameter for transfer type.
	(filter): Use correct transfer type.
	* java/awt/image/ConvolveOp.java: Updated javadocs.
	(createCompatibleDestImage): Set new image properties correctly.
	(filter(BufferedImage, BufferedImage): Correct handling of premultiplication.
	(filter(WritableRaster, Raster): Clip sample values to [0-255].

2006-09-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/table/DefaultTableModel.java:
	(checkSize): Added null check for dataVector.

2006-09-01  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/plaf/basic/BasicSplitPaneUI.java:
        (BasicHorizontalLayout.getAlignmentX): Return fixed value.
        (BasicHorizontalLayout.getAlignmentY): Return fixed value.

2006-09-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/metal/MetalCheckBoxIcon.java:
	(paintIcon): Removed unused import statements, lowered cast requirement
	from JCheckBox to AbstractButton.

2006-09-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(initComponentDefaults): Added, changed and removed some
	tabbed pane properties.

2006-09-01  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/TabbedPaneDemo.java:
	(createContent): Changed menu item name and tab naming.

2006-09-01  Roman Kennke  <kennke@aicas.com>

	PR 28922
	* javax/swing/plaf/basic/BasicHTML.java
	(HTMLRootView.getAttributes): Overridden to return null.
	(HTMLRootView.getElement): Overridden to return the view's
	element.

2006-09-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(calculateTabAreaHeight): Use getTabRunOverlay method instead
	of accessing variable directly.
	(calculateTabAreaWidth): Dito.

2006-08-31  Keith Seitz  <keiths@redhat.com>

	* include/jvmti.h: Include jvmti_md.h.

2006-08-31  Keith Seitz  <keiths@redhat.com>

	From Martin Platter  <motse@complang.tuwien.ac.at>:
	* Makefile.am (include_HEADERS): Include jvmti.h.
	* include/jvmti.h (jvmtiEnv) [!__cplusplus]: Add missing '*'.
	(jvmtiError): Remove superfluous comma after last entry.
	(jvmtiEvent): It's "BREAKPOINT" not "BERAKPOINT".
	(_Jv_jvmtiEnv.StopThread): Add missing exception parameter.
	(_Jv_jvmtiEnv.RawMonitorWait): Add missing millis parameter.
	(_Jv_jvmtiEnv.GetSourceFileName): source_name_ptr is pointer to
	character pointer.
	(_Jv_JVMTIEnv::StopThread): Add missing exception parameter.
	(_Jv_JVMTIEnv::RawMonitorWait): Add missing millis parameter.
	(_Jv_JVMTIEnv::GetSourceFileName): source_name_ptr is pointer to
	character pointer.

2006-08-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(getWidth): Return the width with insets added, not with one
	added and one removed.
	(getHeight): Return the height with insets added, not with one
	added and one removed.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.viewToModel): Need to add the start offset.
	* javax/swing/text/ParagraphView.java
	(Row.getAlignment): Adjust alignment with respect to
	the justification attribute.
	(Row.getLeftInset): Overridden to adjust for firstLineIndent
	attribute.
	* javax/swing/text/html/CSS.java
	(getValue): Convert length values.
	* javax/swing/text/html/Paragraph.java
	(painter): New field.
	(paint): Implemented to delegate painting to the BoxPainter too.
	(setPropertiesFromAttributes): Implemented to load attributes
	from CSS.
	* javax/swing/text/html/StyleSheet.java
	(BoxPainter.as): Removed field.
	(BoxPainter.leftInset): New field.
	(BoxPainter.bottomInset): New field.
	(BoxPainter.rightInset): New field.
	(BoxPainter.topInset): New field.
	(BoxPainter.BoxPainter): Implemented to load the insets from
	CSS.
	(BoxPainter.getInset): Implemented.
	* gnu/javax/swing/text/html/Length.java: New class.
	Converts CSS length units to usable values.

2006-08-31  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Add check for gethostbyname_r.
	Add check for MSG_NOSIGNAL and SO_NOSIGPIPE.
	* native/jni/native-lib/cpnet.c (SOCKET_NOSIGNAL): Define
	SOCKET_NOSIGNAL according to the configure check.
	(cpnet_send): Use SOCKET_NOSIGNAL.
	(cpnet_sendTo): Likewise.
	(cpnet_getHostByName): Use gethostbyname in case gethostbyname_r is not
	defined.
	* native/jni/native-lib/cpio.c: Define O_SYNC and O_DSYNC in case they
	are not available.

	* lib/Makefile.am (cssfiles): Add new rule to install css files.

2006-08-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(getPreferredSize): Replace preferred size with minimum
	UI size only if the scrollable does _not_ track the viewport
	size and only if the viewport's size is smaller than the
	scrollable's size.
	(getScrollableTracksViewportWidth): Avoid unnecessary multiple
	method calls.
	* javax/swing/plaf/basic/BasicTextUI.java
	(getPreferredSize): Read-lock the document to avoid
	concurrency problems.
	(getMaximumSize): Return maximum size of the view.
	Read-lock the document to avoid	concurrency problems.
	(getMinimumSize): Return minimum size of the view.
	Read-lock the document to avoid	concurrency problems.

2006-08-31  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java
	(maybeBracketIPv6Address): Renamed to processHostport.
	(processHostport): Also translate "" to "localhost".
	(setHostPort): Remove special cases for empty hostport and for
	extra colons in hostport (processHostport handles these now).

2006-08-31  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/ZoneView.java (Zone): Make static class.
	Constructor takes axis parameter.
	(createZone): Create Zone with getAxis() as major axis.

2006-08-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ZoneView.java
	(loadChildren): Implemented.
	(getViewIndexAtPosition): Implemented.
	(checkZoneAt): New helper method.
	(splitZone): New helper method.
	(getPreferredZoneEnd): New helper method.

2006-08-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ZoneView.java: New class.

2006-08-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JMenu.java
	(getMenu): Removed unneeded cast.
	(getPopupMenuOrigin): Made positioning algorithm better respect
	the screen bounds.
	(setMenuLocation): Also set the location on the popup if it's
	not null.
	(setModel): Use menuChangeListener so that we don't override
	the changeListener field from AbstractButton.
	(setPopupMenuVisible): Use custom location if set, otherwise
	fallback to getPopupMenuOrigin().

2006-08-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/InternationalFormatter.java
	(stringToValue): Fixed bounds check.
	* javax/swing/text/MaskFormatter.java
	(MaskFormatter): Don't explicitly set allosInvalid property.
	(convertStringToValue): New helper method.
	(convertValueToString): New helper method.
	(convertValue): Removed. Replaced by the 2 convert* methods
	above.
	(getPadCharAt): Removed.
	(isCharValid): Removed.
	(pad): Removed.
	(stringToValue): Fixed stringToValue conversion.
	(stripLiterals): Removed.
	(valueToString): Fixed valueToString conversion.
	* javax/swing/text/DefaultFormatter.java
	(DefaultFormatter): Default to commitsOnValidEdit = false.

2006-08-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/TextAction.java
	(getTextComponent): Check event for null and return null in
	this case.
	(augmentList): Augment Actions based on their names.
	* javax/swing/text/DefaultEditorKit.java
	(BeginAction.actionPerformed): Check target for null.
	(BeginLineAction.actionPerformed): Check target for null.
	(CopyAction.actionPerformed): Check target for null.
	(CutAction.actionPerformed): Check target for null.
	(EndAction.actionPerformed): Check target for null.
	(EndLineAction.actionPerformed): Check target for null.
	(InsertBreakAction.actionPerformed): Check target for null.
	(InsertTabAction.actionPerformed): Check target for null.
	(PasteAction.actionPerformed): Check target for null.
	(SelectAllAction.actionPerformed): Check target for null.
	(SelectionBeginAction.actionPerformed): Check target for null.
	(SelectionBeginLineAction.actionPerformed): Check target for null.
	(SelectionEndAction.actionPerformed): Check target for null.
	(SelectionEndLineAction.actionPerformed): Check target for null.
	(SelectLineAction.actionPerformed): Check target for null.
	(SelectWordAction.actionPerformed): Check target for null.

2006-08-29  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(FocusHandler): New class. This is moved from the anonymous
	inner focus listener class to a static member class, and
	is now shared between components.
	(DocumentHandler): This class is combined with the PropertyHandler
	into the Handler class.
	(PropertyChangeHandler): This class is combined with the
	DocumentHandler into the Handler class.
	(Handler): New class. This combines the Property and Document
	handler into one class.
	(RootView.changedUpdate): Only forward if real view != null.
	(RootView.insertUpdate): Only forward if real view != null.
	(RootView.removeUpdate): Only forward if real view != null.
	(documentHandler): Removed field and replaced by handler.
	(focuslistener): Made field static and renamed to focusListener.
	(handler): New field.
	(kit): Lazily initialize field.
	(rootView): Lazily initialize field.
	(updateHandler): Removed and replaced by handler.
	(getEditorKit): Lazily instantiate field.
	(installDefaults): Don't set margin twice. Install correct
	property for disabledTextColor. Moved caret and highlighter
	initialization to installFixedDefaults.
	(installFixedDefaults): New method. Installs defaults that
	can't be overridden by subclasses.
	(installListeners): Only install focus handler when new
	system property gnu.swing.text.no-xlike-clipboard is not set.
	Lazily initialize focus handler.
	(installUI): Lazily initialize rootView. Install handler
	both for property and document changes.
	(uninstallDefaults): Uninstall the UI defaults.
	(uninstallFixedDefaults): New method. Uninstalls the fixed
	defaults.
	(installListeners): Only uninstall focus handler when not null.
	(uninstallUI): Uninstall property and document listener here.

2006-08-29  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java
	(maybeBracketIPv6Address): New method.
	(<init>): Pass the hostport argument through the above.

	* java/net/NetworkInterface.java (getInetAddresses):
	Don't bracket IPv6 addresses.

2006-08-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(calculateMinorAxisRequirements): Initialize max size
	with Integer.MAX_VALUE.
	* javax/swing/text/Utilities.java
	(getBreakLocation): For simple chars, scan the text directly.
	* javax/swing/text/WrappedPlainView.java
	(tabBase): New field.
	(tabSize): New field.
	(calculateBreakPosition): Use Utilities. Fixed for correct
	break calculation.
	(changedUpdate): Update children directly.
	(insertUpdate): Update children directly. Notify children.
	(removeUpdate): Update children directly. Notify children.
	(updateChildren): New helper method.
	(nextTabStop): Fixed to return correct results.
	(paint): Update tabBase.
	(updateMetrics): Update tab size.

2006-08-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/Position.java
	(Bias.Forward): Initialize with 'Forward' rather then 'forward'.
	(Bias.Backward): Initialize with 'Backward' rather then 'backward'.

2006-08-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(height): Removed unneeded field.
	(width): Removed unneeded field.
	(getBreakWeight): Return GoodBreakWeight when pos is after
	the view's span.
	(getToolTipText): Check view index more carefully. Avoid
	Rectangle creation.
	(insertUpdate): Only execute method body if view count > 0.
	When updateChildren returns false, clear the ec variable.
	(updateChildren): Added null checks.
	(viewToModel): Initialize bias array correctly.
	* javax/swing/text/CompositeView.java
	(children): Made private.
	(numChildren): New field.
	(loadChildren): Check factory for null. Don't load children
	when factory is null.
	(replace): Removed null check. Nullify removed children. Made
	growing the array more efficient.
	(getViewCount): Return numChildren rather then the real array
	size.
	* javax/swing/text/BoxView.java
	(getViewAtPoint): Fixed algorithm for finding the view.
	(replace): Made array growing more efficient.
	(replaceLayoutArray): New helper method for growing/patching
	the layout arrays.
	(viewToModel): Make sure we have a valid layout.

2006-08-28  Tania Bento  <tbento@redhat.com>

	* java/awt/MenuShortcut.java
	(MenuShortcut (int, boolean)): Set keyName.
	(toString): Modified string output.
	(setKeyName): New private method.

2006-08-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(Mark.getOffset): Made assert less strict, include boundary.
	(search): Made package private to avoid accessor method.

2006-08-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/StringContent.java
	(InsertUndo.positions): New field.
	(InsertUndo.redo): Update the undo positions.
	(InsertUndo.undo): Fetch the undo positions.
	(Mark): New class. Layer of indirection to allow Positions
	to be GC'ed while we still hold references to the Mark.
	(RemoveUndo.len): New field.
	(RemoveUndo.positions): New field.
	(RemoveUndo.RemoveUndo): Fetch undo positions.
	(RemoveUndo.redo): Re-fetch positions and string.
	(RemoveUndo.undo): Update undo positions.
	(StickyPosition.mark): New field.
	(StickyPosition.offset): Removed field.
	(StickyPosition.StickyPosition): Create new Mark. Register
	Position in queueOfDeath. Update reference count on mark.
	(StickyPosition.getOffset): Return offset stored in mark.
	(StickyPosition.setOffset): Removed unneeded method.
	(UndoPosRef): New class. Handles undo/redo on positions/marks.
	(EMPTY): New field.
	(marks): New field. Stores the marks.
	(positions): Removed field.
	(queueOfDeath): New field. Used for GCing the positions.
	(StringContent): Initialize queueOfDeath.
	(createPosition): Lazily create marks vector.
	(garbageCollect): New helper method. Collects positions
	to be GCed and updates their marks.
	(getChars): Fixed bounds check.
	(getPositionsInRange): When v == null, create new Vector,
	otherwise use v. Store UndoPosRefs in vector.
	(getString): Added comment about bug in RI.
	(insertString): Use new helper method for replacing the array.
	Correctly update positions.
	(length): Removed this qualifier.
	(remove): Use new helper method for replacing the array.
	Correctly update positions.
	(replace): New helper method for growing or patching the array.
	(updateUndoPositions): Implemented. Updates the positions
	for undo/redo operations.

2006-08-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/StyleContext.java
	(NamedStyle.attributes): Made field transient.
	(NamedStyle.changeEvent): Made field transient.
	(NamedStyle.name): Removed field. The name is stored as
	attribute.
	(NamedStyle.NamedStyle(String,Style)): Call setName() for
	storing the name and check for null name and resolveParent.
	Don't initialize changeEvent.
	(NamedStyle.copyAttributes): Return a new NamedStyle,
	rather than a plain copy of the attributes field.
	(NamedStyle.fireStateChange): Lazily create changeEvent
	field.
	(NamedStyle.getName): Fetch name from attributes.
	(NamedStyle.setName): Store name from attributes.
	(NamedStyle.readObject): Implemented for correct
	deserialization.
	(NamedStyle.writeObject): Implemented for correct
	serialization.
	(NamedStyle.setResolveParent): When new parent is null,
	remove resolveParent attribute. Use addAttribute() method
	rather than StyleContext addAttribute().
	(NamedStyle.toString): Fixed to produce output equal to the
	RI.
	(SmallAttributeSet.resolveParent): New field.
	(SmallAttributeSet.SmallAttributeSet(AttributeSet)): Update
	the resolveParent field correctly.
	(SmallAttributeSet.SmallAttributeSet(Object[])): Don't copy
	array but store it directly. Update
	the resolveParent field correctly.
	(SmallAttributeSet.clone): Return this as the object is
	immutable.
	(SmallAttributeSet.containsAttributes): Make sure that keys
	and values are the same.
	(SmallAttributeSet.containsAttribute):  Make sure that keys
	and values are the same.
	(SmallAttributeSet.copyAttributes): Return this as the object is
	immutable.
	(SmallAttributeSet.equals): Fixed comparison. Two AttributeSet
	are equal if they have the same number of attributes and
	one contains the other.
	(SmallAttributeSet.getAttribute): Improved lookup of
	resolveParent.
	(SmallAttributeSet.getResolveParent): Improved lookup of
	resolveParent.
	(SmallAttributeSet.isEqual): When comparing object is a
	SmallAttributeSet, consider them equal only if they are the
	same object.
	(SmallAttributeSet.toString): Fixed to produce output equal to the
	RI.
	(attributeSetPool): New field.
	(defaultStyleContext): Initialize lazily.
	(defaultStyle): Removed field. This is stored in the style context
	as attribute.
	(listenerList): Removed field. The NamedStyle stores the
	listeners.
	(readAttributeKeys): New static field. Used for looking up
	the serialization mappings when reading.
	(search): New field. Used as search key.
	(staticAttributeKeys): Replaced by read/writeAttributeKeys.
	(styles): New field. Stores the styles and listeners.
	(styleTable): Removed field. Replaced by styles field.
	(writeAttributeKeys): New static field. Used for looking up
	the serialization mappings when writing.
	(static_initializer): Register mappings for all keys in
	StyleConstants.
	(StyleContext): Initialize styles correctly.
	(addAttributes): Fixed caching of immutable attributes.
	(addAttribute): Fixed caching of immutable attributes.
	(removeAttributes): Fixed caching of immutable attributes.
	(removeAttribute): Fixed caching of immutable attributes.
	(addChangeListener): Add listener to styles field.
	(removeChangeListener): Remove listener from styles field.
	(getChangeListeners): Fetch listeners from styles field.
	(addStyle): Add style to styles field.
	(cleanupPool): New method.
	(getDefaultStyleContext): Lazily create context.
	(getEmptySet): Simply return SimpleAttributeSet.EMPTY.
	(getMutableAttributeSet): New helper method. Used for
	caching.
	(getStaticAttribute): Fetch key from readAttributeKeys.
	(getStyleNames): Return names from styles field.
	(getStyle): Lookup style in styles field.
	(removeStyle): Remove style from styles field.
	(readAttributeSet): Fixed deserialization.
	(writeAttributeSet): Fixed serialization.
	(readObject): Fixed deserialization.
	(writeObject): Fixed serialization.
	(reclaim): Simply cleanup the pool.
	(registerStaticAttributeKey): Store mapping in both ways.
	(searchImmutableSet): New helper method for caching.
	(toString): Fixed for output like the RI.
	* javax/swing/text/StyleConstants.java
	(keys): New field. Stores all known keys.
	(StyleConstants): Store created key in keys list.
	* javax/swing/event/EventListenerList.java
	(readObject): Fixed deserialization.
	(writeObject): Fixed serialization.

2006-08-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/CompositeView.java
	(insets): Removed. Replaced by single short fields.
	(top): New field. Replaces insets.
	(bottom): New field. Replaces insets.
	(left): New field. Replaces insets.
	(right): New field. Replaces insets.
	(CompositeView): Initialize insets fields.
	(createDefaultLocation): Removed unneeded method.
	(getBottomInset): Return field directly.
	(getTopInset): Return field directly.
	(getLeftInset): Return field directly.
	(getRightInset): Return field directly.
	(getInsideAllocation): Adjusted to work on new insets fields.
	(getViewIndex): Fixed check.
	(loadChildren): Don't replace the old children.
	(replace): Make sure that there is an array to operate on.
	Only set parent to null, when it is this View.
	(setInsets): Adjusted to work with new insets fields.
	(setParagraphInsets): Fixed to pull insets directly from
	StyleConstants.

2006-08-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/ComponentView.java
	(Interceptor): New inner helper class. Used to propagate
	invalidate requests and cache component layout sizes.
	(interceptor): New field.
	(getAlignment): Fetch alignment from interceptor container.
	(getComponent): Don't create component here. This is done
	in setParent().
	(getMaximumSpan): Fetch layout info from interceptor. Check
	for illegal axis.
	(getMinimumSpan): Fetch layout info from interceptor. Check
	for illegal axis.
	(getPreferredSpan): Fetch layout info from interceptor. Check
	for illegal axis.
	(modelToView): Fixed model to view mapping.
	(viewToModel): Fixed view to model mapping.
	(paint): Check for null. Set bounds on interceptor rather
	then component.
	(setParentImpl): Install interceptor between component
	and hosting container.
	(setParent): Call super.setParent() immediately.

2006-08-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/LabelView.java
	(setPropertiesFromAttributes): Only set background when
	the corresponding attribute is actually defined, otherwise
	set to null, as the StyleConstants would return black.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.documentEvent): Removed obsolete field.
	(ElementBuffer.change): Do prepareEdits() and finishEdits()
	to correctly update the element structure.
	(ElementBuffer.insertContentTag): Removed unused statement.
	(ElementBuffer.recreateAfterFracture): Removed
	unused obsolete method.
	(setCharacterAttributes): Removed unused statement.

2006-08-25  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(LaterMain.run): Removed unused local variable.
	(Demo): Don't put desktop in scrollpane.
	(addChildren): Removed unused method.
	(mkButtonBar): Added HTML demo.
	(mkMenuBar): Added HTML demo.
	(mkPanel): Removed unused method.
	(mkScrollPane): Removed unused method.
	(mkTree): Removed unused method.
	(valign2str): Removed unused method.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Initialize text field with some HTML that already works.
	(DEBUG): New field. Set to true for debugging output.
	(createContent): Dump element tree after parsing.

2006-08-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/CSS.java
	(getValue): Added color value conversion.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.ConvertAction): New class, converts HTML style tags
	to CSS attributes.
	(HTMLReader.initTags): Register ConvertAction for <font> tag.
	* javax/swing/text/html/InlineView.java
	(setPropertiesFromAttributes): Implemented to fetch
	CSS character attributes.
	* javax/swing/text/html/StyleSheet.java
	(addCSSAttribute): Convert value.
	(getBackground): Implemented to fetch CSS background color
	attribute.
	(getForeground): Implemented to fetch CSS color
	attribute.
	(getFont): Adjust font size for superscript and subscript.
	(translateHTMLToCSS): Rudimentary implementation that
	copies the original attributes, so that any CSS attributes in
	there are preserved.
	(stringToColor): Use CSSColor for conversion.
	* gnu/javax/swing/text/html/css/CSSColor.java:
	New class. Converts CSS color values to RGB color values.
	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java:
	Removed. This is more or less replaced by CSSColor and the
	ConvertAction in HTMLReader.

2006-08-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(childReqs): Removed obsolete field.
	(baselineLayout): Reimplemented for correct baseline layout.
	(baselineRequirements): Reimplemented for correct baseline
	layout.
	(updateChildRequirements): Removed obsolete method.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.getSpan): Removed unused statement.
	(DefaultGlyphPainter.paint): Dont paint subscript/superscript
	specially. The subscript/superscript layout is performed
	via the alignment, the font is supplied by the StyleContext.
	(breakView): Removed unused statements.
	(getAlignment): Adjust alignment according to the
	superscript/subscript setting.
	(getFont): Reimplemented to fetch the font from the style
	context, or from the document if the stylecontext is not
	available.
	(getPreferredSpan): Adjust span for superscript. Use switch
	instead of if-else.
	* javax/swing/text/LabelView.java
	(setPropertiesFromAttributes): Fetch background and foreground
	from document / style context.
	(isSubscript): Resync properties if needed.
	* javax/swing/text/ParagraphView.java
	(Row.calculateMinorAxisRequirements): Overridden to perform
	a baseline layout.
	(Row.layoutMinorAxis): Overridden to perform a baseline layout.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/Utilities.java
	(BUF_LENGTH): Removed unused field.
	(drawTabbedText): Removed unneeded cast.
	(getBreakLocation): Removed unneeded cast.
	Fixed offset to account for Segments not starting at 0.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneLayout.normalizeTabRuns): Removed unused statement.
	(TabbedPaneScrollLayout.layoutContainer): Likewise.
	(ScrollingPane.updateUI): Likewise.
	(calculateTabWidth): Rewritten to correctly and efficiently
	layout the tab width.
	(layoutLabel): Call SwingUtilities method with the tabPane
	as argument.
	(paintContentBorderLeftEdge): Removed unused statement.
	(paintContentBorderRightEdge): Removed unused statement.
	(paintContentBorder): Removed unused statement.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getAttributes): Overridden to return null,
	as the RootView has no parent.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/CSSParser.java: Removed.
	* javax/swing/text/html/CSS.java
	(getValue): New helper method. Returns special converter
	instances for certain kinds of property values.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.CharacterAction.start): Don't translate tags
	here. Instead, store the attributes directly with the tag
	as key.
	(content): Removed field. The Content object is handled
	by AbstractDocument.
	(styleSheet): Removed field. The styleSheet is the styleContext
	of this document and handled by the DefaultStyledDocument already.
	(HTMLDocument(Content,StyleSheet): Simply call super here.
	The super classes already handle the content and styleContext.
	(HTMLDocument()): Call this() with a default GapContent and
	StyleSheet.
	(getStyleSheet): Return the styleContext here.
	(insertUpdate): New method. Overridden to add the
	CONTENT dummy tag to the element's attributes.
	(setBase): Set the base on the styleContext.
	* javax/swing/text/html/HTMLEditorKit.java
	(styleContext): Removed unneeded field.
	(styleSheet): Made field private.
	(HTMLEditorKit): Do nothing here. The StyleSheet is
	created lazily in getStyleSheet(). A styleContext is not
	needed here.
	(getStyleSheet): Create StyleSheet correctly.
	(insertHTML): Removed unneeded cast.
	* javax/swing/text/html/InlineView.java
	(attributes): New field.
	(changedUpdate): Reload attributes. Trigger preferenceChanged.
	(getAttributes): Implemented to fetch the attributes from
	the stylesheet.
	* javax/swing/text/html/MultiAttributeSet.java: New class.
	Multiplexes between several AttributeSets.
	* javax/swing/text/html/MultiStyle.java: New class.
	Multiplexes between several Styles.
	* javax/swing/text/html/ParagraphView.java
	(attributes): New field.
	(getAttributes): Implemented to fetch the attributes from
	the stylesheet.
	* javax/swing/text/html/StyleSheet.java
	(CssParser): Removed inner class.
	(CSSStyle): New inner class. Represents a style defined
	by a CSS rule.
	(CSSStyleSheetParserCallback): New class, for parsing
	CSS stylesheets.
	(css): New field. Stores the CSS rules.
	(resolvedStyles): New field. Stores resolved styles.
	(StyleSheet): Initialize resolvedStyles map.
	(addRule): Removed bogus impl.
	(getFont): Implemented to fetch font, based on CSS rules.
	(getResolvedStyle): New helper method. Looks up resolved
	styles, and resolves a style if necessary.
	(resolveStyle): New pair of helper methods. Resolves
	CSS style rules.
	(getRule(String)): Provide rudimentary implementation.
	(getRule(Tag,Element)): Implemented.
	(getViewAttributes): Implemented.
	(loadRules): Implemented.
	(translateHTMLToCSS): Tagged as not implemented.
	* javax/swing/text/html/ViewAttributeSet.java: New class.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FlowView.java:
	(LogicalView.getAttributes): New method. Overrides super
	impl to return the attributes of the FlowView instance.
	* javax/swing/text/LabelView.java:
	(setPropertiesFromAttributes): Fetch attributes from
	View, rather then from the Element. (In the HTML
	package the getAttributes() method is overridden to
	return different attributes). Fetch font from the StyledDocument.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultEditorKit.java:
	(DefaultKeyTypedAction.actionPerform): Also filter
	ALT and CTRL modifiers.

2006-08-24  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/FontSize.java,
	* gnu/javax/swing/text/html/css/FontStyle.java,
	* gnu/javax/swing/text/html/css/FontWeight.java:
	New classes. Used to convert CSS font attributes to AWT/Swing
	Font constants.

2006-08-24  Francis Kung  <fkung@redhat.com>
	* gnu/java/awt/color/PyccConverter.java: Throw UnsupportedOperationExceptions.
	* java/awt/image/ColorConvertOp.java: Updated javadocs.
	(srccs, dstcs, rasterValid): Variables removed.
	(ColorConvertOp(RenderingHints)): Initialize spaces to empty array.
	(copyRaster): Check for null rendering hints
	(createCompatibleColorModel): New private method.
	(createCompatibleDestImage): Re-implemented.
	(createCompatibleDestRaster(Raster, ColorSpace, boolean)): New private method.
	(createCompatibleDestRaster(Raster)): Re-implemented.
	(filter(BufferedImage, BufferedImage)): Add checks; fix temp image creation.
	(filter(Raster, WritableRaster)): Add checks; fix temp raster creation.
	(getPoint2D): Clean up formatting.
	* java/awt/image/ComponentColorModel.java
	(constructor): use findBits method instead of passing null.
	(findBits): New method.

2006-08-24  Gary Benson  <gbenson@redhat.com>

	* java/net/NetworkInterface.java (getInetAddresses): Bracket IPv6
	addresses.

2006-08-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ref/Reference.java
	(queue, nextOnQueue): Made volatile.
	(enqueue): Made thread safe.
	* java/lang/ref/ReferenceQueue.java
	(lock): New field.
	(poll): Removed synchronized.
	(enqueue): Changed to synchronize on lock object, to update Reference
	state and return success status.
	(dequeue, remove): Synchronize on lock object.

2006-08-24  Jeroen Frijters  <jeroen@frijters.net>

	* java/security/SecureClassLoader.java
	(protectionDomainCache): Changed to HashMap.
	(SecureClassLoader): Removed redundant security check.
	(defineClass(String,byte[],int,int,CodeSource): Moved
	protection domain lookup/construction to new method.
	(defineClass(String,ByteBuffer,CodeSource): New method.
	(getProtectionDomain): New method.

2006-08-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(isRepainting): Made package private.
	(paintChild): New field.
	(findOpaqueParent): Removed method. This is now in
	paintImmediately().
	(findOverlapFreeParent): Removed method. This is now
	in paintImmediately2().
	(findPaintRoot): Removed method. This is now
	in paintImmediately2().
	(isCompletelyObscured): Changed to take rectangle as single
	ints as argument.
	(isPaintingDoubleBuffered): Removed method. This is now
	in paintImmediately2().
	(isPartiallyObscured): New helper method.
	(onTop): New helper method for optimization.
	(paintChildren): Paint only to specific child when
	requested like this from paintImmediately2().
	(paintDoubleBuffered): Changed to take rectangle as single int
	arguments.
	(paintImmediately2): Changed to take rectangle as single int
	arguments. Optimized determination of paint root.
	(paintImmediately(Rectangle)): Change to delegate to
	paintImmediately(int,int,int,int).
	(paintImmediately(int,int,int,int)): Look for opaque ancestor
	and start painting there.
	(paint): Call paintDoubleBuffered() with int arguments. Only
	paint component, when not completely occupied by opaque child.
	(processKeyBinding): Removed unnecessary cast.
	(isOccupiedByChild): New helper method.
	* javax/swing/RepaintManager.java
	(repaintUnderway): Removed obsolete field.
	(commitRequests): Removed obsolete field.
	(RepaintManager): Removed initialization of obsolete fields.
	(addDirtyRegion): Removed unused statement.
	(commitBuffer): Changed to take plain ints as argument.
	(compileRepaintRoots): Optimized to avoid use of Rectangle.
	Compute offsets in place, rather than using SwingUtilities.
	(paintDirtyRegions): Removed unused field.
	* javax/swing/JMenuItem.java
	(onTop): Return true when not descendant of JInternalFrame.
	* javax/swing/JPopupMenu.java
	(onTop): Return true.
	* javax/swing/JToolTip.java
	(onTop): Return true.
	* javax/swing/JViewport.java
	(paintImmediately2): Change signature to match the
	corresponding JComponent method.

2006-08-23  Tania Bento  <tbento@redhat.com>

	* java/awt/Color.java
	(brighter): Modified algorithm to correctly determine the
	new brighter colour.

2006-08-23  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(maxSize): Removed field. This is already declared in Component.
	(validateTree): Check for ContainerPeer. Don't addNotify here.
	Only validate Component instances if they are invalid.

2006-08-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(preferredSize): Removed field.
	(maximumSize): Removed field.
	(minimumSize): Removed field.
	(getMaximumSize): Adjusted to delegate to Component, rather
	then managing the size in JComponent.
	(getMinimumSize): Adjusted to delegate to Component, rather
	then managing the size in JComponent.
	(getPreferredSize): Adjusted to delegate to Component, rather
	then managing the size in JComponent.
	(isMaximumSizeSet): Removed.
	(isMinimumSizeSet): Removed.
	(isPreferredSizeSet): Removed.
	(setMaximumSize): Removed.
	(setMinimumSize): Removed
	(setPreferredSize): Removed.

2006-08-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(ButtonChangeListener.stateChanged): Delegate to combined
	handler.
	(EventHandler): New inner class. Handles all three types
	of events on the model.
	(eventHandler): New field. Stores the combined event
	handler.
	(AbstractButton): Moved listener initialization to
	setModel().
	(createActionListener): Return combined handler.
	(createChangeListener): Return combined handler.
	(createItemListener): Return combined handler.
	(getEventHandler): New helper method for creating the combined
	handler.
	(setModel): Initialize listeners here.
	* javax/swing/plaf/basic/BasicButtonListener.java
	(ButtonAction): New class. Implements the keyboard action
	for buttons.
	(checkOpacity): Implemented.
	(createDefaultActionMap): New helper method.
	(installKeyboardActions): Rewritten to install InputMap
	and ActionMap according to 'new' keyboard input method.
	(mouseClicked): Commented as no-op.
	(mouseDragged): Commented as no-op.
	(mouseMoved): Commented as no-op.
	(propertyChange): Check for contentAreaFilled change and
	update opacity. Pull handling of HTLM in font and text handler.
	(stateChanged): Repaint button.
	(uninstallKeyboardActions): Properly uninstall keyboard actions.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(listener): Removed.
	(sharedListener): New static field. Stores the shared listener.
	(sharedUI): New static field. Stores the shared UI.
	(createButtonListener): Return shared instance here.
	(createUI): Return shared instance here.
	(getButtonListener): New helper method. Looks for the
	BasicButtonListener installed on a button and returns it.
	(installDefaults): Correctly install rollover property here.
	Fetch defaultTextShiftOffset. Initialize opaqueness correctly.
	(installKeyboardActions): Fetch listener with new helper method.
	(installListeners): Don't use removed field. Check for null.
	(installUI): Added comment about order of method invocations.
	(uninstallDefaults): Don't uninstall non-uninstallable properties.
	(uninstallKeyboardActions): Fetch listener with new helper method.
	(uninstallListeners): Fetch listener with new helper method.
	(paintIcon): Paint icon offset when pressed and armed.
	* javax/swing/plaf/metal/MetalButtonListener.java: Removed.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(sharedUI): New field. Stores the shared UI.
	(MetalButtonUI): Don't initialize fields here.
	(createButtonListener): Removed method. Use super impl.
	(createUI): Return shared instance.
	(getDisabledTextColor): Update field here.
	(getFocusColor): Update field here.
	(getSelectColor): Update field here.
	(installDefaults): Don't handle rollover property here.
	(uninstallDefaults): Don't handle rollover property here.
	(paintButtonPressed): Use accessor method to update the
	field value.

2006-08-21  Mark Wielaard  <mark@klomp.org>

	Merge NATIVE_LAYER branch.

	2006-08-20  Mark Wielaard  <mark@klomp.org>

	* doc/tools.texinfo: Add file from trunk.
	* native/jni/Makefile.am (DIST_SUBDIRS): Add native-lib.
	* native/jni/java-io/java_io_VMFile.c: Include lstat and readlink
	headers.
	* native/jni/java-lang/java_lang_VMProcess.c
	(Java_java_lang_VMProcess_nativeSpawn): Remove redirect argument.
	* native/jni/java-net/java_net_VMInetAddress.c
	(Java_java_net_VMInetAddress_getHostByName): Remove unused variable.
	* native/jni/native-lib/Makefile.am: Remove empty and nonexisting
	files.
	* native/jni/native-lib/cpio.c (cpio_setFileReadonly): Use correct
	mask.
	* native/jni/native-lib/cpnet.c (cpnet_connect): Removed unused
	theaddr.
	* native/jni/native-lib/cpnet.h (cpnet_freeAddresses): Moved from
	cpnet.h.
	* native/jni/native-lib/cpnet.h (cpnet_freeAddresses): Declare,
	don't implement.
	* vm/reference/java/lang/VMProcess.java: Removed unused redirect
	argument.
	* include/java_lang_VMProcess.h: Regenerated.

	2006-07-09  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
	(nativeReceive): Fixed the type of the arrays (use java types).
	(nativeSendTo): Force throwing an exception if port is 0.

	* native/jni/java-net/javanet.c:
	(_javanet_accept): Throw SocketTimeoutException if ETIMEDOUT is
	returned.
	(_javanet_recvfrom): Likewise.
	(_javanet_sendto): Throw a NullPointerException if the socket is
	not connected and no address is given.
	
	* native/jni/java-net/javanet.h
	(NULL_EXCEPTION): Defined.

	2006-06-16  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-net/java_net_VMInetAddress.c
	(Java_java_net_VMInetAddress_getHostByName): Fix detection of
	error.

	* native/jni/java-net/javanet.c
	(_javanet_accept): Fixed bogus call to TARGET.
	(_javanet_create_inetaddress): Fixed address generation. Fixed
	bogus memory free.
	(_javanet_bind): set "Reuse address" flag.

	* native/jni/native-lib/cpio.c
	(cpio_getModificationTime): Fixed type.
	(cpio_removeFile): Use rmdir too.

	* native/jni/native-lib/cpnet.c
	(cpnet_getHostByName): Fixed error detection.

	* native/jni/native-lib/cpnet.h
	(cpnet_newIPV4address, cpnet_newIPV6address): Put zero in the
	memory.
	(cpnet_IPV4AddressToBytes): Fixed types.
	
	2006-06-10  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/native-lib/cpio.c
	(cpio_openDir, cpio_closeDir, cpio_readDir): Implemented.

	* native/jni/native-lib/cpnet.h:
	(cpnet_bytesToIPV4Address): Fixed type casting to avoid being
	messed by signs in jbyte.
	
	* native/jni/native-lib/cpproc.h
	(CPIO_EXEC_NUM_PIPES): Compilation fix.

	2006-05-09  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/native-lib/cpnet.c
	(cpnet_getSocketTimeout, cpnet_setSocketTimeout): Reimplemented.
	(waitForWritable, waitForReadable): New functions.
	(socketTimeouts): New static global table to hold timeouts for all
	socket fds.
	(cpnet_accept,cpnet_bind,cpnet_sendTo,cpnet_recv,cpnet_recvFrom):
	Added waitForXXXX safeguards to handle socket timeouts.

	* native/jni/java-net/javanet.c
	(_javanet_accept): Check for the right error value when a timeout
	occurs.
	
	2006-03-25  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-io/Makefile.am,
	native/jni/java-lang/Makefile.am,
	native/jni/java-net/Makefile.am,
	native/jni/java-nio/Makefile.am: Link to libclasspathnative.la now.

	* native/jni/native-lib/Makefile.am: Added cpproc.c

	* native/jni/native-lib/cpio.c: Implemented missing functions for
	CPIO.

	* native/jni/native-lib/cpnet.c
	(cpnet_getHostByName): Fixed address array initialization.
	
	* native/jni/native-lib/cpproc.c: Implemented.
	
	2006-02-19  Guilhem Lavaux  <guilhem@kaffe.org>

	* configure.ac: Invoke GCC_ATTRIBUTE_UNUSED.

	* m4/gcc_attribute.m4: New file from ac_archive.
	
	* native/jni/java-net/javanet.c: Adapted to cpnet API
	modification.

	* native/jni/native-lib/cpnet.c: Implemented.

	* native/jni/native-lib/cpnet.h
	(cpnet_openSocketDatagram,
	cpnet_openSocketStream): These calls need an address family now.
	(cpnet_IPV4AddressToBytes,
	cpnet_bytesToIPV4Address): Convert the address to network order.
	
	2006-02-19  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-io/java_io_VMFile.c,
	native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c,
	native/jni/midi-dssi/dssi_data.h,
	native/jni/native-lib/cpio.c,
	native/jni/native-lib/cpmath.h: Removed cpmath
	dependency. Fixed coding style.

	2006-02-18  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-lang/java_lang_VMProcess.c: Removed TARGET
	dependency. Simplified the JNI code by moving some part into the
	native layer.

	* native/jni/native-lib/cpproc.h: New interface to handle processes.

	2006-02-18  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-net/java_net_VMInetAddress.c: Fixed compilation
	errors. Removed any remaining TARGET invocations.

	* native/jni/java-net/javanet.c
	(_javanet_create_inetaddress): Removed spurious arr and
	octets. Fixed compilation errors.

	* native/jni/native-lib/cpnet.h
	(cpnet_getHostname, cpnet_getHostByName, cpnet_getHostByAddr,
	cpnet_setIPV4Any, cpnet_freeAddresses, cpnet_isIPV6Address,
	cpnet_isIPV4Address): New functions.
	(cpnet_bytesToIPV4Address): Fixed interface to be consistent with
	the rest.
	
	2006-01-28  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/jni/java-io/java_io_VMFile.c,
	native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c,
	native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c,
	native/jni/java-net/javanet.c,
	native/jni/java-net/javanet.h: Adapted the VM layer code
	to the new native layer.

	* native/jni/native-lib/cpnet.h
	(cpnet_addMembership,
	cpnet_dropMembership,
	cpnet_getAvailableBytes): Added the declarations of
	some new functions.
	(cpnet_newIPV6Address,
	cpnet_IPV6AddressToBytes,
	cpnet_bytesToIPV6Address): Implemented.
	(cpnet_newIPV4Address): Initialize the sin_family field.

	2006-01-28  Guilhem Lavaux  <guilhem@kaffe.org>

	* native/target: Removed.

	* configure.ac: Removed target from CLASSPATH_INCLUDES and
	Makefile generation.

	* native/jni/native-lib/Makefile.am,
	native/jni/native-lib/cpnet.h,
	native/jni/native-lib/cpnet.c
	native/jni/native-lib/cpio.h,
	native/jni/native-lib/cpio.c,
	native/jni/native-lib/cpmath.h: Imported new native compatibility
	layer.

2006-08-21  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSParser.java:
	New class.
	* gnu/javax/swing/text/html/css/CSSParserCallback.java:
	New interface.
	* gnu/javax/swing/text/html/css/CSSParserException.java:
	New exception.
	* gnu/javax/swing/text/html/css/CSSScanner.java:
	Adjusted API comments. Made all constants package private.
	(EOF): New constant field.
	(parseBuffer): Made package private.
	(tokenEnd): Made package private.
	(CSSScanner): Initialize lookahead buffer with -1.
	(main): Print out to System.out rather then System.err.
	(nextToken): Push back character after IDENT.

2006-08-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/File.java (normalizePath): Fixed handling of "//" and "\\".

2006-08-21  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSScanner.java
	(main): Use buffered input stream.
	(nextToken): Removed 65536 workaround. Use int value directly
	without cast to char.
	(readComment): Use int value directly without cast to char.
	Cast to char only when putting the character into the buffer.
	(readEscape): Likewise.
	(readIdent): Likewise.
	(readName): Likewise.
	(readNum): Likewise.
	(readString): Likewise.
	(readWhitespace): Likewise.

2006-08-21  Ingo Proetel  <proetel@aicas.com>

	* java/io/InputStreamReader.java
	(bytesCache): New field.
	(cacheLock): New field.
	(read(byte[],int,int): Avoid allocations of new byte
	array on every call and reuse cached byte array if possible.

2006-08-21  Roman Kennke  <kennke@aicas.com>

	* gnu/java/net/local/LocalSocketImpl.java
	Only load native lib if this is supported by runtime.
	* native/jni/java-net/local.c
	Include config.h unconditionally.
	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c
	Include config.h unconditionally.

2006-08-21  Friedjof Siebert  <siebert@aicas.com>

	* java/io/ObjectInputStream.java
	(objectLookupTable): Changed to be a Vector.
	(ObjectInputStream): Initialize objectLookupTable as Vector.
	(assignNewHandle): Store Object using handle index rather than
	Hashtable, using the new rememberHandle() method.
	(hierarchy): New method. This replaces inputGetObjectStreamClasses()
	with a caching in ObjectStreamClass.
	(inputGetObjectStreamClass): Replaced by hierarchy().
	(lookupHandle): New method. Looks up an object by it's handle
	index.
	(parseContent): Avoid creating of Integer objects. Use
	hierarchy() method for looking up the class hierarchy.
	(processResolution): Use rememberHandle() to store
	handle per index, rather than Hashtabling the object.
	(readFields): 
	(rememberHandle): New method.
	* java/io/ObjectOutputStream.java
	(OIDLookupTable): Use ObjectIdentityMap2Int instead of
	Hashtable for improved lookup performance.
	(ObjectOutputStream): Initialize OIDLookupTable as
	ObjectIdentityMap2Int.
	(assignNewHandle): Change to use ObjectIdentityMap2Int.
	(findHandle): Change to use ObjectIdentityMap2Int.
	(getBooleanField): Removed.
	(getByteField): Removed.
	(getCharField): Removed.
	(getDoubleField): Removed.
	(getField): Removed.
	(getFloatField): Removed.
	(getIntField): Removed.
	(getLongField): Removed.
	(getObjectField): Removed.
	(writeFields(Object,ObjectStreamClass)): Use new helper method.
	(writeFields(Object,ObjectStreamField)): New helper method.
	Use switch rather then if-else cascade.
	(writeObject): Use int handle, rather then Integer.
	* java/io/ObjectStreamClass.java
	(hierarchy): New field. Caches the class hierarchy.
	(methodCache): New field. Caches methods.
	(readObjectSignature): New field. Stores the read signature.
	(uidCache): New field. Caches UIDs.
	(writeObjectSignature): New field. Stores the write signature.
	(cacheMethods): Cache methods in methodCache.
	(calculateClassID): Outsourced from getClassUID()
	for computing the UIDs.
	(getClassUIDFromField): Outsourced from getClassUID() for
	fetching the UID from the class field.
	(getClassUID): Use cached uid if possible. Use new helper
	methods for fetching the UID from the field or computing
	from scratch.
	(getObjectStreamClasses): Removed. Replaced by more
	efficient hierarchy() method, that also caches the result.
	(hierarchy): Replaces getObjectStreamClasses() for caching
	the result.
	(loadedByBootOrApplicationClassLoader): New helper method.
	(setClass): Invalidate hierarchy cache.
	(setSuperclass): Invalidate hierarchy cache.
	* java/io/ObjectStreamField.java
	(field): Made field package private for access from other
	classes.
	* gnu/java/io/ObjectIdentityWrapper.java: Removed.
	* gnu/java/io/ObjectIdentityMap2Int.java: Efficient
	hashtable for mapping objects to ints.

2006-08-21  Roman Kennke  <kennke@aicas.com>

	* java/io/File.java
	(getAbsolutePath): Fetch absolute path from
	VMFile.getAbsolutePath(). Moved actual impl to there.
	(isAbsolute): Let VMFile determine the absoluteness.
	(toURL): Let VMFile convert the filename.
	* vm/reference/java/io/VMFile.java
	(getAbsolutePath): New method.
	(isAbsolute): New method.
	(toURL): New method.

2006-08-21  Jeroen Frijters  <jeroen@frijters.net>

	* NEWS: Added note about updated VM interface.

2006-08-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementFactory.java:
	Updated documentation.
	
2006-08-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #28412
	* gnu/java/util/regex/CharIndexed.java(move1, setHitEnd, hitEnd):
	New methods.
	* gnu/java/util/regex/CharIndexedCharSequence.java,
	gnu/java/util/regex/CharIndexedInputStream.java: Implemented the
	new methods above.
	* gnu/java/util/regex/RE.java(REG_FIX_STARTING_POSITION): New flag,
	(match): call the new method setHitEnd of the input,
	(getMatchImpl): Handle the new flag REG_FIX_STARTING_POSITION,
	Some optimization commented out, Use CharIndexed#move1 instead of move.
	* gnu/java/util/regex/REMatch.java: Made some debugging methods public.
	* gnu/java/util/regex/REToken.java(match): The method body has been
	moved to an internal private method, (matchFake): New method,
	(setHitEnd): New method.
	* gnu/java/util/regex/RETokenChar.java(matchThis): Call setHitEnd
	if the match is not complete, (matchOneString): Count the number of
	characters which matched the pattern.
	* gnu/java/util/regex/RETokenEnd.java(fake): New field,
	(setFake): New method, (match): Call super.match or super.matchFake.
	* gnu/java/util/regex/RETokenEndSub.java(setHitEnd): New method.
	* gnu/java/util/regex/RETokenOneOf.java(match): call the new method
	setHitEnd of the input,
	* gnu/java/util/regex/RETokenRepeated.java(match): Likewise.
	* java/util/regex/Matcher.java(lookingAt, match): Use the new flag
	RE.REG_FIX_STARTING_POSITION, (hitEnd, toString): New methods.

2006-08-18  Tom Tromey  <tromey@redhat.com>

	* gnu/javax/swing/text/html/css/CSSScanner.java (readWhitespace): Push
	the 'int', not the cast char.

2006-08-18  Roger Sayle  <roger@eyesopen.com>

	* scripts/check_jni_methods.sh: Don't use the "set -C" command
	which isn't available in all shells.

2006-08-18  Roger Sayle  <roger@eyesopen.com>

	* lib/Makefile.am (resources): Fix some shell portability issues.

2006-08-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (tool-wrappers): Check for ltdl support when tool
	wrapper binaries are enabled.
	* tools/Makefile.am (LIBJVM): Remove variable.
	(AM_CPPFLAGS): Add LIBJVM define.
	(gappletviewer_LDFLAGS, gjarsigner_LDFLAGS, gkeytool_LDFLAGS,
	gjar_LDFLAGS, gnative2ascii_LDFLAGS, gserialver_LDFLAGS,
	gjavah_LDFLAGS): Remove variables.
	* tools/toolwrapper.c (main): Use dlopen to load libjvm library.

2006-08-18  Tom Tromey  <tromey@redhat.com>

	* gnu/java/util/prefs/NodeWriter.java (writeParents): Removed
	debugging prints.
	* gnu/java/util/prefs/NodeReader.java (readNodes): Removed debugging
	print.
	(readEntries): Likewise.

2006-08-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(layoutLabel): Reset the text and icon rectangles.

2006-08-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/28537
	* native/plugin/Makefile.am (libgcjwebplugin_la_CXXFLAGS):
	Transform gappletviewer name using program_transform_name.

2006-08-17  Jeroen Frijters  <jeroen@frijters.net>

	* javax/swing/filechooser/FileSystemView.java
	(getFileSystemView): Always return UnixFileSystemView, since
	that's the only one we got. Marked with NotImplementedException.
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(mouseClicked, installUI): Don't parse path by hand.

2006-08-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(scrollRectToVisible): Handle intermediate non-JComponents
	more gracefully.

2006-08-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(blitBuffer): Removed. This is now done in commitBuffer().
	(commitBuffer): Always paint on the root window or applet.
	No need to look for intermediate heavyweights. Optimized
	rectangle translation.
	(commitRemainingBuffers): Removed. Not needed anymore.
	(getHeavyweightParent): Removed. Not needed anymore.
	(getOffscreenBuffer): Fetch offscreen image from the
	actual root component.
	(paintDirtyRegions): Don't call commitRemainingBuffers().

2006-08-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(clipString): New helper method for trimming strings.
	(layoutCompoundLabelImpl): Fixed algorithm to conform
	testsuites. Trim text if it's too long. Avoid creating
	new Rectangles. Optimized for performance.
	(layoutCompoundLabel): Use switch rather then if-else-chain.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(viewR): New field.
	(iconR): New field.
	(textR): New field.
	(paint): Reset and use cached rectangles. Only call paintIcon()
	if icon is not null. Don't call paintButtonPressed() when
	button is selected, only when it is both armed and pressed.
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(getPreferredButtonSize): Reused cached rectangles rather
	then creating new ones. Don't create new Rectangle via
	Rectangle.union().
	* javax/swing/plaf/basic/BasicLabelUI.java
	(getPreferredSize): Correctly reset cached rectangles. Especially
	the view rect must have a big size to give it room for layouting.
	Short cut layout when text == null.
	(paint): Correctly reset cached rectangles.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(resetRectangles): New helper method.
	(getPreferredMenuItemSize): Correctly reset the cached rectangles.
	(paintMenuItem): Correctly reset the cached rectangles.
	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(getPreferredSize): Use cached Rectangle objects and initialize
	them correctly.
	(paint): Use cached Rectangle objects and initialize
	them correctly.

2006-08-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Calendar.java: API doc additions.

2006-08-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/DefaultButtonModel.java:
	(setRollover): Simplified statement.

2006-08-17  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/rmi/server/RMIClassLoaderImpl.java
	(loadClass): Rewritten to use getClassLoader.
	(loadProxyClass): Implemented.
	(getClassLoader): Fixed support for null or empty codebase.
	* gnu/java/rmi/server/RMIObjectInputStream.java
	(resolveClass): Use user class loader as default class loader.
	(resolveProxyClass): Delegate to RMIClassLoader.loadProxyClass.
	* gnu/javax/rmi/CORBA/UtilDelegateImpl.java
	(loadClass): Simplified and use user class loader instead of
	context class loader as default.
	* java/io/ObjectInputStream.java
	(currentLoader): Use VMStackWalker.firstNonNullClassLoader().
	* vm/reference/gnu/classpath/VMStackWalker.java
	(firstNonNullClassLoader): New method.
	* vm/reference/java/io/VMObjectInputStream.java
	(loaderAction, currentClassLoader): Removed.

2006-08-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(getTabBounds(JTabbedPane, int)): Added code to shift rectangle
	by current scroll offset, added method documention.
	(getTabBounds(int, Rectangle)): Added method documentation.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	(paintContentBorderLeftEdge): Changed y to 1.

2006-08-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(MouseHandler.mouseReleased): Implemented.
	(MouseHandler.mousePressed): Added delegation to tabbed pane.
	(MouseHandler.mouseEntered): Dito.
	(MouseHandler.mouseExited): Dito.
	(MouseHandler.mouseMoved): Dito.
	(MouseHandler.redispatchEvent): New method.
	(PropertyChangeHandler.propertyChange): Added extra block level,
	added code to handle tab placement changes, added comment.
	(updateViewPosition): Set unneeded coordinate to 0, added comment.

2006-08-16  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/text/html/css/CSSScanner.java: New file.
	* gnu/javax/swing/text/html/css/CSSLexicalException.java:
	New file.

2006-08-16  Mark Wielaard  <mark@klomp.org>

	* java/awt/Component.java (orientation): Renamed to
	componentOrientation.
	(setComponentOrientation): Use new field name.
	(getComponentOrientation): Likewise.

2006-08-16  Roman Kennke  <kennke@aicas.com>

	PR 28750
	* javax/swing/plaf/basic/BasicTreeUI.java
	(CellEditorHandler.editingCancelled): Call completeEditing
	directly.
	(CellEditorHandler.editingStopped): Call completeEditing
	directly.
	(NodeDimensionHandler.getNodeDimensions): Rewritten
	to use the preferred sizes of the renderer and editor.
	(TreeExpansionHandler.treeCollapsed): Complete editing
	here.
	(TreeSelectionHandler.valueChanged): Complete editing
	here.
	(cancelEditing): Call completeEditing with false, false and
	false. Don't call finish (removed method).
	(completeEditing(boolean,boolean,boolean): Only do something when
	stopEditingInCompleteEditing is true. Nullify editingComponent
	and editingPath. Remove editingComponent from tree. Update
	the layout when necessary and repaint.
	(completeEditing): Stop editing when necessary.
	(editorRequestFocus): New helper method. Request focus
	on the actual editor.
	(finish) Removed. This is now done in completeEditing().
	(prepareForUIInstall): Set stopEditingInCompleteEditing to true.
	(setLargeModel): Complete editing here.
	(setRootVisible): Complete editing here.
	(setRowHeight): Complete editing here.
	(setSelectionModel): Complete editing here.
	(startEditing): Correctly initialize and start editing.
	(updateExpandedDescendants): Complete editing here.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTextField): Fetch size from super and use renderer's height
	if appropriate.
	(EditorContainer.EditorContainer): Set layout to null, just
	to make sure.
	(EditorContainer.doLayout): Layout so that the editor
	is offset to the right of the icon.
	(EditorContainer.getPreferredSize): Implemented to
	provide a reasonable preferred size.
	(EditorContainer.paint): Position icon in the middle.
	Also paint border if appropriate.
	(EditorContainer.setBounds): Removed.
	(RealEditorListener): Removed.
	(DefaultTreeCellEditor): Set correct border.
	(cancelCellEditing): Message real editor. Call finish().
	(createCellEditor): Don't add listener.
	(determineOffset): Correctly determine offset, and update
	the icon.
	(finish): New helper method.
	(getTreeCellEditorComponent): Set correct font. Call
	prepareForEditing() and determineOffset() to correctly initialize
	the state.
	(stopCellEditing): Messsage realEditor to stop editing. Call
	finish to clean up.
	(stopEditingTimer): Removed.
	(valueChanged): Correctly reset lastPath.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getPreferredSize): Return super plus some extra space for
	better readability.

2006-08-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTreeUI.java
	(LineStyleListener): New property listener, that updates
	the line style setting if the corresponding property
	changes.
	(lineStyleListener): New field.
	(lineStyle): New field.
	(LINE_STYLE_ANGLED): New constant field.
	(LINE_STYLE_HORIZONTAL): New constant field.
	(LINE_STYLE_NONE): New constant field.
	(LINE_STYLE_VALUE_ANGLED): New constant field.
	(LINE_STYLE_VALUE_HORIZONTAL): New constant field.
	(LINE_STYLE_VALUE_NONE): New constant field.
	(LINE_STYLE_PROPERTY): New constant field.
	(decodeLineStyle): Implemented.
	(installUI): Install line style listener. Set initial
	lineStyle.
	(uninstallUI): Uninstall line style listener.
	(paintHorizontalPartOfLeg): Only call super for angled
	lineStyle.
	(paintVerticalPartOfLeg): Only call super for angled
	lineStyle.
	(paintHorizontalSeparators): Implemented.
	(paint): If lineStyle==HORIZONTAL, call
	paintHorizontalSeparators().
	* examples/gnu/classpath/examples/swing/TreeDemo.java
	(createContent): Add panel for selecting line styles.	

2006-08-16  Robert Schuster  <robertschuster@fsfe.org>
	
	* examples/gnu/classpath/demo/swing/TabbedPaneDemo.java:
	(createContent): Rewritten.
	(createPlacementChangingMenuItem): New method.
	(createLayoutPolicyChangingMenuItem): New method.
	(createTabbedPane): New method.
	(createTabContent): New method.

2006-08-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(MouseHandler.mousePressed): Fixed indentation, intercept clicks on
	disabled tabs, do proper revalidation in WRAP_TAB_LAYOUT mode.

2006-08-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.modelToView): Provide variable pos as argument and not a fixed value.
	(calculateBreakPosition): Add p0 to return value.

2006-08-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(MouseHandler.selectedOnPress): New field.
	(MouseHandler.handleEvent): New helper method for handling
	selection and start/stop editing for mouse events.
	(MouseHandler.mouseDragged): Commented as no-op method.
	(MouseHandler.mouseMoved): Commented as no-op method.
	(MouseHandler.mousePressed): Use handleEvent() to handle
	selection and editing handling.
	(MouseHandler.mouseReleased): Use handleEvent() to handle
	selection and editing handling.
	(MouseInputHandler.MouseInputHandler): Register itself
	as mouse listener on source. Redispatch event to
	destination.
	(MouseInputHandler.dispatch): New helper method.
	(MouseInputHandler.mouseClicked): Dispatch event.
	(MouseInputHandler.mouseDragged): Dispatch event.
	(MouseInputHandler.mouseEntered): Stop dispatching
	if dragging stopped.
	(MouseInputHandler.mouseExited): Stop dispatching
	if dragging stopped.
	(MouseInputHandler.mouseMoved): Stop dispatching.
	(MouseInputHandler.mousePressed): Marked as no-op.
	(MouseInputHandler.mouseReleased): Dispatch and stop
	dispatching afterwards.
	(MouseInputHandler.removeFromSource): Implemented.
	(PropertyChangeHandler.propertyChange): Also handle
	editable property changes by calling setEditable().
	(SelectionModelPropertyChangeHandler.propertyChange):
	Reset row selection.
	(startEditTimer): Removed.
	(setCellEditor): Call updateEditor().
	(setEditable): Call updateEditor().
	(startEditingAtPath): Make path fully visible before starting
	editing.
	(startEditing): Maybe cancel previous edit session. Add
	editing component itself, not its parent container.
	Register MouseInputHandler for correctly redispatching
	initial events.
	(stopEditing): Message cellEditor and only completeEditing()
	when approved by cell editor.
	(updateCellEditor): Complete editing before updating
	the cell editor. Get cell editor from JTree if possible,
	otherwise create default editor. Update the listeners
	on the editor.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(CLICK_COUNT_TO_START): Removed.
	(DefaultTreeCellEditor): Install correct border. Let setTree()
	update the listeners. Don't initialize lastPath and font yet.
	(actionPerformed): Implemented to start editing.
	(createTreeCellEditor): Set click count to start to 1, rather than
	3.
	(isCellEditable): Prepare editor here. Determine if we can
	start immediately, or if we trigger a timer to do so.
	(prepareForEditing): Don't removeAll() (not necessary),
	check editingComponent to be non-null.
	(setTree): Update listeners.
	(shouldStartEditingTimer): Check for left mouse button.
	(startEditingTimer): Lazily create timer.

2006-08-15  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DropTargetDragEvent.java
	(getTransferable): Implemented.

2006-08-15  Roman Kennke  <kennke@aicas.com>

	* java/util/Vector.java
	(removeAll): Added comment about NPE.
	(retainAll): Added comment about NPE.

2006-08-15  Roman Kennke  <kennke@aicas.com>

	* java/util/zip/ZipFile.java
	(UTF8DECODER): Removed.
	(UTF8CHARSET): New constant field. Stores the UTF8 charset.
	(utf8Decoder): New instance field.
	(decodeChars): Lazily create UTF8 decoder. Use instance
	field rather than a static field to avoid corruption.

2006-08-15  Roman Kennke  <kennke@aicas.com>

	* java/io/PrintStream.java
	(line_separator): Provide default for system property.
	* java/io/FileDescriptor.java
	(valid): Create local copy of channel field for better
	threading safetly.

2006-08-15  Ingo Proetel  <proetel@aicas.com>

	* java/util/zip/ZipFile.java
	(PartialInputStream.UTF8DECODER): New constant field, used
	for decoding UTF8 strings.
	(readLeShort): Access buffer directly if it has enough bytes
	available.
	(readLeInt): Access buffer directly if it has enough bytes
	available.
	(decodeChars): New helper method for decoding UTF8 strings.
	(readString): Avoid NIO charset decoder if possible.

2006-08-15  Roman Kennke  <kennke@aicas.com>

	* java/util/Vector.java
	(removeAll): Don't explicitly null-check here. The RI allows
	null arguments when Vector is empty. In other cases we
	implicitly throw an NPE.
	(retainAll): Don't explicitly null-check here. The RI allows
	null arguments when Vector is empty. In other cases we
	implicitly throw an NPE.

2006-08-14  Casey Marshall  <csm@gnu.org>

	Merge in ssl-nio-branch work. See `ChangeLog-ssl-nio' for a record
	of changes made on this branch.
	Files modified:
	* gnu/classpath/debug/Component.java
	* gnu/classpath/debug/SystemLogger.java
	* gnu/java/security/action/GetPropertyAction.java
	* gnu/java/security/action/GetSecurityPropertyAction.java
	* gnu/javax/crypto/RSACipherImpl.java
	* gnu/javax/net/ssl/PrivateCredentials.java
	* gnu/javax/net/ssl/provider/Alert.java
	* gnu/javax/net/ssl/provider/AlertException.java
	* gnu/javax/net/ssl/provider/Certificate.java
	* gnu/javax/net/ssl/provider/CertificateRequest.java
	* gnu/javax/net/ssl/provider/CertificateType.java
	* gnu/javax/net/ssl/provider/CertificateVerify.java
	* gnu/javax/net/ssl/provider/CipherSuite.java
	* gnu/javax/net/ssl/provider/ClientHello.java
	* gnu/javax/net/ssl/provider/ClientKeyExchange.java
	* gnu/javax/net/ssl/provider/CompressionMethod.java
	* gnu/javax/net/ssl/provider/Constructed.java
	* gnu/javax/net/ssl/provider/ContentType.java
	* gnu/javax/net/ssl/provider/DiffieHellman.java
	* gnu/javax/net/ssl/provider/Extension.java
	* gnu/javax/net/ssl/provider/Finished.java
	* gnu/javax/net/ssl/provider/Handshake.java
	* gnu/javax/net/ssl/provider/Jessie.java
	* gnu/javax/net/ssl/provider/ProtocolVersion.java
	* gnu/javax/net/ssl/provider/Random.java
	* gnu/javax/net/ssl/provider/ServerHello.java
	* gnu/javax/net/ssl/provider/ServerKeyExchange.java
	* gnu/javax/net/ssl/provider/Signature.java
	* gnu/javax/net/ssl/provider/Util.java
	* gnu/javax/net/ssl/provider/X509KeyManagerFactory.java
	* gnu/javax/net/ssl/provider/X509TrustManagerFactory.java
	* java/security/MessageDigest.java
	* java/security/MessageDigestSpi.java
	* java/security/Signature.java
	* java/security/SignatureSpi.java
	* javax/crypto/Mac.java
	* javax/crypto/MacSpi.java
	* javax/net/ssl/HandshakeCompletedEvent.java
	* javax/net/ssl/HttpsURLConnection.java
	* javax/net/ssl/SSLContext.java
	* javax/net/ssl/SSLContextSpi.java
	* javax/net/ssl/SSLSession.java
	Files added:
	* gnu/javax/net/ssl/provider/ServerKeyExchangeBuilder.java 
	* gnu/javax/net/ssl/provider/SSLv3HMacSHAImpl.java 
	* gnu/javax/net/ssl/provider/SimpleSessionContext.java 
	* gnu/javax/net/ssl/provider/ServerRSAParams.java 
	* gnu/javax/net/ssl/provider/SSLContextImpl.java 
	* gnu/javax/net/ssl/provider/ServerDHParams.java 
	* gnu/javax/net/ssl/provider/ClientHelloBuilder.java 
	* gnu/javax/net/ssl/provider/ClientDHE_PSKParameters.java 
	* gnu/javax/net/ssl/provider/SignatureAlgorithm.java 
	* gnu/javax/net/ssl/provider/CipherSuiteList.java 
	* gnu/javax/net/ssl/provider/ServerNameList.java 
	* gnu/javax/net/ssl/provider/SSLServerSocketImpl.java 
	* gnu/javax/net/ssl/provider/CompressionMethodList.java 
	* gnu/javax/net/ssl/provider/ServerRSA_PSKParameters.java 
	* gnu/javax/net/ssl/provider/ClientKeyExchangeBuilder.java 
	* gnu/javax/net/ssl/provider/TrustedAuthorities.java 
	* gnu/javax/net/ssl/provider/CertificateStatusRequest.java 
	* gnu/javax/net/ssl/provider/ServerHelloDone.java 
	* gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java 
	* gnu/javax/net/ssl/provider/SSLSocketImpl.java 
	* gnu/javax/net/ssl/provider/ServerHelloBuilder.java 
	* gnu/javax/net/ssl/provider/Record.java 
	* gnu/javax/net/ssl/provider/SSLRSASignatureImpl.java 
	* gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java 
	* gnu/javax/net/ssl/provider/PreSharedKeyManagerFactoryImpl.java 
	* gnu/javax/net/ssl/provider/KeyExchangeAlgorithm.java 
	* gnu/javax/net/ssl/provider/SSLServerSocketFactoryImpl.java 
	* gnu/javax/net/ssl/provider/CertificateBuilder.java 
	* gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java 
	* gnu/javax/net/ssl/provider/CertificateStatusType.java 
	* gnu/javax/net/ssl/provider/ExtensionList.java 
	* gnu/javax/net/ssl/provider/ClientCertificateTypeList.java 
	* gnu/javax/net/ssl/provider/ClientPSKParameters.java 
	* gnu/javax/net/ssl/provider/X500PrincipalList.java 
	* gnu/javax/net/ssl/provider/ServerHandshake.java 
	* gnu/javax/net/ssl/provider/ClientDiffieHellmanPublic.java 
	* gnu/javax/net/ssl/provider/SessionImpl.java 
	* gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java 
	* gnu/javax/net/ssl/provider/ServerPSKParameters.java 
	* gnu/javax/net/ssl/provider/TruncatedHMAC.java 
	* gnu/javax/net/ssl/provider/MaxFragmentLength.java 
	* gnu/javax/net/ssl/provider/HelloRequest.java 
	* gnu/javax/net/ssl/provider/ServerKeyExchangeParams.java 
	* gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java 
	* gnu/javax/net/ssl/provider/CipherAlgorithm.java 
	* gnu/javax/net/ssl/provider/ClientHandshake.java 
	* gnu/javax/net/ssl/provider/ExchangeKeys.java 
	* gnu/javax/net/ssl/provider/CertificateURL.java 
	* gnu/javax/net/ssl/provider/EmptyExchangeKeys.java 
	* gnu/javax/net/ssl/provider/CertificateRequestBuilder.java 
	* gnu/javax/net/ssl/provider/SSLv3HMacMD5Impl.java 
	* gnu/javax/net/ssl/provider/Builder.java 
	* gnu/javax/net/ssl/provider/Debug.java 
	* gnu/javax/net/ssl/provider/SSLEngineImpl.java 
	* gnu/javax/net/ssl/provider/MacAlgorithm.java 
	* gnu/javax/net/ssl/provider/DelegatedTask.java 
	* gnu/javax/net/ssl/provider/InputSecurityParameters.java 
	* gnu/javax/net/ssl/provider/ClientHelloV2.java 
	* gnu/javax/net/ssl/provider/OutputSecurityParameters.java 
	* gnu/javax/net/ssl/provider/AbstractHandshake.java 
	* javax/net/ssl/SSLEngine.java 
	* javax/net/ssl/CertPathTrustManagerParameters.java 
	* javax/net/ssl/KeyStoreBuilderParameters.java 
	* javax/net/ssl/X509ExtendedKeyManager.java 
	* javax/net/ssl/SSLEngineResult.java 
	* gnu/javax/net/ssl/PreSharedKeyManager.java 
	* gnu/javax/net/ssl/Session.java 
	* gnu/javax/net/ssl/PreSharedKeyManagerParameters.java 
	* gnu/javax/net/ssl/SSLCipherSuite.java 
	* gnu/javax/net/ssl/AbstractSessionContext.java 
	* gnu/javax/net/ssl/SessionStoreException.java 
	* gnu/javax/net/ssl/SSLRecordHandler.java 
	* gnu/javax/net/ssl/SSLProtocolVersion.java 
	* gnu/javax/crypto/key/GnuPBEKey.java 
	* gnu/java/security/util/ByteBufferOutputStream.java 
	* gnu/java/security/Requires.java 
	* gnu/javax/security/auth/callback/CertificateCallback.java 
	Files removed:
	* gnu/javax/net/ssl/provider/Context.java
	* gnu/javax/net/ssl/provider/DigestInputStream.java
	* gnu/javax/net/ssl/provider/DigestOutputStream.java
	* gnu/javax/net/ssl/provider/Enumerated.java
	* gnu/javax/net/ssl/provider/Extensions.java
	* gnu/javax/net/ssl/provider/GNUSecurityParameters.java
	* gnu/javax/net/ssl/provider/JCESecurityParameters.java
	* gnu/javax/net/ssl/provider/JDBCSessionContext.java
	* gnu/javax/net/ssl/provider/JessieDHPrivateKey.java
	* gnu/javax/net/ssl/provider/JessieDHPublicKey.java
	* gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java
	* gnu/javax/net/ssl/provider/JessieRSAPublicKey.java
	* gnu/javax/net/ssl/provider/KeyPool.java
	* gnu/javax/net/ssl/provider/OverflowException.java
	* gnu/javax/net/ssl/provider/RecordInput.java
	* gnu/javax/net/ssl/provider/RecordInputStream.java
	* gnu/javax/net/ssl/provider/RecordOutputStream.java
	* gnu/javax/net/ssl/provider/RecordingInputStream.java
	* gnu/javax/net/ssl/provider/SSLRSASignature.java
	* gnu/javax/net/ssl/provider/SSLServerSocket.java
	* gnu/javax/net/ssl/provider/SSLServerSocketFactory.java
	* gnu/javax/net/ssl/provider/SSLSocket.java
	* gnu/javax/net/ssl/provider/SSLSocketFactory.java
	* gnu/javax/net/ssl/provider/SSLSocketInputStream.java
	* gnu/javax/net/ssl/provider/SSLSocketOutputStream.java
	* gnu/javax/net/ssl/provider/SecurityParameters.java
	* gnu/javax/net/ssl/provider/Session.java
	* gnu/javax/net/ssl/provider/SessionContext.java
	* gnu/javax/net/ssl/provider/SynchronizedRandom.java
	* gnu/javax/net/ssl/provider/XMLSessionContext.java

2006-08-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(DividerLayout.layoutContainer): Removed debug output.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.axis): New field.
	(BasicHorizontalLayoutManager.BasicHorizontalLayoutManager(int)):
	New constructor.
	(BasicHorizontalLayoutManager.BasicHorizontalLayoutManager()):
	Call new axis constructor.
	(BasicHorizontalLayoutManager.getAvailableSize): Refactored to
	handle direction.
	(BasicHorizontalLayoutManager.getInitialLocation): Refactored to
	handle direction.
	(BasicHorizontalLayoutManager.getPreferredSizeOfComponent):
	Refactored to handle direction.
	(BasicHorizontalLayoutManager.getSizeOfComponent): Refactored
	to handle direction.
	(BasicHorizontalLayoutManager.minimumLayoutSize): Refactored to
	handle direction.
	(BasicHorizontalLayoutManager.preferredLayoutSize): Refactored
	to handle direction.
	(BasicHorizontalLayoutManager.minimumSizeOfComponent): Refactored
	to handle direction.
	(BasicHorizontalLayoutManager.setComponentToSize): Refactored
	to handle direction.
	(BasicHorizontalLayoutManager.updateComponents): Don't reset
	divider size.
	(BasicVerticalLayoutManager.BasicVerticalLayoutManager):
	New explicit constructor. Calls super with vertical axis.
	(BasicVerticalLayoutManager.getAvailableSize): Functionality moved
	to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.getInitialLocation): Functionality
	moved to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.getPreferredSizeOfComponent):
	Functionality moved to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.getSizeOfComponent): Functionality
	moved to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.minimumLayoutSize): Functionality
	moved to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.minimumSizeOfComponent):
	Functionality moved to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.preferredLayoutSize): Functionality
	moved to BasicHorizontalLayoutManager.
	(BasicVerticalLayoutManager.setComponentToSize): Functionality
	moved to BasicHorizontalLayoutManager.
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(BUTTON_SPRITE): Renamed to BUTTON_SPRITE_L.
	(BUTTON_SPRITE_R): New constant field.
	(MetalOneTouchButton.paint): Paint R sprite for right buttons,
	L sprite for left buttons.
	
2006-08-14  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(query_formats): g_free 'name' after usage.
	g_strfreev 'ch', the gdk_pixbuf_format_get_extensions instance.
	g_strfreev 'ch', the gdk_pixbuf_format_get_mime_types instance.

2006-08-14  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/27723
	* configure.ac (MOZILLA_FOUND): Add pkg-config check for
	seamonkey-plugin.

2006-08-14  Francis Kung  <fkung@redhat.com>

	PR 28694
	* java/awt/image/ColorModel.java
	(coerceData): Added check for non-transparent images.

2006-08-14  Francis Kung  <fkung@redhat.com>

	* java/awt/image/BandCombineOp.java
	(BandCombineOp): Perform checks on validity of matrix.
	(createCompatibleDestRaster): Add checks and choose raster type dynamically.
	(filter): Updated to work with new matrix storage.
	(getMatrix): Updated javadoc.
	(getPoint2D): Formatting change.

2006-08-14  Francis Kung  <fkung@redhat.com>

	* java/awt/image/AffineTransformOp.java
	(AffineTransformOp): Updated javadoc.
	(createCompatibleDestImage): Match behaviour of reference implementation.
	(createCompatibleDestRaster): Formatting changes.
	(filter(BufferedImage, BufferedImage)): Create compatible destination image.
	(filter(Raster, WritableRaster)): Re-implemented.
	(filterBicubic): New private method.
	(filterBilinear): New private method.
	(filterNearest): New private method.
	(getBounds2D): No longer fixed around one point for rotations.
	(getInterpolationType): Add support for bicubic interpolation.

2006-08-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(MetalLookAndFeel): Moved theme initialization to
	getDefaults().
	(createDefaultTheme): Forward to getCurrentTheme().
	(getDefaults): Initialize theme before doing anything else.
	(getCurrentTheme): Recognize swing.metalTheme property.

2006-08-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable
	(getScrollableUnitIncrement): Expose partially exposed
	row in scrolling direction.

2006-08-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable (getScrollableUnitIncrement): 
	Removing my name as the whole method body have been
	recently completely replaced.

2006-08-14  Roman Kennke  <kennke@aicas.com>

	PR 28028
	* javax/swing/text/Utilities.java
	(getTabbedTextOffset): Don't add p0 here.

2006-08-14  Roman Kennke  <kennke@aicas.com>

	PR 28719
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(MouseWheelHandler.mouseWheelMoved): Scroll negative delta
	when wheel is going up.

2006-08-14  Roman Kennke  <kennke@aicas.com>

	PR 28693
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(BasicOneTouchButton): New inner class.
	(DividerLayout.changeButtonOrientation): Removed.
	(DividerLayout.positionButtons): Moved into layoutContainer.
	(DividerLayout.layoutContainer): Reworked for correct layout.
	(OneTouchAction): New inner class.
	(centerOneTouchButtons): New field.
	(BasicSplitPaneDivider): Initialize centerOneTouchButton from
	UIManager.
	(createLeftOneTouchButton): Reimplemented to return
	BasicOneTouchButton.
	(createRightOneTouchButton): Reimplemented to return
	BasicOneTouchButton.
	(getPreferredSize): Reimplemented to return fixed preferredSize.
	(oneTouchExpandableChanged): Add OneTouchAction action to
	buttons. Don't install mouse listeners.
	(MouseHandler.mousePressed): Removed handling of one touch buttons.
	(paint): Don't trigger extra paint for buttons.
	(propertyChange): Revalidate splitPane when orientation is changed.
	(setBasicSplitPaneUI): Call oneTouchExpandableChanged only when
	oneTouchExpandable is true.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(installDefaults): Install dividerSize on the divider too.
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(MetalDividerLayout): Removed. Functionality is already
	in BasicSplitPaneDivider.DividerLayout.
	(MetalOneTouchButton): New inner class.
	(BUTTON_SPRITE): New constant field.
	(MetalSplitPaneDivider): Don't change layout.
	(createLeftOneTouchButton): Overridden to return custom button
	for Metal.
	(createRightOneTouchButton): Overridden to return custom button
	for Metal.
	(paint): Don't trigger button painting. Call super instead.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	(installKeyboardAction): Unmarked as stub. Added comment
	explaining that the RI seems to do nothing here.
	(uninstallKeyboardAction): Unmarked as stub. Added comment
	explaining that the RI seems to do nothing here.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	PR 28135
	* javax/swing/ScrollPaneLayout.java
	(layoutContainer): Consider the viewportBorder of the
	JScrollPane.
	(minimumLayoutSize): Consider the viewportBorder of the
	JScrollPane.
	(preferredLayoutSize): Consider the viewportBorder of the
	JScrollPane.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(installDefaults): Also install viewportBorder if specified.
	(paint): Paint viewportBorder if present.
	(uninstallDefaults): Uninstall viewportBorder if appropriate.
	Don't nullify foreground, background and font. Uninstall
	border via LookAndFeel helper method to avoid uninstall
	user set border.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	PR 28696
	* javax/swing/plaf/basic/BasicHTML.java
	(HTMLRootView.HTMLRootView): Trigger initial layout.
	(HTMLRootView.setSize): Overridden to forward to real view.
	* javax/swing/plaf/basic/BasicToolTipUI.java
	(PropertyChangeHandler): New inner class. Updates the HTML
	renderer.
	(propertyChangeHandler): New field.
	(getMaximumSize): Add HTML width delta.
	(getMinimumSize): Add HTML width delta.
	(getPreferredSize): Reimplemented to use HTML view for size
	calculation if appropriate, otherwise use simple stringWidth()
	measurement.
	(installListeners): Install propertyChangeHandler.
	(uninstallListeners): Uninstall propertyChangeHandler.
	(installUI): Update HTML renderer.
	(uninstallUI): Update HTML renderer.
	(paint): Reimplemented to use HTML view for rendering if
	appropriate, simple drawString otherwise.
	* javax/swing/plaf/metal/MetalToolTipUI.java
	(getPreferredSize): Call super and add accelerator delta.
	(paint): Simply call super.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JMenu.java
	(changeListener): Renamed to menuChangeListener to avoid
	shadowing changeListener field from AbstractButton.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTree.java
	(getScrollableUnitIncrement): Fixed direction.
	(getScrollableBlockIncrement): Implemented to scroll one
	page.
	* javax/swing/tree/VariableHeightLayoutCache.java
	(distance): Consider y + height already outside the node.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(getScrollableUnitIncrement): Fixed direction. Make it behave
	like the RI.
	(getScrollableBlockIncrement): Fixed direction. Make it behave
	like the RI.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JList.java
	(getScrollableUnitIncrement): Fixed direction. Implemented
	horizontal scrolling. Improved usability.
	(getScrollableBlockIncrement): Fixed direction. Improved usability.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(scrollByUnit): Scroll by -unit when direction is not positive
	and +unit otherwise.
	(scrollByBlock): Scroll by -unit when direction is not positive
	and +unit otherwise.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	PR 28028
	* javax/swing/text/PlainView.java
	(paint): Limit painted area to the lines inside the clip
	and allocation.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(uninstallListeners): Unregister document listener.

2006-08-13  Sven de Marothy  <sven@physto.se>

	* java/util/Locale.java
	(hashcodeCache): New field.
	(hashCode): use the above field instead of the serialized one
	(writeObject): Removed method.
	(readObject): Intern strings.
	(equals): Revert to previous method.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(JTabbedPane): Call setModel() here and let this install the
	change listener correctly.
	(setModel): Correctly uninstall and reinstall ChangeListener when
	model changes.

2006-08-13  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/23952
	* java/util/ResourceBundle.java (CACHE_SIZE): New constant.
	(bundleCache): Replaced with an LRU of CACHE_SIZE elements.
	(lastDefaultLocale): Removed.
	(emptyLocale): Likewise.
	(BundleKey.defaultLocale): New field.
	(BundleKey.BundleKey): Add a Locale (as a 1st positional) argument.
	(BundleKey.set): Likewise.
	(BundleKey.equals): Take defaultLocal field into consideration.
	(getBundle(String, Locale, ClassLoader)): Use updated BundleKey and LRU.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JMenu.java
	(MenuChangeListener): New inner class, helps firing menu events.
	(changeListener): New field.
	(add(text)): Create new JMenuItem here and call add(JMenuItem).
	(add(Action)): Create Action using createActionComponent()
	and add via add(Component).
	(setModel): Install and uninstall MenuChangeListener here.

2006-08-13  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/27372
	* java/math/BigInteger.java: Updated copyright year.
	(init): Consume as little bytes as possible.
	(BigInteger(int, int, Random)): Ensure bitLength bits are used.
	(valueOf(String, int)): Throw NumberFormatException for malformed strings
	as per RI's documentation.

2006-08-13  Sven de Marothy  <sven@physto.se>

	* java/util/Locale.java
	(hashcode): Is a serialized field, not transient.
	(equals): Should NOT compare strings by reference.
	(readObject/writeObject): Use the default methods and handle the hash
	seperately.

2006-08-13  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28678
	* gnu/java/security/Engine.java (getInstance(String, String, Provider)):
	Updated documentation.
	Formatting.
	(getInstance(String, String, Provider, Object[])): Likewise.
	Separate checks for null and empty string arguments.
	Include as much information as possible in the exception's message.
	Do not swallow original exception; instead use it as the cause of the
	resulting exception.
	* gnu/javax/security/auth/callback/AbstractCallbackHandler.java
	(getInstance(String)): Updated documentation.
	Formatting.
	Store last exception caught when iterating through all providers.
	If no implementation found, raise last exception if one was caught.
	(getInstance(String, String)): Updated documentation.
	Formatting.
	Check for null or empty provider as per RI-5's documentation.
	(getInstance(String, Provider)): Updated documentation.
	Formatting.
	Use as much information as possible in the exception message.
	Do not swallow original exception; instead use it as the cause for the
	ultimate raised exception(s).
	* java/security/cert/CertificateFactory.java: Likewise.
	* java/security/cert/CertPathBuilder.java: Likewise.
	* java/security/cert/CertPathValidator.java: Likewise.
	* java/security/cert/CertStore.java: Likewise.
	* java/security/AlgorithmParameterGenerator.java: Likewise.
	* java/security/AlgorithmParameters.java: Likewise.
	* java/security/KeyFactory.java: Likewise.
	* java/security/KeyPairGenerator.java: Likewise.
	* java/security/KeyStore.java: Likewise.
	* java/security/MessageDigest.java: Likewise.
	* java/security/SecureRandom.java: Likewise.
	* java/security/Signature.java: Likewise.
	* javax/crypto/Cipher.java: Likewise.
	* javax/crypto/ExemptionMechanism.java: Likewise.
	* javax/crypto/KeyAgreement.java: Likewise.
	* javax/crypto/KeyGenerator.java: Likewise.
	* javax/crypto/Mac.java: Likewise.
	* javax/crypto/SecretKeyFactory.java: Likewise.
	* javax/net/ssl/KeyManagerFactory.java: Likewise.
	* javax/net/ssl/SSLContext.java: Likewise.
	* javax/net/ssl/TrustManagerFactory.java: Likewise.

2006-08-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JEditorPane.java
	(getScrollableTracksViewportHeight): Also check maximum size.
	* javax/swing/JTextPane.java
	(insertIcon): Use input attributes for adding the icon
	attribute.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.setSize): Overridden to forward to real view.
	(getPreferredSize): Trigger setSize() on the view.
	(viewToModel(JTextComponent,Point)): Pass Position.Bias array
	to viewToModel() call, rather then null.
	* javax/swing/text/ParagraphView.java
	(changedUpdate): Invalide layout. Call super.
	* javax/swing/text/SimpleAttributeSet.java
	(clone): Use super's clone method to create clone.
	* javax/swing/text/StyleConstants.java
	(setIcon): Also set element name attribute.
	* javax/swing/text/StyledEditorKit.java
	(BoldAction.actionPerformed): Actually set the bold attribute,
	not italic.
	(setCharacterAttributes): Replaced with more straightforward
	impl.
	* javax/swing/text/TextAction.java
	(getFocusedComponent): Implemented.
	* javax/swing/text/Utilities.java
	(getNextVisualPositionFrom): Pass Position.Bias arrays instead
	of null.
	* javax/swing/text/View.java
	(changedUpdate): Nullify element change when updateChildren
	says so.

2006-08-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
	Fix documentation typos.

2006-08-11  David Daney  <ddaney@avtrex.com>

	PR classpath/28580
	* gnu/java/net/protocol/http/Request.java (readResponse):  Call
	createResponseBodyStream in more cases and with new parameter.
	(createResponseBodyStream):  Added new parameter mayHaveBody.  Handle
	HEAD and !mayHaveBody responses specially.
	
2006-08-11  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.modelToView): Fixed model->view mapping.
	* javax/swing/text/LabelView.java
	(valid): New flag indicating if the text attributes are valid.
	(LabelView): Initialize valid field with false.
	(setPropertiesFromAttributes): Call setter methods instead
	of setting properties directly. Set valid to true.
	(changedUpdate): Invalidate attributes. Call super.
	(getBackground): Sync attributes if necessary.
	(getForeground): Sync attributes if necessary.
	(getFont): Sync attributes if necessary.
	(isUnderline): Sync attributes if necessary.
	(isSuperscript): Sync attributes if necessary.
	(isStrikeThrough): Sync attributes if necessary.
	(getFontMetrics): Sync attributes if necessary. Fetch font metrics
	from toolkit if Container is not available yet.

2006-08-11  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainView.java
	(tabBase): New field.
	(tabSize): New field.
	(updateMetrics): Update tabSize.
	(lineToRect): Only allocate when really necessary.
	(modelToView): Use tabBase for offset calculations.
	(paint): Only allocate when really necessary. Update tabBase.
	(nextTabStop): Fixed tab calculation.
	(viewToModel): Correctly handle multiline text and locations
	outside the view's bounds. Set bias.
	(getLineLength): Use tabBase.
	* javax/swing/text/Utilities.java
	(drawTabbedText): Don't special case newlines. The views
	must take care of this.

2006-08-11  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(UndoPosRef): New inner class. Used for resetting positions
	after undo/redo operations.
	(InsertUndo.positions): New field.
	(InsertUndo.undo): Store positions in removed range.
	(InsertUndo.redo): Restore positions in re-inserted range.
	(UndoRemove.positions): New field.
	(UndoRemove.UndoRemove): Store positions in removed range.
	(UndoRemove.undo): Restore positions in re-inserted range.
	(UndoRemove.redo): Store positions in removed range.
	(insertString): Create InsertUndo instance before actually
	inserting the string.
	(remove): Create UndoRemove instance before actually
	removing.
	(getPositionsInRange): Don't clear the Vector. Return Vector
	of UndoPosRefs.
	(updateUndoPositions): Implemented to reset all UndoPosRefs
	in the vector.

2006-08-11  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/ObjectInputStream.java (readClassDescriptor):
	Use class's class loader to resolve field types.
	* java/io/ObjectStreamField.java
	(ObjectStreamField(String,String,ClassLoader)): Removed.
	(ObjectStreamField(String,String)): Don't try to resolve typename.
	(resolveType): New method.

2006-08-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BoxView.java
	(calculateMajorAxisRequirements): Sum up the preferred and
	maximum sizes.
	(isAfter): Also add in the rectangle's with/height.
	(childAllocation): Don't trigger layout here.
	(layoutMinorAxis): Removed debug output.
	(getWidth): Consider the insets.
	(getHeight): Consider the insets.
	(setSize): Consider the insets.
	(updateRequirements): Check axis and throw
	IllegalArgumentException.

2006-08-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(BidiRootName): New constant field, denotes the element name
	for bidi root elements.
	(AsyncLoadPriority): New constant field, denotes the property
	to store the asynchronousLoadPriority.
	(I18N): New constant field, denotes the property for
	I18N support.
	(bidiRoot): Made field type BidiRootElement.
	(AbstractDocument): Build initial element structure for
	bidi.
	(getAsynchronousLoadPriority): Implemented. Returns the
	value stored in the document properties.
	(setAsynchronousLoadPriority): Implemented. Sets the
	value stored in the document properties.
	(getEndPosition): Implemented to use a Position from the
	content.
	(getStartPosition): Implemented to use a Position from the
	content.
	(insertStringImpl): Update the I18N setting if necessary.
	(insertUpdate): Update the bidi structure if necessary.
	(postRemoveUpdate): Update the bidi structure if necessary.
	(putProperty): Update the I18N setting and bidi structure
	if necessary.
	(updateBidi): New helper method for updating the bidi
	structure.
	(getBidis): New helper method. Fetches the Bidi analysers
	for the paragraphs of the range to check.
	(dump): Also dump the bidi structure.
	(AbstractElement.dump): Indent the '>' correctly.
	(AbstractElement.children): Check numChildren rather then
	children.length.
	(BidiRootElement): New inner class.
	(BidiElement): New inner class.

2006-08-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(getChars): Optimized to only copy array when really necessary.
	Respect the partialReturn property.

2006-08-10  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
	(getComponentPeer): Added check to prevent NPE.

2006-08-10  Gary Benson  <gbenson@redhat.com>

	* java/security/AccessControlContext.java (<init>):
	Avoid a duplicated AccessController.getContext() call.

2006-08-09  Mark Wielaard  <mark@klomp.org>
  
	* doc/www.gnu.org/newsitems.txt: Add 0.92.
	* doc/www.gnu.org/downloads/downloads.wml: Likewise.
	* doc/www.gnu.org/announce/20060809.wml: New file.

2006-08-09  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.92-generics.
	* NEWS: Add updates for 0.92 release.

2006-08-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/28658:
	* java/text/SimpleDateFormat.java (parse): Let an unquoted space in
	the pattern match any number of spaces in the text.

2006-08-09  Sven de Marothy  <sven@physto.se>

	* java/awt/image/BufferedImage.java
	(BufferedImage): Reimplement predefined-type constructor.
	(observers/tileObservers): Field renamed to tileObservers.
	(createDefaultIndexedColorModel): New method.

2006-08-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/28666:
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
	(Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModes):
	Create a 'short' array.

2006-08-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/JniHelper.java (getName): Properly
	handle arrays.
	* tools/gnu/classpath/tools/javah/JniIncludePrinter.java
	(writeFields): Print "L" after int constant.  Don't mangle the field
	name.  Only print int/long fields.

2006-08-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/javah/Main.java (getParser): Name program
	"javah".

2006-08-09  Sven de Marothy  <sven@physto.se>

	* javax/swing/JTree.java
	(JTree): Default SelectionModel should be DefaultTreeSelectionModel.
	(setSelectionModel): Null parameter should create an EmptySelectionM.

2006-08-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(insertString): Perform modifications inside a write lock.
	(insertStringImpl): Don't lock here. This is already done
	in insertString().
	(replace): Perform modifications inside a write lock.
	(AbstractElement.AbstractElement): Call addAttributes() to
	add the attributes.
	(AbstractElement.getName): Fetch name from the ElementNameAttibute.
	(BranchElement.lastIndex): New field. Optimizes getElementIndex().
	(BranchElement.BranchElement): Set lastIndex to -1.
	(BranchElement.getElementIndex): Implemented more efficient
	search.

2006-08-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(Edit): Moved this inner class into ElementBuffer where it
	is actually needed.
	(edits): Moved this field into ElementBuffer.
	(getEditForParagraphAndIndex): Removed obsolete method.
	(insertUpdate): Added some optimizations and fixes. Split
	out handling insertion after newlines.
	(insertAfterNewline): New helper method. Handles insertions
	after a newline.
	(ElementBuffer.Edit): New inner class. Moved here from
	DefaultStyledDocument.
	(ElementBuffer.createdFracture): New field.
	(ElementBuffer.documentEvent): Made private.
	(ElementBuffer.edits): New field. Moved here from
	DefaultStyledDocument.
	(ElementBuffer.fracNotCreated): Replaced by createdFracture.
	(ElementBuffer.fracturedChild): New field.
	(ElementBuffer.fracturedParent): New field.
	(ElementBuffer.insertPath): New field.
	(ElementBuffer.lastFractured): Removed. Replaced by fracturedChild and
	fracturedParent.
	(ElementBuffer.offsetLastIndex): New field.
	(ElementBuffer.offsetLastIndexReplace): New field.
	(ElementBuffer.recreateLeafs): New field.
	(ElementBuffer.ElementBuffer): Don't initialize stack here.
	(ElementBuffer.canJoin): New helper method.
	(ElementBuffer.changeUpdate): Changed to use elementStack with
	Edits rather than Elements. Let the split method do the work.
	(ElementBuffer.cloneAsNecessary): New helper method.
	(ElementBuffer.createFracture): Changed to fracture the bottommost
	child in the stack.
	(ElementBuffer.finishEdit): New helper method. Moved out
	from insertUpdate to perform the actual changes and update
	the event.
	(fracture): New helper method.
	(insertContentTag): Fixed some bugs and changed to use Edit
	instances in the stack, rather then Elements.
	(insertElement): New helper method. Moved out from insertUpdate()
	to process the ElementSpecs.
	(insertFirstContentTag): Fixed some problems and changed to use Edit
	instances in the stack, rather then Elements.
	(insertFracture): Removed. Basically moved into createFracture()
	and fracture().
	(insertParagraph): Removed.
	(insertUpdate): Split out the ElementSpec processing into
	insertElement(). Use Edit instances in the stack. Fixed some
	problems.
	(insert): Split out the preparation and finishing code into
	prepareEdit() and finishEdit().
	(join): New helper method.
	(pop): New helper method.
	(prepareEdit): New helper method.
	(recreateFracturedElement): New helper method.
	(recreateLeaves): Removed.
	(recreate): New helper method.
	(removeElements): New helper method. Split out from removeUpdate().
	(removeUpdate): Split out the actual removal. Use the
	Edit stack to perform removal and perform the remove actions
	and event updates afterwards, just like in insertImpl().
	(remove): Use prepareEdit() and finishEdit().
	(split): Replaced with more flexible impl.

2006-08-09  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java
	Change class to extend WritableRaster and not DataBuffer.
	(CairoDataBuffer): New inner class.
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	Accomodate the above change.

2006-08-09  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkMainThread.java
	New file.
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	Replace GtkToolkit.mainThread with GtkMainThread.mainThread.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	Minor style fixes; removed unused fields, 
	set fields to private where possible.
	(createDialog, createFrame, createWindow, createEmbeddedWindow): 
	Call GtkMainThread.createWindow().
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(dispose): New method.
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
	(gtkQuit): New native method.

2006-08-08  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(setDropTarget): Added check.

2006-08-08  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
	(GtkDragSourceContextPeer): Added FIXME. Changed call
	to setTarget. 
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java
	(GtkDropTargetContextPeer): Removed target initialization.
	* java/awt/Component.java
	(setTarget): Removed commented out code.

2006-08-08  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/DefaultHighlighter.java: Qualify
	Highlighter.HighlightPainter class name for gcj.

2006-08-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(MouseInputHandler.mousePressed): Request focus on list
	component.

2006-08-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(MouseInputHandler.mousePressed): Request focus on list
	component.

2006-08-05  Roman Kennke  <kennke@aicas.com>

	PR 28650
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(getActionMap): Store ActionMap in MenuBar.actionMap, rather
	than Tree.actionMap.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(action): Removed obsolete field.
	(uninstallKeyboardActions): Removed action field handling.
	(installKeyboardActions): Removed action field handling.
	(createDefaultActions): Don't install removed TreeAction.
	(TreeAction): Removed obsolete inner class.
	(ActionListenerProxy): Removed obsolete inner class.
	(MouseHandler.mousePressed): Request focus on JTree component
	on mouse press.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(MouseInputHandler.mousePressed): Request focus on list
	component.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(MouseInputHandler.mousePressed): Request focus on list
	component.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(damageRange(JTextComponent,int,int)): Call damageRange() with
	correct biases, rather than null.
	(damageRange(JTextComponent,int,int,Bias,Bias)): Rewritten
	to use simpler modelToView() approach without much special
	casing. This seems not worth the effort and actually
	caused problems. Added locking of the document.
	* javax/swing/text/BoxView.java
	(requirementsValid): New field.
	(calculateMajorAxisRequirements): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(calculateMinorAxisRequirements): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(getAlignment): Simply return the alignment of the cached
	requirements.
	(getMaximumSpan): Add insets.
	(getMinimumSpan): Add insets.
	(getPreferredSpan): Add insets.
	(layoutMajorAxis): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(layoutMinorAxis): Rewritten without using
	SizeRequirements. The SizeRequirements algorithms are slightly
	different and too inefficient.
	(modelToView): Call setSize() rather than layout().
	(paint): Check clip for more efficient painting.
	(preferenceChanged): Invalidate requirements here.
	(replace): Invalidate requirements here.
	(updateRequirements): Update requirements only when requirements
	are marked invalid.
	* javax/swing/text/CompositeView.java
	(modelToView): Added some more checks and handling of corner cases.
	* javax/swing/text/FlowView.java
	(calculateMinorAxisRequirements): Set aligment to 0.5 and maximum
	span to Integer.MAX_VALUE. Limit preferredSize to minimumSize.
	* javax/swing/text/IconView.java
	(getAlignment): Implemented to return 1.0 for vertical alignment.
	* javax/swing/text/ParagraphView.java
	(Row.getMaximumSpan): Implemented to let Rows span the whole
	ParagraphView.
	(getAlignment): Fixed horizontal alignment and vertical alignment
	for empty paragraphs to be 0.5.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/View.java
	(modelToView): Added special handling for corner case at the end
	of the view and for multiline views.

2006-08-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(modelToView): Read-lock the document. Set size of the
	root view before fetching the model-to-view mapping.
	(getViewIndex): Check of the position is inside the range and
	return -1 if this is not the case.
	(getViewAtPosition(int,Rectangle): Update child allocation for valid
	view index.
	(getViewIndexAtPosition(int)): Delegate the index search to
	the element since we have a 1:1 mapping between elements and
	views here.
	* javax/swing/text/DefaultCaret.java
	(appear): Ignore BadLocationException.
	(paint): Ignore BadLocationException.
	* javax/swing/text/FlowView.java
	(changedUpdate): Also notify the layoutPool view.
	(removeUpdate): Also notify the layoutPool view.
	* javax/swing/text/ParagraphView.java
	(Row.getViewIndexAtPosition): Overridden to search linearily
	through the view instead of relying on a 1:1 model to view
	mapping.
	* javax/swing/text/View.java
	(removeUpdate): Clear ElementChange object if updateChildren
	returns false.
	(forwardUpdate): Special handle some boundary cases.

2006-08-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/dss/DSSKey.java: Updated documentation.
	(hasInheritedParameters): New method.
	(equals): Updated documentation.
	Take into consideration the outcome of hasInheritedParameters invocation.
	(toString): Call hasInheritedParameters and adjust the result accordingly.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java (encodePublicKey):
	Updated documentation.
	Handle case of public keys with null p, q, and g MPIs.
	(decodePublicKey): Handle case of absent or NULL p, q and g MPIs.

2006-08-07  Tom Tromey  <tromey@redhat.com>

	PR libgcj/23682:
	* java/nio/channels/SelectionKey.java (attach): Now synchronized.
	(attachment): Likewise.
	* java/nio/channels/spi/AbstractSelectionKey.java (cancel): Now
	synchronized.
	(isValid): Likewise.
	* gnu/java/nio/SelectionKeyImpl.java (impl): Now final
	(ch): Likewise.
	(interestOps): Synchronize.
	(readyOps): Likewise.
	* gnu/java/nio/SelectorImpl.java (register): Synchronize around
	interestOps call.

2006-08-07  C. Scott Marshall  <csm@gnu.org>

	Fixes PR 28608.
	* java/nio/DirectByteBufferImpl.java (duplicate): only reset if
	the mark has been set.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(Java_java_nio_VMDirectByteBuffer_allocate): zero out the
	allocated data.

2006-08-07  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawGlyphVector): Synchronize against font object when drawing.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(nativeDrawGlyphVector): Use pango locking when drawing.
	(install_font_peer): Use pango locking when creating the cairo face.

2006-08-06  Roman Kennke  <kennke@aicas.com>

	PR 28571
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java
	(getPreferredSize): Renamed method to preferredSize(). That's
	the one that gets called from java.awt.*.
	* java/awt/peer/ComponentPeer.java
	(getPreferredSize): Added specnote about this method never
	beeing called in the RI.
	(getMinimumSize): Added specnote about this method never
	beeing called in the RI.

2006-08-03  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(grab, nativeGrab): New methods.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(nativeGrab): New method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(print): Implement.
	* java/awt/Component.java
	(printAll): Should call peer print method.

2006-08-06  Thomas Minor  <1nocentrabidlamb@sexMagnet.com>

	* java/net/URL.java (getContent(Class[])): Implement.

2006-08-06  Mark Wielaard  <mark@klomp.org>

	PR 28555
	Suggested by Matthew Burgess <matthew@linuxfromscratch.org>
	* gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether
	withParams is null.
	* gnu/xml/transform/ForEachNode.java (clone): Check whether
	sortKeys is null.

2006-08-06  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added note about the X peers.
	* INSTALL: Added install notes about the X peers. 

2006-08-06  Raif S. Naffah  <raif@swiftdsl.com.au>
	    Paul Jenner  <psj@harker.dyndns.org>

	* README: Update bug, patches and cvs instructions plus new URLs of
	various external projects.

2006-08-06  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (MOZILLA_FOUND): Fall back to
	mozilla-firefox-plugin.

2006-08-06  Mario Torre  <neugens@limasoftware.net>

	Reported by Raif S. Naffah <raif@swiftdsl.com.au>
	* native/jni/gconf-peer/GConfNativePeer.c (init_gconf_client):
	g_type_init earlier in function to correctly initialize the
	type system used by the backend.

2006-08-05  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/DefaultHighlight.java
	(DefaultHighlightPainter.paintHighlight): Removed method.
	(DefaultHighlightPainter.paintLayer): Implemented.
	(DefaultHighlightPainter.paint): Implemented more efficient
	painting for multiline-highlights.
	(HighlightEntry.p0): Changed to be a Position.
	(HighlightEntry.p1): Changed to be a Position.
	(HighlightEntry.HighlightEntry): Changed to take Position
	arfuments.
	(HighlightEntry.getStartOffset): Changed to return p0.getOffset();
	(HighlightEntry.getEndOffset): Changed to return p1.getOffset();
	(LayerHighlightEntry): New inner class. Extends HighlightEntry
	and tracks the painted rectangle for efficient repainting.
	(addHighlight): Handle layered highlight.
	(changeHighlight): Handle layered highlight.
	(paintLayeredHighlights): Implemented.
	(paint): Paint only non-layered highlights here.
	(removeAllHighlights): Trigger correct repaint.
	(removeHighlight): Handle layered highlight here for
	more efficient repainting.
	* javax/swing/text/GlyphView.java
	(paint): Handle layered highlights.
	* javax/swing/text/PlainView.java
	(paint): Handle layered highlights.
	* javax/swing/text/WrappedPlainView.java
	(WrappedLine.paint): Handle layered highlights.

2006-08-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	PR 26972
	* NEWS: As suggested by Paul Jennier, added note about the fix of
	the InitialContext.

2006-08-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* NEWS: Added entry about the context factories for JNDI.

2006-08-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27383
	* gnu/CORBA/Connected_objects.java (size): New method.
	* gnu/CORBA/OrbFunctional.java (countConnectedObjects):
	New method.
	* javax/naming/spi/NamingManager.java (getURLContext):
	Also search for the URL context factories in 
	gnu/javax/naming/jndi/url.
	* 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/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: New files.

2006-08-06  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawGlyphVector): Synchronize against font object when drawing.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(nativeDrawGlyphVector): Use pango locking when drawing.
	(install_font_peer): Use pango locking when creating the cairo face.

2006-08-06  C. Scott Marshall  <csm@gnu.org>

	Fixes PR 28608.
	* java/nio/DirectByteBufferImpl.java (duplicate): only reset if
	the mark has been set.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(Java_java_nio_VMDirectByteBuffer_allocate): zero out the
	allocated data.

2006-08-06  Mark Wielaard  <mark@klomp.org>

	PR 28555
	Suggested by Matthew Burgess <matthew@linuxfromscratch.org>
	* gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether
	withParams is null.
	* gnu/xml/transform/ForEachNode.java (clone): Check whether
	sortKeys is null.

2006-08-06  Raif S. Naffah  <raif@swiftdsl.com.au>
	    Paul Jenner  <psj@harker.dyndns.org>

	* README: Update bug, patches and cvs instructions plus new URLs of
	various external projects.
  
2006-08-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(cacheMBeanInfo(MBeanInfo)): Override given MBeanInfo
	with open variant.
	(getCachedMBeanInfo()): Return open variant.
	(getMBeanInfo()): Likewise.
	(getTypeFromClass(Class)): Implemented.
	(translateSignature(MBeanParameterInfo)): Likewise.
	(translate(String)): Likewise.
	* javax/management/StandardMBean.java:
	(getMBeanInfo()): Return attribute names with capital letters,
	as in docs for java.lang.management.ManagementFactory, and
	ensure descriptions are not "".
	* javax/management/openmbean/OpenMBeanConstructorInfoSupport.java,
	* javax/management/openmbean/OpenMBeanInfoSupport.java,
	* javax/management/openmbean/OpenMBeanOperationInfoSupport.java:
	(toString()): Use Arrays.toString().
	* javax/management/openmbean/OpenMBeanParameterInfoSupport.java:
	(OpenMBeanParameterInfoSupport(String, String, OpenType)):
	Set open type here rather than in other constructors.

2006-08-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanFeatureInfo.java:
	Make string variable package-private.
	* javax/management/StandardMBean.java:
	(getMBeanInterface()): Made final.
	* javax/management/openmbean/SimpleType.java:
	Made final.

2006-08-05  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Component.java (setDropTarget): Commented out GTK specific
	code.
  
2006-08-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* examples/gnu/classpath/examples/swing/FillRect.java,
	* gnu/CORBA/Focused_ORB.java,
	* gnu/CORBA/interfaces/gnuSocketFactory.java,
	* gnu/classpath/ByteArray.java,
	* gnu/classpath/ObjectPool.java,
	* gnu/java/awt/peer/ClasspathTextLayoutPeer.java,
	* gnu/java/awt/peer/x/fonts.properties,
	* gnu/java/security/util/Prime2.java,
	* gnu/javax/imageio/gif/GIFStream.java,
	* javax/swing/text/html/HTMLTableView.java,
	* native/cni/Makefile.am,
	* org/omg/CORBA/SendingContext/RunTimeOperations.java,
	* org/omg/CORBA/SendingContext/Runtime.java,
	* resource/gnu/regexp/MessagesBundle.properties,
	* resource/gnu/regexp/MessagesBundle_fr.properties,
	* resource/gnu/regexp/MessagesBundle_it.properties,
	* tools/appletviewer.in,
	* tools/jarsigner.in,
	* tools/keytool.in,
	* vm/reference/java/lang/management/VMThreadInfo.java:
	Removed.
	* examples/gnu/classpath/examples/awt/aicas.png,
	* examples/gnu/classpath/examples/awt/palme.gif,
	* examples/gnu/classpath/examples/java2d/aicas.png,
	* examples/gnu/classpath/examples/java2d/palme.gif,
	* gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.dia,
	* gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.png,
	* java/awt/doc-files/capjoin.png,
	* java/awt/geom/doc-files/Area-1.png,
	* java/awt/geom/doc-files/Ellipse-1.png,
	* java/awt/geom/doc-files/GeneralPath-1.png:
	Added.
	
2006-08-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* configdiag.jnlp:
	Removed.
	
2006-08-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	(getAttribute(String)): Implemented.

2006-08-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent.dot): Renamed field into caretDot.
	(AccessibleJTextComponent.textComp): Removed field
	and replace with JTextComponent.this construct.
	(AccessibleJTextComponent.AccessibleJTextComponent):
	Fetch caret position.
	(caretUpdate): Implemented. Fires property change events and
	updates the caretDot field.
	(changedUpdate): Implemented. Fires property change events.
	(insertUpdate): Implemented. Fires property change events.
	(removeUpdate): Implemented. Fires property change events.
	(cut): Replaced textComp with JTextComponent.this construct.
	(paste): Replaced textComp with JTextComponent.this construct.
	(replaceText): Replaced textComp with JTextComponent.this construct.
	(selectText): Replaced textComp with JTextComponent.this construct.
	(getCaretPosition): Replaced textComp with JTextComponent.this
	construct.
	(getCharCount): Replaced textComp with JTextComponent.this construct.
	(getSelectedText): Replaced textComp with JTextComponent.this
	construct.
	(getSelectionEnd): Replaced textComp with JTextComponent.this
	construct.
	(getSelectionStart): Replaced textComp with JTextComponent.this
	construct.
	(getTextRange): Replaced textComp with JTextComponent.this
	construct.
	(doAccessibleAction): Implemented.
	(getAccessibleActionCount): Implemented.
	(getAccessibleActionDescription): Implemented.
	(getAccessibleStateSet): Implemented.
	(getAfterIndex): Implemented.
	(getBeforeIndex): Implemented.
	(getAtIndex): Implemented.
	(getAtIndexImpl): New helper method.
	(getCharacterAttribute): Implemented.
	(getCharacterBounds): Implemented.
	(getIndexAtPoint): Implemented.	
	(insertTextAtIndex): Implemented.
	(setAttributes): Implemented.
	(setTextContents): Implemented.

2006-08-05  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* configure.ac: Better handling of default-preferences-peer option.

2006-08-04  Andreas Tobler  <a.tobler@schweiz.ch>

	* java/awt/BasicStroke.java (dashedStroke): Cast coords.clone to
	double[].

2006-08-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/openmbean/TabularData.java:
	Documentation corrections.
	* javax/management/openmbean/TabularDataSupport.java:
	New file.

2006-08-04  Francis Kung  <fkung@redhat.com>

	* java/awt/BasicStroke.java
	(dashedStroke): Implemented.

2006-08-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/BadAttributeValueExpException.java,
	* javax/management/BadStringOperationException.java,
	* javax/management/InstanceAlreadyExistsException.java,
	* javax/management/InstanceNotFoundException.java,
	* javax/management/InvalidApplicationException.java,
	* javax/management/MBeanRegistrationException.java,
	* javax/management/MalformedObjectNameException.java,
	* javax/management/RuntimeErrorException.java,
	* javax/management/RuntimeMBeanException.java,
	* javax/management/ServiceNotFoundException.java:
	New files.
	
2006-08-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel(JComponent,FontMetrics,String,Icon,int,int,int,
	 int,Rectangle,Rectangle,Rectangle,int)): Delegate to new
	layoutCompoundLabelImpl().
	(layoutCompoundLabel(FontMetrics,String,Icon,int,int,int,int,
	 Rectangle,Rectangle,Rectangle,int)): Delegate to new
	layoutCompoundLabelImpl().
	(layoutCompoundLabelImpl): New helper method. Moved impl from
	layoutCompoundLabel() to here and added handling of HTML.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(installUI): Update HTML view if appropriate.
	(uninstallUI): New method. Do the usual uninstallUI things
	and uninstall HTML view.
	(getMinimumSize): New method. Adjusts the minimum size
	by the HTML view minimum size.
	(getMaximumSize): New method. Adjusts the maximum size
	by the HTML view maximum size.
	(getPreferredSize): Pass the button's iconTextGap to the
	BasicGraphicsUtils method.
	(paint): Let HTML view paint the text, if present.
	* javax/swing/plaf/basic/BasicButtonListener.java
	(propertyChange): Update the HTML view when the button's
	text is changed.
	
2006-08-04  Mario Torre  <neugens@limasoftware.net>

	Reported by Raif S. Naffah <raif@swiftdsl.com.au>
	* native/jni/gconf-peer/GConfNativePeer.c (init_gconf_client):
	g_type_init earlier in function to correctly initialize the
	type system used by the backend.

2006-08-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 26972
	* javax/naming/Name.java (addAll, getPrefix, getSuffix):
	Documented.
	* gnu/javax/naming/ictxImpl/trans/GnuName.java: New file.

2006-08-04  Robert Schuster  <robertschuster@fsfe.org>

	Reported by Henrik Gulbrandsen <henrik@gulbra.net>
        Fixes PR27864.
        * gnu/xml/dom/DomIterator.java:
        (successor): Added if-statement.

2006-08-04  Mark Wielaard  <mark@klomp.org>

	* scripts/Makefile.am (EXTRA_DIST): Add import-cacerts.sh.

2006-08-04  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/metal/MetalMenuBarUI.java:
	(update): Check size and paint smaller gradient.
	* javax/swing/plaf/metal/MetalBorders.java:
	(MenuBarBorder): Removed borderColor field.
	(MenuBarBorder.paintBorder): Added note, fetch color from UIManager or
	MetalLookAndFeel.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 27637
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(ComponentHandler.componentResized): Reimplemented to handle
	arbitrary parents.
	(InternalFramePropertyChangeHandler.propertyChange): (Un)install
	component listener on changed ancestor.
	(installListeners): Install componentListener.
	(uninstallListeners): Uninstall componentListener.

2006-08-03  Carsten Neumann  <cn-develop@gmx.net>

	* StrictMath.java (cbrt): Return argument if it is a NaN.
	(cosh): Likewise.
	(expm1): Likewise.
	(sinh): Likewise.
  
2006-08-03  Carsten Neumann  <cn-develop@gmx.net>
  
	* java/lang/StrictMath.java (tanh): New method.
  
2006-08-03  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* scripts/import-cacerts.sh: Batch CA certificates import script.
  
2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 27606
	* javax/swing/plaf/basic/BasicListUI.java
	(paintCell): Pass row index to cell renderer.
	* javax/swing/plaf/basic/MetalFileChooserUI.java
	(DirectoryComboBoxRenderer.indentIcon): New field.
	(DirectoryComboBoxRenderer.DirectoryComboBoxRenderer):
	Initialize indentIcon.
	(DirectoryComboBoxRenderer.getListCellRendererComponent):
	Fall back to super and removed standard functionality.
	Handle indentation.
	(IndentIcon): New class. Wraps and indents another icon.

2006-08-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanConstructorInfo.java:
	(MBeanConstructorInfo(String,String,MBeanParameterInfo[]):
	Copy array rather than directly assigning.
	* javax/management/MBeanInfo.java:
	(MBeanInfo(String,String,MBeanAttributeInfo[],
	MBeanConstructorInfo[], MBeanOperationInfo[],
	MBeanNotificationInfo[])): Likewise.
	* javax/management/MBeanOperationInfo.java:
	(MBeanOperationInfo(String,String,MBeanParameterInfo[],String,int)):
	Likewise.
	* javax/management/openmbean/OpenMBeanAttributeInfoSupport.java,
	* javax/management/openmbean/OpenMBeanConstructorInfoSupport.java:
	New files.
	* javax/management/openmbean/OpenMBeanInfo.java:
	Corrected documentation.
	* javax/management/openmbean/OpenMBeanInfoSupport.java:
	New file.
	* javax/management/openmbean/OpenMBeanOperationInfo.java:
	Corrected documentation.
	* javax/management/openmbean/OpenMBeanOperationInfoSupport.java:
	New file.
	* javax/management/openmbean/OpenMBeanParameterInfoSupport.java:
	(MBeanParameterInfo(String,String,OpenType,Object,Object[])):
	Call other constructor rather than reimplementing.

2006-08-02  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSource.java
	(isDragImageSupported): Implemented.
	(getDragThreshold): Changed default value.
	* java/awt/dnd/DropTarget.java
	(DropTarget): Default action is changed to ACTION_COPY_OR_MOVE.
	(DropTarget): Likewise.
	(DropTarget): If FlavorMap passed in is null, we should use the system default.
	(addDropTargetListener): Added check to determine if new DropTargetListener
	is this class. If so, an IllegalArgumentException is thrown. If the 
	new listener is null, nothing happens.

2006-08-02  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (MOZILLA_FOUND): Fall back to
	mozilla-firefox-plugin.

2006-08-02  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/AffineTransform.java
	(hashCode): Tweak impl. 
	* java/awt/font/FontRenderContext.java
	(hashCode): Implement. 

2006-08-02  Carsten Neumann  <cn-develop@gmx.net>

	* java/lang/StrictMath.java (sinh): New method.

2006-08-02  Roman Kennke  <kennke@aicas.com>

	PR 27605
	* javax/swing/JComboBox.java
	(setSelectedItem): Fire ActionEvent here.
	* javax/swing/plaf/basic/BasicDirectoryModel.java
	(directories): Changed to type Vector.
	(files): New field.
	(loadThread): New field.
	(DirectoryLoadThread): New inner class. This loads the contents
	of directories asynchronously.
	(getDirectories): Return cached Vector.
	(getFiles): Return cached Vector.
	(getSize): Return plain size of contents Vector.
	(propertyChange): Reread directory also for DIRECTORY_CHANGED,
	FILE_FILTER_CHANGED, FILE_HIDING_CHANGED and FILE_VIEW_CHANGED.
	(sort): Don't store sorted list in contents. This must be done
	asynchronously from the EventThread.
	(validateFileCache): Rewritten for asynchronous reading
	of directory contents.
	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(installListeners): Install model as PropertyChangeListener.
	(uninstallListeners): Uninstall model as PropertyChangeListener.
	(createPropertyChangeListener): Return null just like the
	RI.

2006-08-02  Sven de Marothy  <sven@physto.se>
  
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java
	(remove): Force event on removing item 0 when it's selected.
	(handleEvent): Always call Choice.selected().
	* java/awt/Choice.java:
	(remove): Simplify and correct.
  
2006-08-02  Mark Wielaard  <mark@klomp.org>
  
	PR 28535
	* configure.ac (gconf-peer): Check for gdk-2.0.
	* native/jni/gconf-peer/Makefile.am
	(AM_LDFLAGS): Use GDK_LIBS.
	(AM_CFLAGS): Use GDK_CFLAGS.
  
2006-08-02  Thomas Minor  <1nocentrabidlamb@sexMagnet.com>
  
	* java/net/URL.java (getContent(Class[])): Implement.
  
2006-08-02  Roman Kennke  <kennke@aicas.com>
  
	PR 27624
	* javax/swing/JMenu.java
	(JMenu()): Removed setting of delay.
	(JMenu(String)): Removed setting of delay.
	(JMenu(Action)): Removed setting of delay.
	(JMenu(String,boolean)): Removed setting of delay.
	(setSelectedHelper): Removed unneeded method.
	(setSelected): Simply set the model state.
	(setPopupMenuVisible): Recognize the popup location
	determined by getPopupMenuOrigin().
	(getPopupMenuOrigin): Recognize the UI properties for
	X and Y offset.
	(menuSelectionChanged): Call setSelected() directly.
	* javax/swing/JPopupMenu.java
	(menuSelectionChanged): If invoker is a JMenu, then delegate
	to that to get the position right.
	* javax/swing/Popup.java
	(LightweightPopup.show): Insert the popup as first component
	in the layer, so that it overlaps it's caller.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(getPath): Don't include the popup.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(SelectMenuAction): New class. This invokes the popup when
	a menu is selected.
	(installDefaults): Install delay of 200 ms.
	(setupPostTimer): Implemented.
	(MouseInputHandler.mouseClicked): Do nothing here.
	(MouseInputHandler.mouseEntered): Use MenuSelectionManager
	magic to handle the selection. Open the menu via a timer.
	(MouseInputHandler.mousePressed): Use MenuSelectionManager
	magic to handle the selection. Open the menu via a timer.
	(MenuDragMouseHandler.menuMouseDragged): Probably use
	timer.
	(menuDragMouseEntered): Do nothing here.
  
2006-08-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* javax/management/openmbean/InvalidOpenTypeException.java,
	* javax/management/openmbean/KeyAlreadyExistsException.java:
	New files.

2006-08-02  Roman Kennke  <kennke@aicas.com>

	PR 27604
	* javax/swing/plaf/basic/BasicChooserUI.java
	(BasicFileView.getName): Fetch the real name from the
	file chooser's FileSystemView.
	* javax/swing/plaf/metal/MetalChooserUI.java
	(DirectoryComboBoxRenderer.getListCellRendererComponent):
	Set the text fetched from the JFileChooser.getName().
	* javax/swing/FileSystemView.java
	(createFileObject): When file is a filesystem root,
	create a filesystem root object first.
	(getSystemDisplayName): Return the filename. Added specnote
	about ShellFolder class that is mentioned in the spec.
	* javax/swing/UnixFileSystemView.java
	(getSystemDisplayName): Implemented to return the real name
	of a file, special handling files like '.' or '..'.

2006-08-03  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/icons/badge.png: Add file.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 28562
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(PropertyChangeHandler.propertyChange): Cleanly reinstall
	components when visual property chanegs.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 28562
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(PropertyChangeHandler.propertyChange): Uninstall and reinstall
	component when visual properties change.

2006-08-03  Roman Kennke  <kennke@aicas.com>

	PR 28534
	* javax/swing/JTree.java
	(JTree(TreeModel)): Set cell renderer to null.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(setCellRenderer): Finish editing before setting the
	cell renderer. Refresh the layout. Don't set the
	currentCellRenderer field here (that's done in updateRenderer).
	(updateRenderer): Handle createdRenderer field here too.
	Set renderer to a default handler when the current renderer
	in the JTree is null.

2006-08-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/23899
	* java/security/SecureRandom.java (next): Call nextBytes as per specs.

2006-08-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28556
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java (encodePrivateKey):
	Updated documentation to clarify that RFC-2459 states that the parameters
	field of the AlgorithmIdentifier element MUST be NULL if present.
	Amended the code to reflect the specs.
	(decodePrivateKey): Handle case of NULL AlgorithmIdentifier.parameters.

2006-08-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/openmbean/OpenMBeanParameterInfoSupport.java:
	Call parameter 'defaultValue' not 'defValue'.

2006-08-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/openmbean/OpenMBeanParameterInfoSupport.java:
	New file.

2006-08-01  Roman Kennke  <kennke@aicas.com>
  
  	PR 28562
  	* javax/swing/plaf/basic/BasicOptionPaneUI.java
  	(PropertyChangeHandler.propertyChange): Cleanly reinstall
	components when visual property chanegs.
  
2006-08-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/openmbean/OpenMBeanAttributeInfo.java:
	(toString()): Corrected documentation.
	* javax/management/openmbean/OpenMBeanConstructorInfo.java,
	* javax/management/openmbean/OpenMBeanInfo.java,
	* javax/management/openmbean/OpenMBeanOperationInfo.java:
	New files.
	* javax/management/openmbean/OpenMBeanParameterInfo.java:
	(toString()): Corrected documentation.
	
2006-08-01  Tania Bento  <tbento@redhat.com>

	* java/awt/Choice.java
	(remove(int)): Added documentation.

2006-08-01  Tania Bento  <tbento@redhat.com>
	
	* java/awt/Choice.java
	(remove(int)): An IllegalArgumentException should not be thrown
	if int is invalid.  Update selectedIndex and peer selection.

2006-08-01  Tania Bento  <tbento@redhat.com>

	* java/awt/CardLayout.java
	(toString): Changed format of string outputted.
	(goToComponent): Changed the order of the if-clause.

2006-07-31  Tom Tromey  <tromey@redhat.com>

	* INSTALL: Updated for ASM.

2006-07-31  Tom Tromey  <tromey@redhat.com>

	PR libgcj/23682:
	* java/nio/channels/SelectionKey.java (attach): Now synchronized.
	(attachment): Likewise.
	* java/nio/channels/spi/AbstractSelectionKey.java (cancel): Now
	synchronized.
	(isValid): Likewise.
	* gnu/java/nio/SelectionKeyImpl.java (impl): Now final
	(ch): Likewise.
	(interestOps): Synchronize.
	(readyOps): Likewise.
	* gnu/java/nio/SelectorImpl.java (register): Synchronize around
	interestOps call.

2006-07-31  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added note about the X peers.
	* INSTALL: Added install notes about the X peers.

2006-07-31  Carsten Neumann  <cn-develop@gmx.net>

	* StrictMath.java (getLowDWord): Return long instead of int.
	(getHighDWord): Likewise.
	(buildDouble): Take two long arguments.
	(cbrt): Adapted to int -> long change.
	(expm1): Likewise.
	(cosh): Likewise.

2006-07-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Add
	-avoid-version.

2006-07-31  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/Provider.java: Updated copyright year.
	Updated documentation.
	Formatting.
	(put): Updated documentation.
	Added security manager check.
	Canonicalize the key before adding its mapping.
	(get): Override superclass implementation to use canonicalized keys.
	(remove): Updated documentation.
	Added security manager check.
	Canonicalize the key before removing its mapping.
	(clear): Updated documentation.
	Added security manager check.
	(toCanonicalKey): New method.

2006-07-30  Matt Wringe  <mwringe@redhat.com>

	* gnu/java/security/Engine.java
	(getInstance): Ignore self referencing aliases.

2006-07-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java (getListeners): Revert
	un-genericization.

2006-07-30  Mark Wielaard  <mark@klomp.org>

	* resource/java/security/classpath.security: Add /dev/urandom as
	default securerandom.source.

2006-07-30  Mark Wielaard  <mark@klomp.org>

	* java/util/GregorianCalendar.java (maximums): Months can have up to
	6 weeks.
	(nonLeniencyCheck): weeks is either 5 or 6.

2006-07-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* javax/management/openmbean/OpenMBeanAttributeInfo.java,
	* javax/management/openmbean/OpenMBeanParameterInfo.java:
	New files.

2006-07-30  Matt Wringe  <mwringe@redhat.com>

	* gnu/java/security/Engine.java 
	(getInstance): Ignore self referencing aliases.

2006-07-30  Sven de Marothy  <sven@physto.se>

	* java/awt/Choice.java:
	(accessibleAction): Call select() directly.
	(add, insert, remove): Reimplement.
	(dispatchEventImpl): Always call super.
	(processItemEvent): Does not set the index.
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(append): removed.
	(nativeAdd): Name changed to add.
	(selection_changed_cb): Simplify callback.
	* gnu/java/awt/peer/gtk/GtkChoicePeer.java
	(selected): New field.
	(add): Replaced with native impl.
	(handleEvent): New method.	
	
2006-07-30  Sven de Marothy  <sven@physto.se>

	* java/awt/Choice.java:
	Reformat, fix copyright year.

2006-07-29  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java (paintingDoubleBuffered): Renamed
	static field isPaintingDoubleBuffered to not have the same name
	as a method.

2006-07-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* examples/gnu/classpath/examples/management/TestBeans.java:
	New file.
	* javax/management/MBeanAttributeInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanConstructorInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanFeatureInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanNotificationInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanOperationInfo.java:
	(toString()): Implemented.
	* javax/management/MBeanParameterInfo.java:
	(toString()): Implemented.
	* javax/management/StandardMBean.java:
	(getMBeanInfo()): Fix attribute naming.

2006-07-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	Extended javax.management.StandardMBean.
	* 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:
	Call the superclass with the appropriate class.
	* java/lang/management/ManagementFactory.java:
	(getOperatingSystemMXBean()): Catch exception from
	StandardMBean.
	(getRuntimeMXBean()): Likewise.
	(getClassLoadingMXBean()): Likewise.
	(getThreadMXBean()): Likewise.
	(getMemoryMXBean()): Likewise.
	(getCompilationMXBean()): Likewise.
	(getMemoryPoolMXBeans()): Likewise.
	(getMemoryManagerMXBeans()): Likewise.
	(getGarbageCollectorMXBeans()): Likewise.
	* javax/management/MBeanFeatureInfo.java:
	hashCode()): Fixed to check for null values.

2006-07-29  Matt Wringe  <mwringe@redhat.com>

	* gnu/java/security/Engine.java
	(getInstance): Add case insentivity to algorithm names
	* java/security/Provider.java
	(put): Stop using canonical key naming
	(remove): Likewise
	(toCanonicalKey): Method removed
	(get): Method removed, no longer needs to overwrite
	parent implementation

2006-07-29  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkTextLayout.java: Removed.
	* gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java: Removed.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h: Removed.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h: Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c: Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c:
	Removed.

2006-07-29  Sven de Marothy  <sven@physto.se>

	* java/math/BigDecimal.java
	Adjust copyright date.
	(divide(BigDecimal): Implement.
	(precision): Reimplement.
	(numDigitsInBigInteger, numDigitsInLong): Removed.
	(toString): Get exponent from string length,
	fix negative values with exponential form.
	(toEngineeringString): Same as for toString.
	(setScale): Throw ArithmeticException if scale < 0.

2006-07-27  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/java2d/CubicSegment.java: Added import.
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first): Renamed to cp1().
	(getDisplacedSegments): Implemented.
	(last): Renamed to cp2().
	* gnu/java/awt/java2d/LineSegment.java
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first): Renamed to cp1().
	(last): Renamed to cp2().
	* gnu/java/awt/java2d/QuadSegment.java
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first): Renamed to cp1().
	(last): Renamed to cp2().
	* gnu/java/awt/java2d/Segment.java: Added comments.
	(first): New field.
	(Segment): Keep track of first element in list.
	(add): Update first & last element variables.
	(cp1): Renamed from first().
	(c2): Renamed from last().
	(first()): Renamed to cp1() to reduce ambiguity.
	(last()): Renamed to cp2() to reduce ambiguity.
	(reverseAll): Update first element variable..
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(draw): Remove flattening path iterator.
	* java/awt/BasicStroke.java: Clarified comments.
	(addSegments): Refactored some code into joinSegments and
	joinInnerSegments.
	(capEnd): Rename of Segment.first() and Segment.end().
	(joinInnerSegments): New method.
	(joinOuterSegments): New method.
	(joinSegments): Refactored some code into joinOuterSegments.
	(solidStroke): Connect segments together properly.

2006-07-28  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add
	-avoid-version.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS):
	Likewise.
	* native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS):
	Likewise.
	* native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS):
	Likewise.

2006-07-28  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Enable -Werror by default on Linux-with-gcc.

2006-07-28  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/GtkDragSourceContextPeer.c:
	Removed function declarations.
	(connect_signals_for_widget): Removed implementation because
	stub functions have been removed.
	(drag_begin_cb): Removed function.
	(drag_motion_cb): Likewise.
	(drag_data_get_cb): Likewise.
	(drag_data_delete_cb): Likewise.
	(drag_drop_cb): Likewise.
	(drag_end_cb): Likewise.
	(drag_data_received_cb): Likewise.	

2006-07-28  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.93-pre.

2006-07-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/Makefile.am: Added source 1.4 compliance option when ECJ is used.

2006-07-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java: Removed unused import.
	(getCallbackHandler): Fully qualify linked class in javadoc.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java (cmdOptionsParser): Removed.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java (imported): Likewise.
	* tools/gnu/classpath/tools/keytool/Main.java (printHelp): Likewise.

2006-07-27  Tom Tromey  <tromey@redhat.com>

	PR classpath/28486:
	* java/net/URLStreamHandler.java (equals): Properly handle default
	port.  Rewrote javadoc.  Don't compare 'authority' parts of URLs.

2006-07-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(documentCV): Made field private.
	(bypass): Made field private.
	(bidiRoot): New field.
	(AbstractDocument): Initialize bidiRoot.
	(getBidiRootElement): Return bidiRoot.
	(getRootElements): Adjusted to also return the bidiRoot element.
	(BranchElement.startOffset): Removed unneeded field.
	(BranchElement.endOffset): Removed unneeded field.
	(BranchElement.BranchElement): Removed unneeded fields.
	(BranchElement.getEndOffset): Don't explicitly throw NPE here. This is
	done automatically when there's no element left in the array.
	(BranchElement.getStartOffset): Likewise.
	(BranchElement.replace): Reordered calculations to avoid double
	calculations.
	(removeImpl): Silently ignore requests with length <= 0.
	* javax/swing/text/GapContent.java
	(createPosition): Removed explicit check for correct offset.
	This class can deal with offsets outside the document.
	(shiftEnd): Update all positions, even those outside the
	document.
	(adjustPositionsInRange): Fixed to also adjust positions outside
	the document boundary.

2006-07-18  Kyle Galloway  <kgallowa@redhat.com>

    * gnu/classpath/jdwp/event/ExceptionEvent.java: Added _klass field to hold
    defining class.
    (getParameter): Returns _klass field instead of determining
    class from _instance.
    (setCatchLoc): New method.
    (writeData): Now assumes Location deals with empty locations instead of
    using null.
    * gnu/classpath/jdwp/util/Location.java (write): Check for empty
    locations and write out accordingly.
    (getEmptyLocation): New method. 

2006-07-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/SimpleAttributeSet.java
	(EMPTY): Use EmptyAttributeSet for this field rather than
	SimpleAttributeSet.
	* javax/swing/text/EmptyAttributeSet.java: New class. Implements
	an empty and immutable AttributeSet.

2006-07-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(reshape): Invalidate the component itself only when the
	size has changed. Invalidate the parent always. Fixed
	repainting. Pulled out the notification into
	notifyReshape().
	(notifyReshape): New helper method. Notify interested listeners
	about a reshape.
	(update): Simply call paint() without clearing the background.
	This is done in Container.update() if appropriate.
	(repaint): Delagate the repaint to the nearest heavyweight
	parent (for lightweights) and send an UPDATE event, rather than
	calling	ComponentPeer.repaint().
	* java/awt/Container.java
	(backCleared): Removed field.
	(paint): Removed handling of backCleared flag.
	(update): Only paint if the container is actually
	showing. Removed handling of backCleared flag.

2006-07-27  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java: Fixed copyright and
	authorship.
	(NavigateAction): New inner class.
	(NavigatePageDownAction): New inner class.
	(NavigatePageUpAction): New inner class.
	(RequestFocusAction): New inner class.
	(RequestFocusForVisibleComponentAction): New inner class.
	(FocusHandler.focusGained): Implemented.
	(FocusHandler.focusLost): Implemented.
	(MouseHandler.mouseReleased): Implemented.
	(MouseHandler.mousePressed): Rewritten.
	(PropertyChangeHandler.propertyChange): Reset currentScrollOffset and
	currentScrollLocation to 0.
	(TabbedPaneLayout.calculateSize): Stored tab count in local variable,
	removed local variables, fixed indentation to stay under 80 column
	limit.
	(TabbedPaneLayout.calculateTabRects): Decrease tab area position by
	one, set selectedIndex to 0 if its negative, corrected start values
	for normalization, suppressed padding when only one tab run,
	(TabbedPaneLayout.minimumLayoutSize): Toggled argument value.
	(TabbedPaneLayout.normalizeTabRuns): Fixed indentation to stay under
	80 column limit, corrected the starting value for the bounds fixing
	phase.
	(TabbedPaneLayout.preferredTabAreaWidth): Fixed indentation.
	(TabbedPaneLayout.rotateTabInRuns): Corrected comparison value for
	selectedRun, set start index for loop to 0.
	(TabbedPaneScrollLayout.preferredLayoutSize): Toggled argument value.
	(TabbedPaneScrollLayout.calculateTabRects): Rewritten.
	(TabbedPaneScrollLayout.layoutContainer): Added scrolling button
	alignment and visibility handling.
	(TabSelectionHandler.stateChanged): Do revalidation only in wrap tab
	layout mode.
	(ScrollingPanel.ScrollingPanelUI.paint): Rewritten.
	(currentScrollOffset): New field.
	(tabRuns): Rewritten documentation.
	(selectedColor): New field.
	(tempTextRect): New field.
	(tempIconRect): New field.
	(scrollTab): New method.
	(updateButtons): New method.
	(updateViewPosition): New method.
	(createLayoutManager): Reordered method calls, predefine new fields,
	register proper listeners.
	(uninstallComponents): Implemented.
	(installDefaults): Corrected property names, fixed indentation,.
	(uninstallDefaults): Set new fields to null.
	(uninstallListeners): Remove listeners from components neccessary for
	scrolling tab layout.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	(paint): Paint tab area background.
	(paintTabArea): Fixed indentation, removed usage of local Rectangle
	objects.
	(getTabLabelShiftX): Rewritten.
	(getTabLabelShiftY): Rewritten.
	(paintFocusIndicator): Reindented.
	(paintTabBorder): Rewritten.
	(paintTabBackground): Corrected color usage, rewritten background
	rectangle painting.
	(paintContentBorderTopEdge): Rewritten.
	(paintContentBorderBottomEdge): Rewritten.
	(paintContentBorderLeftEdge): Rewritten.
	(paintContentBorderRightEdge): Rewritten.
	(tabForCoordinate): Return selected index when no tab could be
	found, removed FIXME note.
	(getRunForTab): Changed return value for first if-statement.
	(navigateSelectedTab): Fixed last argument for both
	getTabRunOffset() calls.
	(selectedNextTabInRun): Added scrolling code.
	(selectedPreviousTabInRun): Added scrolling code.
	(selectedNextTab): Added scrolling code.
	(selectedPreviousTab): Added scrolling code.
	(selectAdjacentRunTab): Added scrolling code.
	(getTextViewForTab): Added FIXME note.
	(calculateTabHeight): Changed FIXME note.
	(getTabRunOffset): Fixed indentation.
	(getNextTabIndexInRun): Corrected return value.
	(rotateInsets): Make TOP case the default in switch-statement.
	(getActionMap): New method.
	(createActionMap): New method.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java:
	(createLayoutManager): Rewritten.
	(paintLeftTabBorder): Do not paint left line when previous tab
	is selected but current tab is the first in its run, do not paint
	left line when current tab is selected and is first in its run.
	(paintRightTabBorder): Added missing setColor() call, fixed color
	usage, do not paint right line if previous tab is selected but
	current tab is the first in its run.
	(paintBottomTabBorder): Do not paint left line if tab is selected
	and is the first tab in the last run.
	(paintFocusIndicator): New method.
	(getLabelShiftX): New method.
	(getLabelShiftY): New method.

2006-07-27  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix): Remove
	g_assert from unused obj.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Mark
	obj as unused and remove g_assert on it.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(markCompletelyDirty): Add dirty region with Integer.MAX_VALUE
	for the component.
	(isCompletelyDirty): Consider a component completely dirty
	when it has a dirty region with Integer.MAX_VALUE.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* java/awt/KeyboardFocusManager.java
	(getGlobalFocusOwner): Explicitly check for thread security.
	(getGlobalPermanentFocusOwner): Explicitly check for thread security.
	(getGlobalFocusedWindow): Explicitly check for thread security.
	(getGlobalActiveWindow): Explicitly check for thread security.
	(getGlobalCurrentFocusCycleRoot): Explicitly check for thread security.
	(getGlobalObject): Added new argument for specifying if
	a security check should be performed or not.
	(setGlobalObject): Don't check for thread security when
	calling getGlobalObject.

2006-07-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanConstructorInfo.java:
	Documentation fix.
	* javax/management/MBeanInfo.java:
	(MBeanInfo(String,String,MBeanAttributeInfo[],
	MBeanConstructorInfo[], MBeanOperationInfo[],
	MBeanNotificationInfo[])): Implemented.
	(equals(Object)): Likewise.
	(getAttributes()): Likewise.
	(getConstructors()): Likewise.
	(getOperations()): Likewise.
	(hashCode()): Likewise.
	* javax/management/MBeanOperationInfo.java,
	* javax/management/NotCompliantMBeanException.java,
	* javax/management/StandardMBean.java:
	New files.

2006-07-26  Sven de Marothy  <sven@physto.se>

	* java/awt/geom/GeneralPath.java: Fix severe typo.
	
2006-07-26  Sven de Marothy  <sven@physto.se>

	* include/java_lang_VMSystem.h
	* vm/reference/java/lang/VMSystem.java
	* native/jni/java-lang/java_lang_VMSystem.c
	(nanoTime, currentTimeMillis): Switch the former to native code and
	the latter to java.
	
2006-07-26  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/qt/QtCheckboxPeer.java: Removed unneeded imports.
	* gnu/java/awt/peer/qt/QtComponentGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtComponentPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtContainerPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtDialogPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtFontMetrics.java: Likewise.
	* gnu/java/awt/peer/qt/QtFontPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtGraphicsEnvironment.java: Likewise.
	* gnu/java/awt/peer/qt/QtImage.java: Likewise.
	* gnu/java/awt/peer/qt/QtImageConsumer.java: Likewise.
	* gnu/java/awt/peer/qt/QtImageDirectGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtImageGraphics.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuBarPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtMenuItemPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtPopupMenuPeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtScreenDeviceConfiguration.java: Likewise.
	* gnu/java/awt/peer/qt/QtScrollPanePeer.java: Likewise.
	* gnu/java/awt/peer/qt/QtToolkit.java: Likewise.
	* gnu/java/awt/peer/qt/QtVolatileImage.java: Likewise.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* java/awt/KeyboardFocusManager.java
	(getFocusOwner): Don't check permanent owner.
	(getGlobalFocusOwner): Don't check permanent owner.

2006-07-26  Carsten Neumann  <cn-develop@gmx.net>

	* StrictMath.java (cosh): New method.
	(expm1): New method.
	(EXPM1_Q1): New field.
	(EXPM1_Q2): Likewise.
	(EXPM1_Q3): Likewise.
	(EXPM1_Q4): Likewise.
	(EXPM1_Q6): Likewise.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(mousePressed): Request focus if appropriate.
	* javax/swing/text/DefaultCaret.java
	(mousePressed): Also handle the focus of the text component
	as specified. Don't consume events.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(focusRequest): Removed field.
	(postFocusEvent(int,boolean,Component)): Removed.
	(postFocusEvent(int,boolean)): Reverted to post event using
	the heavyweight component.
	(requestFocus): Post focus event using the heavyweight
	component.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(requestFocus): Post focus event using the heavyweight
	component.
	* java/awt/AWTEvent.java
	(isFocusManagerEvent): New field, indicating if this is
	an event that is redispatched by the KeyboardFocusManager.
	* java/awt/Component.java
	(requestFocusImpl): Register component for
	heavyweight->lightweight mapping.
	(dispatchEventImpl): Retarget focus events before dispatching
	to the KeyboardFocusManager. Use new AWTEvent flag instead
	of locking hack. Dispatch all events through the
	KeyboardFocusManager. Don't request focus on lightweight
	components.
	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Pulled out handling of FOCUS_GAINED and
	FOCUS_LOST.
	(handleFocusGained): Fixed handling of temporary vs permanent
	focus changes. Added some checks.
	(handleFocusLost): Fixed handling of temporary vs permanent
	focus changes. Added some checks.
	* java/awt/EventDispatchThread.java
	(run): Don't dispatch to KeyboardFocusManager here. This
	is done in Component.dispatchEventImpl().
	* java/awt/KeyboardFocusManager.java
	(redispatchEvent): Use new AWTEvent flag instead of locking hack.
	(focusRequests): New field.
	(retargetFocusEvent): New method. Retargets focus events
	that come from heavyweights to the correct lightweight component.
	(addLightweightFocusRequest): New method. Stores a mapping
	for later retargetting of heavyweight focus events.
	* java/awt/Window.java
	(addFocusListener): Removed bogus method. If at all, this
	should be performed in the KeyboardFocusManager.
	(Window): Don't install a focus listener on the Window.

2006-07-26  Robert Schuster <robertschuster@fsfe.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(drawLine): Apply shift to line coordinates.

2006-07-26  Robert Schuster <robertschuster@fsfe.org>

	* java/awt/image/ColorConvertOp.java: Fixed copyright header.
	(copyimage): Do not call setRenderingHints() when the respective map
	does not exist.
	(filter): Removed code to clone the ColorModel instance.
	* java/awt/image/ColorModel.java:
	(cloneColorModel): Removed.

2006-07-26  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/JTabbedPane.java:
	(setSelectedIndex): Removed updating of component visibility status,
	added note.
	(remove(Component)): Use indexOfComponent() to find whether we have
	to use super.remove(int) or removeTabAt().

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JOptionPane.java
	(createDialog): Add property change handler for closing
	the dialog when the value property changes.
	(ValuePropertyHandler): New inner helper class.
	* javax/swing/plaf/basic/BasicOptionPaneUI.java
	(OptionPaneCloseAction): New class.
	(messageForeground): Removed field.
	(messageBorder): Removed field.
	(buttonBorder): Removed field.
	(addIcon): Configure the new label.
	(addMessageComponents): Configure newly created labels.
	(burstStringInto): Likewise.
	(createButtonArea): Install border here.
	(createMessageArea): Install border and foreground here.
	(createSeparator): Added comment and removed
	NotImplementedException.
	(installComponents): Don't install the UI defaults for the
	message and button area here. This is moved to the
	corresponding create* methods. Adjusted comment about
	separator.
	(installDefaults): Removed initialization of removed fields.
	(installKeyboardActions): Implemented.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(uninstallDefaults): Removed de-initialization of removed fields.
	(uninstallKeyboardActions): Implemented.
	(configureLabel): New helper method.
	* javax/swing/plaf/basic/BasicTableUI.java
	(getActionMap): Fixed the UI property names.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(getActionMap): Fixed the UI property names.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(getDataElements): Check for negative x or y,
	(getPixels): Likewise,
	(getSamples): Likewise,
	(setSamples): Likewise.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(ToolBarAction): New inner class for handling keyboard
	actions.
	(installKeyboardActions): Implemented.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(installListeners): Install focus listener on toolbar's
	children, rather than the toolbar itself.
	(navigateFocusedComp): Implemented.
	(uninstallKeyboardActions): Implemented.
	(uninstallListeners): Uninstall focus listener from
	toolbar's children, rather than the toolbar itself.
	(ToolBarContListener.componentAdded): Install focus
	listener on added child.
	(ToolBarContListener.componentRemoved): Uninstall focus
	listener from removed child.
	(ToolBarFocusListener.ToolBarFocusListener): Nothing to do here.
	(ToolBarFocusListener.focusGained): Implemented.
	(ToolBarFocusListener.focusLost): Implemented.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Notify old focus owner when it has lost
	focus.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(FocusHandler.focusGained): Implemented to refresh the
	lead cell.
	(FocusHandler.focusLost): Implemented to refresh the
	lead cell.
	(FocusHandler.repaintLeadCell): New helper method.
	(MouseInputHandler.mouseEntered): Do nothing here.
	(MouseInputHandler.mouseExited): Do nothing here.
	(MouseInputHandler.mouseMoved): Do nothing here.
	(installKeyboardActions): Rewritten to use a shared InputMap
	and ActionMap and correctly install the maps via SwingUtilities
	methods.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(ActionListenerProxy): Removed unneeded class.
	(TableAction): Made class static.
	(TableAction.actionPerformed): Determine table by fetching
	the event source. Pass the table to helper methods.
	Use __command__ hack to determine the action command.
	(TableAction.getFirstVisibleColumnIndex): Get table as argument.
	(TableAction.getLastVisibleColumnIndex): Get table as argument.
	(TableAction.getFirstVisibleRowIndex): Get table as argument.
	(TableAction.getLastVisibleRowIndex): Get table as argument.
	(TableAction.advanceMultipleSelection): Get table as argument.
	(uninstallDefaults): Do nothing here.
	(uninstallKeyboardActions): Uninstall the keyboard actions.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(processKeyBinding): Store the action command as property
	in the Action instance that we call. This allows for
	improvement on the side of the Action.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): Use fillRect() instead of drawLine() to
	fill single pixels.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(getChars): Check for negative length and throw
	BadLocationException.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(FocusAction): Made class static.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Add keyboard bindings for
	PopupMenu.

2006-07-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(getLookAndFeelDefaults): Return the look and feel defaults.
	(setLookAndFeel): Improved exception messsage.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StringContent.java
	(StringContent): Changed initialLength to 10.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Vector.java: Fixed API doc typo.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(createCompatibleSampleModel): Fixed typo in loop increment, set
	correct scanlineStride, and updated API docs.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(NavigateAction): New inner class. This is responsible for
	keyboard navigation through menus.
	(KeyboardHelper): New inner class. This manages the
	keyboard mappings and focus when a popup opens or closes.
	(keyboardHelper): New static field.
	(numPopups): New static field.
	(installUI): Create KeyboardHelper for first popup.
	Call installKeyboardActions().
	(installKeyboardActions): Removed NotImplementedException.
	This method is a no-op.
	(installKeyboardActionsImpl): New method. Installs keyboard
	mapping when a popup is opened.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.
	(uninstallUI): Uninstall KeyboardHelper when last Popup is
	uninstalled. Call uninstallKeyboardActions().
	(uninstallKeyboardActions): Removed NotImplementedException.
	This method is a no-op.
	(uninstallKeyboardActionsImpl): New method. Uninstalls keyboard
	mapping when a popup is closed.
	
2006-07-25  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(requestFocus()): Reimplemented to use requestFocusImpl().
	(requestFocus(boolean)): Reimplemented to use requestFocusImpl().
	(requestFocusInWindow()): Reimplemented to use requestFocusImpl().
	(requestFocusInWindow(boolean)): Reimplemented to use
	requestFocusImpl().
	(requestFocusImpl): Reimplemented focus request to use
	new peer method. Also added some obvious additional checks
	for rejecting focus requests early.
	* java/awt/ComponentPeer.java
	(requestFocus(Component,boolean,boolean,long)): Documented
	this method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(requestFocus): New field.
	(gtkWidgetHasFocus): New native method.
	(gtkWidgetCanFocus): New native method.
	(requestFocus): Replaced with assert false to prevent
	usage of obsolete method.
	(postFocusEvent(int,boolean,Component)): New overloaded method
	for posting the focus event to a specific target.
	(postFocusEvent(int,boolean)): Post event to requestFocus
	component.
	(requestFocus(Component,boolean,boolean,long)): Implemented.
	(getWindowFor): New helper method.
	(isLightweightDescendant): New helper method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(gtkWindowHasFocus): New native method.
	(requestFocus(Component,boolean,boolean,long)): New method.
	Overrides GtkComponentPeer method to specially handly the
	case when a Window receives a focus request for a lightweight
	child.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetHasFocus): New native method.
	(gtkWidgetCanFocus): New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWindowHasFocus): New native method.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h:
	Regenerated.

2006-07-25  Francis Kung  <fkung@redhat.com>

	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Add check for valid component.

2006-07-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanConstructorInfo.java:
	New file.
	* javax/management/MBeanNotificationInfo.java:
	Documentation fix.
	* javax/management/MBeanParameterInfo.java:
	New file.

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

	* java/awt/peer/gtk/CairoGraphics.java:
	(drawLine): Added special case for 1 pixel lines.

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

        Fixes PR27844.
	* java/awt/peer/gtk/CairoGraphics.java:
	(drawLine): Removed calls to shifted().

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

	* javax/swing/JTabbedPane.java:
	(remove(Component)): Rewritten.
	(setSelectedIndex): Implemented updating of component visibility state.

2006-07-25  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	(init): Default to the actual depth in the worst case.
	
	* java/awt/Font.java
	(createFont(int, File)): New method.
	
2006-07-25  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #28413
	* gnu/java/util/regex/RETokenEnd.java(check_java_line_terminators):
	New field.
	(RETokenEnd): New constructer to set check_java_line_terminators.
	(matchThis): Checck line terminators if check_java_line_terminators.
	* gnu/java/util/regex/RETokenStart.java: Likewise.
	* gnu/regexp/RE.java(initialize): Use the new constructors for
	RETokenEnd and RETokenStart if REG_MULTILINE is set.
	* java/util/regex/Pattern.java(Patteren): Changed so that
	gnu/regexp/RE.java may use the new the new constructors.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(focusTraversalPolicyProvider): New field.
	(isFocusTraversalPolicyProvider): New method.
	(setFocusTraversalPolicyProvider): New method.
	* java/awt/ContainerOrderFocusTraversalPolicy.java
	(getFirstComponent): Use accept() instead of lengthy checks.
	Don't fetch getComponents() to avoid copying of array.
	Traverse down the hierarchy to find the first focused component.
	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Let the initial component request focus.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/Segment.java
	(last): Update current index before returning DONE for zero count.
	
2006-07-24  Mark Wielaard  <mark@klomp.org>

	* javax/swing/tree/TreePath.java (equals): Swap path equals call.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(FocusAction): New inner class. Used to grab focus.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	(getActionMap): New helper method.
	(createDefaultActions): New helper method.

2006-07-25  Robert Schuster <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Install instantiable basic look and feel.
	(InstantiableBasicLookAndFeel): New inner class.

2006-07-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(GlassPaneDispatcher.dragTarget): New field.
	(GlassPaneDispatcher.isDragging): New field.
	(GlassPaneDispatcher.pressedComponent): Removed field.
	(GlassPaneDispatcher.tempComponent): Removed field.
	(GlassPaneDispatcher.pressCount): Removed field.
	(GlassPaneDispatcher.mousePressed): Call
	borderListener.mousePressed() to activate the frame.
	(acquireComponentForMouseEvent): Removed method.
	(handleEvent): Rewritten.
	(redispatch): New method.
	(InternalFramePropertyChangeListener.propertyChange):
	Make glasspane invisible when frame is selected, and visible
	if it gets deselected.
	
2006-07-25  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Dispatch event to real target if
	the dragTarget has become invisible in the meantime.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/TabSet.java
	(equals): New method override for 1.5,
	(hashCode): Likewise,
	(toString): Added spaces to match reference implementation.

2006-07-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/IntrospectionException.java,
	* javax/management/MBeanAttributeInfo.java:
	New files.
	* javax/management/MBeanNotificationInfo.java:
	Documentation cleanups.
	
2006-07-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/TabSet.java
	(TabSet): Check for null argument,
	(getTab): Throw IllegalArgumentException for index out of bounds,
	(getTabIndexAfter): Changed test to '<=',
	and updated API docs all over,
	* javax/swing/text/TabStop.java: Updated API docs.

2006-07-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/TabStop.java
	(toString): Don't use 'left ' prefix, and added space between tab
	location and '(w/leader)' suffix.

2006-07-24  Francis Kung  <fkung@redhat.com>

	* javax/swing/JComboBox.java
	(DefaultKeySelectionManager): Implemented.
	(createDefaultKeySelectionManager): Implemented.
	(getKeySelectionManager): Implemented.
	(processKeyEvent): Removed duplicate code.
	* javax/swing/JPopupMenu.java
	(selectionModel): Changed visibility.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(KeyHandler.keyPressed): Added navigation keys.
	(configureEditor): Add key listener.
	(installListeners): Install focus listener to combo box.
	(isNavigationKey): Added enter, escape, and tab.
	(selectPreviousPossibleValue): Added out of bounds check.
	(unconfigureEditor): Remove key listener.
	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(paintComponent): Highlight combo box when in focus.

2006-07-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(isLeftMouseButton): Fixed condition.
	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Dispatch MOUSE_ENTERED even when mouse
	is dragged.

2006-07-24  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(setPaint): Fixed scaleX and scaleY.

2006-07-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(handleInsert): Repaint the whole table for variable row
	height tables and an optimized region otherwise.
	(handleDelete): Likewise.
	(handleUpdate): Likewise.

2006-07-24  Mario Torre  <neugens@limasoftware.net>

	* gnu/java/awt/peer/gtk/GtkToolkit.java (createDragGestureRecognizer):
	now explicity registerListeners on GtkMouseDragGestureRecognizer
	instance.
	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java
	(unregisterListeners): new method, overrided from base class
	to rise visibility (from protected to public).
	(registerListeners): Likewise.
	(GtkMouseDragGestureRecognizer): fixed potential threading issue:
	removed call to registerListeners from the constructor.

2006-07-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java,
	* java/lang/management/MemoryPoolMXBean.java:
	(getType()): Changed return type to MemoryType.
	* java/lang/management/MemoryType.java:
	New file.

2006-07-23  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Check for moc and moc-qt4.

2006-07-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/Kernel.java: API doc updates.

2006-07-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/CairoSurface.java: Optimize pixel swap code a
	bit more.

2006-07-22  Mark Wielaard  <mark@klomp.org>

	* java/lang/Iterable.java: Import all of java.util.
	* lib/mkcollections.pl.in (javautilclasses): Add Iterable.
	* lib/Makefile.am: Only search for .java files in COLLECTIONS_PREFIX.

2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Document getType(String).
	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java,
	* java/lang/management/MemoryPoolMXBean.java:
	(getType()): Implemented.
	* vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java
	(getType(String)): Implemented.
	
2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Move end of itemization block.

2006-07-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	(initComponentDefaults): Added new properties, added comments.
	
2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Mention callback methods.
	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	(fireNotification(String,String,long,long,long,long,long)):
	Made package-private.
	(fireThresholdExceededNotification(String,long,long,long,
	long,long)): Likewise.
	(fireCollectionThresholdExceededNotification(String,long,
	long,long,long,long)): Likewise.
	* java/lang/management/MemoryMXBean.java:
	Document notifications.

2006-07-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	(fireNotification(String,String,long,long,long,long,long)):
	Implemented.
	(fireThresholdExceededNotification(String,long,long,long,
	long,long)): Likewise.
	(fireCollectionThresholdExceededNotification(String,long,
	long,long,long,long)): Likewise.
	* java/lang/management/MemoryNotificationInfo.java:
	Use composite type from MemoryMXBeanImpl.
	* javax/management/openmbean/CompositeData.java:
	Correct documentation.
	* javax/management/openmbean/CompositeDataSupport.java,
	* javax/management/openmbean/InvalidKeyException.java:
	New files.

2006-07-22  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/IntegerUtil.java: New file.

2006-07-22  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28100
	* gnu/javax/crypto/cipher/TripleDES.java: Updated documentation.
	(KEY_SIZE): Likewise.
	(adjustParity(int,byte[],int): New method.
	(adjustParity(byte[],int): Call above method with 3 as 1st argument.
	(isParityAdjusted(int,byte[],int)): New method.
	(isParityAdjusted): Call above method with 3 as 1st argument.
	(keySizes): Add 8 and 16 as other valid key sizes.
	(makeKey): Amended to cater for 1, 2 and 3 independent DES keys.

2006-07-22  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/CairoSurface.java (CairoSurface): Rearrange
	code for the pixel swap routine to be more efficient.

2006-07-21  Carsten Neumann  <cn-develop@gmx.net>

	* java/util/CopyOnWriteArrayList.java (indexOf(E, int)): New method.
	(lastIndexOf(E, int)): Likewise.
	(add(E)): Increase the size of newData array by one.
	(add(int, E)): Likewise.

2006-07-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java:
	Removed unused fields.
	(GtkMouseDragGestureRecognizer): Removed initializations.

2006-07-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java
	(GtkMouseDragGestureRecognizer): New constructor.
	(GtkMouseDragGestureRecognizer): New constructor.
	(GtkMouseDragGestureRecognizer): New constructor.
	(mouseClicked): Removed FIXME.
	(mousePressed): Implemented.
	(mouseReleased): Implemented.
	(mouseEntered): Implemented.
	(mouseDragged): Implemented to check mouse point and trigger origin.
	(mouseMoved): Removed FIXME.
	(getDropActionFromEvent): New helper function used to convert mouse event
	modifiers to a drop action.
	* java/awt/dnd/DragSource.java
	(getDragThreshold): Changed to return some arbitrary value for testing
	purposes.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget): Also consider components that have their eventMask
	set, for compatibility with stonage AWT. Optimized check
	for MouseListener.
	(handleMouseEvent): Likewise.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(tableChanged): Split out handling of the event into multiple
	subroutines.
	(handleCompleteChange): New method. Clear the selection and
	check the lead/anchor indices.
	(handleInsert): New method. Check the lead/anchor indices.
	Optimized repainting.
	(handleDelete): New method. Check the lead/anchor indices.
	Optimized repainting.
	(handleUpdate): New method. Optimized repainting.
	(checkSelection): New helper method.
	(setSelectionModel): Update lead/anchor indices.

2006-07-20  Lillian Angel  <langel@redhat.com>

	PR 28440
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(dispose): Reset all fields.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XToolkit.java
	(createImage(InputStream)): Only copy image to Pixmap if
	it's actually opaque. Transparent images are left as
	BufferedImage and composited later onto the screen.
	* gnu/java/awt/peer/x/XGraphics.java
	(XGraphics): Fetch some parameters for image rendering.
	(drawImage): Added special handling of transparent images.
	(getRGB): New helper method.
	(setRGB): New helper method.

2006-07-20  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/imageio/IIOInputStream.java: New class. Wraps
	ImageInputStreams as normal InputStreams.
	* gnu/javax/imageio/gif/GIFStream.java:
	Moved to gnu/javax/imageio/IIOInputStream.java.
	* gnu/javax/imageio/gif/GIFImageReader.java
	(readImage): Use IIOInputStream.
	* gnu/javax/imageio/gif/GIFImageReaderSpi.java
	(canDecodeInput): Use IIOInputStream.
	* gnu/javax/imageio/png/PNGException.java: Make subclass
	of IOException.
	* gnu/javax/imageio/png/PNGImageReader.java: New class.
	Implements the ImageIO ImageReader for PNG.
	* gnu/javax/imageio/png/PNGImageReaderSpi.java: New class.
	Implements the ImageIO ImageReaderSpi for PNG.
	* javax/imageio/spi/IIORegistry.java:
	(IIORegistry): Add PNGImageReaderSpi.

2006-07-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(getPixel): Added argument check,
	(getSample): Modified exception message.

2006-07-20  David Gilbert  <david.gilbert@object-refinery.com>

	PR Classpath/28422
	* java/awt/image/ConvolveOp.java
	(filter(Raster, WritableRaster)): Reimplemented,
	(fillEdge): New private method.

2006-07-19  Keith Seitz  <keiths@redhat.com>

	* include/jvmti.h (JVMTI_VERSION_1_0): Define.
	(JVMTI_VERSION): Define.

2006-07-19  Roman Kennke  <kennke@aicas.com>

	* resource/gnu/regexp/MessagesBundle.properties,
	* resource/gnu/regexp/MessagesBundle_fr.properties,
	* resource/gnu/regexp/MessagesBundle_it.properties:
	Moved to resource/gnu/java/util/regex.
	* resource/gnu/java/util/regex/MessagesBundle.properties,
	* resource/gnu/java/util/regex/MessagesBundle_fr.properties,
	* resource/gnu/java/util/regex/MessagesBundle_it.properties:
	New files.
	* gnu/java/util/regex/RE.java
	Use new resource bundle location.

2006-07-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): Refactored. The paintChildrenOptimized method
	has been moved back in here. Added locking of the tree and
	only check for completely obscured child components
	when not optimized drawing enabled. Use Graphics.create() to
	protect from irreversible changes.
	(isCompletelyObscured): New helper method.
	(paintComponent): Also use Graphics.create() for Graphics2D,
	to protect from irreverible changes.
	(clipAndTranslateGraphics): Refactored to use more efficient
	iterative (vs recursive) approach.
	* javax/swing/RepaintManager.java
	(getOffscreenBuffer): Create image from root component.
	
2006-07-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphics.java
	(translate): Don't set the clip on the X server.
	(clipRect): Use setXClip() to set the clip on the X server.
	(hitClip): More efficient and correct implementation.
	(setClip): Use setXClip() to set the clip on the X server.
	(setClip(Shape)): Use setXClip() to set the clip on the X server.
	(copyArea): Translate and clip the source rectangle correctly.
	(dispose): Only flush when object is not yet disposed.
	(clone): Use setXClip() to set the clip on the X server.

2006-07-19  Sven de Marothy  <sven@physto.se>

	* 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/PNGPalette.java,
	* gnu/javax/imageio/png/PNGPhys.java,
	* gnu/javax/imageio/png/PNGTime.java:
	New files.

2006-07-19  Sven de Marothy  <sven@physto.se>

	* java/net/Inet6Address.java:
	(getScopedId, getScopedInterface): New methods.
	
2006-07-19  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/awt/Demo.java
	(DragDropWindow): Fixed typo in Label text.
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
	(GtkDragSourceContextPeer): Removed unneeded initialization for field.
	(startDrag): Initialized context field.
	(transferablesFlavorsChanged): Removed FIXME. Nothing is done in this
	function.
	(dragEnter): New function.
	(dragExit): Likewise.
	(dragDropEnd): Likewise.
	(dragMouseMoved): Likewise.
	(dragOver): Likewise.
	(dragActionChanged): Likewise.

2006-07-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/26302
	* resource/java/security/classpath.security: Updated copyright year.
	(auth.login.defaultCallbackHandler): New property; set to our default
	callback handler. This is needed by the LoginContext when no callback
	handler was specified.
	* javax/security/auth/login/LoginContext.java: Updated copyright year.
	(LoginContext(4)): Assign passed parameters to local fields before invoking
	lookup method.

2006-07-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphics.java
	(drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver)):
	Fixed ordering of parameters.

2006-07-18  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	(MemoryMXBeanImpl()): Implemented.
	(ListenerData): New private class.
	(addNotificationListener(NotificationListener,
	NotificationFilter, Object)): Implemented.
	(getNotificationInfo()): Likewise.
	(removeNotificationListener(NotificationListener)):
	Likewise.
	(removeNotificationListener(NotificationListener,
	NotificationFilter, Object)): Likewise.
	
2006-07-18  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XFontPeer.java
	(encodeFont): Be more flexible with font sizes.
	(validSize): New helper method.
	* gnu/java/awt/peer/x/XGraphics.java
	(drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver)):
	Implemented.
	(drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver)):
	Implemented.
	* gnu/java/awt/peer/x/XImage.java
	(properties): New field.
	(getProperty): Implemented.
	* resource/gnu/java/awt/peer/x/fonts.properties:
	Added copyright header. Fixed font size field.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java
	(createDataBuffer): New method override,
	* java/awt/image/ByteLookupTable.java
	(ByteLookupTable(int, byte[][])): Create new array to hold references,
	(ByteLookuptable(int, byte[])): Check for null array,
	* java/awt/image/ComponentSampleModel.java
	(createDataBuffer): Removed unnecessary braces,
	(getSample): Check (x, y) is within bounds,
	* java/awt/image/ShortLookupTable.java
	(ShortLookupTable(int, short[][])): Create new array to hold references,
	(ShortLookupTable(int, short[])): Check for null array,
	(getTable): Added API docs,
	(lookupPixel): Source reformatting.

2006-07-18  Tania Bento  <tbento@redhat.com>
	
	* java/awt/GridLayout.java
	(setHgap): Illegal Argument Exception should not be thrown if 
	hgap < 0.
	(setVgap): Illegal Argument Exception should not be thrown if 
	vgap < 0.
	(toString): Opening square braket ([) should appear before hgap
	value, not the name of the class.

2006-07-18  Roman Kennke  <kennke@aicas.com>

	* lib/copy-vmresources.sh.in: Reverted.
	* gnu/java/awt/peer/x/fonts.properties: Moved to resource/
	* resource/gnu/java/awt/peer/x/fonts.properties: New file.

2006-07-18  Roman Kennke  <kennke@aicas.com>

	* lib/copy-vmresources.sh.in: Include properties from X peers.

2006-07-18  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/27205
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java (writeDSA): Check
	certificate validity.
	(getIssuerName): New method.
	(getSubjectName): Likewise.
	(getNotAfterDate): Likewise.
	(getNotBeforeDate): Likewise.
	* resource/gnu/classpath/tools/jarsigner/messages.properties: Added
	messages for newly added messages in SFHelper.

2006-07-18  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XDialogPeer.java: New class.
	* gnu/java/awt/peer/x/XEventPump.java
	(handleEvent): Cast to XWindowPeer rather than XFramePeer.
	* gnu/java/awt/peer/x/XFramePeer.java
	Made a subclass of XWindowPeer, rather than SwingFramePeer.
	* gnu/java/awt/peer/x/XGraphics.java
	Made subclass of Graphics rather than Graphics2D. Removed
	all Graphics2D specific method stubs.
	(setColor): Map colors using the X color map that is
	stored in XToolkit.
	* gnu/java/awt/peer/x/XToolkit.java
	(colorMap): New field.
	(getLocalGraphicsEnvironment): Return new XGraphicsEnvironment
	instance.
	(createDialog): Implemented.
	(createImage(ImageProducer)): Implemented.
	(createImage(InputStream)): Use createImage(ImageProducer)
	to convert the BufferedImage to an XImage.
	* gnu/java/awt/peer/x/XWindowPeer.java
	(XWindowPeer): Removed debug output.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BufferedImageOp.java: API docs added,
	* java/awt/image/RasterOp.java: Likewise.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Graphics2D.java: API docs updated.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/WritableRaster.java: Added API docs and reformatted 
	source code.

2006-07-18  Sven de Marothy  <sven@physto.se>

	* java/net/Inet6Address.java:
	Add 1.5 serialized fields.
	(getByAddress): New methods.
	(readObject, writeObject): New methods. 
	(equals): Reimplement.

2006-07-18  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/Raster.java: Added API docs and reformatted source
	code.

2006-07-18  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java: Remove unneeded
	imports.
	* gnu/java/awt/peer/gtk/CairoSurface.java: Likewise.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java: Likewise.
	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkClipboardNotifier.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkImage.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkImageConsumer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java: Likewise.

2006-07-17  Andreas Tobler  <a.tobler@schweiz.ch>

	* javax/swing/text/html/HTMLEditorKit.java: Rearrange import statements
	to make it compile again under jikes. Note added.

2006-07-17  Lillian Angel  <langel@redhat.com>

	* examples/gnu/classpath/examples/awt/Demo.java
	(Demo): Added new window for DnD demo.
	(DragDropWindow): New class.
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java:
	Added new fields and declarations for native functions.
	(GtkDragSourceContextPeer): Implemented.
	(getComponentPeer): New function.
	(startDrag): Partially implemented.
	(getCursor): Implemented.
	(setCursor): Implemented.
	* include/GtkDragSourceContextPeer.h: New file.
	* include/Makefile.am: Added new header file.
	* java/awt/Component.java
	(addNotify): Added call to the dropTarget's addNotify.
	* java/awt/dnd/DragSource.java
	(startDrag): Fixed code to use shared instances of peer and
	context.
	(getDragThreshold): Added stub.
	* java/awt/dnd/DropTarget.java
	(DropTarget): Implemented fully.
	(addNotify): Added code to get the peer of the parent that is
	not lightweight.
	* java/awt/dnd/DropTargetDragEvent.java
	(getTransferable): Added stub.
	* native/jni/gtk-peer/GtkDragSourceContextPeer.c: New file.
	* native/jni/gtk-peer/Makefile.am: Added new c file.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java:
	Changed to extend GtkGenericPeer.
	(GtkDropTargetContextPeer): New constructor.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java:
	Changed to extend GtkGenericPeer.
	(GtkDropTargetContextPeer): New constructor.

2006-07-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(createSubsetSampleModel): Added argument check and API docs.

2006-07-17  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphics.java
	(copyArea): Implemented.

2006-07-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(getSampleSize): Return copy of array,
	(getOffset): Added API docs,
	(getScanlineStride): Likewise,
	(hashCode): Implemented.

2006-07-17  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(getOffset): Updated API docs and source reformatting,
	(getBitOffset): Source reformatting only,
	(getDataElements): Likewise,
	(getPixel): Likewise,
	(getPixels): Removed method override,
	(setDataElements): Reimplemented.

2006-07-17  Gary Benson  <gbenson@redhat.com>

	* resource/META-INF/services/.cvsignore: New file.
	* lib/.cvsignore: Updated.	

2006-07-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(propertyChange): Only do the text layout caching as long
	as the noGraphics2D property isn't set.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(PropertyChangeHandler.propertyChange): Only do the text layout
	caching as long	as the noGraphics2D property isn't set.

2006-07-17  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XGraphicsEnvironment.java
	(XGraphicsEnvironment): Make constructor public so that it
	can be called via Class.forName().newInstance().
	* gnu/java/awt/peer/x/XImage.java
	(XImage): Fetch GraphicsEnvironment via
	GraphicsEnvironment.getLocalGraphicsEnvironment() rather
	than the XToolkit method, to avoid double instantiation
	of the XGraphicsEnvironment.
	* gnu/java/awt/peer/x/XToolkit.java
	(env): Removed field.
	(getLocalGraphicsEnvironment): Removed impl. This method
	should not be called since we set the graphicsenv property
	in the constructor.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/UUID.java:
	(compareTo(Object)): Call compareTo(UUID).
	(compareTo(UUID)): Implemented.
	
2006-07-16  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java (cbrt): Added '@since'.

2006-07-16  Carsten Neumann  <cn-develop@gmx.net>

	* java/lang/StrictMath.java (cbrt): New method.
	(getLowDWord): New helper method.
	(getHighDWord): Likewise.
	(buildDouble): Likewise.
	(CBRT_B1): New field.
	(CBRT_B2): Likewise.
	(CBRT_C): Likewise.
	(CBRT_D): Likewise.
	(CBRT_E): Likewise.
	(CBRT_F): Likewise.
	(CBRT_G): Likewise.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/MBeanInfo.java:
	(getNotifications()): Implemented.
	* javax/management/NotificationBroadcaster.java:
	(removeNotificationListener(NotificationListener)):
	Renamed from removeListener.
	* javax/management/NotificationEmitter.java:
	(removeNotificationListener(NotificationListener,
	NotificationFilter, Object)): Likewise.
	* javax/management/NotificationFilter.java:
	Implement Serializable.
	* javax/management/NotificationListener.java:
	Implement java.util.EventListener.
	* javax/rmi/ssl/SslRMIClientSocketFactory.java:
	Implement Serializable.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryNotificationInfo.java:
	New file.
	
2006-07-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28392
	* gnu/javax/swing/text/html/parser/htmlValidator.java 
	(tagIsValidForContext):	If it is not possible to insert any tag, but 
	is possible to insert a P, insert a P.
	* gnu/javax/swing/text/html/parser/HTML_401Swing.java
	(newInstance): Removed print statement. (getBodyElements):
	Removed ABBR, ACRONYM, BDO, Q, S, SUB, SUP and ADDRESS from the
	valid body level tags (will be enclosed into P's).

2006-07-17  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java (setKeystoreURLParam):
	Condition the creation of .keystore (a default keystore) based on the
	createIfNotFound argument as well.

2006-07-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28392
	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Removed heading p tag from the parsing example.
	* gnu/javax/swing/text/html/parser/HTML_401F.java:
	(createHtmlContentModel): Explained.
	(defineElements): Call getBodyElements to get the body
	elements. (getBodyElements): New method. (model):
	Made protected from private.
	* gnu/javax/swing/text/html/parser/htmlValidator.java
	(openTag): Mind that current content model may be null.
	(tagIsValidForContext): If the tag is PCDATA, and it is not
	valid for context, but the paragraph (P) is valid for context,
	suggest to insert the P tag here.
	* javax/swing/text/html/HTMLDocument.java (HTMLReader.addContent,
	HTMLReader.blockOpen, HTMLReader.blockClose): Do not handle
	implied P tags here.
	* javax/swing/text/html/HTMLEditorKit.java (getParser):
	Get the custom parser, using HTML_401Swing.java DTD.
	* javax/swing/text/html/parser/ParserDelegator.java:
	Removed the obsolete note that HTMLEditorKit does not exist.
	* gnu/javax/swing/text/html/parser/GnuParserDelegator.java,
	gnu/javax/swing/text/html/parser/HTML_401Swing.java: New files.

2006-07-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/ListenerNotFoundException.java:
	New file.
	* javax/management/MBeanFeatureInfo.java:
	(hashCode()): Use summation instead of multiplication
	for consistency with other classes.
	* javax/management/MBeanNotificationInfo.java,
	* javax/management/Notification.java,
	* javax/management/NotificationBroadcaster.java,
	* javax/management/NotificationEmitter.java,
	* javax/management/NotificationFilter.java,
	* javax/management/NotificationListener.java:
	New files.
	* javax/management/OperationsException.java:
	(serialVersionUID): Added.
	
2006-07-16  Thomas Minor  <1nocentrabidlamb@sexMagnet.com>
	    Mark Wielaard  <mark@klomp.org>

	* java/io/PrintStream.java: Added four constructors, for File and
	String describing a filename with or without explicit encoding.

2006-07-16  Sven de Marothy  <sven@physto.se>

	* javax/rmi/ssl/SslRMIServerSocketFactory.java,
	* javax/rmi/ssl/SslRMIClientSocketFactory.java:
	New files.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/28391
	* tools/gnu/classpath/tools/keytool/Command.java (setKeyStoreParams(5)): 
	New method.
	(setKeyStoreParams(4)): Call the above method with false as its 1st arg.
	(setProviderClassNameParam): Made private.
	(setKeystoreTypeParam): Likewise.
	(setKeyPasswordParam): Likewise
	(setKeystorePasswordParam): Likewise.
	(setKeystoreURLParam): Now accepts 2 more arguments; the first a boolean to
	create or not the keystore if it's not there, and the second is the store's
	password to process before loading the keystore. Amended the code
	accordingly.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java (setup): Call super's
	setKeyStoreParams(5) with true as its first argument.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java (setup): Likewise.

2006-07-16  Sven de Marothy  <sven@physto.se>

	* java/util/UUID.java: New file.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java: New file.
	* gnu/javax/crypto/jce/cipher/AESKeyWrapSpi.java: New file.
	* gnu/javax/crypto/jce/cipher/AES128KeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AES192KeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AES256KeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/TripleDESKeyWrapSpi.java: Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java (.run): Added mappings for newly
	added Key Wrapping Algorithm SPIs.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* javax/crypto/Cipher.java (getOutputSize): Allow SPIs initialised for key
	wrapping/unwrapping to invoke their engineGetOutputSize.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/kwa/TripleDESKeyWrap.java (rnd): New field.
	(engineInit): If a SecureRandom was specified then use it.
	(nextRandomBytes): New method.
	(engineWrap): Use above method.
	* gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java (prng): New field.
	(getDefaultPRNG): New method.
	* gnu/javax/crypto/kwa/AESKeyWrap.java (engineInit): Reset underlying AES.
	* gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java (SOURCE_OF_RANDOMNESS):
	New constant.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/params/BlockCipherParameters.java
	(engineGetParameterSpec): Should be able to return an IvParameterSpec.

2006-07-16  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/cipher/DES.java (adjustParity): Index limit now takes
	offset into consideration.

2006-07-16  Mario Torre  <neugens@limasoftware.net>

	* native/jni/gconf-peer/GConfNativePeer.c (init_gconf_client):
	Fixed comment. This functions now requires to be called
	with gdk lock held, the comment states that.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache):
	Introduces gdk locks around critical regions of code.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class):
	* native/jni/gconf-peer/Makefile.am: The GConf peer now depends on GTK.

2006-07-15  Sven de Marothy  <sven@physto.se>

        * javax/swing/JFileChooser.java
        Change default selection mode to FILES_ONLY.
        * javax/swing/plaf/basic/BasicDirectoryModel.java
        Document, fix selection mode filtering.
        (renameFile): Implement
        * javax/swing/plaf/basic/BasicFileChooserUI.java
        (selectedDir): New field to handle selected directories,
        disallow selecting of directories in FILES_ONLY mode.
        * javax/swing/plaf/metal/MetalFileChooserUI.java:
        (EditingActionListener.actionPerformed):
        Stop editing on all actions (e.g. return-key press)

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* doc/vmintegration.texinfo (gnu.java.lang.management): Change xref
	to code.
	(JNI Implementation): Mark JVMTI Implementation as next.
	(JVMTI Implementation): Mark JNI Implementation as prev.

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: Remove
	include/gnu_java_awt_peer_gtk_GdkTextLayout.h.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h: Removed.
	* native/jni/gtk-peer/Makefile.am: Remove
	gnu_java_awt_peer_gtk_GdkTextLayout.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:
	Removed.

	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Regenerated.

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* autogen.sh: Recognize autoconf 2.60.

2006-07-15  Keith Seitz  <keiths@redhat.com>

	* NEWS: Update for JVMTI and jvmti.h.
	* doc/vmintegration.texinfo: Likewise.
	* include/jvmti.h: New file.

2006-07-15  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
	Removed C++ style comment.

2006-07-15  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java,
	* java/awt/MouseInfo.java,
	* java/awt/PointerInfo.java,
	* java/awt/peer/MouseInfoPeer.java:
	New files.

	* java/awt/Image.java
	(accelerationPriority): New field.
	(setAccelerationPriority, getAccelerationPriority): New methods..

	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
	(getMouseCoordinates): New method.

	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(updateAlwaysOnTop): Remove stub overload.

	* gnu/java/awt/ClasspathToolkit.java,
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h,
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
	(getMouseInfoPeer): New method.
	(getMouseNumberOfButtons): New method.
	
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(gtkWindowSetAlwaysOnTop): New method.
	(updateAlwaysOnTop): Implement.

	* java/awt/Toolkit.java,
	(getMouseInfoPeer): New method.

	* java/awt/Window.java
	(alwaysOnTop): New field.
	(isAlwaysOnTop, setAlwaysOnTop): New methods.

	* java/awt/peer/WindowPeer.java: Doc fix.

2006-07-14  Sven de Marothy  <sven@physto.se>

	* java/awt/font/TextLayout.java:
	(hitTestChar): Stub method.
	* java/awt/font/TextMeasurer.java:
	(getLayout): Throw exception on invalid argument.
	
2006-07-14  Sven de Marothy  <sven@physto.se>

	* java/awt/image/DataBuffer.java
	(DataBuffer): Call constructors in the correct order,
	
2006-07-14  Mark Wielaard  <mark@klomp.org>

	Revert to previous implementation.
	* java/awt/GridBagLayout.java (AdjustForGravity): Only adjust for
	constraints insets.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/XToolkit.java
	(XToolkit): Install properties to SystemProperties
	rather than System, to avoid SecurityManager.
	(getImage(String)): Return error image when string is invalid.
	(createImage(URL)): Moved image loading to helper method.
	(createImage(ImageProducer)): Implemented.
	(createImage(byte[],int,int)): Implemented.
	(createImage(InputStream)): New helper method.

2006-07-14  Tania Bento  <tbento@redhat.com>

	* java/awt/FlowLayout.java
	(setHgap): No Excpetion should be thrown if hgap has
	a negative value.
	(setVgap): No Exception should be thrown if vgap has
	a negative value.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java: 
	Added API docs all over.

2006-07-14  Matt Wringe  <mwringe@redhat.com>

	* gnu/javax/crypto/jce/cipher/CipherAdapter.java 
	(engineInit): Throw InvalidAlgorithmParameterException
	for invalid IVParameterSpec IV length.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(createDataBuffer): Include dataBitOffset in calculating the size for
	the data buffer.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(getSampleSize()): Return a copy of the array,
	(getTransferType()): New method override.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* java/awt/CardLayout.java
	(show): Validate parent to make sure that the layout is
	valid.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(enable): Added tree locking.
	(disable): Added tree locking.
	(show): Added tree locking.
	(hide): Added tree locking.
	(getLocationOnScreen): Added tree locking.
	(reshape): Added tree locking.
	(addHierarchyListener): Added tree locking.
	(removeHierarchyListener): Added tree locking.
	(addHierarchyBoundsListener): Added tree locking.
	(removeHierarchyBoundsListener): Added tree locking.
	(addNotify): Added tree locking.
	(removeNotify): Added tree locking.
	* java/awt/Container.java
	(invalidateTree): Added tree locking.
	(getAlignmentX): Added tree locking.
	(getAlignmentY): Added tree locking.
	(addNotify): Added tree locking.
	(setComponentZOrder): Added tree locking.
	(getComponentZOrder): Added tree locking.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(createSubsetSampleModel): Restored argument check, but let null
	through.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(createSubsetSampleModel): Removed argument check.

2006-07-14  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(numHierarchyListeners): New field.
	(numHierarchyBoundsListeners): New field.
	(show): Fire hierarchy events here. Only fire component event
	if there is actually a listener for it.
	(hide): Fire hierarchy events here. Only fire component event
	if there is actually a listener for it.
	(reshape): Fire hierarchy events here. Only fire component event
	if there is actually a listener for it.
	(addHierarchyListeners): Update listener counters.
	(removeHierarchyListeners): Update listener counters.
	(addHierarchyBoundsListeners): Update listener counters.
	(removeHierarchyBoundsListeners): Update listener counters.
	(fireHierarchyEvent): New helper method for firing hierarchy
	events.
	* java/awt/Container.java
	(addImpl): Update listener counters. Fire hierarchy event.
	(remove): Update listener counters. Fire hierarchy event.
	(fireHierarchyEvent): New helper method for firing hierarchy
	events.
	(updateHierarchyListenerCount): New helper method for
	updating the listener counters.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(equals): New method override,
	(hashCode): Likewise.

2006-07-14  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(MultiPixelPackedSampleModel(int, int, int, int, int, int)): 
	Corrected scanlineStride calculation.

2006-07-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/Registry.java (KWA_PREFIX): New constant.
	(AES_KWA): Likewise.
	(AES128_KWA): Likewise.
	(AES192_KWA): Likewise.
	(AES256_KWA): Likewise.
	(RIJNDAEL_KWA): Likewise.
	(TRIPLEDES_KWA): Likewise.
	(DESEDE_KWA): Likewise.
	* gnu/javax/crypto/kwa/AESKeyWrap.java: New file
	* gnu/javax/crypto/kwa/BaseKeyWrappingAlgorithm.java: Likewise.
	* gnu/javax/crypto/kwa/IKeyWrappingAlgorithm.java: Likewise.
	* gnu/javax/crypto/kwa/KeyUnwrappingException.java: Likewise.
	* gnu/javax/crypto/kwa/KeyWrappingAlgorithmFactory.java: Likewise.
	* gnu/javax/crypto/kwa/TripleDESKeyWrap.java: Likewise.

2006-07-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/pad/IPad.java: Updated class documentation.
	(PADDING_BLOCK_SIZE): New constant.
	(init(Map attributes)): New method.
	* gnu/javax/crypto/pad/BasePad.java (init): New method.

2006-07-14  Mario Torre  <neugens@limasoftware.net>

	* gnu/java/security/OID.java (OID): Private Constructor removed as
	it is not needed anymore.
	(clone): Fixed. Now uses super.clone instead of the private
	constructor as per specification of clone method.
	(serialVersionUID): added new field to allow serialization.

2006-07-13  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/gif/GIFImageReader.java
	(read): Remove old debugging trace.

2006-07-13  Andreas Tobler  <a.tobler@schweiz.ch>

	PR awt/28369:
	* gnu/java/awt/peer/gtk/CairoSurface.java (ColorModel): Swap red and
	blue mask.

2006-07-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(DEFAULT_MAX_SIZE): New static constant.
	(preferredSize): Return copy of the actual value computed
	by new helper method.
	(preferredSizeImpl): New helper method. Adds locking and
	correct handling of cached value.
	(minimumSize): Return copy of the actual value computed
	by new helper method.
	(minimumSizeImpl): New helper method. Adds locking and
	correct handling of cached value.
	(getMaximumSize):  Return copy of the actual value computed
	by new helper method.
	(maximumSizeImpl): New helper method. Adds locking and
	correct handling of cached value.
	(invalidate): Correct handling of cached layout information.
	Added locking.
	* java/awt/Container.java
	(preferredSize): Minimized locking. Corrected handling of cached
	values. Return copy of real value.
	(minimumSize): Minimized locking. Corrected handling of cached
	values. Return copy of real value.
	(getMaximumSize): Minimized locking. Corrected handling of cached
	values. Return copy of real value.
	
2006-07-13  Tania Bento  <tbento@redhat.com>

	* gnu/java/awt/peer/ClasspathFontPeer.java
	(isLogicalFontName): Return true if name == default.
	(logicalFontNameToFaceName): Check if name == default,
	and if so, return "Dialog.plain".
	(setStandardAttributes(String, Map)): If name == null, 
	it should be set to "Default", not "SansSerif".
	* java/awt/Canvas.java
	(generateName): Fixed documentation.
	* java/awt/CheckboxMenuItem.java
	Added static variable "next_chkmenuitem_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/Choice.java
	Added static variable "next_choice_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/Cursor.java
	(Cursor(int)): Set name depending on the type passed.
	* java/awt/List.java
	Added static variable "next_list_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/Menu.java
	Added static variable "next_menu_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/MenuBar.java
	Added static variable "next_menubar_number".
	(generateName): Added and implemented method.	
	(getUniqueLong): Likewise.
	* java/awt/MenuComponent.java
	(getName): Before returning name, check if name == null
	and name is not explicity set.  If this is the case,    
	name will be generated.
	(generateName): Added and implemented method.	
	* java/awt/MenuItem.java
	Added static variable "next_menuitem_number".
	(generateName): Added and implemented method.   
	(getUniqueLong): Likewise.
	* java/awt/PopupMenu.java
	Added static variable "next_popup_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/ScrollPane.java
	Added static variable "next_scrollpane_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.
	* java/awt/TextField.java
	Added static variable "next_textfield_number".
	(generateName): Added and implemented method.
	(getUniqueLong): Likewise.


2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SinglePixelPackedSampleModel.java
	(SinglePixelPackageSampleModel(int, int, int, int, int[])): Convert
	mask correctly as an unsigned integer,
	(equals): New method override.

2006-07-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java (insertAfterEnd,
	insertAfterStart, insertBeforeEnd):  Removed stub markings.

2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java: API doc updates and source 
	code reformatting,
	* java/awt/image/SinglePixelPackageSampleModel.java: Likewise.

2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BandedSampleModel.java: API doc updates.

2006-07-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java (HTMLReader.parseStack): 
	Made package private. (HTMLReader.charAttr, HTMLReader.charAttrStack,
	HTMLReader.insertTag, HTMLReader.insertTagEncountered, 
	HTMLReader.pushDepth, HTMLReader.popDepth): Documented. 
	(HRMLReader.blockClose): Mind that parser stack may be empty. 
	(HTMLReader.handeComment, HTMLReader.handleStartTag,
	HTMLReader.handleEndTag, HTMLReader.handleSimpleTag): Rewritten. 
	(HTMLReader.shouldInsert): New method. (getElement(String)): 
	Pass HTML.Atrribute.ID. (insertAfterEnd, insertBeforeEnd, 
	insertAfterStart, insertBeforeStart, setInnerHTML, setOuterHTML):
	Implemented. (getInsertingReader): New method. 
	* examples/gnu/classpath/examples/swing/HtmlDemo.java:
	Added buttons to demonstrate the work of the insert actions.

2006-07-13  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SampleModel.java: API doc updates and additions,
	* java/awt/image/SinglePixelPackedSampleModel.java: Likewise.

2006-07-12  Sven de Marothy  <sven@physto.se>

	* javax/swing/JFileChooser.java:
	(createDialog): Close operation should cause a cancel.

2006-07-12  Francis Kung  <fkung@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java: Organized imports.
	(cairoArc): New native method.
	(cairoRestore): New native method.
	(cairoSave): New native method.
	(cairoScale): New native method.
	(createPath): New method to centralize code from draw and fill.
	(draw): Modified to use createPath method.
	(fill): Modified to use createPath method.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Added 
	function declarations.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoScale): New 
	method.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSave): New 
	method.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoArc): New 
	method.
	
2006-07-12  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27271:
	* java/util/zip/ZipFile.java (getInputStream): Call addDummyByte
	on PartialInputStream.
	(PartialInputStream.dummyByteCount): New field.
	(PartialInputStream.fillBuffer): Handle dummy byte.
	(PartialInputStream.read): Likewise.
	(PartialInputStream.addDummyByte): New method.

2006-07-12  Mario Torre  <neugens@limasoftware.net>

	* native/jni/gconf-peer/GConfNativePeer.c
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Fixed C++ style comment.

2006-07-12  David Gilbert  <david.gilbert@object-refinery.com>

	* java/util/Arrays.java
	(asList): Updated API docs.

2006-07-11  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR28350.
	* native/jni/gconf-peer/GConfNativePeer.c:
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string):
	Changed if-expression.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Added check for _value not being NULL.
	
2006-07-11  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c
	(read): Use fd when local sockets are disabled to make the
	compiler quite.
	(write): Likewise.

2006-07-11  Roman Kennke  <kennke@aicas.com>

	* java/awt/image/MultiPixelPackedSampleModel.java
	(MultiPixelPackedSampleModel): Substract -1 so that the integer
	division gets rounded up.

2006-07-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManageFactory.java:
	(getMemoryManagerMXBeans()): Use addAll, not add.
	
2006-07-11  Vivek Lakshmanan  <vivekl@redhat.com>

	PR 27649:
	* gnu/classpath/ByteArray.java: Removed (moved).
	* gnu/java/security/util/ByteArray.java: New File.
	* gnu/javax/crypto/RSACipherImpl.java: Reference 
	gnu.java.security.util.ByteArray instead of gnu.classpath.ByteArray.

2006-07-11  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c
	(available): Pass fd as argument and avoid JNI class/field
	lookup.
	(read): Likewise.
	(write): Likewise.
	* include/gnu_java_net_local_LocalSocketImpl.h:
	Regenerated.
	* gnu/java/net/local/LocalSocketImpl.h
	(available): Pass fd as argument and avoid JNI class/field
	lookup.
	(read): Likewise.
	(write): Likewise.	

2006-07-11  Sven de Marothy  <sven@physto.se>

	* gnu/javax/sound/sampled/AU/AUReader.java:
	Correct file extension from .as to .au.

2006-07-11  Sven de Marothy  <sven@physto.se>

	* gnu/javax/sound/sampled/AU/AUReader.java:
	New file.
	* resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: 
	Added new provider.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(setRowSelectionAllowed): Fire required PropertyChangeEvent,
	(setColumnSelectionAllowed): Likewise.

2006-07-10  Vivek Lakshmanan  <vivekl@redhat.com>

	PR 27649:
	* gnu/classpath/debug/Simple1LineFormatter.java: Use
	AccessController.doPrivileged instead of SystemProperties.getProperty.
	* gnu/classpath/debug/SystemLogger.java: Likewise.
	* gnu/java/security/PolicyFile.java: Likewise and cut unnecessary
	repeated getProperty calls for "file.seperator".
	(refresh): Since already in privileged block, call System.getProperty
	instead of SystemProperties.getProperty.
	* gnu/java/security/key/dss/DSSKey.java
	(toString): Use AccessController.doPrivileged instead of
	SystemProperties.getProperty.
	* gnu/java/security/key/dss/DSSPrivateKey.java
	(toString): Likewise.
	* gnu/java/security/key/dss/DSSPublicKey.java
	(toString): Likewise.
	* gnu/java/security/key/rsa/GnuRSAKey.java
	(toString): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java
	(toString): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java
	(toString): Likewise.
	* gnu/javax/crypto/sasl/plain/PasswordFile.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKey.java 
	(toString): Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java 
	(toString): Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java 
	(toString): Likewise.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(disabledIcon): Fixed name (was 'disabeldIcon'),
	(getDisabledIcon): Updated for corrected field name,
	(setDisabledIcon): Fire a PropertyChangeEvent.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultBoundedRangeModel.java
	(readObject): New private method,
	(writeObject): Likewise.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ButtonGroup.java
	(add): Ignore null argument,
	(remove): Ignore null argument.  If removing selected button, clear the
	sel field,
	(findButton): Changed case for method name, and documented,
	(setSelected): Updated for modification to findButton() method name,
	(isSelected): Updated API docs.

2006-07-11  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BufferedImage.java
	(BufferedImage(int, int, int)): Use correct color space for 
	TYPE_BYTE_GRAY and TYPE_USHORT_GRAY, and throw an 
	IllegalArgumentException for an unrecognised type.

2006-07-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementFactory.java:
	(getMemoryPoolMXBeans): Genericized fully.
	(getMemoryManagerMXBeans): Likewise.
	(getGarbageCollectorMXBeans): Likewise.
	
2006-07-10  Tom Tromey  <tromey@redhat.com>

	* java/lang/management/ManagementFactory.java (getMemoryPoolMXBeans):
	Genericized.
	(getMemoryManagerMXBeans): Likewise.
	(getGarbageCollectorMXBeans): Likewise.

2006-07-10  Mario Torre  <neugens@limasoftware.net>

	* java/awt/BasicStroke.java: Removed unused import.
	* gnu/java/awt/java2d/CubicSegment.java (clone): Fixed. 
	* gnu/java/awt/java2d/LineSegment.java (clone): Fixed. 
	* gnu/java/awt/java2d/QuadSegment.java (clone): Fixed.

2006-07-10  Matt Wringe  <mwringe@redhat.com>

	PR classpath/28212:
	* javax/crypto/spec/SecretKeySpec.java 
	(equals): Check object type. 

2006-07-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/StructureToPassHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/StructureToReturnHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/TreeNodeHelper.java,
	examples/gnu/classpath/examples/CORBA/SimpleCommunication/
	communication/WeThrowThisExceptionHelper.java,
	gnu/CORBA/ForwardRequestHelper.java,
	org/omg/CORBA/CompletionStatusHelper.java,
	org/omg/CORBA/CurrentHelper.java,
	org/omg/CORBA/DefinitionKindHelper.java,
	org/omg/CORBA/IDLTypeHelper.java,
	org/omg/CORBA/NameValuePairHelper.java,
	org/omg/CORBA/ObjectHelper.java,
	org/omg/CORBA/ParameterModeHelper.java,
	org/omg/CORBA/PolicyErrorCodeHelper.java,
	org/omg/CORBA/PolicyErrorHelper.java,
	org/omg/CORBA/PolicyHelper.java,
	org/omg/CORBA/PolicyListHelper.java,
	org/omg/CORBA/PolicyTypeHelper.java,
	org/omg/CORBA/ServiceDetailHelper.java,
	org/omg/CORBA/ServiceInformationHelper.java,
	org/omg/CORBA/SetOverrideTypeHelper.java,
	org/omg/CORBA/StringValueHelper.java,
	org/omg/CORBA/UnionMemberHelper.java,
	org/omg/CORBA/UnknownUserExceptionHelper.java,
	org/omg/CORBA/VisibilityHelper.java,
	org/omg/CORBA/WStringValueHelper.java,
	org/omg/CORBA/WrongTransactionHelper.java,
	org/omg/CosNaming/BindingHelper.java,
	org/omg/CosNaming/BindingIteratorHelper.java,
	org/omg/CosNaming/BindingListHelper.java,
	org/omg/CosNaming/BindingTypeHelper.java,
	org/omg/CosNaming/NameComponentHelper.java,
	org/omg/CosNaming/NameHelper.java,
	org/omg/CosNaming/NamingContextExtHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java,
	org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java,
	org/omg/CosNaming/NamingContextHelper.java,
	org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java,
	org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java,
	org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java,
	org/omg/DynamicAny/AnySeqHelper.java,
	org/omg/DynamicAny/DynAnyFactoryHelper.java,
	org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java,
	org/omg/DynamicAny/DynAnyHelper.java,
	org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.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/DynValueHelper.java,
	org/omg/DynamicAny/NameDynAnyPairHelper.java,
	org/omg/DynamicAny/NameDynAnyPairSeqHelper.java,
	org/omg/DynamicAny/NameValuePairHelper.java,
	org/omg/DynamicAny/NameValuePairSeqHelper.java,
	org/omg/IOP/CodecFactoryHelper.java,
	org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java,
	org/omg/IOP/CodecPackage/FormatMismatchHelper.java,
	org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java,
	org/omg/IOP/CodecPackage/TypeMismatchHelper.java,
	org/omg/IOP/ComponentIdHelper.java,
	org/omg/IOP/IORHelper.java,
	org/omg/IOP/MultipleComponentProfileHelper.java,
	org/omg/IOP/ProfileIdHelper.java,
	org/omg/IOP/ServiceContextHelper.java,
	org/omg/IOP/ServiceContextListHelper.java,
	org/omg/IOP/ServiceIdHelper.java,
	org/omg/IOP/TaggedComponentHelper.java,
	org/omg/IOP/TaggedProfileHelper.java,
	org/omg/PortableInterceptor/AdapterManagerIdHelper.java,
	org/omg/PortableInterceptor/AdapterNameHelper.java,
	org/omg/PortableInterceptor/AdapterStateHelper.java,
	org/omg/PortableInterceptor/CurrentHelper.java,
	org/omg/PortableInterceptor/ForwardRequestHelper.java,
	org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java,
	org/omg/PortableInterceptor/InvalidSlotHelper.java,
	org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
	org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java,
	org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java,
	org/omg/PortableServer/CurrentHelper.java,
	org/omg/PortableServer/CurrentPackage/NoContextHelper.java,
	org/omg/PortableServer/ForwardRequestHelper.java,
	org/omg/PortableServer/POAHelper.java,
	org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java,
	org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java,
	org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java,
	org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java,
	org/omg/PortableServer/POAPackage/NoServantHelper.java,
	org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java,
	org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java,
	org/omg/PortableServer/POAPackage/WrongAdapterHelper.java,
	org/omg/PortableServer/POAPackage/WrongPolicyHelper.java,
	org/omg/PortableServer/ServantActivatorHelper.java,
	org/omg/PortableServer/ServantLocatorHelper.java: Remove the 
	typecode caching and always use OrbRestricted.Singleton.

2006-07-09  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/LoggingMXBean.java (getLoggerNames): Genericized.

2006-07-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java (hasXRenderExtension):
	New static final boolean field.
	(getComponentGraphics): Use hasXRenderExtension.
	(setClip): Override method for locking.

2006-07-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(setHorizontalTextPosition): Added check for illegal argument,
	(setVerticalTextPosition): Likewise.

2006-07-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/Timer.java
	(setDelay): Throw IllegalArgumentException for negative delay,
	(setInitialDelay): Likewise,
	* javax/swing/ToolTipManager.java
	(setInitialDelay): Document IllegalArgumentException,
	(setDismissDelay): Likewise,
	(setReshowDelay): Likewise.

2006-07-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryUsage.java:
	(from(javax.management.openmbean.CompositeData)):
	Implemented.
	* java/lang/management/ThreadInfo.java:
	Changed to use open types throughout for the state.
	(ThreadInfo(long,String,String,long,long,String,
	long,String,long,long,boolean,StackTraceElement[])):
	New constructor.
	(checkAttribute(javax.management.openmbean.CompositeType,
	String, javax.management.openmbean.OpenType)): New method.
	(from(javax.management.openmbean.CompositeData)):
	Implemented.
	(getLockName()): Fixed to use new variable.
	(getLockOwnerId()): Likewise.
	(getLockOwnerName()): Likewise.
	(getThreadId()): Likewise.
	(getThreadName()): Likewise.
	(getThreadState()): Likewise.
	(toString()): Refactored to use new variables.
	* javax/management/openmbean/ArrayType.java:
	New file.
	* javax/management/openmbean/CompositeType.java:
	Variables should be transient, not volatile.
	* javax/management/openmbean/OpenDataException.java:
	(serialVersionUID): Added.
	* javax/management/openmbean/SimpleType.java:
	New file.
	* javax/management/openmbean/TabularType.java
	Variables should be transient, not volatile.

2006-07-09  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Updated for new tools.

2006-07-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/openmbean/CompositeData.java,
	* javax/management/openmbean/CompositeType.java,
	* javax/management/openmbean/OpenDataException.java,
	* javax/management/openmbean/OpenType.java,
	* javax/management/openmbean/TabularData.java,
	* javax/management/openmbean/TabularType.java,
	* javax/management/openmbean/package.html:
	New files.

2006-07-09  Mark Wielaard  <mark@klomp.org>

	* gnu/javax/print/ipp/IppRequest.java: Remove double assignment.
	* gnu/java/rmi/server/UnicastServerRef.java: Likewise.
	* gnu/java/rmi/server/ActivatableServerRef.java: Likewise.

2006-07-08  Anthony Green  <green@redhat.com>

	* gnu/javax/sound/sampled/WAV/WAVReader.java,
	resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: 
	New files.

2006-07-09  Mario Torre  <neugens@limasoftware.net>

	* native/jni/gconf-peer/GConfNativePeer.c:
	Fixed indentation to be more compliant to the GNU coding
	guidelines.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset):
	Added explicit test for errors in the GConf backend.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string):
	Added explicit test for errors in the GConf backend.
	Fixed Segmentation Fault when non valid key names are given as input.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string):
	likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
	Added explicit test for errors in the GConf backend.
	* gnu/java/util/prefs/gconf/GConfNativePeer.java:
	Added javadoc comments for all native methods.
	(nodeExist): removed test to check for valid absolute path name
	for nodes.
	(startWatchingNode): likewise.
	(stopWatchingNode): likewise.
	(setString): likewise, plus fixed javadoc comments.
	(unset): likekwise.
	(getKey): likewise.
	(getKeys): likewise, also fixed javadoc comments.
	(getChildrenNodes): likewise.
	* gnu/java/util/prefs/GConfBasedPreferences.java:
	changed DEFAULT_USER_ROOT to /apps/classpath.
	(constructor): Test to check for a valid absolute path for nodes
	is now in the contructor for that node, instead of being on
	each method of the backend.
	(getGConfKey): removed empty new line.

2006-07-08  Mark Wielaard  <mark@klomp.org>

	* .classpath: Add gnu/java/awt/peer/x/ to excludes.

2006-07-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/FlowView.java (FlowStrategy.layoutRow):
	Handle the forced break in the same way as exceeding the
	available row space.
	* javax/swing/text/html/HRuleView.java: Rewritten.
	* javax/swing/text/html/HTMLDocument.java 
	(HTMLReader.addSpecialElement):Reserve two characters for
	the special elements.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java
	(text): Extended the HTML example to parse.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(setHorizontalAlignment): Check for illegal argument,
	(setVerticalAlignment): Likewise.

2006-07-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/TableView.java
	(getStyleSheet): New method. (RowView.getStyleSheet):
	New method.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java
	(setRolloverIcon): Call setRolloverEnabled(true),
	(setRolloverSelectedIcon): Likewise.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/TitledBorder.java
	(setTitlePosition): Added message to exception,
	(setTitleJustification): Likewise.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(createDefaultTheme): Corrected API docs,
	(initComponentDefaults): Added entry for 'TitledBorder.border',
	(getCurrentTheme): Initialise theme if it is null.

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(isValid): Return false when component has no peer,
	don't query the showing state.

2006-07-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/FlowView.java (FlowStrategy.layoutRow):
	Advance the offset also in the case of the enforced break.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(MAXIMUM_SIZE): Removed field,
	(MINIMUM_SIZE): Likewise,
	(PREFERRED_SIZE): Likewise,
	(getMaximumSize): Return new instance every time,
	(getMinimumSize): Likewise,
	(getPreferredSize): Likewise.

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget):  Avoid array copying in
	Container.getComponents().

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildrenWithOverlap): Avoid array copying in
	Container.getComponents().
	(paintChildrenOptimized): Avoid array copying in
	Container.getComponents().
	(fireAncestorEvent):  Avoid array copying in
	Container.getComponents().
	(findOverlapFreeParent): Avoid array copying in
	Container.getComponents().

2006-07-07  Matt Wringe <mwringe@redhat.com>

	* javax/crypto/spec/PBEKeySpec.java: Updated copyright year.
	(passwordValid): New field.
	(setPassword): New method.
	(setSalt): Likewise.
	(setIterationCount): Likewise.
	(setKeyLength): Likewise.
	(PBEKeySpec(char[])): Use new setter methods.
	(PBEKeySpec(char[], byte[], int)): Likewise.
	(PBEKeySpec(char[], byte[], int, int)): Likewise.
	(clearPassword): Set passwordValid to false.
	(getPassword): Check that clearPassword() was not called earlier.
	Return a clone of the password.
	(getSalt): Return a clone of the salt if it was not null.

2006-07-07  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(isValid): Always return false when component is
	not showing.
	(setFont): Always set font, even when setting
	the same or equal font again.

2006-07-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(CheckBoxMenuItemIcon): Implement UIResource,
	(FileChooserDetailViewIcon): Likewise,
	(FileChooserHomeFolderIcon): Likewise,
	(FileChooserListViewIcon): Likewise,
	(FileChooserNewFolderIcon): Likewise,
	(FileChooserUpFolderIcon): Removed redundant 'implements',
	(RadioButtonMenuItemIcon): Implement UIResource,
	(HorizontalSliderThumbIcon): Likewise,
	(InternalFrameCloseIcon): Likewise,
	(InternalFrameDefaultMenuIcon): Likewise,
	(InternalFrameAltMaximizeIcon): Likewise,
	(InternalFrameMaximizeIcon): Likewise,
	(InternalFrameMinimizeIcon): Likewise,
	(VerticalSliderThumbIcon): Likewise,
	(TreeHardDriveIcon): Likewise,
	(TreeFloppyDriveIcon): Likewise,
	(TreeComputerIcon): Likewise,
	(horizontalSliderThumbIcon): New field,
	(verticalSliderThumbIcon): New field,
	(getHorizontalSliderThumbIcon): Cache icon,
	(getVerticalSliderThumbIcon): Likewise.

2006-07-06  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am (CLEANFILES): Add Makefile.deps.
	(DISTCLEANFILES): Add standard.omit.
	(clean-local): Remove Makefile.deps, only remove dirs.

2006-07-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(setFont): Only invalidate when component is valid.
	* java/awt/Container.java
	(setLayout): Only invalidate when component is valid.

2006-07-06  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/dnd/GtkMouseDragGestureRecognizer.java:
	New class not fully implemented.
	* gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java:
	New class not fully implemented.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java:
	New class not fully implemented.
	* gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer.java:
	New class not fully implemented.
	* nu/java/awt/peer/gtk/GtkToolkit.java:
	Fixed Imports.
	(createDragSourceContextPeer): Implemented.
	(createDragGestureRecognizer): New function to override
	java.awt.Toolkit.createDragGestureRecognizer.
	* java/awt/dnd/DragSource.java
	(NoDragGestureRecognizer): Removed inner class.
	(createDragGestureRecognizer): Re-Implemented to 
	call Toolkit's createDragGestureRecognizer.
	(createDefaultDragGestureRecognizer): Re-Implemented to
	call Toolkit's createDragGestureRecognizer.
	* java/awt/dnd/DropTarget.java
	(addNotify): Added check to determine type of peer and call
	addDropTarget.
	(removeNotify): Added call to removeDropTarget.

2006-07-06  Tom Tromey  <tromey@redhat.com>

	* gnu/java/util/prefs/EventDispatcher.java (dispatch): Notify
	'queue'.
	(run): Wait on queue, not 'this'.

2006-07-06  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSource.java
	(startDrag): Implemented. Added comments describing
	what the function should do. Removed FIXME.

2006-07-06  Tania Bento  <tbento@redhat.com>
	
	* gnu/java/awt/Canvas.java
	Added new private variable 'next_canvas_number'.
	(generateName): Added.
	(getUniqueLong): Added.

2006-07-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java
	(getColor): Made public.
	* javax/swing/text/html/StyleSheet.java (stringToColor):
	Use CharacterAttributeTranslator.getColor(String)

2006-07-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java:
	(HTMLFactory.createElement): Update reference to the html table view.
	* javax/swing/text/html/HTMLTableView.java: Removed (renamed).
	* javax/swing/text/html/TableView.java: New file.

2006-07-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java: 
	(HTMLFactory.createElement): Uncomment
	code for BRView and HRuleView.
	* javax/swing/text/html/BRView.java,
	javax/swing/text/html/HRuleView.java: New files.

2006-07-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(getAllStackTraces(Map<Thread,StackTraceElement[]>)):
	Added generic type signature.

2006-07-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS: Updated.
	* doc/vmintegration.texinfo: Likewise.
	* examples/gnu/classpath/examples/management/TestGarbageCollector.java,
	* examples/gnu/classpath/examples/management/TestMemoryManager.java,
	* gnu/java/lang/management/GarbageCollectorMXBeanImpl.java,
	* gnu/java/lang/management/MemoryManagerMXBeanImpl.java,
	* java/lang/management/GarbageCollectorMXBean.java:
	New files.
	* java/lang/management/ManagementFactory.java:
	(getGarbageCollectorMXBeans()): Implemented.
	(getMemoryManagerMXBeans()): Likewise.
	* vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java,
	* vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java:
	New files.
	* vm/reference/java/lang/management/VMManagementFactory.java:
	(getMemoryManagerNames()): Added.
	(getGarbageCollectorNames()): Added.
	
2006-07-05  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/Makefile.am (nativeexeclib_LTLIBRARIES): Rename
	from lib_LTLIBRARIES.
	(install-plugin): Depend on nativeexeclib_LTLIBRARIES.

2006-07-05  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragGestureEvent.java:
	Added new fields.
	(DragGestureEvent): Initialized new fields, added to check and 
	added documentation.
	(getSourceAsDragGestureRecognizer): Added documentation and 
	changed to use getSource.
	(getComponent): Added documentation and fixed to return the proper
	value.
	(getDragSource): Likewise.
	(getDragOrigin): Added documentation.
	(iterator): Implemented and added documentation.
	(toArray): Likewise.
	(toArray): Likewise.
	(getDragAction): Likewise.
	(getTriggerEvent): Likewise.
	(startDrag): Likewise.
	* java/awt/dnd/DragGestureRecognizer.java
	(resetRecognizer): Added FIXME.
	* java/awt/dnd/DragSource.java:
	Added new field.
	(DragSource): Set ds to be null if headless.
	(getDefaultDragSource): Added documentation and implemented.
	(isDragImageSupported): Marked as unimplemented.
	(startDrag): Likewise.
	(createDragSourceContext): Implemented.
	(NoDragGestureRecognizer): Formatted inner class.
	* java/awt/dnd/DropTarget.java
	(stop): Marked as unimplemented.
	(actionPerformed): Likewise.
	(addDropTargetListener): Added code to throw exception.
	(removeDropTargetListener): Added check, removed FIXME.
	(dragEnter): Implemented.
	(dragOver): Implemented.
	(dropActionChanged): Implemented.
	(dragExit): Implemented.
	(drop): Implemented.
	(addNotify): Implemented.
	(removeNotify): Implemented.
	(createDropTargetContext): Implemented.
	(createDropTargetAutoScroller): Implemented.
	(initializeAutoscrolling): Implemented.
	(updateAutoscroll): Implemented.
	(clearAutoscroll): Implemented.
	* java/awt/dnd/DropTargetContext.java
	(dropComplete): Implemented.
	(acceptDrag): Implemented.
	(rejectDrag): Implemented.
	(acceptDrop): Implemented.
	(rejectDrop): Implemented.
	(getCurrentDataFlavors): Implemented.
	(getTransferable): Partially implemented.
	* java/awt/dnd/DropTargetDragEvent.java
	(getDropAction): Uncommented correct code.
	* java/awt/dnd/DropTargetDropEvent.java
	(dropComplete) :Implemented.
	* java/awt/dnd/InvalidDnDOperationException.java
	(InvalidDnDOperationException): Added call to super.

2006-07-05  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	(paint): Removed getBounds() call, changed center point
	calculation.

2006-07-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/InputMap.java
	(inputMap): Don't initialize yet,
	(InputMap): Removed TODO,
	(get): Check for null inputMap,
	(put): Return immediately for null keyStroke, check for null inputMap
	and initialize if necessary,
	(remove): Check for null inputMap,
	(size): Likewise,
	(clear): Likewise,
	(keys): Likewise,
	(allKeys): Likewise,
	(writeObject): Removed,
	(readObject): Removed.

2006-07-05  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/classpath/examples/swing/TabbedPaneDemo.java
	(createContent): Use different labels for buttons.

2006-07-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:	Updated.
	* doc/vmintegration.texinfo: Likewise.
	* examples/gnu/classpath/examples/management/TestMemoryPool.java,
	* gnu/java/lang/management/MemoryPoolMXBeanImpl.java:
	New files.
	* java/lang/management/ManagementFactory.java:
	(getMemoryPoolMXBeans()): Implemented.
	* vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java,
	* vm/reference/java/lang/management/VMManagementFactory.java:
	New files.
	
2006-07-04  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSourceContext.java:
	Removed FIXMEs from fields.
	(DragSourceContext): Added code to initialize cursor and sourceActions.
	(getDragSource): Added documentation.
	(getComponent): Likewise.
	(getTrigger): Likewise.
	(getSourceActions): Added documentation and implemented.
	(setCursor): Implemented. Added documentation.
	(getCursor): Implemented. Added documentation.
	(dragEnter): Added code to notify DragSource's listeners.
	(dragOver): Likewise.
	(dragExit): Likewise.
	(dropActionChanged): Likewise.
	(dragDropEnd): Likewise.
	(dragMouseMoved): Implemented.
	(getTransferable): Added API documentation.
	(updateCurrentCursor): Added API documentation and partially implemented.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (KeyHandler): Implemented.

2006-07-04  Lillian Angel  <langel@redhat.com>

	* java/awt/dnd/DragSourceContext.java
	(DragSourceContext): Implemented fully. Fixed API docs.
	(transferablesFlavorsChanged): Implemented.
	(dragEnter): Implemented.
	(dragOver): Implemented.
	(dragExit): Implemented.
	(dropActionChanged): Implemented.
	(dragDropEnd): Implemented.

2006-07-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	Fixed name of constant.
	(getIconWidth): Changed name of constant returned.
	(getIconHeight): Likewise.
	(paint): Likewise.
	(createSeparator): Marked as unimplemented.
	* javax/swing/plaf/basic/BasicTableUI.java
	(focusGained): Marked as unimplemented.
	(focusLost): Marked as unimplemented.
	(mouseEntered): Likewise.
	(mouseMoved): Likewise.
	(uninstallDefaults): Likewise.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(mouseClicked): Changed comment.
	(mouseEntered): Likewise.
	(mouseExited): Likewise.
	(mouseMoved): Likewise.
	(setOrientation): Implemented.
	(ToolBarFocusListener): Marked as unimplemented.
	(focusGained): Marked as unimplemented.
	(focusLost): Marked as unimplemented.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/plaf/basic/BasicTreeUI.java (isLocationInExpandControl):
	Mind the effect of the root visibility on the position of the control.
	Quess icon width 18. (paintVerticalPartOfLeg): Do no paint the 
	vertical line over first level nodes.

2006-07-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicMenuUI.java
	(installKeyboardActions): Implemented to call super. Nothing else
	needs to be done here.
	(setupPostTimer): Marked as unimplemented.
	(uninstallKeyboardActions): Implemented to call super. Nothing else
	needs to be done here.
	(mouseMoved): Removed TODO. Nothing to be done here.
	(ChangeHandler): Implemented.
	(menuDragMouseExited): Removed TODO. Nothing to be done here.
	(menuDragMouseReleased): Removed TODO. Nothing to be done here.
	(menuKeyReleased): Removed TODO. Nothing to be done here.
	(menuKeyTyped): Marked as unimplemented.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* gnu/javax/swing/plaf/gnu/GNULookAndFeel.java
	(getDefaults): Set hash color to black.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Set hash color to grey blue.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(instellDefaults): Set hash color.
	* javax/swing/plaf/metal/MetalIconFactory.java
	(TreeControlIcon.paint): Rewritten.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed):
	Always cancel the current editing session before doing anything else,
	return immediately if this fails.
	(TreeHomeAction): Ensure that the lead selection path is visible after
	the action is performed. TreeIncrementAction: Likewise. TreeToggleAction:
	Likewise. TreeTraverseAction: Likewise.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed):
	Returned back the code to handle the start of the click-pause-click
	editing initiation, explained about this code. 
	(TreeStartEditingAction): New inner class.
	(stopEditingInCompleteEditing): Explained about this field.
	(completeEditing(boolean, boolean, boolean): Only return early
	if there is no current editing session.
	(createDefaultActions): Install TreeStartEditingAction and
	TreeCancelEditingAction.

2006-07-04  Mario Torre  <neugens@limasoftware.net>

	* configure.ac: Added new option --enable-default-preferences-peer
	to pass user specified default preference backend.
	If the GConf peer is built, GConf become the default backend.
	* resource/META-INF/services/java.util.prefs.PreferencesFactory.in:
	new file. 
	* lib/Makefile.am: excludes files terminating in 'in' from
	the metafiles list.
	* lib/copy-vmresources.sh.in: excludes files terminating in 'in'
	from copy into META-INF.
	* java/util/prefs/Preferences.java: added two new import
	classes gnu.classpath.ServiceFactory and java.util.Iterator.
	(getFactory): Now try to check for
	a system defined default preference backend before to fall back on
	FileBasedPreference.

2006-07-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28061
	* javax/swing/JTree.java (COLLAPSED): Initialise to Boolean.FALSE.
	(EXPANDED): Initialise to Boolean.TRUE.
	* javax/swing/plaf/basic/BasicTreeUI.java (completeUIInstall):
	First configure layout cache and then set the assigned value 
	as row mapper. Set the root visibility property.
	(toggleExpandState): Obtains expansion state from the layout cache.

2006-07-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryPoolMXBean.java:
	New file.
	
2006-07-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/RSACipherImpl.java: Source formatting.

2006-07-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/sasl/anonymous/AnonymousClient.java: Source formatting.
	* gnu/javax/crypto/sasl/anonymous/AnonymousServer.java: Likewise.
	* gnu/javax/crypto/sasl/anonymous/AnonymousUtil.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5AuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Client.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Registry.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Server.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/CramMD5Util.java: Likewise.
	* gnu/javax/crypto/sasl/crammd5/PasswordFile.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PasswordFile.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainAuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainClient.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainRegistry.java: Likewise.
	* gnu/javax/crypto/sasl/plain/PlainServer.java: Likewise.
	* gnu/javax/crypto/sasl/srp/CALG.java: Likewise.
	* gnu/javax/crypto/sasl/srp/ClientStore.java: Likewise.
	* gnu/javax/crypto/sasl/srp/IALG.java: Likewise.
	* gnu/javax/crypto/sasl/srp/KDF.java: Likewise.
	* gnu/javax/crypto/sasl/srp/PasswordFile.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SecurityContext.java: Likewise.
	* gnu/javax/crypto/sasl/srp/ServerStore.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRP.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPAuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPRegistry.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise.
	* gnu/javax/crypto/sasl/srp/StoreEntry.java: Likewise.
	* gnu/javax/crypto/sasl/AuthInfo.java: Likewise.
	* gnu/javax/crypto/sasl/AuthInfoProviderFactory.java: Likewise.
	* gnu/javax/crypto/sasl/ClientFactory.java: Likewise.
	* gnu/javax/crypto/sasl/ClientMechanism.java: Likewise.
	* gnu/javax/crypto/sasl/ConfidentialityException.java: Likewise.
	* gnu/javax/crypto/sasl/IAuthInfoProvider.java: Likewise.
	* gnu/javax/crypto/sasl/IAuthInfoProviderFactory.java: Likewise.
	* gnu/javax/crypto/sasl/IllegalMechanismStateException.java: Likewise.
	* gnu/javax/crypto/sasl/InputBuffer.java: Likewise.
	* gnu/javax/crypto/sasl/IntegrityException.java: Likewise.
	* gnu/javax/crypto/sasl/NoSuchMechanismException.java: Likewise.
	* gnu/javax/crypto/sasl/NoSuchUserException.java: Likewise.
	* gnu/javax/crypto/sasl/OutputBuffer.java: Likewise.
	* gnu/javax/crypto/sasl/SaslEncodingException.java: Likewise.
	* gnu/javax/crypto/sasl/SaslInputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslUtil.java: Likewise.
	* gnu/javax/crypto/sasl/ServerFactory.java: Likewise.
	* gnu/javax/crypto/sasl/ServerMechanism.java: Likewise.
	* gnu/javax/crypto/sasl/UserAlreadyExistsException.java: Likewise.

2006-07-02  Anthony Green  <green@redhat.com>

	* gnu/javax/sound/midi/file/MidiFileWriter.java (writeTrack): Make
	sure that every track written ends with an End Of Track meta
	message.

2006-07-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/MemoryUsage.java:
	(toString()): Fix missing MB for maximum memory usage.
	
2006-07-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Updated to include VMCompilationMXBeanImpl.
	* doc/vmintegration.texinfo:
	Likewise, along with update to VMMemoryMXBeanImpl
	as below.
	* examples/gnu/classpath/examples/management/TestCompilation.java,
	* gnu/java/lang/management/CompilationMXBeanImpl.java,
	* java/lang/management/CompilationMXBeanImpl.java:
	New files.
	* java/lang/management/ManagementFactory.java:
	(getCompilationMXBean()): Implemented.
	* vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java:
	New file.
	* vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
	(getHeapMemoryUsage()): Added default implementation.	
	
2006-07-02  Anthony Green  <green@redhat.com>

	* NEWS: Mention MIDI file reader/writer providers.

2006-07-02  Anthony Green  <green@redhat.com>

	* resource/META-INF/services/javax.sound.midi.spi.MidiFileWriter,
	gnu/javax/sound/midi/file/MidiFileWriter.java,
	gnu/javax/sound/midi/file/MidiDataOutputStream.java: New files.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Updated to include VMMemoryMXBeanImpl.
	* doc/vmintegration.texinfo: Likewise.
	* examples/gnu/classpath/examples/management/TestMemory.java:
	New file.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java:
	Remove redundant import.
	* gnu/java/lang/management/MemoryMXBeanImpl.java:
	New file.
	* gnu/java/lang/management/ThreadMXBeanImpl.java:
	Remove redundant import.
	* java/lang/management/ManagementFactory.java:
	(getMemoryMXBean()): Implemented.
	* java/lang/management/MemoryMXBean.java,
	* java/lang/management/MemoryUsage.java:
	New files.
	* java/lang/management/ThreadInfo.java:
	(toString()): Updated documentation.
	* vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
	New file.
	
2006-07-01  Anthony Green  <green@redhat.com>

	* resource/META-INF/services/javax.sound.midi.spi.MidiFileReader,
	gnu/javax/sound/midi/file/MidiFileReader.java,
	gnu/javax/sound/midi/file/ExtendedMidiFileFormat.java,
	gnu/javax/sound/midi/file/MidiDataInputStream.java: New files.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/prng/ARCFour.java: Source formatting.
	* gnu/javax/crypto/prng/CSPRNG.java: Likewise.
	* gnu/javax/crypto/prng/Fortuna.java: Likewise.
	* gnu/javax/crypto/prng/ICMGenerator.java: Likewise.
	* gnu/javax/crypto/prng/PBKDF2.java: Likewise.
	* gnu/javax/crypto/prng/PRNGFactory.java: Likewise.
	* gnu/javax/crypto/prng/UMacGenerator.java: Likewise.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/pad/BasePad.java: Source formatting.
	* gnu/javax/crypto/pad/IPad.java: Likewise.
	* gnu/javax/crypto/pad/PadFactory.java: Likewise.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise.
	* gnu/javax/crypto/pad/PKCS7.java: Likewise.
	* gnu/javax/crypto/pad/SSL3.java: Likewise.
	* gnu/javax/crypto/pad/TBC.java: Likewise.
	* gnu/javax/crypto/pad/TLS1.java: Likewise.
	* gnu/javax/crypto/pad/WrongPaddingException.java: Likewise.

2006-07-01  Anthony Green  <green@redhat.com>

	* javax/sound/midi/SysexMessage.java (setMessage): Fix sysex
	status byte test.
	(setMessage): Fix it again, in a different setMessage method.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mode/BaseMode.java: Source formatting.
	* gnu/javax/crypto/mode/CBC.java: Likewise.
	* gnu/javax/crypto/mode/CFB.java: Likewise.
	* gnu/javax/crypto/mode/CTR.java: Likewise.
	* gnu/javax/crypto/mode/EAX.java: Likewise.
	* gnu/javax/crypto/mode/ECB.java: Likewise.
	* gnu/javax/crypto/mode/IAuthenticatedMode.java: Likewise.
	* gnu/javax/crypto/mode/ICM.java: Likewise.
	* gnu/javax/crypto/mode/IMode.java: Likewise.
	* gnu/javax/crypto/mode/ModeFactory.java: Likewise.
	* gnu/javax/crypto/mode/OFB.java: Likewise.

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mac/BaseMac.java: Source formatting.
	* gnu/javax/crypto/mac/HMac.java: Likewise.
	* gnu/javax/crypto/mac/HMacFactory.java: Likewise.
	* gnu/javax/crypto/mac/IMac.java: Likewise.
	* gnu/javax/crypto/mac/MacFactory.java: Likewise.
	* gnu/javax/crypto/mac/MacInputStream.java: Likewise.
	* gnu/javax/crypto/mac/MacOutputStream.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/mac/TMMH16.java: Likewise.
	* gnu/javax/crypto/mac/UHash32.java: Likewise.
	* gnu/javax/crypto/mac/UMac32.java: Likewise.

2006-07-01  Anthony Green  <green@redhat.com>

	* javax/sound/midi/Track.java (vector, eventSet): Initialize. 

2006-07-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/keyring/AuthenticatedEntry.java: Source formatting.
	* gnu/javax/crypto/keyring/BaseKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/BinaryDataEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CertificateEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CertPathEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CompressedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/EncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/Entry.java: Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/IKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/IPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/IPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/MalformedKeyringException.java: Likewise.
	* gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/MeteredInputStream.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordProtectedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PrimitiveEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PrivateKeyEntry.java: Likewise.
	* gnu/javax/crypto/keyring/Properties.java: Likewise.
	* gnu/javax/crypto/keyring/PublicKeyEntry.java: Likewise.

2006-07-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractCellEditor.java: Source code formatting,
	* javax/swing/AbstractSpinnerModel.java: Likewise,
	* javax/swing/Box.java: Likewise,
	* javax/swing/BoxLayout.java: Likewise,
	* javax/swing/DefaultListModel.java: Likewise,
	* javax/swing/GrayFilter.java: Likewise,
	* javax/swing/LookAndFeel.java: Likewise,
	* javax/swing/ProgressMonitor.java: Likewise,
	* javax/swing/ProgressMonitorInputStream.java: Likewise,
	* javax/swing/ScrollPaneLayout.java: Likewise,
	* javax/swing/SpringLayout.java: Likewise,
	* javax/swing/event/EventListenerList.java: Likewise,
	* javax/swing/event/MenuEvent.java: Likewise,
	* javax/swing/event/TreeExpansionListener.java: Likewise.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention threading bean and getState().
	* doc/vmintegration.texinfo:
	Update documentation for threading bean and new
	method of VMThread.
	
2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
        
	* examples/gnu/classpath/examples/management/TestClassLoading.java,
	* examples/gnu/classpath/examples/management/TestOS.java,
	* examples/gnu/classpath/examples/management/TestRuntime.java,
	* examples/gnu/classpath/examples/management/TestThread.java:
	New files.
	
2006-07-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ThreadGroup.java
	(getThreadFromId, getThreadFromIdImpl): New methods.

2006-07-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Thread.java:
	Make thread IDs start from 1 in a more efficient way.

2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	Make thread IDs start from 1.
	
2006-07-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/BeanImpl.java:
	New superclass for all bean implementations.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java:
	Extend BeanImpl and call permission code there.
	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java:
	Extend BeanImpl.
	* gnu/java/lang/management/RuntimeMXBeanImpl.java:
	Extend BeanImpl and call permission code there.
	* gnu/java/lang/management/ThreadMXBeanImpl.java:
	New file.
	* java/lang/management/ManagementFactory.java:
	(getThreadMXBean()): Implemented.
	* java/lang/management/ThreadInfo.java:
	(ThreadInfo(Thread,int)): Replaced...
	(ThreadInfo(Thread,long,long,Object,Thread,long,long,
	boolean, boolean, StackTraceElement[])): with this.
	(getBlockedCount()): Refactored to use local variables.
	(getBlockedTime()): Likewise.
	(getLockName()): Likewise.
	(getLockOwnerId()): Likewise.
	(getLockOwnerName()): Likewise.
	(getStackTrace()): Likewise.
	(getWaitedCount()): Likewise.
	(getWaitedTime()): Likewise.
	(isInNative()): Likewise.
	(isSuspended()): Likewise.
	(toString()): Changed to use new local variables.
	* java/lang/management/ThreadMXBean.java:
	(getThreadInfo(long, int)): Corrected documentation.
	(getThreadInfo(long[], int)): Likewise.
	* vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java:
	New file.
	* vm/reference/java/lang/management/VMThreadInfo.java:
	Removed.

2006-07-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/DHKeyPairRawCodec.java: Source formatting.
	* gnu/javax/crypto/key/dh/DiffieHellmanKeyAgreement.java: Likewise.
	* gnu/javax/crypto/key/dh/DiffieHellmanReceiver.java: Likewise.
	* gnu/javax/crypto/key/dh/DiffieHellmanSender.java: Likewise.
	* gnu/javax/crypto/key/dh/ElGamalKeyAgreement.java: Likewise.
	* gnu/javax/crypto/key/dh/ElGamalReceiver.java: Likewise.
	* gnu/javax/crypto/key/dh/ElGamalSender.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKey.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java: Likewise.
	* gnu/javax/crypto/key/dh/RFC2631.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6Host.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6KeyAgreement.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6SaslClient.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6SaslServer.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6TLSClient.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6TLSServer.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRP6User.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPAlgorithm.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKey.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairRawCodec.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPPrivateKey.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPPublicKey.java: Likewise.
	* gnu/javax/crypto/key/BaseKeyAgreementParty.java: Likewise.
	* gnu/javax/crypto/key/GnuSecretKey.java: Likewise.
	* gnu/javax/crypto/key/IKeyAgreementParty.java: Likewise.
	* gnu/javax/crypto/key/IncomingMessage.java: Likewise.
	* gnu/javax/crypto/key/KeyAgreementException.java: Likewise.
	* gnu/javax/crypto/key/KeyAgreementFactory.java: Likewise.
	* gnu/javax/crypto/key/OutgoingMessage.java: Likewise.

2006-07-01  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(transform): Make field protected.
	(getDestinationRaster): Provide default implementation for
	previously abstract method.

2006-06-30  Tania Bento  <tbento@redhat.com>

	* java/awt/TextArea.java
	(TextArea(String, int, int, int)): No longer throws
	IllegalArgumentException if rows, columns, or scrollbarVisibility 
	values are invalid.  
	(TextArea(String, int, int, int)): If rows or columns are < 0, 
	they get set to 0.  If scrollbarVisibility is < 0 or > 4, it 
	gets set to the default value of 0 (SCROLLBARS_BOTH).
	 (appendText): Added case when peer = null.
	(insertText): Added case when peer == null.
	(replaceText): Added case when peer == null.
	* java/awt/TextComponent.java
	(TextComponent(String)): If text == null, set it to "".

2006-06-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(create): Added synchronized block around groupMap.get calls.
	(setCheckboxGroup): Likewise.

2006-06-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(create): Changed to be non-synchronized.
	(setLabel): Likewise.
	(setCheckboxGroup): Likewise.
	(addToGroupMap): Likewise. Added synchronized block around
	code.
	(dispose): Changed to be non-synchronized.

2006-06-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java:
	Changed all return values of native functions to void.
	(create): Changed function to be synchronized. Removed
	call to put value in groupMap, this is now done from 
	the native code.
	(setState): Changed function to be synchronized.
	(setLabel): Changed function to be synchronized.
	(setCheckboxGroup): Changed function to be synchronized. Removed
	call to put value in groupMap, this is now done from
	the native code.
	(postItemEvent): Changed function to be synchronized.
	(addToGroupMap): New function. Called by native code to add
	new value to the group.
	(dispose): Changed function to be synchronized.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Updated
	all functions.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(cp_gtk_checkbox_init_jni): Added code to link to 
	java function.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton): 
	Changed return value to void. Added call
	to java function to set pointer in groupMap.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addtoGroup): Likewise. Also,
	changed check to an assert. Also, removed call to set/del pointer.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup): 
	Likewise. Also, added check to determine if native_group should be 
	set to NULL.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup): Likewise.

2006-06-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/ClasspathToolkit.java,
	* gnu/java/awt/peer/x/XToolkit.java,
	* gnu/java/awt/peer/qt/QtToolkit.java,
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	Remove ClasspathTextLayoutPeer.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java,
	* gnu/java/awt/peer/ClasspathTextLayoutPeer:
	Files removed.
	
2006-06-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(drawGlyphVector): Don't draw empty vectors.

2006-06-30  Lillian Angel  <langel@redhat.com>
	    Tom Fitzsimmons <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java: Removed class.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java:
	Added current_group, groupMap fields. Added definitions for
	new native functions.
	(create): Removed FIXME. Added code to create the check button or
	radio button when appropriate. Updated groupMap to contain
	pointer to the newly created group.
	(setCheckboxGroup): Added code to handle all cases. Removing
	a button from a group, adding a button to a group, or changing the
	group of a button.
	(dispose): Changed to call super.
	* include/Makefile.am: Removed reference to 
	gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h: Removed file.
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Added definitions
	for new functions.
	* native/jni/gtk-peer/Makefile.am: Removed reference to 
	gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c:
	Removed file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_combobox_get_widget): 
	Renamed to checkbox_get_widget.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals): 
	Changed to use checkbox_get_widget.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup): 
	Removed.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont):
	Changed to use checkbox_get_widget.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createCheckButton):
	New function. Creates checkbutton without a group.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton):
	Creates a radio button in a group, using groupPointer. If groupPointer
	is 0, then a new group is created.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addToGroup): Adds the
	check button to a group, using groupPointer. A radio button is created
	in its place. If groupPointer is 0, then a new group is created.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup): The
	radio button is removed from the group. A check button is created in 
	its place.
	(Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup): The
	radio button is moved to a new group.

2006-06-30  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Move standard.omit creation after dirs are created.
	Cat standard.omit.in from srcdir. Make exclude regex more explicit.
	* lib/Makefile.am (EXTRA_DIST): Add standard.omit.in.
	(clean-local): Remove standard.omit.
	* lib/gen-classlist.sh.in: Use omit file in build dir.
	* lib/standard.omit.in: Make exclude regex more explicit.

2006-06-30  Roman Kennke  <kennke@aicas.com>

	* lib/Makefile.am: Added Escher dir/jar to classpath when
	requested.
	* configure.ac: Moved handling of standard.omit to a place
	where it actually gets executed.

2006-06-30  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/TextComponent.java: Reformatted source code,
	* java/awt/TextField.java: Likewise.

2006-06-29  Jeroen Frijters <jeroen@sumatra.nl>

	* java/lang/Thread.java:
	(getState()): Handle case of no VMThread
	correctly.

2006-06-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java,
	* java/lang/VMThread.java:
	Reverted patch from 2006-06-28.
	
2006-06-29  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/x/GLGraphics.java,
	* gnu/java/awt/peer/x/ImageConverter.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/XFontPeer2.java,
	* gnu/java/awt/peer/x/XFramePeer.java,
	* gnu/java/awt/peer/x/XGraphics.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/XLightweightPeer.java,
	* gnu/java/awt/peer/x/XToolkit.java,
	* gnu/java/awt/peer/x/XWindowPeer.java,
	* gnu/java/awt/peer/x/fonts.properties: New files.
	* lib/standard.omit: Removed.
	* lib/standard.omit.in: Added.
	* configure.ac: Added configure option --with-escher. Added some
	configury for omitting gnu.java.awt.peer.x package when
	this option is not specified.

2006-06-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(JComponent()): Initialize the locale here, not the default locale,
	(getDefaultLocale): If null, return Locale.getDefault(),
	(setDefaultLocale): Added API docs.

2006-06-29  Tania Bento  <tbento@redhat.com>

	* java/awt/Container.java
	(applyComponentOrientation): Implemented method.

2006-06-29  Gary Benson  <gbenson@redhat.com>

	* java/io/File.java (listRoots): Merge security checks from libgcj.

2006-06-29  Gary Benson  <gbenson@redhat.com>

	* java/io/FilePermission.java (implies): Work when path is "/".

2006-06-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(Thread(ThreadGroup,Runnable,String,long)): Update
	state.
	(Thread(VMThread,String,int,boolean)): Likewise.
	(join(long,int)): Likewise.
	(resume()): Likewise.
	(sleep(long,int)): Likewise.
	(start()): Likewise.
	(stop()): Likewise.
	(suspend()): Likewise.
	(die()): Likewise.
	(getState()): Return either state or use VMThread.
	* java/lang/VMThread.java:
	(getState()): Added default implementation to return
	thread.state
	
2006-06-28  Andreas Tobler  <a.tobler@schweiz.ch>

	* gnu/java/awt/peer/gtk/CairoSurface.java: Swap the data from the
	GdkPixbuf correctly on big endian systems. Fix a typo in the little
	endian swapping code.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_getPixels): Swap the pixeldata
	without alpha information correctly on big endian systems.

2006-06-28  Roman Kennke  <kennke@aicas.com>

	* gnu/java/net/local/LocalSocket.java
	(setSoTimeout): Don't throw exception and ignore request.
	(getSoTimeout): Don't throw exception and always return 0.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(getRegisteredKeyStrokes): Implemented.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(verifyInputWhenFocusTarget): Initialise to true.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* java/beans/VetoableChangeSupport.java
	(addVetoableChangeListener(VetoableChangeListener)): Do nothing for
	null listener,
	(addVetoableChangeListener(String, VetoableChangeListener)): Do nothing
	for null property name and/or listener,
	* javax/swing/JComponent.java
	(getListeners): Handle VetoableChangeListener.class as a special case,
	(getVetoableChangeListeners): Fetch these from the 
	vetoableChangeSupport object.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(componentPopupMenu): New field,
	(inheritsPopupMenu): New field,
	(getInheritsPopupMenu): Implemented,
	(setInheritsPopupMenu): Likewise,
	(getComponentPopupMenu): Likewise,
	(setComponentPopupMenu): Likewise,
	* javax/swing/JLabel.java
	(JLabel(String, Icon, int)): Set inheritsPopupMenu to true.

2006-06-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java (str): New field.
	(toString): New method.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java (str): New field.
	(toString): New method.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (str): New field.
	(toString): New method.
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java (encodePrivateKey):
	Handle case when Q is null.
	(decodePrivateKey): Likewise.
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java (encodePublicKey):
	Likewise.
	(decodePublicKey): Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Added AlgorithmParameters
	aliases for all block ciphers.
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java (result): Changed to byte[].
	(engineDoPhase): Compute fully the shared secret.
	(checkState): New method.
	(reset): Likewise.
	(engineGenerateSecret()): Reset key-agreement before returning.
	(engineGenerateSecret(byte[],int)): Check for short-buffer.
	Reset key-agreement before returning.
	(engineGenerateSecret(String)): Reset key-agreement before returning.
	(engineInit(Key,SecureRandom)): Call reset() before returning.
	* gnu/javax/crypto/jce/params/BlockCipherParameters.java (log): New field.
	(engineInit): Replace printing to System.out with conditional logging.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java (engineInitHandler):
	When the key-size is not specified, attempt best effort to find a suitable
	value among those advertised by the cipher before setting it to the length
	of provided key material.

2006-06-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java
	(changeEvent): Don't initialize yet, removed FIXME,
	(fireColumnModelChanged): Initialize changeEvent if necessary.

2006-06-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(getAllStackTraces()): Implemented.
	(getStackTrace()): Likewise.
	
2006-06-27  Tania Bento  <tbento@redhat.com>

	* java/awt/Component.java
	(setComponentOrientation): NPE should not be thrown.

2006-06-27  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Create gjar, gnative2ascii, gserialver.
	* tools/gappletviewer.in: Quote $@.
	* tools/gkeytool.in: Likewise.
	* tools/gjarsigner.in: Likewise.
	* tools/gjar.in: New file.
	* tools/gnative2ascii.in: Likewise.
	* tools/gserialver.in: Likewise.
	* tools/Makefile.am (bin_PROGRAMS): Added gjar, gnative2ascii,
	gserialver.
	(bin_SCRIPTS): Likewise.

2006-06-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ThreadMXBean.java:
	(getThreadInfo(long[])): Corrected return type.
	(getThreadInfo(long[], int)): Likewise.

2006-06-27  Mark Wielaard  <mark@klomp.org>

	* java/awt/datatransfer/Clipboard.java (addFlavorListener): Do
	nothing when listener is null.
	(removeFlavorListener): Likewise.

	* java/awt/datatransfer/DataFlavor.java
	(getRepresentationClassFromMime): Renamed to
	getRepresentationClassFromMimeThrows.
	(isRepresentationClassInputStream): Use Class.isAssignableFrom().
	(isRepresentationClassSerializable): Likewise.
	(isFlavorJavaFileListType): Likewise and check primary and
	subtype.
	(getParameter): Parameters are separated by semi-colons.
	(DataFlavor(Class,String,String)): Do some sanity checks.
	(DataFlavor(String,String,ClassLoader)): Call
	getRepresentationClassFromMimeThrows.
	(DataFlavor(String)): Likewise.
	(equals(DataFlavor)): Special case primary type text and charset
	parameter.
	
2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(setName): Fire required PropertyChangeEvent,
	* java/awt/Label.java
	(getText): Removed redundant brackets,
	(generateName): New method (override),
	(nextLabelNumber): New field,
	(getUniqueLong): New method.

2006-06-27  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(createImage): Delegate this to the parent.
	(handleEvent): Only handle PAINT/UPDATE events when the
	component is actually showing.
	(hide): Repaint the parent after hiding a component.
	(prepareImage): Have only one return point.
	(setVisible): Delegate to show() and hide().
	(createVolatileImage): Added null check to avoid NPE.

2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Label.java: Reformatted source code.

2006-06-27  Roman Kennke  <kennke@aicas.com>

	* java/awt/image/BufferedImage.java
	(getSource): Use a fixed DirectColorModel to deliver the
	RGB pixels to the ImageConsumer.

2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Point.java
	(setLocation(double, double)): Round to nearest integer coordinates.

2006-06-27  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(minSizeSet): New field,
	(maxSize): Likewise,
	(maxSizeSet): Likewise,
	(isMaximumSizeSet): Implemented,
	(isMinimumSizeSet): Likewise,
	(isPreferredSizeSet): Likewise,
	(setMaximumSize): Likewise,
	(setMinimumSize): Likewise,
	(setPreferredSize): Likewise. 

2006-06-27  Roman Kennke  <kennke@aicas.com>

	* javax/imageio/spi/IIORegistry.java
	(IIORegistry): Added BMP codec.

2006-06-27  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JComponent.java
	(firePropertyChange(String,char,char)): New override method.

2006-06-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(getState()): New method.
	* java/lang/management/ClassLoadingMXBean.java:
	Corrected class documentation.
	* java/lang/management/ManagementFactory.java:
	Added new temporary marked stub to get thread bean.
	* java/lang/management/OperatingSystemMXBean.java:
	Corrected class documentation.
	* java/lang/management/RuntimeMXBean.java:
	Corrected class documentation.
	* java/lang/management/ThreadInfo.java,
	* java/lang/management/ThreadMXBean.java:
	New classes.
	* vm/reference/java/lang/VMThread.java:
	(getState()): New method.
	* vm/reference/java/lang/management/VMThreadInfo.java:
	New VM class.

2006-06-26  Sven de Marothy  <sven@physto.se>

	* gnu/javax/imageio/gif/GIFFile.java
	* gnu/javax/imageio/gif/GIFImageReader.java
	* gnu/javax/imageio/gif/GIFImageSpi.java
	* gnu/javax/imageio/gif/GIFStream.java
	New files.
	* javax/imageio/spi/IIORegistry.java: Load new GIF decoder plugin.

2006-06-26  Tania Bento  <tbento@redhat.com>

	* java/awt/List.java
	(List): A list should have at least 4 visible rows.	
	(replaceItem): Should throw an ArrayIndexOutOfBoundsException,
	not an IllegalArgumentException.
	(makeVisible): Should not throw an IllegalArgumentException if
	the specified index is out of range.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(getNextMatch): Reimplemented to perform a circular search for the 
	matching item.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(init): Set default value for visibleRowCount to 8,
	(setVisibleRowCount): Fire PropertyChangeEvent when value changes.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(valueIsAdjusting): Removed,
	(init): Removed initialization of valueIsAdjusting field,
	(getValueIsAdjusting): Fetch value from selection model,
	(setValueIsAdjusting): Store value in selection model.

2006-06-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(installKeyboardActions): Rewritten to fit with the
	ActionMap/InputMap architecture.
	(uninstallKeyboardActions): Implemented.
	(ListAction): Made private. Added TODO for splitting
	up this bulk Action.
	(ListAction.ListAction): New constructor. This one
	takes a cmd parameter to be installed as actionCommand.

2006-06-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/rsa/RSAKeyPairRawCodec.java: Remove RCS Revision.
	* gnu/javax/crypto/assembly/DeflateTransformer.java: Likewise.

2006-06-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java: Source formatting.
	* gnu/javax/crypto/jce/GnuSasl.java: Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java: Likewise.
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java: Likewise.
	* gnu/javax/crypto/jce/spec/UMac32ParameterSpec.java: Likewise.
	* gnu/javax/crypto/jce/spec/TMMHParameterSpec.java: Likewise.
	* gnu/javax/crypto/jce/spec/BlockCipherParameterSpec.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHKeyFactory.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/FortunaImpl.java: Likewise.
	* gnu/javax/crypto/jce/prng/CSPRNGSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/ARCFourRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/params/DERWriter.java: Likewise.
	* gnu/javax/crypto/jce/params/DERReader.java: Likewise.
	* gnu/javax/crypto/jce/params/DEREncodingException.java: Likewise.
	* gnu/javax/crypto/jce/params/BlockCipherParameters.java: Likewise.
	* gnu/javax/crypto/jce/mac/UMac32Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/UHash32Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/TMMH16Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacTwofishImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacTripleDESImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacSquareImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacSerpentImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacRijndaelImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacKhazadImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacDESImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacCast5Impl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacBlowfishImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacAnubisImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/MacAdapter.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacTigerSpi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA512Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA384Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA256Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacSHA160Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacMD5Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacMD4Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacMD2Spi.java: Likewise.
	* gnu/javax/crypto/jce/mac/HMacHavalSpi.java: Likewise.
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise.
	* gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/AnubisKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/cipher/TwofishSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/TripleDESSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/SquareSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/SerpentSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/RijndaelSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/PBES2.java: Likewise.
	* gnu/javax/crypto/jce/cipher/NullCipherSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/KhazadSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/DESSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java: Likewise.
	* gnu/javax/crypto/jce/cipher/Cast5Spi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/BlowfishSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/ARCFourSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AnubisSpi.java: Likewise.
	* gnu/javax/crypto/jce/cipher/AESSpi.java: Likewise.

2006-06-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(setLayoutOrientation): Check for valid argument.

2006-06-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(firePropertyChange(String,int,int)): New method. Overrides
	Component method and makes it public.
	(firePropertyChange(String,boolean,boolean)): Likewise.

2006-06-25  Vivek Lakshmanan  <vivekl@redhat.com>
	
	* gnu/java/security/.cvsignore: New File.
	* gnu/java/security/Configuration.java.in: New File.
	* gnu/java/security/Properties.java: Change import from 
	gnu.classpath.Configuration to gnu.java.security.Configuration.
	* gnu/java/security/hash/Whirlpool.java: Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/SignatureAdapter.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise.
	* gnu/java/security/pkcs/PKCS7SignedData.java: Likewise.
	* gnu/java/security/pkcs/SignerInfo.java: Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise.
	* gnu/java/security/util/Base64.java: Likewise.
	* gnu/java/security/x509/X509CRL.java: Likewise.
	* gnu/java/security/x509/X509CRLEntry.java: Likewise.
	* gnu/java/security/x509/ext/Extension.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/keyring/Entry.java: Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/pad/BasePad.java: Likewise.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise.
	* gnu/javax/crypto/pad/PKCS7.java: Likewise.
	* gnu/javax/crypto/pad/TBC.java: Likewise.
	* gnu/javax/crypto/prng/CSPRNG.java: Likewise.
	* gnu/javax/crypto/sasl/SaslInputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise.
	* gnu/javax/security/auth/login/ConfigFileParser.java: Likewise.
	* gnu/javax/security/auth/login/ConfigFileTokenizer.java: Likewise.
	* gnu/javax/security/auth/login/GnuConfiguration.java 
	(getAppConfigurationEntry): Change reference to 
	gnu.classpath.Configuration.DEBUG to gnu.java.security.Configuration.DEBUG.
	(getConfigFromUserHome): Likewise.
	(getInputStreamFromURL): Likewise.
	(getUserHome): Likewise.
	(init): Likewise.
	(processSecurityProperties): Likewise.
	(processSystemProperty): Likewise.
	(processUserHome): Likewise.
	* configure.ac: Add gnu/java/security/Configuration.java to AC_CONFIG_FILES list.
	* lib/Makefile.am: Remove gnu/java/security/Configuration.java when required.
	

2006-06-25  Carsten Neumann  <cn-develop@gmx.net>

	* javax/swing/text/DefaultCaret.java (isActive): New method.

2006-06-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java,
	* java/lang/management/ClassLoadingMXBean.java:
	(getTotalLoadedClassCount()): Corrected return type.
	(getUnloadedClassCount()): Likewise.
	* vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java:
	(getUnloadedClassCount()): Likewise.
	
2006-06-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/cipher/WeakKeyException.java: Source formatting.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/cipher/TripleDES.java: Likewise.
	* gnu/javax/crypto/cipher/Square.java: Likewise.
	* gnu/javax/crypto/cipher/Serpent.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/NullCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/IBlockCipherSpi.java: Likewise.
	* gnu/javax/crypto/cipher/IBlockCipher.java: Likewise.
	* gnu/javax/crypto/cipher/DES.java: Likewise.
	* gnu/javax/crypto/cipher/CipherFactory.java: Likewise.
	* gnu/javax/crypto/cipher/Cast5.java: Likewise.
	* gnu/javax/crypto/cipher/Blowfish.java: Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.

2006-06-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/assembly/TransformerException.java: Source formatting.
	* gnu/javax/crypto/assembly/Transformer.java: Likewise.
	* gnu/javax/crypto/assembly/Stage.java: Likewise.
	* gnu/javax/crypto/assembly/PaddingTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/Operation.java: Likewise.
	* gnu/javax/crypto/assembly/ModeStage.java: Likewise.
	* gnu/javax/crypto/assembly/LoopbackTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/Direction.java: Likewise.
	* gnu/javax/crypto/assembly/DeflateTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/CascadeTransformer.java: Likewise.
	* gnu/javax/crypto/assembly/CascadeStage.java: Likewise.
	* gnu/javax/crypto/assembly/Cascade.java: Likewise.
	* gnu/javax/crypto/assembly/Assembly.java: Likewise.

2006-06-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS,
	* doc/vmintegration.texinfo:
	Updated with information on new VM interface.
	* gnu/java/lang/management/ClassLoadingMXBeanImpl.java,
	* java/lang/management/ClassLoadingMXBean.java:
	New files implementing the class loading bean.
	* java/lang/management/ManagementFactory.java:
	(getClassLoadingMXBean()): Implemented.
	* vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java:
	New VM interface file.

2006-06-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/RuntimeMXBeanImpl.java:
	(isBootClassPathSupported()): Use SystemProperties
	rather than System.getProperty.
	
2006-06-24  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/Properties.java: Source formatting.
	* gnu/java/security/Registry.java: Likewise.

2006-06-24  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/Util.java: Source formatting.
	* gnu/java/security/util/SimpleList.java: Likewise.
	* gnu/java/security/util/Sequence.java: Likewise.
	* gnu/java/security/util/PRNG.java: Likewise.
	* gnu/java/security/util/ExpirableObject.java: Likewise.
	* gnu/java/security/util/Base64.java: Likewise.
	* gnu/java/security/sig/SignatureFactory.java: Likewise.
	* gnu/java/security/sig/ISignatureCodec.java: Likewise.
	* gnu/java/security/sig/ISignature.java: Likewise.
	* gnu/java/security/sig/BaseSignature.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java: Likewise.
	* gnu/java/security/sig/rsa/RSA.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java: Likewise.
	* gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java: Likewise.
	* gnu/java/security/sig/dss/DSSSignatureRawCodec.java: Likewise.
	* gnu/java/security/sig/dss/DSSSignature.java: Likewise.
	* gnu/java/security/provider/X509CertificateFactory.java: Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java: Likewise.
	* gnu/java/security/provider/Gnu.java: Likewise.
	* gnu/java/security/prng/RandomEventListener.java: Likewise.
	* gnu/java/security/prng/RandomEvent.java: Likewise.
	* gnu/java/security/prng/PRNGFactory.java: Likewise.
	* gnu/java/security/prng/MDGenerator.java: Likewise.
	* gnu/java/security/prng/LimitReachedException.java: Likewise.
	* gnu/java/security/prng/IRandom.java: Likewise.
	* gnu/java/security/prng/EntropySource.java: Likewise.
	* gnu/java/security/prng/BasePRNG.java: Likewise.

2006-06-23  Francis Kung  <fkung@redhat.com>

	* examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java
	(Harness.actionPerformed): Process additional options.
	(J2dBenchmarkWrapper): Defer init call until after options are processed.
	(J2dBenchmarkWrapper.setAlias): New method.
	(J2dBenchmarkWrapper.setComposite): New method.
	(J2dBenchmarkWrapper.setFill): New method.
	(J2dBenchmarkWrapper.setRotation): New method.
	(J2dBenchmarkWrapper.setShear): New method.
	(J2dBenchmarkWrapper.setStroke): New method.
	(J2dBenchmarkWrapper.setTranslation): New method.
	(run): Add additional options to GUI.
	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java:
	Added protected fields for various options.
	(GraphicsTest.runSet_noClipping): Reset graphics settings between tests.
	(GraphicsTest.runSet_withClipping): Reset graphics settings between tests.
	(GraphicsTest.runSet_zeroClipping): Reset graphics settings between tests.
	(getNextColor): Renamed to setRandom.
	(init): Load additional image for texturing if needed.
	(loadBufferedImage): New method.
	(main): Accept additional command-line switches.
	(prepareGraphics): New method.
	(resetGraphics): New method.
	(runTestSuite): Accept additional image-processing options.
	(setRandom): Renamed from getNextColor; generate various random options
	(test_drawArc): Rename getNextColor to setRandom.
	(test_drawCubic): Likewise.
	(test_drawEllipse): Likewise.
	(test_drawGeneralPath): Likewise.
	(test_drawImage): Likewise.
	(test_drawLine): Likewise.
	(test_drawQuadCurve): Likewise.
	(test_drawRectangle): Likewise.
	(test_drawRoundRectangle): Likewise.
	(test_drawTransparentImage): Likewise.
	(test_fillArc): Rename getNextColor to setRandom.
	(test_fillEllipse): Likewise.
	(test_fillGeneralPath): Likewise.
	(test_fillRectangle): Likewise.
	(test_fillRoundRectangle): Likewise.
	(TestRecorder.getAverage): Round the average time.

2006-06-23  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/LoggingMXBean.java: New file.
	* java/util/logging/LogManager.java (LOGGING_MXBEAN_NAME): New field.
	(loggingBean): New field.
	(getLoggingMXBean): New method.

2006-06-23  Tania Bento  <tbento@redhat.com>

	* java/awt/TextField.java
	(TextField): Default number of columns should be 0, not 1.
	(TextField): Check if number of columns given as argument
	is valid (>= 0) and set the number of columns accordingly.
	(TextField): Check if the string passed is null. If it is, 
	set columns to 0, else columns is set to the length of
	the string.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(InternalFramePropertyChangeListener.propertyChange):
	Don't call getPropertyName() repeatedly. Added null checks
	to avoid NPEs. Call closeFrame() if the closed property
	changes.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(maxTransition): Removed.
	(JInternalFrame): Set maxium=false. Initialize desktopIcon here.
	Don't initialize storedBounds here.
	(dipose): Rewritten to correctly dispose the JInternalFrame.
	(getDesktopIcon): Don't initialize desktopIcon here.
	(getLayer): Delegate to JLayeredPane.getLayer().
	(getNormalBounds): Return bounds when storedBounds == null,
	otherwise storedBounds.
	(hide): Don't change selection. Also hide the desktopIcon.
	(moveToBack): Call getParent() only once.
	(moveToFront): Call getParent() only once.
	(pack): Call validate() to make sure that the layout is
	propagated to the children.
	(setClosed): Fire InternalFrameEvent first, before the
	PropertyVetoEvent.
	(setJMenuBar): Fire PropertyChangeEvent for this property.
	(setLayer): Delegate to JLayeredPane.
	(setLayeredPane): Check for null and throw IllegalArgumenException.
	(setMaximum): Remove handling of maxTransition and normalBounds.
	Should probably be done in the UI.
	(setNormalBounds): Store Rectangle object directly, not a copy.
	(setRootPane): Go into rootPaneCheckingEnabled mode so that
	adding the RootPane doesn't add it to the contentPane.
	Fire PropertyChangeEvent.
	(setSelected): Added condition for when this property must not
	be changed.
	(show): Don't ask the DesktopPane to select the frame. Moved
	code around to fire InternalFrameEvent before actually calling
	super.show(). Also make the desktopIcon visible.
	(setTitle): Fire PropertyChangeEvent unconditionally.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(getPosition): Moved code around to avoid unnecessary method calls.
	(setPosition): Delegate to setLayer().
	(insertIndexForLayer(int,int)): Delegate to new private helper method.
	(insertIndexForLayer(Component,int,int)): New helper method
	to support the use of setComponentZOrder() which doesn't remove
	the component and thus the insertIndexForLayer must ignore
	the component to be moved to get the index right.
	(setLayer): Added check to prevent unnecessary execution of
	method body. Changed to update the component order here.
	Added repaint() to make sure that the update becomes visible.
	(addImpl): Call setLayer() only when a constraint has been specified.
	Validate and repaint the JLayeredPane.

2006-06-23  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(getComponentZOrder): Use ncomponents instead of
	component.length so that we don't consider the empty space
	after the last component.

2006-06-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(vetoableChangeSupport): New field.
	(removeVetoableChangeListener): Rewritten to use
	vetoableChangeSupport.
	(addVetoableChangeListener): Rewritten to use
	vetoableChangeSupport.
	(fireVetoableChange): Rewritten to use
	vetoableChangeSupport.
	(addPropertyChangeListener): Removed. This is handled in
	Component already.
	(firePropertyChange(String,boolean,boolean)): Likewise.
	(firePropertyChange(String,char,char)): Likewise.
	(firePropertyChange(String,int,int)): Likewise.
	(revalidate): Don't do anything when the commponent has no
	parent.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java: Updated API docs.

2006-06-22  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Insets.java: Updated copyright year.
	(toString): Changed string, removed a line from the 
	documentation.

2006-06-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(AbstractDocument): Set the i18n document property.
	(removeImpl): Added checks for correct boundaries.

2006-06-22  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainDocument.java
	(rootElement): Changed type to Element.
	(tabSize): Removed field. This is stored in the document properties
	instead.
	(PlainDocument): Set tabSize property. Init rootElement without
	cast.
	(insertUpdate): Rewritten. The previous implementation did not
	handle some corner cases properly and was a mess.
	(removeUpdate): Cast rootElement to BranchElement.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicLabelUI.java
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented,
	(propertyChange): Add handling for 'displayedMnemonic' and 'labelFor'
	properties.

2006-06-22  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/JMenu.java:
	(removeAll): Added check for popupMenu not being null.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(getText): Updated API docs,
	(setText): Corrected the check for an unchanged value, and the update 
	of the displayedMnemonicIndex.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(setDisplayedMnemonic(int)): Fire property change event AFTER updating 
	field,
	(setDisplayedMnemonicIndex): Modified argument checking to handle case
	where label text is null.

2006-06-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(setDisplayedMnemonic): Updated API docs,
	(getDisplayedMnemonic): Removed unnecessary type-cast,
	(setDisplayedMnemonicIndex): Removed unnecessary validation, 
	(getDisplayedMnemonicIndex): Updated API docs.

2006-06-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/Collections (entrySet): Fixed compile error.

2006-06-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListSelectionModel.java
	(getSelectionMode): Updated API docs,
	(setAnchorSelectionIndex): Added ListSelectionEvent generation,
	(addSelectionInterval): If mode is SINGLE_SELECTION, just call 
	setSelectionInterval(),
	(setSelectionInterval): Reimplemented SINGLE_SELECTION and 
	SINGLE_INTERVAL_SELECTION cases.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(BranchElement.numChildren): New field.
	(BranchElement.BranchElement): Initialize children array with
	one element (that's the least number of elements that makes sense).
	Initialize numChildren.
	(BranchElement.children): Use numChildren as boundary.
	(BranchElement.getElement): Use numChildren as boundary.
	(BranchElement.getElementCount): Use numChildren as boundary.
	(BranchElement.getElementIndex): Use numChildren as boundary.
	(BranchElement.getEndOffset): Use numChildren as boundary.
	(BranchElement.getStartOffset): Use numChildren as boundary.
	(BranchElement.positionToElement): Use numChildren as boundary.
	(BranchElement.replace): Handle the children array more efficiently
	by growing in blocks > 1, and reusing space from removed elements.
	(LeafElement.startDelta): Removed.
	(LeafElement.endDelta): Removed.
	(LeafElement.LeafElement): Removed handling of deltas.
	(LeafElement.getEndOffset): Likewise.
	(LeafElement.getStartOffset): Likewise.
	* javax/swing/text/JTextComponent.java
	(setDocument): Added locking of the old document to avoid dangling
	notification beeing delivered while the document is beeing
	disconnected.
	(getScrollableTracksViewportWidth): Fixed condition.
	* javax/swing/text/PlainDocument.java
	(createDefaultRoot): Create elements without AttributeSet.
	* javax/swing/text/rtf/RTFParser.java
	(parseFile): Handle slightly incorrect RTF gracefully.
	* javax/swing/text/rtf/RTFScanner.java
	(lastToken): New field.
	(readTokenImpl): New method.
	(peekToken): New method.
	(readToken): Changed to call readTokenImpl or return the lastToken
	if there's one present.

2006-06-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenu.java
	(remove): An IllegalArgumentException should be thrown if
	either index < 0 or if index > 0 and there are no menu
	components. Also, a check was added that ensures there are
	menu components before removing the desired the component.

2006-06-21  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultCaret.java
	(install): Added check to prevent NPE.
	(propertyChange): Added checks to prevent NPEs.

2006-06-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenu.java
	Changed instantiation of popupMenu to null.
	(JMenu): Instantiated popupMenu to new JPopupMenu.
	(JMenu): Instantiated popupMenu to new JPopupMenu.	
	(add): Changed popupMenu to getPopupMenu().
	(add): Changed popupMenu to getPopupMenu().
	(add): Changed popupMenu to getPopupMenu().
	(add): Changed popupMenu to getPopupMenu().
	(remove): Changed popupMenu to getPopupMenu().
	(remove): Changed popupMenu to getPopupMenu().
	(insert): Changed popupMenu to getPopupMenu().
	(setSelectedHelper): Changed popupMenu to getPopupMenu().
	(isPopupMenuVisible): Changed popupMenu to getPopupMenu().
	(setPopupMenuVisible): Changed popupMenu to getPopupMenu().
	(getMenuComponentCount): Changed popupMenu to getPopupMenu().
	(getMenuComponents): Changed popupMenu to getPopupMenu().
	(getPopupMenu): Check first if popupMenu is null and if so,
	instantiate it to a new JPopupMenu and set the invoker.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(popupMenuWillBecomeVisible): Component Listener should only
	be added to the root container if the root container is not 
	null. This avoids a null pointer exception.

2006-06-21  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenu.java
	(JMenu): Delay should be set to 200, not default of 0.
	(JMenu): Delay should be set to 200, not default of 0.
	(JMenu): Delay should be set to 200, not default of 0.
	(JMenu): Delay should be set to 200, not default of 0.	
	(remove): Added check that index >= 0 before removing
	the component.
	(getItem): Return null if item count equals 0.
	(isTearOff): Should throw new error and not return false.
	(getMenuComponent): Return null if popupMenu is null or
	if there are no menu components.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* java/awt/font/FontRenderContext.java:
	(equals): Added special conditions for affineTransform beeing
	null.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(MultiplexUIDefaults.clear): Removed method. The fallback UIDefaults
	must not be cleared.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(paintHorizontalGradient): Use paintHorizontalGradient2D when
	Graphics2D is available. Use fillRect instead of drawLine, this
	is much faster.
	(paintVerticalGradient): Use paintHorizontalGradient2D when
	Graphics2D is available. Use fillRect instead of drawLine, this
	is much faster.
	(paintHorizontalGradient2D): New method. Paints gradient
	using Graphics2D functions.
	(paintVerticalGradient2D): New method. Paints gradient
	using Graphics2D functions.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(propertyChange): Create a TextLayout and store it in the button
	when the 'text' property changes.
	* javax/swing/plaf/basic/BasicButtonUI.java
	(paintText): Call BasicGraphicsUtils utility method for
	drawing strings, instead of Graphics.drawString().
	* javax/swing/plaf/basic/BasicGraphicsUtils.java
	(CACHE_TEXT_LAYOUT): New constant field. Used as a key for storing
	cached text layouts as client properties in JComponents.
	(drawString(JComponent,Graphics,String,int,int)): New helper method.
	(drawStringUnderlineCharAt): New helper method.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(PropertyChangeHandler.propertyChange): Update cached text layout
	when 'text' property changes. Use equals() instead of == for
	string comparison.
	(paintText): Use new BasicGraphicsUtils methods for painting
	the cached text layout.
	(installListeners): Call super.installListeners() and remove
	the unneeded listener installs.
	(uninstallListeners): Call super.uninstallListeners() and remove
	the unneeded listener uninstalls.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(PropertyChangeHandler.propertyChange): Handle document listener
	update here.
	(background): Removed unneeded fields.
	(inactiveBackground): Remove unneeded fields.
	(installUI): Install the document listener. Slightly changed
	order of operations. Don't trigger modelChanged().
	(installDefaults): Only install properties when the
	current properties are null or instances of UIResource.
	(installListeners): Removed unnecessary listener installs.
	(installDocumentListeners): Removed unneeded method.
	(uninstallListeners): Removed unnecessary listener uninstalls.
	(modelChanged): Removed call to installDocumentListeners().	
	* javax/swing/plaf/basic/BasicTextFieldUI.java
	(propertyChange): Update the colors by fetching them from
	SharedUIDefaults. Fixed conditions.
	* javax/swing/plaf/basic/SharedUIDefaults.java
	(getColor): New method.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SizeSequence.java
	(SizeSequence): Initialize array with correct number of entries.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JSplitPane.java
	(setDividerLocation): Substract divider size when computing
	the absolute size.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildrenWithOverlap): Determine opaque property by
	calling the corresponding Component method, without requiring
	a JComponent.
	(paintChildrenOptimized): Removed old unneeded code.
	(paintImmediately): Use JComponent's convertRectangleToAncestor()
	method instead of SwingUtilities.convertRectangle(). This is
	more efficient.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(init): Call setText() instead of setting the property directly,
	so that listeners (especially in the UI) get notified.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(MultiplexUIDefaults): New inner class.
	(currentUIDefaults): Changed type to be MultiplexUIDefaults.
	(userUIDefaults): Changed name to be lookAndFeelDefaults.
	(<cinit>): Call setLookAndFeel(String) instead of trying to load
	directly. Print stacktrace if something goes wrong.
	(get): Delegate call to currentUIDefaults.
	(getDefaults): If currentUIDefaults is null, then lazily instantiate
	it.
	(getUI): Delegate call to currentUIDefaults.
	(put): Delegate call to currentUIDefaults.
	(setLookAndFeel): Initialize currentUIDefaults with
	MultiplexUIDefaults. Set lookAndFeelDefaults.
	(setLookAndFeel): Use current thread's context classloader for
	loading the L&F.

2006-06-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(GapContentPosition.GapContentPosition): Replace
	Collections.binarySearch with call to local search() to make
	sure we find the first object that equals the searched object.
	(setPositionsInRange): Likewise.
	(adjustPositionsInRange): Likewise.
	(search): New helper method.

2006-06-21  Gary Benson  <gbenson@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java: Add security check.
	* gnu/java/awt/peer/qt/QtGraphics.java: Likewise.
	* gnu/java/awt/java2d/AbstractGraphics2D.java: Likewise.

2006-06-20  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/Makefile.am (libgcjwebplugin_la_CXXFLAGS): Define
	APPLETVIEWER_EXECUTABLE to gappletviewer.

2006-06-20  Tom Tromey  <tromey@redhat.com>

	PR classpath/28095:
	* java/net/URL.java (URL): Throw MalformedURLException if a
	RuntimeException is caught.  Chain exceptions.

2006-06-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
	(create): Added check to prevent Seg Fault. Should not
	set the label if it is null.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java
	(setText): Changed to be a non-native function. Calls
	setNativeText if the String parameter is non-null.
	(setNativeText): Replaces old native setText function.
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText): Removed.
	Replaced by Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText.
	(Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText): Replaced
	Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText.

2006-06-20  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Rewrote all javadocs
	for this inner class.

2006-06-20  Francis Kung  <fkung@redhat.com>

	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java:
	Changed many members to be protected.
	(J2dBenchmark): moved to init() instead.
	(init): New method.
	(main): Call init() after creating object
	(testComplete): New method.
	(test_drawArc): Use maxTests varialbe instead of constant.
	(test_drawCubicCurve): Likewise.
	(test_drawEllipse): Likewise.
	(test_drawGeneralPath): Likewise.
	(test_drawImage): Likewise.
	(test_drawLine): Likewise.
	(test_drawQuadCurve): Likewise.
	(test_drawRectangle): Likewise.
	(test_drawRoundRectangle): Likewise.
	(test_drawTransparentImage): Likewise.
	(test_fillArc): Likewise.
	(test_fillEllipse): Likewise.
	(test_fillGeneralPath): Likewise.
	(test_fillRectangle): Likewise.
	(test_fillRoundRectangle): Likewise.
	(GraphicsTest.runSetNoClipping): Added runCount parameter.
	(GraphicsTest.runSetWithClipping): Likewise.
	(GraphicsTest.runSetZeroClipping): Likewise.
	(GraphicsTest.run): Added checks for more option flags.
	* examples/gnu/classpath/examples/java2d/J2dBenchmarkGUI.java:
	New file.

2006-06-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GapContent.java
	(GapContentPosition.mark): New field.
	(GapContentPosition.index): Removed.
	(GapContentPosition.GapContentPosition): Changed to take the
	real offset as parameter. Added handling of reference counter.
	Try to cleanup before creating new instances.
	(getOffset): Delegate to the Mark method with same name.
	(Mark): New class, encapsulating a mark.
	(positionMarks): Removed field.
	(numMarks): Removed field.
	(marks): New field.
	(queueOfDeath): New field.
	(GapContent): Removed init of old fields, added init of new fields.
	(createPosition): Added check for validity of arguments.
	Create GapContentPosition directly with offset.
	(shiftEnd): Pass end of buffer directly to adjustPositionsInRange.
	(shiftGap): Pass end of buffer directly to adjustPositionsInRange.
	(shiftGapStartDown): Call resetMarksAtZero().
	(shiftGapEndUp): Call resetMarksAtZero().
	(replace): Don't call resetMarksAtZero().
	(setPositionInRange): Replaced by simpler algorithm, similar to
	adjustPositionsInRange.
	(adjustPositionsInRange): Adapted to use of Mark objects.
	(resetMarksAtZero): Reset all marks that point to zero instead
	of only the first one.
	(dumpMarks): Adjusted to dump Mark objects.
	(insertMark): Removed.
	(garbageCollect): New method. Cleans up the marks list.
	(binarySearch): Removed.

2006-06-20  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Added call to updateColor because
	Cairo seems to lose the current color.

2006-06-20  Gary Benson  <gbenson@redhat.com>

	* java/awt/Toolkit.java: Add security check.
	* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.
	* gnu/java/awt/peer/qt/QtToolkit.java: Likewise.

2006-06-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/dss/DSSKey.java: Source formatting.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairRawCodec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java: Likewise.
	* gnu/java/security/key/dss/DSSPublicKey.java: Likewise.
	* gnu/java/security/key/dss/FIPS186.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAKey.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairRawCodec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise.
	* gnu/java/security/key/IKeyPairCodec.java: Likewise.
	* gnu/java/security/key/IKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/KeyPairCodecFactory.java: Likewise.
	* gnu/java/security/key/KeyPairGeneratorFactory.java: Likewise.

2006-06-19  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Should always use getRGB to get the pixels.
	getData returns an incorrect array of pixels.

2006-06-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/hash/HavalSpi.java: Source formatting.
	* gnu/java/security/jce/hash/MD2Spi.java: Likewise.
	* gnu/java/security/jce/hash/MD4Spi.java: Likewise.
	* gnu/java/security/jce/hash/MD5Spi.java: Likewise.
	* gnu/java/security/jce/hash/MessageDigestAdapter.java: Likewise.
	* gnu/java/security/jce/hash/RipeMD128Spi.java: Likewise.
	* gnu/java/security/jce/hash/RipeMD160Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha160Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha256Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha384Spi.java: Likewise.
	* gnu/java/security/jce/hash/Sha512Spi.java: Likewise.
	* gnu/java/security/jce/hash/TigerSpi.java: Likewise.
	* gnu/java/security/jce/hash/WhirlpoolSpi.java: Likewise.
	* gnu/java/security/jce/prng/HavalRandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/MD2RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/MD4RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/MD5RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/RipeMD128RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/RipeMD160RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/SecureRandomAdapter.java: Likewise.
	* gnu/java/security/jce/prng/Sha160RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/Sha256RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/Sha384RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/Sha512RandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/TigerRandomSpi.java: Likewise.
	* gnu/java/security/jce/prng/WhirlpoolRandomSpi.java: Likewise.
	* gnu/java/security/jce/sig/DSSKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java: Likewise.
	* gnu/java/security/jce/sig/DSSParameters.java: Likewise.
	* gnu/java/security/jce/sig/DSSRawSignatureSpi.java: Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java: Likewise.
	* gnu/java/security/jce/sig/RSAKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java: Likewise.
	* gnu/java/security/jce/sig/RSAPSSRawSignatureSpi.java: Likewise.
	* gnu/java/security/jce/sig/SignatureAdapter.java: Likewise.

2006-06-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* NEWS: Updated (delayed) for security tools and tools.texinfo.

2006-06-19  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Clip volatile image correctly.
	(drawVolatileImage): Added arguments for clipping.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(drawVolatileImage): Added arguments for clipping. Clip image
	correctly.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.

2006-06-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28035
	* java/rmi/server/UID.java (constructor): Synchronized
	the whole constructor on the UID class.

2006-06-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(addInvalidComponent): Only add component that are displayable,
	that have displayable parents and that have a validateRoot.
	Also, don't validate components that have a CellRendererPane
	ancestor.

2006-06-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/IconUIResource.java
	(IconUIResource): Throw IllegalArgumentException for null icon.

2006-06-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 28035
	* java/rmi/server/UID.java (constructor): First increment
	uidCounter, and then use the value.

2006-06-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* java/awt/GridBagLayout.java (AdjustForGravity): Implement.
	* java/awt/GridBagConstraints.java: Indent.

2006-06-18  Tom Tromey  <tromey@redhat.com>

	* native/jni/gconf-peer/.cvsignore: New file.

2006-06-18  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/Parser.java (handleLongOption):
	Also handle short options.

2006-06-18  Jim Huang  <jserv@kaffe.org>

	PR classpath/28076:
	* native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LIBADD):
	Fixed typo.

2006-06-19  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: gnu_java_util_prefs_gconf_%.h should depend
	on gnu/java/util/prefs/gconf/%.class.
	* Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class: Fix
	chache typo, should be cache.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys):
	Declare tmp early.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes):
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir):
	Don't return a value for void function.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir)
	Likewise.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
	Mark clazz as unused.  Return JNI_FALSE, not NULL for jboolean
	function.
	(Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class):
	Mark clazz ad unused.

2006-06-18  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/hash/Whirlpool.java: Source formatting.
	* gnu/java/security/hash/Tiger.java: Likewise.
	* gnu/java/security/hash/Sha512.java: Likewise.
	* gnu/java/security/hash/Sha384.java: Likewise.
	* gnu/java/security/hash/Sha256.java: Likewise.
	* gnu/java/security/hash/Sha160.java: Likewise.
	* gnu/java/security/hash/RipeMD160.java: Likewise.
	* gnu/java/security/hash/RipeMD128.java: Likewise.
	* gnu/java/security/hash/MD5.java: Likewise.
	* gnu/java/security/hash/MD4.java: Likewise.
	* gnu/java/security/hash/MD2.java: Likewise.
	* gnu/java/security/hash/IMessageDigest.java: Likewise.
	* gnu/java/security/hash/Haval.java: Likewise.
	* gnu/java/security/hash/HashFactory.java: Likewise.
	* gnu/java/security/hash/BaseHash.java: Likewise.

2006-06-18  Sven de Marothy  <sven@physto.se>

	* java/awt/event/KeyEvent.java:
	(VK_WINDOWS, VK_CONTEXT_MENU, VK_BEGIN): Add new keysym fields.
	*  natve/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	Implement WINDOWS, ALT_GR and CONTEXT_MENU keysyms.

2006-06-18  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/util/Prime2.java: Removed.
	* gnu/java/security/key/dss/FIPS186.java: Remove unused imports.
	(generateParameters): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Remove unused imports.
	(generate): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/crypto/key/dh/RFC2631.java: Remove unused imports.
	(generateParameters): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/crypto/key/srp6/SRPAlgorithm.java: Remove unused imports.
	(checkParams): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Remove unused imports.
	(generateParameters): Use isProbablePrime() in BigInteger instead of Prime2.
	* gnu/javax/net/ssl/provider/KeyPool.java: Remove unused imports.
	(generateRSAKeyPair): Use isProbablePrime() in BigInteger instead of Prime2.

2006-06-18  Sven de Marothy  <sven@physto.se>

	* java/awt/GridBagLayout.java (AdjustForGravity): Implement.
	* java/awt/font/TextMeasurer.java: Fix copyright date, 
	remove commented-out code.

2006-06-18  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(FreetypeGlyphVector, clone): Implement cloning.
	(getGlyphLogicalBounds): Bounds should be offset to the glyph position.
	* java/awt/font/TextMeasurer.java: Implement.
	* java/awt/font/LineBreakMeasurer.java: 
	Reimplement to use TextMeasurer.
	* java/awt/font/TextLayout.java
	New constructors.
	(getBlackboxBounds, getLogicalHighlightShape): Reimplement.
	(getText, getFont): New private static methods.
	(setCharIndices): New method.
	* java/text/AttributedString.java
	(AttributedString): Fix constructor to stop at end point.
	
2006-06-17  Tom Tromey  <tromey@redhat.com>

	* lib/gen-classlist.sh.in: Search all top-level directories, not
	just 'org', in external.

2006-06-12  Mario torre  <neugens at limasoftware.net>

	* gnu/java/util/prefs/GConfBasedPreferences.java: new class.
	* gnu/java/util/prefs/GConfBasedFactory.java: new class.
	* gnu/java/util/prefs/gconf/GConfNativePeer.java: new class.
	* gnu_java_util_prefs_gconf_GConfNativePeer.h: generated
	header file.
	* classpath/native/jni/gconf-peer/GConfNativePeer.c: new C file.
	* configure.ac: update to introduce new files. Added options
	to build gconf native peer used by the GConf preference backend.
	* include/Makefile.am: update to introduce new files.
	* native/jni/Makefile.am update to introduce new files.
	* scripts/check_jni_methods.sh: added three new ignored file
	from check.
	* native/jni/gconf-peer/Makefile.am: new Makefile needed to
	build gconf-peer shared library.

2006-06-17  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java:
	Use Integer.valueOf() instead of new Integer().
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java: Likewise.
	* gnu/java/security/util/Sequence.java: Likewise.
	* gnu/java/security/x509/ext/GeneralNames.java: Likewise.
	* gnu/java/security/x509/X509Certificate.java: Likewise.
	* gnu/javax/crypto/assembly/ModeStage.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.
	* gnu/javax/crypto/cipher/Blowfish.java: Likewise.
	* gnu/javax/crypto/cipher/Cast5.java: Likewise.
	* gnu/javax/crypto/cipher/DES.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/NullCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/Serpent.java: Likewise.
	* gnu/javax/crypto/cipher/Square.java: Likewise.
	* gnu/javax/crypto/cipher/TripleDES.java: Likewise.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java: Likewise.
	* gnu/javax/crypto/jce/cipher/PBES2.java: Likewise.
	* gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java: Likewise.
	* gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.java: Likewise.
	* gnu/javax/crypto/keyring/AuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/EncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordProtectedEntry.java: Likewise.
	* gnu/javax/crypto/mac/UHash32.java: Likewise.
	* gnu/javax/crypto/mac/UMac32.java: Likewise.
	* gnu/javax/crypto/mode/BaseMode.java: Likewise.
	* gnu/javax/crypto/mode/EAX.java: Likewise.
	* gnu/javax/crypto/prng/ICMGenerator.java: Likewise.
	* gnu/javax/crypto/prng/UMacGenerator.java: Likewise.
	* gnu/javax/crypto/sasl/srp/KDF.java: Likewise.
	* gnu/javax/security/auth/callback/ConsoleCallbackHandler.java: Likewise.
	* java/security/cert/X509CertSelector.java: Likewise.

2006-06-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/DynamicMBean.java:
	(setAttribute): Fixed to return void.
	* javax/management/MBeanFeatureInfo.java:
	New file.
	
2006-06-17  Raif S. Naffah  <raif@swiftdsl.com.au>

	On behalf of Vivek Lakshmanan <vivekl@redhat.com>
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java
	(engineInit(int, Key, SecureRandom)): Seperate common initialization logic
	into engineInitHandler and reuse the code in
	engineInit(int, Key, AlgorithmSpec, SecureRandom).
	(engineInitHandler): New method.
	(engineInit(int, Key, AlgorithmParameterSpec, SecureRandom)): When param is
	null, use random or default information when possible.

2006-06-16  Francis Kung  <fkung@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkButtonBar): Rename FillRect to JNIOverhead.
	(mkMenuBar): Rename FillRect to JNIOverhead.
	* examples/gnu/classpath/examples/swing/FillRect.java: Removed.
	* examples/gnu/classpath/examples/java2d/J2dBenchmark.java: New file.
	* examples/gnu/classpath/examples/java2d/JNIOverhead.java:
	Moved from old FillRect.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added new tool names.

2006-06-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventManager.java (getDefault): Redo
	instantiation so that EventManager is created when getDefault
	is first called.
	* gnu/classpath/jdwp/Jdwp.java (Thread): Force creation
	of EventManager.

2006-06-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (_initLock): New field.
	(_initCount): New field.
	(Jdwp): Don't set isDebugging until fully initialized.
	(subcomponentInitialized): New method.
	(run): Wait for PacketProcessor and JdwpConnection to
	startup, then set isDebugging, and then let this thread
	die.
	* gnu/classpath/jdwp/transport/JdwpConnection.java
	(run): Add synchronization notification.
	* gnu/classpath/jdwp/processor/PacketProcessor.java
	(run): Likewise.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* NEWS: Updated for JSR 166.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* lib/Makefile.am (compile_classpath): Added jsr166.
	* configure.ac: Added external/jsr166/Makefile.
	* external/Makefile.am (SUBDIRS): Added jsr166.
	* external/jsr166/Makefile.am: New file.
	* lib/gen-classlist.sh.in: Look in external/jsr166.

2006-06-16  Kyle Galloway  <kgallowa@redhat.com>

	* gnu/classpath/jdwp/event/ExceptionEvent:
	Added Object instance to javadoc in constructor
	* gnu/classpath/jdwp/event/MethodEntryEvent:
	Ditto.
	* gnu/classpath/jdwp/event/MethodExitEvent:
	Ditto,
	* gnu/classpath/jdwp/event/SingleStepEvent:
	Ditto. 

2006-06-16  Tom Tromey  <tromey@redhat.com>

	Imported JSR 166 reference implementation:
	* .classpath: Added external/jsr166.
	* java/util/concurrent/CopyOnWriteArrayList.java: New file.
	* java/util/AbstractQueue.java: Removed.
	* java/util/Queue.java: Removed.
	* external/jsr166/java/util/concurrent/ScheduledThreadPoolExecutor.java
	(runPeriodic): Added explicit cast.
	* external/jsr166/java/util/ArrayDeque.java (clone): Use
	elements.clone.

2006-06-16  Tom Tromey  <tromey@redhat.com>

	* vm/reference/sun/reflect/Reflection.java (verifyMemberAccess):
	Removed.
	(getCallerClass): Now static.
	* vm/reference/sun/reflect/misc/ReflectUtil.java: New file.

2006-06-16  Lillian Angel  <langel@redhat.com>

	* java/awt/FileDialog.java
	(FileDialog): Added @since tag to API docs.
	(FileDialog): Likewise.
	(FileDialog): Likewise.
	* java/awt/Font.java:
	Added @since tag to TYPE1_FONT field docs.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	(isThumbRollover): Likewise.
	(setThumbRollover): Likewise.
	(getSupportsAbsolutePositioning): Likewise.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	(isDragging): Likewise.

2006-06-16  Lillian Angel  <langel@redhat.com>

	* java/awt/FileDialog.java
	(FileDialog): Implemented.
	(FileDialog): Implemented.
	(FileDialog): Implemented.
	* java/awt/Font.java:
	Added TYPE1_FONT constant field.

2006-06-16  Lillian Angel  <langel@redhat.com>

	* java/awt/font/TextLayout.java:
	Removed unneeded imports.
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	Added new thumbRollover field.
	(mouseMoved): Added code to set thumbRollover field.
	(isThumbRollover): New function.
	(setThumbRollover): New function.
	(getSupportsAbsolutePositioning): Implemented. This
	needs to be changed once the feature has been 
	implemented.
	* javax/swing/plaf/basic/BasicSliderUI.java:
	Added new dragging field.
	(mouseDragged): Initialized dragging field.
	(isDragging): New function.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(focusGained): Marked as not implemented.
	(focusLost): Likewise.

2006-06-16  Kyle Galloway  <kgallowa@redhat.com>

	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java:
	Added check for null ThreadId to avoid null pointer
	exception.

2006-06-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultComboBoxModel.java
	(removeElementAt): Set new selected item by calling setSelectedItem().

2006-06-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultButtonModel.java
	(setSelected): Use 'this', not null, for the item in the ItemEvent.

2006-06-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListDataEvent.java: updated API docs, plus
	(ListDataEvent): Handle case where index0 > index1,
	(toString): Implemented.

2006-06-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/metal/MetalMenuBarUI.java:
	(update): Added subexpression to if-statement.

2006-06-16  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java:
	(installDefaults): Removed unneccessary code.
	(paint): Removed complex if-cascade, revert to default icon if
	icon property is not set.
	(getPreferredSize): New method.

2006-06-16  Roman Kennke  <kennke@aicas.com>

	PR 28027
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Don't use setClip() but instead clipRect() to
	intersect the current clip with a new one.

2006-06-15  Tom Tromey  <tromey@redhat.com>

	* scripts/sanitize-jsr166: New file.
	* external/jsr166/IMPORTING: New file.
	* vm/reference/sun/reflect/Reflection.java: New file.
	* vm/reference/gnu/classpath/Unsafe.java: Moved...
	* vm/reference/sun/misc/Unsafe.java: ...here.

2006-06-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Rename appletviewer to gappletviewer, jarsigner to
	gjarsigner and keytool to gkeytool.
	* doc/tools.texinfo: Add note about tool exectable names.
	* tools/Makefile.am: Rename appletviewer to gappletviewer,
	jarsigner to gjarsigner and keytool to gkeytool.
	* tools/appletviewer.in: Rename ...
	* tools/gappletviewer.in: New file.
	* tools/jarsigner.in: Rename ...
	* tools/gjarsigner.in: New file.
	* tools/keytool.in: Rename ...
	* tools/gkeytool.in: New file.
	* tools/toolwrapper.c: Simplify TOOLS_ZIP macro.

2006-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeList.java:
	Add serialization UID.
	* javax/management/DynamicMBean.java:
	New file.
	* javax/management/JMRuntimeException.java:
	Add serialization UID and correct name
	of serialized field.
	* javax/management/MBeanInfo.java: New file.
	
2006-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeList.java,
	* javax/management/JMRuntimeException.java,
	* javax/management/RuntimeOperationsException.java:
	New files.
	
2006-06-15  Lillian Angel  <langel@redhat.com>

	* java/awt/font/TextLayout.java:
	DEFAULT_CARET_POLICY changed to be public static final.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/plaf/metal/MetalScrollButton.java
	(MetalScrollButton): Should set 'focusable' to false.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java
	(BasicArrowButton): Should set 'focusable' to false.
	(BasicArrowButton): Should set 'focusable' to false.

2006-06-15  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getGraphicsConfiguration): Return default screen device.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java (component):
	New field.
	(GtkVolatileImage): Record initiating component.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(getDeviceConfiguration): Return configuration of image component.

2006-06-15  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/GeneralPath.java (closePath): Return if path already
	closed.

2006-06-15  Mark Wielaard  <mark@klomp.org>

	* java/awt/BasicStroke.java (createStrokedShape): Call getPathIterator
	with null argument.

2006-06-15  Kyle Galloway  <kgallowa@redhat.com>

	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(matches): Added explicit brackets to return statement.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/JRadioButtonMenuItem.java
	(JRadioButtonMenuItem): Should set 'focusable' to false.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java
	(JCheckBoxMenuItem): Should set 'focusable' to false.

2006-06-15  Tania Bento  <tbento@redhat.com>

	* javax/swing/AbstractButton.java:
	(AbstractButton): 'Focusable' should be set to true and not false.

2006-06-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementFactory.java:
	Add private constructor to prevent instance creation.
	* java/lang/management/ManagementPermission.java:
	Make final.
	
2006-06-15  Francis Kung  <fkung@redhat.com>

	* javax/swing/plaf/basic/BasicArrowButton.java:
	(BasicArrowButton): move client property for not triggering out 
	of consturctor
	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(configureArrowButton): set client property for not triggering
	(installUI): set client property for not triggering
	* javax/swing/plaf/basic/BasicLookAndFeel.java:
	(PopupHelper.mousePressed): check client property for triggering

2006-06-15  Roman Kennke  <kennke@aicas.com>

	PR 28037
	* javax/swing/RepaintManager.java
	(blitBuffer): Substract coordinates the other way around.

2006-06-15  Roman Kennke  <kennke@aicas.com>

	PR 28027
	* javax/swing/JComponent.java
	(paintImmediately2): Only paint component without double buffering
	when all of it's parents have also double buffering disabled.
	(isPaintingDoubleBuffered): New helper method.

2006-06-15  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(draw(Shape)): Pass null transform to getPathIterator(),
	(getClip): Likewise,
	* gnu/java/print/PostscriptGraphics2D.java
	(drawStringShape): Pass null transform to getPathIterator(),
	(writeShape): Likewise,
	* java/awt/Shape.java: Small updates to API docs.

2006-06-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/naming/InitialContext.java:
	(list(javax.naming.Name)): Fixed generic type.
	(list(String)): Likewise.
	(listBindings(javax.naming.Name)): Likewise.
	(listBindings(String)): Likewise.
	
2006-06-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(getAccessibleChildrenCount): Implemented.
	(getAccessibleChild): Implemented.
	(isNavigationKey): Implemented.
	(KeyHandler.keyPressed): Implemented.

2006-06-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementPermission.java:
	Added serialization UID.
	* javax/management/Attribute.java: Likewise.
	* javax/management/MBeanException.java,
	* javax/management/ReflectionException.java:
	Added serialization UID and changed to extend
	javax.management.JMException.
	
2006-06-14  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(ignoreOldMouseEvents): Made static.
	(translateEvent): Made static.
	* java/awt/TextComponent.java
	(ignoreOldMouseEvents): Made static.

2006-06-14  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java (drawLine): Lock and
	call super.
	(drawRect): Likewise.
	(fillRect): Likewise.

2006-06-14  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(ignoreOldMouseEvents): New helper function.
	(translateEvent): Changed to be non-static and use new helper.
	* java/awt/TextComponent.java
	(ignoreOldMouseEvents): New helper function.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(MERGE_REGIONS): New constant flag.
	(commitBuffer): Exclude the merging of regions by default. This
	was causing painting artifacts in some applications, especially
	when different areas of the GUI are updated synchronously.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java:
	New file. This is a benchmark for AWT 1.1 style graphics operations.
	* examples/gnu/classpath/examples/awt/palme.gif: New file.
	* examples/gnu/classpath/examples/awt/aicas.gif: New file.

2006-06-14  Tom Tromey  <tromey@redhat.com>

	* java/io/File.java (getParent): Javadoc fix.

2006-06-14  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/loader/JarURLLoader.java (initialize): Skip our own
	jar.
	* gnu/java/net/IndexListParser.java (IndexListParser): Call clearAll
	when index entry does not exist.

2006-06-14  Tania Bento  <tbento@redhat.com>

	* javax/swing/AbstractButton.java
	(AbstractButton): Set focusable to false, not true.

2006-06-14  Tania Bento  <tbento@redhat.com>

	* javax/swing/JMenuItem.java
	(init): Changed horizontalAlignment from JButton.LEFT to JButton.LEADING.

2006-06-14  Tania Bento  <tbento@redhat.com>

	* javax/swing/JCheckBoxMenuItem.java
	(JCheckBoxMenuItem): Added check to set the selected state.

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(cairoDrawLine): New native method.
	(cairoDrawRect): New native method.
	(cairoFillRect): New native method.
	(drawLine): Use special native method.
	(drawRect): Use special native method.
	(fillRect): Use special native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(cairoDrawLine): New native method.
	(cairoDrawRect): New native method.
	(cairoFillRect): New native method.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.

2006-06-14  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_getPixels): Return when array
	cannot be allocated.

2006-06-14  Tom Tromey  <tromey@redhat.com>

	PR java/28024:
	* m4/acinclude.m4 (REGEN_WITH_JAY): Use backquote, not $(...).
	* configure.ac (QT_INCLUDE_DIR): Use backquote, not $(...).

2006-06-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(isRepainting): New flag.
	(paintImmediately2): Set isRepainting flag.
	(getRoot): Removed obsolete method.
	(paintDoubleBuffered): Differenciate between paint calls from
	RepaintManager and from AWT refresh. Call
	RepaintManager.commitBuffer with this and local coordinates.
	(findOpaqueParent): Stop searching at heavyweight component. These
	are always opaque.
	(paintChildrenOptimized): Don't paint heavyweight children. These
	should care for themselves.
	(paintChildrenWithOverlap): Don't paint heavyweight children. These
	should care for themselves.
	* javax/swing/RepaintManager.java
	(getOffscreenBuffer): Associate offscreen buffer with toplevel
	windows only.
	(getVolatileOffscreenBuffer): Associate offscreen buffer with
	toplevel windows only.
	(getRoot): Removed obsolete method.
	(commitBuffer): Blit buffer on nearest heavyweight.
	(blitBuffer): New helper method.
	(getHeavyweightParent): New helper method.
	(commitRemainingBuffers): Call blitBuffer instead of commitBuffer.
	* javax/swing/SwingUtilities.java
	(convertRectangleToAncestor): New helper method.

2006-06-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/login/ConfigFileTokenizer.java: Fixed a typo.
	Condition all trace/debug code based on Configuration.DEBUG.
	Use logger instead of STDOUT and ot STDERR.

2006-06-13  Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc
	(NP_Initialize): Removed code to create whitelist file.
	(GCJ_New): Added code to create whitelist file.
	(plugin_user_trusts_documentbase): Fixed error message.

2006-06-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon.gradientMask): Modified by 1 pixel to 
	prevent overwriting border,
	(VerticalSliderThumbIcon.gradientMask): Likewise.

2006-06-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/management/AttributeNotFoundException.java,
	* javax/management/InvalidAttributeValueException.java,
	* javax/management/JMException.java,
	* javax/management/MBeanException.java,
	* javax/management/OperationsException.java,
	* javax/management/ReflectionException.java:
	New files.
	
2006-06-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(dispatchEvent): Handle events even when consumed (this might be
	picked up later in the dispatching chain).
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper.mousePressed): Don't consume event. Only close popup
	when target component isn't flagged as DONT_CANCEL_POPUP.
	(DONT_CANCEL_POPUP): New package private constant for flagging
	special components that don't trigger popup closing.
	* javax/swing/plaf/basic/BasicArrowButton.java
	(BasicArrowButton): Set client property for not triggering closing
	of popups.

2006-06-13  Lillian Angel  <langel@redhat.com>

	* java/awt/image/PixelGrabber.java
	(PixelGrabber): Added to API documentation.

2006-06-13  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(ExceptionOnlyFilter): Allow null refId.

	* gnu/classpath/jdwp/event/BreakpointEvent.java: Added _instance for
	compatibility with filters.
	(getParameter): Modified to allow access to above. 

2006-06-13  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(create): Use stride in ints.

2006-06-13  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/ClassUnloadEvent.java: New file.

2006-06-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(calculateThumbSize): Removed unnecessary code,
	(calculateThumbLocation): Shift position by one,
	(calculateTickRect): Shift position by one when ticks are displayed,
	(calculateLabelRect): Calculate rect differently according to whether
	or not the labels are visible,
	(paintTrack): Shift track down one pixel.

2006-06-13  Lillian Angel  <langel@redhat.com>

	* java/awt/image/PixelGrabber.java
	(PixelGrabber): Removed check to throw exception. JDK does
	not do this.
	(startGrabbing): Removed line to print stacktrace. 

2006-06-13  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawImage): Don't
	allocate unused AffineTransform. Add comment about conversion to
	BufferedImage.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java (drawImage):
	Recognize identity transform as "easy". Always convert to
	BufferedImage before calling super.

2006-06-13  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getGraphics): Translate child graphics correctly.
	(dispatchEvent): Only dispatch event if it hasn't been consumed
	yet by the global dispatcher.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	Added some API docs.
	(PopupHelper.mousePressed): Consume the event after closing
	opened menus.

2006-06-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicCheckBoxUI.java: Source code formatting 
	changes only,
	* javax/swing/plaf/basic/BasicComboBoxUI.java: Likewise,
	* javax/swing/plaf/basic/BasicComboPopup.java: Likewise,
	* javax/swing/plaf/basic/BasicFileChooserUI.java: Likewise,
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Likewise,
	* javax/swing/plaf/basic/BasicLookAndFeel.java: Likewise,
	* javax/swing/plaf/basic/BasicMenuItemUI.java: Likewise,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicProgressBarUI.java: Likewise,
	* javax/swing/plaf/basic/BasicRadioButtonUI.java: Likewise,
	* javax/swing/plaf/basic/BasicScrollBarUI.java: Likewise,
	* javax/swing/plaf/basic/BasicSliderUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTableHeaderUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTableUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextUI.java: Likewise,
	* javax/swing/plaf/basic/BasicToolBarUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTreeUI.java: Likewise.

2006-06-12  Sven de Marothy  <sven@physto.se>

	* java/awt/font/LineBreakMeasurer.java): Implement.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/SingleStepEvent.java: New file.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/MethodEntryEvent.java: New file.

	* gnu/classpath/jdwp/event/MethodExitEvent.java: New file.

2006-06-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintDoubleBuffered): Correctly translate and clip the Graphics
	instance.
	(clipAndTranslateGraphics): New helper method.

2006-06-12  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copy): Use getClip() to copy the clip. Make copied transform
	null when original transform is null. Set clip here.
	(setTransform): Correctly update the clip.
	(setTransformImpl): New method. Updates the actual transform for
	Cairo.
	(transform): Correctly update the clip.
	(translate): Correctly update the clip.
	(clip): Handle null clip and argument correctly.
	(clipRect): Avoid creating new Rectangle objects.
	(getClip): Get the correct copy of the clip.
	(setClip): Correctly handle null argument.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	(CairoSurfaceGraphics): Don't set the clip here. The clip can either
	be null or whatever has been set in copy().
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Add translation to the image coordinates.
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(VolatileImageGraphics): Don't set clip here. The clip can either
	be null or whatever has been set in copy().

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(forCaught): Removed unused/unnecessary method.
	(forUncaught): Likewise.
	(matches): Implement.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/ExceptionEvent.java: New file.

2006-06-12  Keith Seitz  <keiths@redhat.com>

	From Kyle Galloway  <kgallowa@redhat.com>:
	* gnu/classpath/jdwp/event/Event.java: Added constants for
	type.
	(getParameter): Changed parameter type from Class to int.
	* gnu/classpath/jdwp/event/BreakpointEvent.java (getParameter):
	Changed from Class type to constants.
	* gnu/classpath/jdwp/event/ClassPrepareEventEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/ThreadEndEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/ThreadStartEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/VmDeathEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/VmInitEvent.java (getParameter):
	Likewise.
	* gnu/classpath/jdwp/event/ClassMatchFilter.java (matches):
	Likewise.
	* gnu/classpath/jdwp/event/ClassOnlyFilter.java (matches):
	Likewise.
	* gnu/classpath/jdwp/event/InstanceOnlyFilter.java (matches):
	Likewise.
	* gnu/classpath/jdwp/event/ThreadOnlyFilter.java (matches):
	Likewise.

2006-06-12  Lillian Angel  <langel@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
	(StandaloneAppletWindow): Changed title of standalone window.

2006-06-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(layoutContainer): Added missing selectedComponent assignment.

2006-06-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(layoutContainer): Added check to prevent exception.

2006-06-12  Tom Tromey  <tromey@redhat.com>

	* java/lang/Thread.java (uncaughtException): Javadoc fix.

2006-06-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java (hasLock):
	New static field.
	(ONE): Likewise.
	(lock): New method.
	(unlock): Likewise.
	(draw): Use lock() and unlock().
	(fill): Likewise.
	(drawRenderedImage): Likewise.
	(drawImage): Likewise.
	(drawGlyphVector): Likewise.

2006-06-12  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawPixels): Include alpha in parameter list.
	(cairoFill): Include alpha in parameter list.
	(setComposite): Don't modify the color.
	(draw(Shape))): Use fill when the current composite has an alpha
	of != 1.0, so that the stroked shaped will be composited.
	(fill(Shape)): Call cairoFill() with alpha.
	(drawImage): Call drawPixels or drawSurface with alpha.
	(drawGlyphVector): When composite alpha is != 1.0, render the
	outline using fill() to enable compositing for text.
	(drawRaster): Call drawPixels with alpha.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(nativeDrawSurface): Include alpha in parameter list.
	(drawSurface): Include alpha in parameter list. Pass it to
	nativeDrawSurface().
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	* include/gnu_java_awt_peer_gtk_CairoSurface.h:
	Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(drawPixels): Handle possible alpha for compositing.
	(cairoFill): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(nativeDrawSurface): Handle possible alpha for compositing.

2006-06-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (streamImage):
	Notify data when completely done. Wait for worker thread to finish.
	Rethrow any pending exceptions.
	(exception): New field.
	(run): Store pending exception.

2006-06-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/ManagementPermission.java:
	New file.
	
2006-06-12  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: Replaced original author with "The GNU Classpath Team".

2006-06-12  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/login/ConfigFileParser.java (validateClassName):
	Use String.charAt().

2006-06-11  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* doc/tools.texinfo
	(Applet Tools): New chapter.
	(appletviewer Tool): New section.
	(gcjwebplugin): New section.

2006-06-11  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (streamImage):
	Takes GdkPixbufWriter.
	(GdkPixbufWriter): Implements Runnable.
	(write(IIOMetadata,IIOImage,ImageWriteParam)): Start Thread for
	data processing.
	(DATADONE): New static final field.
	(data): New field.
	(write(byte[])): New method.
	(run): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState):
	Get dataOutputWriteID from writeClass.
	(stream_save_request): Change stream field to writer.
	(save_to_stream): Remove FIXME, call writer.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage):
	Store writer.

2006-06-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention new VM interface and use of properties.
	* doc/vmintegration.texinfo:
	Update with new gnu.java.lang.management section.
	* gnu/java/lang/management/RuntimeMXBeanImpl.java:
	New file.
	* java/lang/management/ManagementFactory.java:
	(getRuntimeMXBean()): Implemented.
	* vm/reference/gnu/java/lang/management/RuntimeMXBeanImpl.java:
	New VM interface file.
	
2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/26065
	* gnu/javax/security/auth/login/GnuConfiguration.java: Condition all trace/
	debug code based on Configuration.DEBUG.
	Use logger instead of STDOUT and ot STDERR.
	* gnu/javax/security/auth/login/ConfigFileParser.java: Likewise.
	* gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise.
	* gnu/javax/crypto/sasl/SaslInputStream.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise.
	* gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise.
	* gnu/javax/crypto/prng/CSPRNG.java: Likewise.
	* gnu/javax/crypto/pad/TBC.java: Likewise.
	* gnu/javax/crypto/pad/PKCS7.java: Likewise.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise.
	* gnu/javax/crypto/pad/BasePad.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java: Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise.
	* gnu/javax/crypto/keyring/Entry.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise.
	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise.
	* gnu/javax/crypto/cipher/Twofish.java: Likewise.
	* gnu/javax/crypto/cipher/Khazad.java: Likewise.
	* gnu/javax/crypto/cipher/Rijndael.java: Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Likewise.
	* gnu/javax/crypto/cipher/Anubis.java: Likewise.
	* gnu/java/security/Properties.java: Likewise.
	* gnu/java/security/x509/X509CRLEntry.java: Likewise.
	* gnu/java/security/x509/X509CRL.java: Likewise.
	* gnu/java/security/x509/ext/Extension.java: Likewise.
	* gnu/java/security/util/Prime2.java: Likewise.
	* gnu/java/security/util/Base64.java: Likewise.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise.
	* gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java: Likewise.
	* gnu/java/security/pkcs/SignerInfo.java: Likewise.
	* gnu/java/security/pkcs/PKCS7SignedData.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java: Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise.
	* gnu/java/security/jce/sig/SignatureAdapter.java: Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise.
	* gnu/java/security/hash/Whirlpool.java: Likewise.

2006-06-11  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	(Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs):
	Remove unused variable glyph_index.

2006-06-11  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (drawImage):
	Don't recurse, return false if not an BufferedImage and no image
	source available.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java (draw): Add
	end_gdk_drawing() to finally block.
	(fill): Likewise.
	(drawRenderedImage): Likewise.
	(drawImage): Likewise.
	(drawGlyphVector): Likewise.

2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: Added text for new -cacert command.
	Re-structured sections.
	* resource/gnu/classpath/tools/keytool/messages.properties: Added messages
	for -cacert command.
	* tools/gnu/classpath/tools/keytool/Main.java (CACERT_CMD): New constant.
	(_CACERT): Likewise.
	(shutdownThread): New field.
	(Main): Install shutdown thread.
	(main): Uninstall shutdown thread.
	(start): Handle new -cacert command.
	(getParser): Likewise.
	(teardown): Increased visibility.
	(ShutdownHook): New inner class.
	* tools/gnu/classpath/tools/keytool/CACertCmd.java: New file.

2006-06-11  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(setupGlyphMetrics): New method. Add glyphmetrics caching.
	(getOutline): Operate on the shape directly.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getGlyphMetrics,putGlyphMetrics): Add GlyphMetrics caching.
	* include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h
	(getGlyph renamed getGlyphs)
	* java/awt/geom/AffineTransform.java
	(getTranslateInstance): Set fields directly.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	(getGlyphs): Get all glyph codes at once.
	
2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR Classpath/27853
	* gnu/javax/crypto/RSACipherImpl.java (engineDoFinal): Was short by 1 byte.

2006-06-11  Sven de Marothy  <sven@physto.se>

	* java/awt/font/TextLayout.java
	(getLogicalHighlightShape): Add check.
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(getLogicalBounds, getGlyphPositions): Cache bounds, positions.

2006-06-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/login/ConfigFileParser.java (validateClassName):
	Check that every component of 'cn' starts with a valid Java identifier char.

2006-06-10  Tom Tromey  <tromey@redhat.com>

	* java/io/File.java (pathSeparator): Typo fix.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/cairographics2d.h (cp_gtk_get_cairo_t):
	Removed.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	Mark all unused parameters.
	(cp_gtk_get_cairo_t): Removed.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix):
	Don't mix declerations and statements.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c:
	Mark all unused parameters.
	(Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface):
	Get cairographics2d pointer directly.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout):
	Use jlong to pass pointer.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c:
	Mark all unused parameters.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: Regenerated.
	* include/java_io_VMFile.h: Regenerated.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(VolatileImageGraphics(VolatileImageGraphics)): Use clipRect()
	instead of setClip(), so that an already present clip is intersected
	and not resetted.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java (GdkFontLineMetrics):
	Call getSize() to avoid accessor method.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (addSpecialElement):
	Qualify ElementSpec.

2006-06-10  Mark Wielaard  <mark@klomp.org>

	* lib/.cvsignore: Add sun.
	* lib/Makefile.am (dist-hook): Likewise.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* 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/GtkVolatileImage.java
	* native/jni/gtk-peer/cairographics2d.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c:
	Changed method signatures and calls to pass native pointers directly
	into the JNI code, in order to avoid costly lookups on each
	JNI call.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
	* include/gnu_java_awt_peer_gtk_CairoSurface.h,
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h,
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h:
	Regenerated

2006-06-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27973
	* javax/swing/text/DefaultStyledDocument.java 
	(ElementBuffer.insertContentTag):
	Do not recreate leaves and do not remove elements here. 

2006-06-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.HiddenAction): Implemented.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(getVolatileOffscreenBuffer): Store the created buffer.
	* javax/swing/JComponent.java
	(paintDoubleBuffered): Try to use a volatile offscreen buffer
	for better performance.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	(VolatileImageGraphics(VolatileImageGraphics)): Initialize native
	context correctly.
	(getRealBounds): Overridden to return the correct bounds.

2006-06-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Fixed to paint the gradient under the correct conditions.
	(updateWidthGradient): Removed.
	(isToolbarButton): New helper method.
	(isDrawingGradient): New helper method.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(setSelectedIndex): Don't change the visibility of the components,
	this is done by the UI class.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneLayout.layoutContainer): Change visibility of component
	here, depending on the selected index. Only do this if the new
	selected component is not null. Some programs seem to expect
	this.
	(visibleComponent): New field.
	(getVisibleComponent): Changed to return visibleComponent field.
	(setVisibleComponent): Changed to set the visibility of
	the old and new visible component.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildrenOptimized): Paint component with a new Graphics
	object to protect the other painting code from modifications
	done in that object, and avoid cleanup ops on possibly dispose()ed
	Graphics object.

2006-06-09  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface):
	Use GTK locks while disposing (Xlib) surface.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	* lib/Makefile.am (install-data-local): Copy 'sun' files.
	(uninstall-local): Delete 'sun' directory.
	(glibj.zip): Include 'sun' classes.
	(clean-local): Delete 'sun' directory.
	* lib/gen-classlist.sh.in: Search 'sun' subdirectories.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(drawImage): Fixed scaling.
	(fillShape): Removed offset handling.
	(fillShapeImpl): Limit scanlining to device bounds.
	(getSegments): Removed offset handling.
	* gnu/java/awt/java2d/PolyEdge.java
	(toString): Include isClip flag in output.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* java/awt/font/TextLayout.java
	(getOutline): Allow null transform.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawString): Use TextLayout instead of GlyphVector.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* java/text/Bidi.java: Treat WS as neutral for rules N1 & N2.
	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	New constructor for bidirectionality.
	(getGlyphMetrics): Return whitespace glyphs.
	(getLogicalBounds): Offset rectangles to correct positions.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getBaselineFor): Default to ROMAN_BASELINE.
	(GdkFontLineMetrics): Guess some values for underline and 
	strikethrough.
	(layoutGlyphVector): Use bidirectionality.
	* java/awt/font/TextLayout.java: Implement, mostly.
	
2006-06-09  Anthony Green  <green@redhat.com>

	PR classpath/27888:
	* javax/swing/text/GapContent.java (binarySearch): Use unsigned shift.
	* java/util/Collections.java (binarySearch): Use unsigned shift.
	* java/util/Arrays.java (binarySearch): Use unsigned shift.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added .deps.

2006-06-09  Kazuya Ujihara  <ujihara@aurora.dti.ne.jp>

	PR classpath/27966:
	* gnu/javax/security/auth/login/ConfigFileParser.java
	(validateClassName): Quote '.' in regexp.

2006-06-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/23863:
	* native/fdlibm/dtoa.c (_dtoa): Free contents of _Jv_reent when
	finished.
	* native/fdlibm/mprec.c: New version from newlib.  Commented out
	some includes.  Added <assert.h>.
	(_reent, _Bigint): New defines.
	(_REENT_CHECK_MP, _REENT_MP_FREELIST, _REENT_MP_P5S): Likewise.
	(__ULong, __Long): New types.
	(_calloc_r): New function.
	(Balloc): Dynamically add new _freelist entries as needed.
	* native/fdlibm/mprec.h (struct _Jv_Bigint): Don't use
	MAX_BIGNUMS to size _x[].
	(struct _Jv_reent): _freelist now a _Jv_Bigint**.  Removed
	_allocation_map, num.  Added _max_k.

2006-06-09  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawGlyphVector): Added fallback for non-FreetypeGlyphVector
	implementations.

2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/BufferedImage.java
	(BufferedImage(int, int, int)): Added API docs,
	(getProperty(String)): Return correct value for undefined properties,
	(getPropertyNames()): Added comments and removed FIXME.

2006-06-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/gcjwebplugin.cc (PLUGIN_ERROR_THREE): New macro.
	(NP_Initialize): Use PLUGIN_ERROR_THREE in place of g_strconcat.

2006-06-09  Francis Kung  <fkung@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java:
	(getPreferredSize): Return correct height for null or empty 
	items.

2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/datatransfer/DataFlavor.java
	(readExternal): Mark as stub,
	(writeExternal): Likewise,
	* java/awt/dnd/DropTargetContext.java
	(dropComplete): Mark as stub,
	(acceptDrag): Likewise,
	(rejectDrag): Likewise,
	(acceptDrop): Likewise,
	(rejectDrop): Likewise,
	(getCurrentDataFlavors): Likewise,
	(getTransferable): Likewise,
	* java/awt/dnd/DropTargetDropEvent.java
	(dropComplete): Mark as stub.

2006-06-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.java
	(constructor): Do not lowercase the values.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.addSpecialElement): Implemented.
	* examples/gnu/classpath/examples/swing/HtmlDemo.java: New file.

2006-06-09  Raif S. Naffah  <raif@swiftdsl.com.au>

	On behalf of Matthew Wringe <mwringe@redhat.com>
	* gnu/java/security/Registry.java (ISO10126_PAD): New constant.
	* gnu/javax/crypto/pad/ISO10126.java: New class.
	* gnu/javax/crypto/pad/PadFactory.java (names): New field.
	(getInstance): Added support for ISO-10126 scheme.
	(getNames): Likewise.
	Cache result for speed.

2006-06-09  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/pad/BasePad.java (selfTest): Re-factored to allow more
	flexible self-test by sub-classes.
	(test1BlockSize): New method.

2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Corrected 'ScrollBar.focusInputMap' entry,
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented,
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method,
	(installUI): Call installKeyboardActions(),
	(uninstallUI): Call uninstallKeyboardActions().
	
2006-06-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(getActionMap): Use correct key to store action map.

2006-06-09  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/awt/font/opentype/truetype/VirtualMachine.java
	(executeInstruction): Added NOT support.

2006-06-09  Jeroen Frijters  <jeroen@frijters.net>

	* sun/reflect/annotation/AnnotationInvocationHandler.java:
	New file.

2006-06-08  Tom Tromey  <tromey@redhat.com>

	* java/text/Bidi.java (resolveNeutralTypes): Set j'th slot
	of 'types'.

2006-06-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/management/RuntimeMXBean.java:
	New file.
	
2006-06-08  Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc:
	(NP_Shutdown): Freed whitelist_filename.

2006-06-08  Lillian Angel  <langel@redhat.com>

	* native/plugin/Makefile.am:
	Removed DATA_DIRECTORY.
	* native/plugin/gcjwebplugin.cc:
	Added new global fields for whitelist_file
	and data_directory. Removed WHITELIST_FILE.
	(NP_Initialize): Initialized new fields. Also,
	Changed to use new fields.
	(NP_Shutdown): Freed data_directory.
	(GCJ_New): Changed to use new fields.
	(plugin_ask_user_about_documentbase): Likewise.

2006-06-08  Lillian Angel  <langel@redhat.com>

	* native/plugin/Makefile.am:
	Changed DATA_DIRECTORY to be ~/.gcjwebplugin.
	* native/plugin/gcjwebplugin.cc:
	Changed all instances of PLUGIN_DATA_DIRECTORY
	to DATA_DIRECTORY.

2006-06-08  Roman Kennke  <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Replaced calls to AWTUtilities.convertPoint()
	with convertPointToChild(). This is more efficient and avoids
	problems with getLocationOnScreen().
	(findTarget): Check for component beeing showing() early.
	Simplified AWTUtilities.convertPoint() to a simple substraction
	operation.
	(convertPointToChild): New helper method.

2006-06-08  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/plugin/gcjwebplugin.cc (SECURITY_DESCRIPTION): Update
	message.

2006-06-08  Tom Fitzsimmons  <fitzsim@redhat.com>
	    Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc
	(NP_Shutdown): Added code to free plugin mutex and whitelist file.
	Also, reset initialized field.

2006-06-08  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(paintString): Fixed to paint string at the correct location.

2006-06-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(createDefaultActions): Added new actions.
	(TreePageAction.TreePageAction): Set action name.
	(TreePageAction.actionPerformed): Implemented.
	(TreePageAction.isEnabled): Implemented.
	(TreeToggleAction.TreePageAction): Set action name.
	(TreeToggleAction.actionPerformed): Implemented.
	(TreeToggleAction.isEnabled): Implemented.
	(TreeTraverseAction.TreeTraverseAction): Set action name.
	(TreeTraverseAction.actionPerformed): Use action name as command.
	(TreeTraverseAction.isEnabled): Implemented.

2006-06-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(installKeyboardActions): Rewritten to correctly install the UI
	input and action maps.
	(getActionMap): New helper method.
	(createDefaultActionMap): New helper method.
	(TreeHomeAction.TreeHomeAction()): Implemented.
	(TreeHomeAction.actionPerformed): Implemented.
	(TreeHomeAction.isEnabled): Implemented.
	(TreeIncrementAction.TreeIncrementAction()): Implemented.
	(TreeIncrementAction.actionPerformed): Use action name as command.
	(TreeIncrementAction.isEnabled): Implemented.

2006-06-08  Mark Wielaard  <mark@klomp.org>

	PR 27917
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData): Ref pixbuf
	and unref loader.

2006-06-08  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(attrs): Removed unused static.

2006-06-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method,
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented.

2006-06-08  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/border/MatteBorder.java:
	(MatteBorder(int,int,int,int,Icon)): Removed if-statement and exception
	throwing.
	(paintBorder): Added if-statement to abort painting early.

2006-06-08  Robert Schuster  <robertschuster@fsfe.org>

        Fixes PR27864.
        * gnu/xml/dom/DomIterator.java:
        (successor): Changed expression.

2006-06-08  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(defaultLayout): Do kerning.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	(getKerning): Correct class name, removed unused variable.

2006-06-07  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/qt/QtToolkit.java (initToolkit): Load
	libqtpeer.so unconditionally.

2006-06-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/InputMismatchException.java:
	Documented.
	
2006-06-07  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jawt/Makefile.am (AM_LDFLAGS): Add XTEST_LIBS.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(completeUIUninstall): Implemented.
	(uninstallUI): Moved some bits to completeUIUninstall(). Complete
	editing before uninstalling anything.
	(isToggleEvent): Implemented.
	(selectPathForEvent): Make use of isToggleEvent().
	(ComponentHandler.componentMoved): Implemented.
	(ComponentHandler.startTimer): Implemented.
	(ComponentHandler.getScrollPane): Implemented.
	(ComponentHandler.actionPerformed): Implemented.

2006-06-07  Francis Kung  <fkung@redhat.com>

	* javax/swing/JMenuBar.java:
	(getSubElements): Do not return null values.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	PR 27902
	* gnu/regexp/BacktrackStack.java
	* gnu/regexp/CharIndexed.java
	* gnu/regexp/CharIndexedCharArray.java
	* gnu/regexp/CharIndexedCharSequence.java
	* gnu/regexp/CharIndexedInputStream.java
	* gnu/regexp/CharIndexedString.java
	* gnu/regexp/CharIndexedStringBuffer.java
	* gnu/regexp/RE.java
	* gnu/regexp/REException.java
	* gnu/regexp/REFilterInputStream.java
	* gnu/regexp/REMatch.java
	* gnu/regexp/REMatchEnumeration.java
	* gnu/regexp/RESyntax.java
	* gnu/regexp/REToken.java
	* gnu/regexp/RETokenAny.java
	* gnu/regexp/RETokenBackRef.java
	* gnu/regexp/RETokenChar.java
	* gnu/regexp/RETokenEnd.java
	* gnu/regexp/RETokenEndOfPreviousMatch.java
	* gnu/regexp/RETokenEndSub.java
	* gnu/regexp/RETokenIndependent.java
	* gnu/regexp/RETokenLookAhead.java
	* gnu/regexp/RETokenLookBehind.java
	* gnu/regexp/RETokenNamedProperty.java
	* gnu/regexp/RETokenOneOf.java
	* gnu/regexp/RETokenPOSIX.java
	* gnu/regexp/RETokenRange.java
	* gnu/regexp/RETokenRepeated.java
	* gnu/regexp/RETokenStart.java
	* gnu/regexp/RETokenWordBoundary.java
	* gnu/regexp/UncheckedRE.java
	* gnu/java/util/regex/BacktrackStack.java
	* gnu/java/util/regex/CharIndexed.java
	* gnu/java/util/regex/CharIndexedCharArray.java
	* gnu/java/util/regex/CharIndexedCharSequence.java
	* gnu/java/util/regex/CharIndexedInputStream.java
	* gnu/java/util/regex/CharIndexedString.java
	* gnu/java/util/regex/CharIndexedStringBuffer.java
	* gnu/java/util/regex/RE.java
	* gnu/java/util/regex/REException.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/RETokenEndSub.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
	Moved gnu.regexp classes to gnu.java.util.regex package.
	* java/util/regex/Matcher.java
	* java/util/regex/Pattern.java
	Adjusted import statements for new package name for gnu regexp.

2006-06-07  Tom Tromey  <tromey@redhat.com>

	PR classpath/27905:
	* gnu/java/nio/charset/Provider.java (loadExtended): Now synchronized.
	Added missing charsets.
	(charsetForName): Don't check 'extendedLoaded'.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	PR 27833
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(clip(Shape)): Implemented correctly, so that the current shape
	gets intersected by the parameter shape.

2006-06-07  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(getTabBounds): If this method is called with a tab index
	that is not in the rects array, we need to re-layout the container
	so it is created.

2006-06-07  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	(FreetypeGlyphVector): Removed assignment. Caused compilation error.
	* java/lang/String.java
	(codePointCount): Fixed check to match API. Shouldn't throw exception
	if end == count. end is 1 more than the endIndex, so end == count is 
	possible.

2006-06-07  Gary Benson  <gbenson@redhat.com>

	PR 24895
	* native/jni/java-io/java_io_VMFile.c
	(Java_java_io_VMFile_toCanonicalForm): New method.
	* configure.ac: Added checks for lstat and readlink.
	* include/java_io_VMFile.h: Added new method.
	* vm/reference/java/io/VMFile.java: Use new method.
	* gnu/java/io/PlatformHelper.java (toCanonicalForm): Removed.
	* NEWS: Documented the above.
	* java/io/File.java: Javadoc fix.

2006-06-07  Roman Kennke  <kennke@aicas.com>

	PR 27920
	* javax/swing/JTree.java
	(JTree()): Initialize with default model.
	(JTree(TreeModel)): Clear expanded state hashtable. Added comment
	on the updateUI() / setModel() order.
	(setModel): Correctly (un-)setup the listeners. Clear the expanded
	paths.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(BasicTreeUI()): Initialize listeners in installListeners().
	(setModel): Complete editing on model change. Correctly resetup
	the listeners. Update the layout cache accordingly.
	(setShowRootHandles): Complete editing and update layout. Do not
	call back into the JTree, this could cause cycles.
	(prepareForUIInstall): Implemented. Moved some init code from
	installUI() to this method.
	(completeUIInstall): Implemented. Moved some init code from
	installUI() to this method.
	(createDefaultCellEditor): Check for type of renderer, and install
	with null renderer when not DefaultTreeCellRenderer.
	(updateLayoutCacheExpandedNodes): Added null check for tree root
	to avoid NPE.
	(updateRenderer): Call updateEditor().
	(installListeners): Initialize the listeners here. Added some null
	checks to avoid NPEs.
	(installUI): Moved some init code to prepareForUIInstall() and
	completeUIInstall().
	(completeEditing): Return immediately if editing component is null
	or if the setting is to not stop editing on complete editing.
	(checkForClickInExpandControl): Call handleExpandControlClick()
	instead of toggleExpandState() directly.
	(isLocationInExpandControl): Rewritten to correctly determine the
	expand click location.
	(MouseHandler.mousePressed): Rewritten to make better use of the
	instance methods of BasicTreeUI to handle the click.
	(PropertyHandler.propertyChange): Handle model and cell renderer
	updates.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTreeCellEditor): Removed initialization of the icon. This
	is done so that the constructor can deal with null renderer as the
	RI does. Maybe this needs more fixing.
	* javax/swing/tree/TreePath.java
	(isDescendant): Fixed this method. The previous version did too
	much and compared the wrong things, which lead to a ClassCastException
	in equals().
	* javax/swing/tree/VariableHeightLayoutCache.java
	(update): Do nothing when model is null.
	(setModel): Clear the tables and update the layout. Added null
	check to prevent NPE.

2006-06-07  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkGlyphVector: Removed file.

2006-06-07  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
	* include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
	New files.

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getGlyphVector): Removed native method.
	(createGlyphVector, getStringBounds): Use new GV class.

	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Add new files.

	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getGlyphVector): Removed native method.
	
2006-06-07  Chris Burdess  <dog@gnu.org>

	* gnu/classpath/debug/TeeInputStream.java,
	  gnu/classpath/debug/TeeOutputStream.java,
	  gnu/classpath/debug/TeeReader.java,
	  gnu/classpath/debug/TeeWriter.java: New classes for debugging streams.
	* gnu/xml/stream/XMLParser.java: Use tee streams for debugging. Don't
	  read more characters than absolutely necessary in tryRead method.

2006-06-07  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Put look and feel radio buttons into 
	appropriate button group.

2006-06-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Add command line options for setting
	  parsing parameters (for simpler debugging).
	* gnu/xml/transform/TransformerImpl.java: Try to ensure that I/O error
	  closing output stream is propagated to application.

2006-06-06  Mark Wielaard  <mark@klomp.org>

	PR 27917
	* gnu/java/awt/peer/gtk/CairoSurface.java (finalize): Call dispose.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java: Override dispose to
	call disposeSurface.
	(disposeSurface): New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Free
	pattern_pixels.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_drawSurface): Call
	cairo_pattern_destroy.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface):
	New function to destroy the surface.
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_CairoSurface.h: Likewise.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Likewise.

2006-06-06  Mark Wielaard  <mark@klomp.org>

	* include/jni.h (JDK1_1InitArgs): Mark pointer-to-function types
	with JNICALL.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(paint): If has focus, paint special background color,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(FocusHandler.focusGained): Implemented,
	(FocusHandler.focusLost): Implemented.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/StyleContext.java (registerStaticAttributeKey):
	Javadoc fix.
	(writeAttributeSet): Implemented.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/html/HTMLDocument.java (SpecialAction.start):
	Implement.
	(SpecialAction.end): Removed.
	(IsindexAction.end): Likewise.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* include/jni.h (JDK1_1InitArgs): New struct.
	(JDK1_1AttachArgs): Likewise.

2006-06-06  Tom Tromey  <tromey@redhat.com>

	* java/security/UnresolvedPermission.java (getUnresolvedType): New
	method.
	(getUnresolvedName): New method.
	(getUnresolvedActions): New method.
	(getUnresolvedCerts): New method.

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java
	(getColor): Removed debugging code.

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java
	(getColor): Added support for "rgb(red, green, blue)" notation.
	(translateTag): Use Boolean.TRUE, not new Boolean().

2006-06-06  Roman Kennke  <kennke@aicas.com>

	PR 27651
	* javax/swing/JTree.java
	(JTree(TreeModel)): Call updateUI() before setModel().
	(setModel): Don't call updateUI here.

2006-06-06  Lillian Angel  <langel@redhat.com>
	
	* native/plugin/gcjwebplugin.cc:
	Fixed failure message and commenting.
	(NP_Initialize): Added more comments.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSplitPane.java
	(AccessibleJSplitPane): API doc fixes,
	(setDividerLocation): Likewise,
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Additions to SplitPane.ancestorInputMap,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method,
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	PR 27523
	* javax/swing/MenuSelectionManager.java
	(processKeyEvent): Added check to avoid
	ArrayIndexOutOfBoundsException.

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/htmlAttributeSet.java
	(getAttributeNames): Rewritten

2006-06-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/TransformerImpl.java: Check type of created
	  document (more cases).

2006-06-06  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/htmlAttributeSet.java
	(clone): New method. (copyAttributes): New method.
	(getResolveParent): Comment fix. (getAttribute):
	Rewritten. (addAttribute): Rewritten.
	* gnu/javax/swing/text/html/SmallHtmlAttributeSet.java:
	New file.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	PR 27522
	* javax/swing/JMenuBar.java
	(processKeyBindingHelper): Added null check to prevent NPE.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(ShowSystemMenuAction): New class.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	* javax/swing/plaf/metal/MetalInternalFrameUI.java
	(installKeyboardActions): Overridden to remove showSystemMenu action.

2006-06-06  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/TransformerImpl.java: Check type of created
	  document.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java:
	(getScreenDevices): Added explicit cast.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyboardActions): Use shared input map. Correctly
	install the input/action maps in the component's input/action
	map hierarchies.
	(getActionMap): New helper method for fetching an ActionMap from
	the UIManager or creating a default one if there is none supplied
	by the UIManager.
	(createActionMap): Add the TransferHandler's actions here. Made
	method private.
	(getInputMap): Leave out unnecessary method parameter. Load
	shared input map.
	* javax/swing/plaf/basic/SharedUIDefaults.java: New file.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* configure.ac: Added missing [ to expression.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* configure.ac: Added missing { to expression.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: Regenerated.
	* include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: New file.
	* include/Makefile.am: Added
	gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.
	* gnu/java/awt/peer/gtk/GdkGraphicsConfiguration.java:
	(GdkGraphicsConfiguration): Rewritten.
	(getColorModel): Rewritten.
	(getColorModel(int)): Rewritten.
	(getBounds): Rewritten.
	(createCompatibleVolatileImage): Implemented.
	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java: Added static
	initializer.
	(getDefaultScreenDevice): Rewritten.
	(nativeGetDefaultScreenDevice): New method.
	(getScreenDevices): Rewritten.
	(nativeGetScreenDevices): New method.
	(nativeInitState): New method.
	* gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java: Entirely
	rewritten.
	(X11DisplayMode): New inner class.
	* native/jni/gtk-peer/Makefile.am: Added gdkdisplay.h and
	gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
	* native/jni/gtk-peer/gdkdisplay.h: New file.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initStaticState):
	New function.
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState):
	New function.
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment
	_nativeGetScreenDevices):
	New function.
	(Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment
	_nativeGetDefaultScreenDevice):
	New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c:
	New file.
	* configure.ac: Added check for Xrandr library.

2006-06-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTableUI.java
	(getMaximumSize): Don't return null. Fixed calculation of
	table height.
	(getMinimumSize): Don't return null. Fixed calculation of
	table height.
	(getPreferredSize): Fixed calculation of with and height. Added
	API docs.
	(getHeight): New helper method.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(getInputMap(int)): Throw IllegalArgumentException for unknown 
	condition argument, and added API docs,
	(getInputMap()): Added API docs.

2006-06-06  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/BufferedImage.java: Added fourth 8 to bits4 field.

2006-06-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(AccessibleJTableHeaderCell.header): New field,
	(AccessibleJTableHeaderCell.columnIndex): Likewise,
	(AccessibleJTableHeaderCell.AccessibleJTableHeaderCell()): Initialise,
	(AccessibleJTableHeaderCell.getColumnHeaderRenderer): New method,
	(AccessibleJTableHeaderCell.getAccessibleContext): Implemented,
	(AccessibleJTableHeaderCell.getAccessibleRole): Implemented,
	(AccessibleJTable.getAccessibleChild(int)): Overridden,
	(AccessibleJTable.getAccessibleAt): Reimplemented.

2006-06-05  Sven de Marothy  <sven@physto.se>

	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(initFromVolatile): New method.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	Reimplement.
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	(copyArea, drawVolatileImage): New methods.
	
2006-06-05  Tania Bento  <tbento@redhat.com>

	* javax/swing/JFrame.java
	(frameInit): Set background color and fixed layout parameters.

2006-06-05  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention VMURLConnection.

2006-06-05  Lillian Angel  <langel@redhat.com>

	* native/plugin/gcjwebplugin.cc:
	Added new field to keep track of initialization.
	(plugin_start_appletviewer): Fixed to return an error value, if
	an error was encountered when loading the appletviewer.
	(GCJ_NEW): Added call to plugin_failed if the loading of the appletviewer
	has failed.
	(plugin_failed): New helper function. Shows a warning if the appletviewer
	has not been installed.
	(NP_Initialize): Added code to make sure this function is only called
	once.

2006-06-05  Lillian Angel  <langel@redhat.com>

	* native/plugin/Makefile.am:
	Fixed to use a set plugin directory in the .mozilla directory.
	All applet logs are now stored here, instead of /tmp.
	* native/plugin/gcjwebplugin.cc:
	Added new fields for security warning.
	(GCJ_NEW): Added code to generate a security warning for all pages
	that spawn an appletviewer. This warning asks the user if they trust
	the applet and if they would like to add it to a 'whitelist'. This
	whitelist keeps track of all the addresses the user would like
	to trust indefinitely.
	(plugin_user_trusts_documentbase): New helper function.
	(plugin_add_documentbase_to_whitelist): New helper function.
	(plugin_ask_user_about_documentbase): New helper function.
	(plugin_in_pipe_callback): Fixed check to determine if channel_error 
	has been set.
	(plugin_start_appletviewer): Likewise.
	(plugin_create_applet_tag):  Reset all fields to null after they have been
	freed.
	(plugin_send_message_to_appletviewer): Fixed all error checks to determine 
	if channel_error has been set.
	(plugin_stop_appletviewer): Likewise.
	(NP_Initialize): Likewise. Also, added code to determine if directory and file
	should be created.	

2006-06-05  Francis Kung  <fkung@redhat.com>
	
	PR 27507
	* gnu/java/awt/peer/gtk/GtkImage.java
	(getSource): Added check to determine if in
	errorLoading state.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(createImage): Added check to prevent NPE.

2006-06-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/HTMLEditorKit.java (HTMLFactory.create):
	Create the ImageView, when applicable.
	* gnu/javax/swing/text/html/CombinedAttributes.java,
	javax/swing/text/html/ImageView.java: New files.

2006-06-05  Roman Kennke  <kennke@aicas.com>

	PR 27834
	* javax/swing/text/GapContent.java
	(setPositionsInRange): Compare with startIndex and endIndex
	rather than start and end.
	(dumpMarks): Only dump real marks.

2006-06-05  Sven de Marothy  <sven@physto.se>

	*  gnu/java/awt/peer/gtk/ComponentGraphics.java
	(ComponentGraphics): Use 0,0 as clip origin.
	
2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Formattable.java,
	* java/util/FormattableFlags.java,
	* java/util/Formatter.java:
	Documented.

2006-06-04  Tom Tromey  <tromey@redhat.com>

	* javax/naming/Context.java (list): Genericized.
	(listBindings): Likewise.
	* javax/naming/Reference.java (addrs): Genericized.
	* javax/naming/InitialContext.java (myProps): Fixed type.
	(init): Genericized.
	
2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/DuplicateFormatFlagsException.java,
	* java/util/FormatFlagsConversionMismatchException.java,
	* java/util/FormatterClosedException.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/MissingFormatArgumentException.java,
	* java/util/MissingFormatWidthException.java,
	* java/util/UnknownFormatConversionException.java,
	* java/util/UnknownFormatFlagsException.java:
	Documented.

2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/System.java:
	(getenv()): Handle cases where split only
	returns an array of size 1.
	
2006-06-04  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(createVolatileImage): Pass peer to VolatileImage constructor.
	* java/awt/Component.java
	(createVolatileImage): Call peer method directly.
	
2006-06-04  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java
	(getFlippedBuffer): New method.
	(getGtkImage): Renamed method.
	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	Renamed getSharedImage to getGtkImage.
	* include/gnu_java_awt_peer_gtk_CairoSurface.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(getFlippedBuffer): New method
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	Avoid window casts.
2006-06-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c:
	(drawVolatile): Add casts.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c:
	(getOutline): Add casts.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c:
	Comment out unused prototype.
	(getPixels): Add appropriate cast and comment out unused variable.
	
2006-06-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/sasl/SaslUtil.java: Remove unused import.
	* gnu/javax/crypto/sasl/srp/SRPRegistry.java (PASSWORD_DB): Fix javadoc @link.
	* gnu/javax/crypto/sasl/srp/PasswordFile.java: Removed unused import.
	* gnu/javax/crypto/prng/CSPRNG.java (FILE_SOURCES): Fix javadoc @see.
	(getSystemInstance): Fix javadoc @link.
	(counter): Increased visibility.
	* gnu/javax/crypto/pad/TLS1.java: Remove unused import.
	* gnu/javax/crypto/pad/IPad.java: Fix javadoc @link.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java (PKCS1_V1_5): Likewise.
	* gnu/javax/crypto/pad/PKCS7.java (PKCS7): Likewise.
	* gnu/javax/crypto/pad/TBC.java (TBC): Likewise.
	* gnu/javax/crypto/mode/CTR.java: Remove unused import.
	* gnu/javax/crypto/mode/BaseMode.java (defaultBlockSize): Fix javadoc @see.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java (getEncoded): Fix javadoc @see.
	* gnu/javax/crypto/jce/spec/TMMHParameterSpec.java: Fix javadoc @link.
	* gnu/javax/crypto/keyring/AuthenticatedEntry.java: Remove unused imports.
	* gnu/javax/crypto/keyring/CertificateEntry.java: Likewise.
	* gnu/javax/crypto/keyring/CertPathEntry.java: Likewise.
	* gnu/javax/crypto/keyring/EncryptedEntry.java: Likewise.
	* gnu/javax/crypto/keyring/PublicKeyEntry.java: Likewise.
	* gnu/javax/crypto/mac/OMAC.java: Likewise.
	* gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.java: Likewise.
	* gnu/javax/crypto/jce/mac/OMacImpl.java: Likewise.
	* gnu/javax/crypto/jce/prng/CSPRNGSpi.java: Likewise.
	* gnu/javax/crypto/cipher/IBlockCipherSpi.java: Fix javadoc @link.
	* gnu/javax/crypto/jce/cipher/CipherAdapter.java (CipherAdapter): Likewise.
	* gnu/javax/crypto/cipher/BaseCipher.java: Remove unused import.
	* gnu/javax/crypto/assembly/Cascade.java: Fix javadoc @link.
	* gnu/javax/crypto/assembly/Direction.java: Likewise.
	* gnu/javax/crypto/assembly/Transformer.java: Likewise.

2006-06-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/PolicyFile.java: Updated copyright year.
	(logger): Increased visibility.
	* gnu/java/security/x509/Util.java: Updated copyright year.
	(hexDump): Fix javadoc @link.
	* gnu/java/security/x509/ext/GeneralNames.java: Updated copyright year.
	Removed unused import.
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java: Fix javadoc @link.
	* gnu/java/security/sig/ISignature.java (SOURCE_OF_RANDOMNESS): Likewise.
	* gnu/java/security/util/ExpirableObject.java: Likewise.
	(destroy): Likewise.
	* gnu/java/security/util/SimpleList.java (SimpleList): Likewise.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java:
	Updated copyright year.
	(checkCRL): Fix javadoc @param.

2006-06-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/annotation/IncompleteAnnotationException.java:
	Documented.

2006-06-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/ProcessBuilder.java:
	Documented.
	(environment): Create as a copy.
	* java/lang/System.java:
	(EnvironmentMap.EnvironmentMap(Map<String,String>)):
	New constructor.
	(EnvironmentMap.put(String,String)): Override superclass
	method with checks for nulls and non-Strings.
	
2006-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(cairoPreserveClip, cairoResetClip): New methods.
	(setClip, clip): Reimplement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	(cairoPreserveClip, cairoResetClip): New methods.
	
2006-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/VolatileImageGraphics.java
	* include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
	New files.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(drawImage): Overloads for VolatileImage drawing.
	(drawVolatile): New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	(drawVolatile): New method.
	* gnu/java/awt/peer/gtk/GtkVolatileImage.java
	Unstub implementation.
	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Add new files.
	* native/jni/gtk-peer/gtkpeer.h
	New prototype.
	
2006-06-03  Roman Kennke  <kennke@aicas.com>

	PR 27418
	* javax/swing/plaf/basic/BasicTextUI.java
	(damageRange): Added null check to avoid NPE.

2006-06-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/PlainView.java
	(updateDamage): Check for valid longestLine and initialize if
	necessary.

2006-06-03  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c: Use C
	comments, not C++.

2006-06-02  Sven de Marothy  <sven@physto.se>

	PR 27879 
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copyArea): Implement.
	(copyAreaImpl, getRealBounds): New methods.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(copyAreaImpl, getRealBounds): Implement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(nativeCopyArea): Reimplement.	
	
2006-06-02  Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Add -lX11 and -lXtst to XTEST_LIBS.
	(XTEST_LIBS): New, substitute.
	* native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Add XTEST_LIBS.

2006-06-02  Roman Kennke <kennke@aicas.com>

	PR 26738
	* javax/swing/text/PlainView.java
	(updateDamage): Rewritten for correct repainting and revalidating.
	(findLongestLine): New helper method.
	(getLineLength): New helper method.

2006-06-02  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(nativeCopyArea): Change stride parameter to use # of ints.
	(setPixels): Add checks.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(ComponentGraphics): Set background, clip.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(Cairographics2D): Don't set clip.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	Add flush.

2006-06-02  Lillian Angel  <langel@redhat.com>

	PR 24458
	* java/awt/DefaultKeyboardFocusManager.java
	(dispatchEvent): Fixed to getFocusOwner, if that fails it tries
	to get the focused window.

2006-06-01  Miriam Schuster  <schmir11@web.de>

	* Makefile.am: Add fallback if "mozilla-plugin" is not available.
	Fallbacks used: "firefox-plugin" and "xulrunner-plugin".

2006-06-02  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(columnSelectionChanged): Don't return when there's only one
	column (might still need repainting). Correctly calculate
	repaint rectangle.
	(valueChanged): Use return value of SwingUtilities.computeUnion
	as dirty region.

2006-06-01  Keith Seitz  <keiths@redhat.com>

	From Martin Platter  <motse@complang.tuwien.ac.at>:
	* gnu/classpath/jdwp/processor/EventRequestCommandSet.java
	(executeSet): Fix buffer underflow reading reference ID.
	* gnu/classpath/jdwp/processor/ThreadGroupReferenceCommandSet.java
	(executeParent): Fix  NPE if ThreadGroup is top-level ThreadGroup. 
	* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
	(executeSuperclass): Handle case of Object with ID zero.

2006-06-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: Fixed typo.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Likewise.

2006-06-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java (shutdownThread): New field.
	(Command): Add the shutdown hook.
	(doCommand): Remove the shutdown hook.
	(ShutdownHook): New class.

2006-06-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/jarsigner.in: Use @VM_BINARY@.
	* tools/keytool.in: Likewise.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(setColor): Update the cairo paint.

2006-06-01  Mark Wielaard  <mark@klomp.org>

	* java/util/logging/LogManager.java (createInstance): Always add
	original exception on warning.

2006-06-01  Lillian Angel  <langel@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/AppletTag.java
	(prependCodebase): Fixed check. No dirname was ever considered to 
	be a file, so every applet fell into the if-statement causing a lot
	of classloading problems with the applets.

2006-06-01  Sven de Marothy  <sven@physto.se>

	Patch submitted by Boris Dusek.
	* native/jni/qt-peer/qtmenupeer.cpp
	Fix segfault

2006-06-01  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(AccessibleJTableCell.getAccessibleRow): Added comment explaining
	why the behaviour is like it is.
	(AccessibleJTableCell.getAccessibleStateSet): Implemented.
	(AccessibleJTableHeader): New inner class.
	(AccessibleJTableHeaderCell): New inner class.
	(AccessibleJTable.lastSelectedRow): New field.
	(AccessibleJTable.lastSelectedColumn): New field.
	(AccessibleJTable.caption): New field.
	(AccessibleJTable.summary): New field.
	(AccessibleJTable.rowDescriptions): New field.
	(AccessibleJTable.columnDescriptions): New field.
	(AccessibleJTable): Initialize lastSelectedRow and lastSelectedColumn.
	(AccessibleJTable.getAccessibleSelection(int)): Implemented.
	(AccessibleJTable.isAccessibleChildSelected): Implemented.
	(AccessibleJTable.addAccessibleSelection): Implemented.
	(AccessibleJTable.removeAccessibleSelection): Implemented.
	(AccessibleJTable.clearAccessibleSelection): Implemented.
	(AccessibleJTable.selectAllAccessibleSelection): Implemented.
	(AccessibleJTable.valueChange): Implemented.
	(AccessibleJTable.tableRowsInserted): Implemented.
	(AccessibleJTable.tableRowsDeleted): Implemented.
	(AccessibleJTable.handleRowChange): New helper method.
	(AccessibleJTable.columnAdded): Implemented.
	(AccessibleJTable.columnMarginChanged): Implemented.
	(AccessibleJTable.columnMoved): Implemented.
	(AccessibleJTable.columnRemoved): Implemented.
	(AccessibleJTable.columnSelectionChanged): Implemented.
	(AccessibleJTable.handleColumnChange): New helper method.
	(AccessibleJTable.editingCanceled): Implemented.
	(AccessibleJTable.editingStopped): Implemented.
	(AccessibleJTable.getAccessibleRow): Implemented.
	(AccessibleJTable.getAccessibleColumn): Implemented.
	(AccessibleJTable.getAccessibleIndex): Implemented.
	(AccessibleJTable.getAccessibleCaption): Implemented.
	(AccessibleJTable.setAccessibleCaption): Implemented.
	(AccessibleJTable.getAccessibleSummary): Implemented.
	(AccessibleJTable.setAccessibleSummary): Implemented.
	(AccessibleJTable.getAccessibleRowCount): Implemented.
	(AccessibleJTable.getAccessibleColumnCount): Implemented.
	(AccessibleJTable.getAccessibleAt): Implemented.
	(AccessibleJTable.getAccessibleRowExtentAt): Implemented.
	(AccessibleJTable.getAccessibleColumnExtentAt): Implemented.
	(AccessibleJTable.getAccessibleRowHeader): Implemented.
	(AccessibleJTable.setAccessibleRowHeader): Implemented.
	(AccessibleJTable.getAccessibleColumnHeader): Implemented.
	(AccessibleJTable.setAccessibleColumnHeader): Implemented.
	(AccessibleJTable.getAccessibleRowDescription): Implemented.
	(AccessibleJTable.setAccessibleRowDescription): Implemented.
	(AccessibleJTable.getAccessibleColumnDescription): Implemented.
	(AccessibleJTable.setAccessibleColumnDescription): Implemented.
	(AccessibleJTable.isAccessibleSelected): Implemented.
	(AccessibleJTable.isAccessibleRowSelected): Implemented.
	(AccessibleJTable.isAccessibleColumnSelected): Implemented.
	(AccessibleJTable.getSelectedAccessibleRows): Implemented.
	(AccessibleJTable.getSelectedAccessibleColumns): Implemented.
	(getAccessibleContext): Register listeners for the accessibility
	class on the JTable.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java:
	(setPaint): Scale +1 pixel larger.

2006-06-01  Sven de Marothy  <sven@physto.se>

	PR 27854
	* gnu/java/awt/Buffers.java (getData): Reimplement.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(getElem, setElem): Call native methods.

2006-06-01  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/ImageViewIconFactory.java: New file.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Check for zero size.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java:
	(setFont): Declare new native method.
	(GdkTextLayout): Read some attributes.
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(setFont): New native method.
	
2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Fix some errors.

2006-06-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicButtonUI.java: Minor source code style 
	fixes,
	* javax/swing/plaf/basic/BasicDirectoryModel.java: Likewise,
	* javax/swing/plaf/basic/BasicFileChooserUI.java: Likewise,
	* javax/swing/plaf/basic/BasicIconFactory.java: Likewise,
	* javax/swing/plaf/basic/BasicListUI.java: Likewise,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicRootPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicScrollPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicSpinnerUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextAreaUI.java: Likewise.
	
2006-06-01  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java: Minor source code formatting fixes,
	* javax/swing/JEditorPane.java: Likewise,
	* javax/swing/JFormattedTextField.java: Likewise,
	* javax/swing/JLayeredPane.java: Likewise,
	* javax/swing/JScrollPane.java: Likewise,
	* javax/swing/JSlider.java: Likewise,
	* javax/swing/JSpinner.java: Likewise,
	* javax/swing/JTree.java: Likewise,
	* javax/swing/JViewport.java: Likewise,
	* javax/swing/UIDefaults.java: Likewise,
	* javax/swing/UIManager.java: Likewise.
	
2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(BufferedImageGraphics): Cache surfaces.
	(updateBufferedImage): Copy directly for certain color models.
	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Reimplement.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(setPixels): Don't swap, correct size.

2006-05-31  Anthony Green  <green@redhat.com>

	PR 27828
	* java/net/InetSocketAddress.java: Defer getting the host
	name until somebody calls InetSocketAddress.getHostName().
	Fix "represenation" typo.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Simplify.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(getPixels): Don't swap.

2006-06-01  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(setGradient): Reimplement.
	
2006-06-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/cairographics2d.h: Rename/prefix function
	CairoGraphics2D_getCairoT to cp_gtk_get_cairo_t correctly.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_drawSurface): Rename function
	CairoGraphics2D_getCairoT to cp_gtk_get_cairo_t.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout):
	Likewise.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/JTableHeader.java
	(getColumnHeaderRenderer): New method,
	(getAccessibleColumnHeaderRenderer): Delegate part to new
	getColumnHeaderRenderer() method,
	(getLocale): Implemented.

2006-05-31  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(cp_gtk_grab_current_drawable): Rename
	cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable to
	cp_gtk_grab_current_drawable, remove static declaration.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Renamed above
	function.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c:
	Remove prototype of
	cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf): Rename
	function.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf): Likewise.
	* native/jni/gtk-peer/gtkpeer.h: Add prototype for
	cp_gtk_grab_current_drawable here.

2006-05-31  Sven de Marothy  <sven@physto.se>

	Should fix PR 27835
	* gnu/java/awt/peer/gtk/BufferedImageGraphics.java
	(updateBufferedImage): Keep within image bounds.

2006-05-31  Thomas Fitzsimmons  <fitzsim@redhat.com>
	    Andreas Tobler  <a.tobler@schweiz.ch>

	* configure.ac: Check for libXrender when the GTK peers are
	enabled, and set HAVE_XRENDER accordingly. Add -lXrender to
	X_EXTRA_LIBS.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender)
	[HAVE_XRENDER]: Call XRenderQueryExtension conditionally.

2006-05-31  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicProgressBarUI.java
	(paintString): Implemented to paint the string vertically.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java
	(AccessibleJTable.AccessibleJTable()): Check for null editor,
	(AccessibleJTable.getAccessibleRole()): Overridden to return correct 
	value,
	(AccessibleJTable.getAccessibleTable()): Likewise,
	(getAccessibleContext): Create new context if required.

2006-05-31  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTabbedPane.stateChanged): Implemented.
	(Page.getAccessibleStateSet): Implemented.
	(Page.getAccessibleIndexInParent): Implemented.
	(getAccessibleContext): Add AccessibleJTabbedPane object
	as ChangeListener to the JTabbedPane.

2006-05-31  Roman Kennke <kennke@aicas.com>

	* javax/swing/JMenuItem.java
	(getAccessibleContext): Register accessible object as ChangeListener
	to the JMenuItem.
	(AccessibleJMenuItem.armed): New field.
	(AccessibleJMenuItem.focusOwner): New field.
	(AccessibleJMenuItem.pressed): New field.
	(AccessibleJMenuItem.selected): New field.
	(stateChanged): Implemented.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ListSelectionModel.java: Added API docs all over.

2006-05-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/FillRect.java 
	(paintComponent): Optionally paint lines rather than rectangles.
	(createContent): Added option to test line painting.

2006-05-31  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/EventListenerList.java
	(getListenerList): Updated API docs.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Clip scaled image to dest rectangle.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoSurface.java:
	(CairoSurface): Convert pixels properly.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	Remove commented-out lines.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(drawImage): Use Toolkit to convert to BufferedImage.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(CairoSurface(GtkImage)): New Constructor.
	(getBufferedImage): New method.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	Don't fill background - FIXME.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
	Remove unused methods.
	* gnu/java/awt/peer/gtk/GtkImage.java:
	(pixbuflock): New field. Methods change to use this lock.
	* gnu/java/awt/peer/gtk/GtkToolkit.java
	(createImage): Use Cairo-backed surfaces via GtkImage instead of 
	GtkPixbufDecoder.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(setPixels): Correct length in bytes.

2006-05-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java (static): Call
	System.loadLibrary unconditionally.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java: Likewise.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java: Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java: Likewise.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative):
	Mark unused parameters, remove unused variables.

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	(copyArea): Implemented.
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c:
	(copyAreaNative): New method.

2006-05-30  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_getPixels): Define i only
	for non big endian systems.
	(Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Likewise.

2006-05-30  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/TexturePaintContext.java: New file.
	* java/awt/TexturePaint.java
	(createContext): Implemented.

2006-05-30  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/table/DefaultTableMode.java: Initialize dataVector
	field early.

2006-05-30  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Container.java:
	(removeAll): Reimplemented, added note.

2006-05-30  Robert Schuster  <robertschuster@fsfe.org>

        * java/awt/Container.java:
        (removeAll): Implemented different removal mechanism, added note.

2006-05-30  Lillian Angel  <langel@redhat.com>

	PR 27785
	* java/awt/Component.java:
	(translateEvent): Added handling to translate WindowEvents
	* java/awt/Window.java:
	Removed unneeded imports.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Add
	cairographics2d.h.

2006-05-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkImage.java: Fix constructor javadoc.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(clearRect): Do not reuse the fg field, call updateColor.
	(drawRaster): Likewise.
	(setColor): Call updateColor.
	(updateColor): New method.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* native/jni/classpath/jcl.h (JLONG_TO_PTR): New macro.
	(PTR_TO_JLONG): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(getPointer): Use new conversion macros.
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_init): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_newCairoContext):
	Likewise.
	(setNativeObject): Likewise.
	(getNativeObject): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable):
	Mark static.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState):
	Correctly cast XID and pointer values.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf):
	Mark unused variables.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf):
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	(Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout):
	Remove unused cairographics2d struct.
	(_moveTo, _lineTo, _quadTo, _curveTo): Mark arguments const.
	(Java_gnu_java_awt_peer_gtk_GtkImage_initFromBuffer):
	Use new conversion macros.
	* native/jni/midi-dssi/dssi_data.h: Move conversion macros to jcl.h.

2006-05-30  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am (gnu_java_nio_VMChannel.h): Added.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/CairoGraphics2D.java
	(copy): Do not reuse the fd field.
	(setColor): Do not set the color if the parameter
	matches fd field.
	(translate(double, double): Rewritten to use
	AffineTransform.translate. 

2006-05-30  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
	* include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
	New files.
	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Add new files.
	* gnu/java/awt/peer/gtk/CairoSurface.java
	(getSharedGtkImage): New method.
	* gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	Fix copyArea.
	* gnu/java/awt/peer/gtk/ComponentGraphics.java
	Support a non-xrender context.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	Plug memory leak.
	* gnu/java/awt/peer/gtk/GtkImage.java
	* include/gnu_java_awt_peer_gtk_GtkImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(initFromBuffer): New method.	
	* native/jni/gtk-peer/gtkpeer.h: 
	Remove declarations of previouslyremoved methods.

2006-05-29  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* tools/Makefile.am [FOUND_CACAO] (LIBJVM): Define to -ljvm.

2006-05-29  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_CairoGraphics2D_init): Mark unused
	arguments.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Declare size
	early. Remove unused return statement in void function.
	(Java_gnu_java_awt_peer_gtk_CairoSurface_newCairoContext): Declare
	ptr early.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender): Mark
	unused arguments.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Likewise.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing):
	Likewise.

2006-05-29  Sven de Marothy  <sven@physto.se>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
	(setPixels): Remove superfluous return statement.	

2006-05-29  Sven de Marothy  <sven@physto.se>

	* 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
	* include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
	* include/gnu_java_awt_peer_gtk_CairoSurface.h
	* include/gnu_java_awt_peer_gtk_ComponentGraphics.h
	* native/jni/gtk-peer/cairographics2d.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
	New files.

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h
	Removed

	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(releasePeerGraphicsResource): Moved to Font peer class.

	* gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
	(createGraphics): Use new context classes.

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:
	Use native BufferedImages where possible.

	* gnu/java/awt/peer/gtk/GdkTextLayout.java
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkTextLayout.c
	Move GdkGraphics2D.drawGdkTextLayout to the GdkTextLayout class,
	renamed to cairoDrawGdkTextLayout.
	
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(getGraphics): Use ComponentGraphics context.
	(createImage): Use native BufferedImage.
	
	* gnu/java/awt/peer/gtk/GtkImage.java:
	* include/gnu_java_awt_peer_gtk_GtkImage.h
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	Remove pixmap support. (GtkImage(int, int) constructor, getGraphics)
	Remove drawing methods.
		
	* gnu/java/awt/print/JavaPrinterGraphics.java:
	Use CairoSurface instead of GtkImage.
	
	* include/Makefile.am
	* native/jni/gtk-peer/Makefile.am
	Update for new files.

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
	Remove superfluous GtkImage code for GdkPixmaps. 

	* native/jni/gtk-peer/gtkpeer.h
	Remove graphics2d structure.
	
2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (copying constructor):
	Do not reuse fg in the constructor.

2006-05-29  Carsten Neumann  <cn-develop@gmx.net>

	* java/io/ObjectStreamConstants.java: Added API docs.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (setColor):
	Take no action if this color is already set.

2006-05-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (translate):
	Rewritten. 
	* examples/gnu/classpath/examples/swing/FillRect.java (paintComponent):
	Optionally paint with translation. (createContent): Added option
	to test painting with translation

2006-05-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java (FileHandler): Set the instance field
	pattern to the default value when null.
	Pass field pattern, and not parameter with same name to createFileStream.

2006-05-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/management/OperatingSystemMXBeanImpl.java:
	New class implementing the OS bean.
	* gnu/java/lang/management/package.html:
	New file to document the gnu.java.lang.management package.
	* java/lang/management/ManagementFactory.java:
	New class to provide access to the OS bean.
	* java/lang/management/OperatingSystemMXBean.java:
	New interface.
	* java/lang/management/package.html:
	New file to document the java.lang.management package.
	
2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/ImportCmd.java (GKR): New constant.
	(JKS): Likewise.
	(LIB): Likewise.
	(SECURITY): Likewise.
	(CACERTS): Likewise.
	(CACERTS_GKR): Likewise.
	(gkrCaCertsPathName): New field.
	(jksCaCertsPathName): Likewise.
	(selfSignedCertificate): Likewise.
	(start): Initialize trusted certificate key stores if -trustcacerts is
	specified.
	(ensureReplyIsOurs): Initialize selfSignedCertificate.
	(orderChain): Implemented.
	(findTrustAndUpdate): Check a cacerts.gkr (GKR) and a cacert (JKS) trusted
	certificate key stores if -trustcacerts option is specified.
	(findTrustInCACerts): Removed.
	(getCertPathParameters): New method.
	(validate): New method.
	* resource/gnu/classpath/tools/keytool/messages.properties: Added message.

2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java (PROPERTY_PREFIX): New constant.
	(PATTERN_KEY): Likewise.
	(DEFAULT_PATTERN): Likewise.
	(LIMIT_KEY): Likewise.
	(DEFAULT_LIMIT): Likewise.
	(COUNT_KEY): Likewise.
	(DEFAULT_COUNT): Likewise.
	(APPEND_KEY): Likewise.
	(DEFAULT_APPEND): Likewise.
	(FileHandler()): Use pattern value as set in logging.properties.
	Use constants defined above.
	(FileHandler(1)): Use constants defined above.
	(FileHandler(2)): Likewise.
	(FileHandler(3)): Likewise.
	(FileHandler(4)): Likewise.
	(createFileStream): Likewise.

2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java: Reverted previous patch.
	* java/util/logging/LogManager.java: Likewise.

2006-05-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java (PATTERN_KEY): New constant.
	(DEFAULT_PATTERN): Likewise.
	(FileHandler()): Use configured pattern property if any; otherwise use a
	default value as per RI documentation.
	* java/util/logging/LogManager.java (getStringProperty): New method.

2006-05-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Announce libjawtgnu.so-to-libjawt.so rename.

2006-05-27  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac (FOUND_CACAO): New automake conditional.
	Add --enable-tool-wrappers.
	* NEWS: Introduce the --enable-tool-wrappers option.
	* tools/Makefile.am[CREATE_WRAPPERS]: Build wrapper binaries.
	* tools/appletviewer.c: Remove file.  Make tool-indepedent and
	rename ...
	* tools/toolwrapper.c: New file.

2006-05-27  Dalibor Topic  <robilad@kaffe.org>

	* java/awt/Graphics2D.java: Use full class name for 
	PrinterJob in javadoc.

2006-05-27  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/qt-peer/eventmethods.h (callVoidMethod): Silence warning.
	(callMouseMethod): Likewise.

2006-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/java-net/java_net_VMURLConnection.c:
	Fix function declarations to specify unused parameters.
	* scripts/check_jni_methods.sh:
	Remove copies of the same function using uniq.
	
2006-05-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* vm/reference/java/net/VMURLConnection.java:
	Make package-private and final.
	
2006-05-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java
	(TModed): Added editor for the icons column.
	(createContent): Increase the row height by 2 px.

2006-05-26  Tom Tromey  <tromey@redhat.com>

	PR classpath/27685:
	* java/math/BigInteger.java (modPow): Correctly handle negative
	exponent.

2006-05-26  Tom Tromey  <tromey@redhat.com>

	* configure.ac: Check for magic.h and -lmagic.
	* vm/reference/java/net/VMURLConnection.java: New file.
	* include/java_net_VMURLConnection.h: New file.
	* include/Makefile.am (H_FILES): Add VMURLConnection.h.
	($(top_srcdir)/include/java_net_VMURLConnection.h): New target.
	* native/jni/java-net/Makefile.am (libjavanet_la_SOURCES):
	Mention new file.
	(libjavanet_la_LIBADD): Add $(LIBMAGIC).
	* native/jni/java-net/java_net_VMURLConnection.c: New file.

2006-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* tools/Makefile.am (installcheck-binSCRIPTS): Do nothing.

2006-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jawt/Makefile.am (nativeexeclib_LTLIBRARIES): Rename
	libjawtgnu.la libjawt.la.

2006-05-26  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Remove
	gtkcairopeer.h.

2006-05-25  Lillian Angel  <langel@redhat.com>
	
	PR 26174
	* java/awt/Window.java
	(Window): Moved code to helper.
	(addWindowFocusListener): New function. Handles focus
	listener code. Added code to handle focus lost/gained
	from the window.

2006-05-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* configure.ac:
	Make pkg-config check for GTK+ >= 2.8.
	
2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(flush): Remove debugging printfs.

2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(schedule_flush): New function.
	(end_drawing_operation): Call schedule_flush.

2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* examples/gnu/classpath/examples/swing/Demo.java: Add FillRect
	paint performance demo.
	* examples/gnu/classpath/examples/swing/FillRect.java: New file.

2006-05-25  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* INSTALL: Bump GTK requirement to 2.8 or higher.  Do not mention
	Cairo version requirement.  Do not mention --enable-gtk-cairo
	configure option.
	* NEWS: Add entry for GdkGraphics2D.
	* configure.ac: Remove --enable-gtk-cairo and explicit checks for
	Cairo library and headers.
	* .externalToolBuilders/Configure.launch: Remove
	--enable-gtk-cairo from configure line.
	* gnu/classpath/Configuration.java.in (GTK_CAIRO_ENABLED): Remove
	field.
	* gnu/java/awt/BitwiseXORComposite.java: Fix javadoc typo.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c : Remove
	useGraphics2D references.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GdkGraphics.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Remove.
	* gnu/java/awt/peer/gtk/GdkGraphics2D.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Remove
	Unlocked method variants.  Remove GTK_CAIRO_ENABLED and
	useGraphics2D references.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GdkTextLayout.java: Remove instanceof
	Graphics2D check.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
	(realize): Remove method.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(isRealized): Remove method.
	(realize): Implement as a native method.  Remove useGraphics2D
	references.  Always assume Graphics2D is enabled.
	* gnu/java/awt/peer/gtk/GtkImage.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: Replace
	GdkGraphics references with GdkGraphics2D references.
	* gnu/java/awt/peer/gtk/GtkToolkit.java,
	native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: Remove
	useGraphics2D references.  Always assume Graphics2D is enabled.
	* include/Makefile.am (GTKPEER_H_FILES): Remove
	gnu_java_awt_peer_gtk_GdkGraphics.h.
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h: Remove.
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: Likewise.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Likewise.
	* native/jawt/Makefile.am (AM_LDFLAGS): Remove CAIRO_LIBS.
	* native/jni/gtk-peer/Makefile.am (libgtkpeer_la_SOURCES): Remove
	gnu_java_awt_peer_gtk_GdkGraphics.c.  Include
	gnu_java_awt_peer_gtk_GdkGraphics2D.c unconditionally.
	(AM_LDFLAGS): Remove CAIRO_LIBS.
	(AM_CFLAGS): Remove CAIRO_CFLAGS.
	* native/jni/gtk-peer/gtkcairopeer.h: Remove.  Move declarations
	to ...
	* native/jni/gtk-peer/gtkpeer.h: Add Graphics2D declarations.

2006-05-25  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked):
	Added check to prevent assertion error. If widget->window is null, then
	use the parent widget's window to set the cursor on.

2006-05-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (TreeCancelEditingAction):
	Implemented.

2006-05-24  Lillian Angel  <langel@redhat.com>

	* tools/gnu/classpath/tools/appletviewer/AppletTag.java
	(prependCodeBase): Added check to determine if the documentbase
	points to a directory or a file.

2006-05-24  Sven de Marothy  <sven@physto.se>

	* java/awt/dnd/DragGestureRecognizer.java
	(resetRecognizer): Implement.
	(fireDragGestureRecognized): Implement.

2006-05-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java: Marked stub methods and
	fixed source code formatting.

2006-05-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (valueChanged): If is editing, stop editing.

2006-05-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	Reported by Antony Balkisson.
	* javax/swing/JTable.java (selectAll): Return without action 
	if the table is empty.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java:
	(SliderCell): New inner class. (setCustomEditors,
	setInformativeHeaders): New fields. (createContent):
	Rewritten.
	* javax/swing/DefaultCellEditor.java 
	(JComboBoxDelegate.shouldSelectCell): New method.
	* javax/swing/JTable.java (editCellAt): Call shouldSelectCell.
	* javax/swing/plaf/basic/BasicTableUI.java
	(MouseInputHandler.mouseClicked): Start editing on a single
	click if the cell editor is not a default cell editor.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/naming/CompositeName.java,
	javax/swing/naming/CompoundName.java:
	Documented.

2006-05-23  Archie Cobbs  <archie@dellroad.org>

	* vm/reference/java/lang/VMClassLoader.java: fix static initializer
	ordering problem.

2006-05-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/AbstractLayoutCache.java: Coding style fixes,
	* javax/swing/tree/DefaultMutableTreeNode.java: Likewise,
	* javax/swing/tree/DefaultTreeCellRenderer.java: Likewise,
	* javax/swing/tree/DefaultTreeModel.java: Likewise,
	* javax/swing/tree/DefaultTreeSelectionModel.java: Likewise,
	* javax/swing/tree/ExpandVetoException.java: Likewise,
	* javax/swing/tree/FixedHeightLayoutCache.java: Likewise,
	* javax/swing/tree/RowMapper.java: Likewise,
	* javax/swing/tree/TreeNode.java: Likewise,
	* javax/swing/tree/TreeSelectionModel.java: Likewise,
	* javax/swing/tree/VariableHeightLayoutCache.java: Likewise.

2006-05-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultTreeCellRenderer.java
	(DefaultTreeCellRenderer): Changed key for 
	setBackgroundNonSelectionColor(),
	plus API docs all over.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
	
	PR 27680
	* javax/swing/JTable.java (booleanInvertingEditor): New field.
	(defaultEditorsByColumnClass, defaultRenderersByColumnClass):
	Initialise in constructor. (columnMoved): Cancel editing.
	(createDefaultEditors): Rewritten. (editCellAt):
	Just invert the value if this is a boolean cell. 
	(initialiseLocalVars): Do not initialise renderer and editor tables.
	(setUI): Create editors and renderers here.

2006-05-23  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/awt/Demo.java:
	(MainWindow.MainWindow): Added ResolutionWindow and FullscreenWindow
	instance as subframe.
	(ResolutionWindow): New inner class.
	(FullscreenWindow): New inner class.

2006-05-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
	
	PR 27680
	* javax/swing/JTable.java (BooleanCellRenderer, IconCellRenderer):
	Set horizontal alignment to centered.

2006-05-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/accessibility/AccessibleContext.java
	(getAccessibleComponent): Fixed typo in docs,
	* javax/swing/JLabel.java:
	(AccessibleJLabel.getAccessibleName): Check for explicit 
	accessibleName,
	* javax/swing/JTableHeader.java
	(AccessibleJTableHeaderEntry.columnIndex): New field,
	(AccessibleJTableHeaderEntry.parent): New field,
	(AccessibleJTableHeaderEntry.table): New field,
	(AccessibleJTableHeaderEntry.AccessibleJTableHeaderEntry()): 
	Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleColumnHeaderRenderer): New 
	utility method,
	(AccessibleJTableHeaderEntry.addFocusListener): Implemented,
	(AccessibleJTableHeaderEntry.addPropertyChangeListener): Implemented,
	(AccessibleJTableHeaderEntry.contains): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleAction): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleAt): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleChild): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleChildrenCount): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleComponent): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleContext): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleDescription): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleIndexInParent): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleName): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleRole): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleSelection): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleStateSet): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleText): Implemented,
	(AccessibleJTableHeaderEntry.getAccessibleValue): Implemented,
	(AccessibleJTableHeaderEntry.getBackground): Implemented,
	(AccessibleJTableHeaderEntry.getBounds): Implemented,
	(AccessibleJTableHeaderEntry.getCursor): Implemented,
	(AccessibleJTableHeaderEntry.getFont): Implemented,
	(AccessibleJTableHeaderEntry.getFontMetrics): Implemented,
	(AccessibleJTableHeaderEntry.getForeground): Implemented,
	(AccessibleJTableHeaderEntry.getLocation): Implemented,
	(AccessibleJTableHeaderEntry.getLocationOnScreen): Implemented,
	(AccessibleJTableHeaderEntry.getSize): Implemented,
	(AccessibleJTableHeaderEntry.isEnabled): Implemented,
	(AccessibleJTableHeaderEntry.isFocusTraversable): Implemented,
	(AccessibleJTableHeaderEntry.isShowing): Implemented,
	(AccessibleJTableHeaderEntry.isVisible): Implemented,
	(AccessibleJTableHeaderEntry.removeFocusListener): Implemented,
	(AccessibleJTableHeaderEntry.removePropertyChangeListener): 
	Implemented,
	(AccessibleJTableHeaderEntry.requestFocus): Implemented,
	(AccessibleJTableHeaderEntry.setAccessibleDescription): Implemented,
	(AccessibleJTableHeaderEntry.setAccessibleName): Implemented,
	(AccessibleJTableHeaderEntry.setBackground): Implemented,
	(AccessibleJTableHeaderEntry.setBounds): Implemented,
	(AccessibleJTableHeaderEntry.setCursor): Implemented,
	(AccessibleJTableHeaderEntry.setEnabled): Implemented,
	(AccessibleJTableHeaderEntry.setFont): Implemented,
	(AccessibleJTableHeaderEntry.setForeground): Implemented,
	(AccessibleJTableHeaderEntry.setLocation): Implemented,
	(AccessibleJTableHeaderEntry.setSize): Implemented,
	(AccessibleJTableHeaderEntry.setVisible): Implemented,
	(AccessibleJTableHeader.getAccessibleRole): Implemented,
	(AccessibleJTableHeader.getAccessibleChildrenCount): Implemented,
	(AccessibleJTableHeader.getAccessibleChild): Implemented,
	(AccessibleJTableHeader.getAccessibleAt): Implemented.

2006-05-22  Tom Tromey  <tromey@redhat.com>

	* NEWS: Updated.

2006-05-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getAccessibleName): New method (override),
	(setLabelFor): Fire 'labelFor' property change event before other
	events.

2006-05-22  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getAccessibleRole): New method (override).

2006-05-22  Tom Tromey  <tromey@redhat.com>

	* resource/gnu/classpath/tools/serialver/messages.properties: New
	file.
	* tools/gnu/classpath/tools/serialver/Messages.java: New file.
	* tools/gnu/classpath/tools/serialver/SerialVer.java (classes): New
	field.
	(classpath): Likewise.
	(run): New method.
	(main): Use it.
	(addFileURL): New method.
	(getClassLoader): Likewise.
	(printMessage): Likewise.

2006-05-22  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/serialver/SerialVer.java: New file.

2006-05-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (doLayout): In the column
	resize mode, only repaing the changed part of the table.
	(getLeftResizingBoundary): New method.

2006-05-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/spi/InitialContextFactory.java,
	javax/naming/spi/InitialContextFactoryBuilder.java,
	javax/naming/spi/NamingManager.java,
	javax/naming/spi/ObjectFactory.java,
	javax/naming/spi/ResolveResult.java,
	javax/naming/spi/Resolver.java,
	javax/naming/spi/StateFactory.java: Documented.

2006-05-21  Tom Tromey  <tromey@redhat.com>

	PR classpath/27688:
	* tools/gnu/classpath/tools/jar/Extractor.java (allItems): Now
	a WorkSet.
	(initSet): Removed.
	(shouldExtract): Removed.
	(run): Updated.
	* tools/gnu/classpath/tools/jar/WorkSet.java: New file.
	* tools/gnu/classpath/tools/jar/Lister.java (readUntilEnd): New
	method.
	(listJar): Use it.
	(allItems): New field.
	(run): Initialize it.
	(listJar): Use it.

2006-05-22  Sven de Marothy  <sven@physto.se>

	* java/nio/CharBuffer.java
	(wrap): Fix bounds checking.

2004-08-26  Tom Tromey  <tromey@redhat.com>

	* java/io/OutputStream.java 
	(OutputStream): Implements Closeable, Flushable.

2006-04-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectOutputStream.java:
	(writeObject(Object)): Added enum support.
	(writeClassDescriptor(ObjectStreamClass)): Likewise.
	* java/io/ObjectStreamClass.java:
	(isEnum()): New package-private method.
	(setFlags(Class)): Added enum support.
	* java/io/ObjectStreamConstants.java:
	(SC_ENUM): Added.

2006-03-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectInputStream.java:
	(parseContent(byte)): Added enum support.
	* java/io/ObjectStreamConstants.java:
	(TC_ENUM): Added.
	(TC_MAX): Changed to new maximum, TC_ENUM.

2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(instantiateChild(String)): Implemented.
	
2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(add(Object)): Add further documentation.
	(isEmpty()): Documented.
	(propertyChange(PropertyChangeEvent)): Implemented.
	(remove(Object)): Documented.
	(remove(Object,boolean)): Documented and implemented.
	(vetoableChange(PropertyChangeEvent)): Marked as
	implemented (only subclasses appear to need this).
	
2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/beans/beancontext/BeanContextSupport.java:
	(add(Object)): Implement support for the child being
	a BeanContextChild.
	(avoidingGui()): Implemented.
	(dontUseGui()): Likewise.
	(needsGui()): Likewise.
	(okToUseGui()): Likewise.
	
2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/Context.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/Reference.java: Documented.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/html/MinimalHTMLWriter.java
	(writeComponent, writeImage): Declare that the method
	may throw the IOException.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
	
	PR 26972
	* javax/naming/InitialContext.java (colon_list): Changed type to
	hashset. (use_properties): New field. (init(Hashtable)): Rewritten.
	(merge): Rewritten.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/InitialContext.java: Documented.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/NameParser.java,
	javax/naming/NamingEnumeration.java,
	javax/naming/PartialResultException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/spi/ObjectFactory.java,
	javax/naming/spi/ObjectFactoryBuilder.java: Documented.

2006-05-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/net/loader/JarURLLoader.java:
	Use Map.Entry instead of LinkedHashMap.Entry
	
2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/Context.java: Documented.

2006-05-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/Referenceable.java: Documented.
	* javax/naming/spi/NamingManager.java: Documented.

2006-05-21  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: Replaced references to MessageBundle.properties
	to messages.properties.
	* resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	Renamed to messages.properties.
	* resource/gnu/classpath/tools/keytool/MessageBundle.properties:
	Likewise.
	* resource/gnu/classpath/tools/jarsigner/messages.properties:
	Renamed from MessageBundle.properties.
	Added copyright notice.
	* resource/gnu/classpath/tools/keytool/messages.properties:
	Likewise.
	* tools/gnu/classpath/tools/jarsigner/Messages.java
	(BUNDLE_NAME): Use messages instead of MessageBundle properties file.
	(getFormattedString): Fixed a spelling mistake.
	* tools/gnu/classpath/tools/keytool/Messages.java: Likewise.

2006-05-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/font/opentype/NameDecoder.java
	Made class public.
	(getName): Use getShort instead of getChar(), fix PS name.
	(decodeName): New method.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getSubFamilyName): Implement.
	(getPostScriptName): Use the NameDecoder class instead.
	(parsePSName): Removed.
	(getName): Added

2006-05-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java
	(getTrueTypeTable): New native method.
	(getPostScriptName): Reimplement.
	(parsePSName): New method.
	(getNumGlyphs): Implement.
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h: New native method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable):
	New function. File is now explicitly dependent on FT2.
	
2006-05-20  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/native2ascii/Messages.java: New file.
	* resource/gnu/classpath/tools/native2ascii/messages.properties: New
	file.
	* tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
	(HandleFile): New class.
	(input, output, encoding, reversed): New fields.
	(createParser): New method.
	(run): Likewise.
	(main): Use 'run'.
	* tools/gnu/classpath/tools/getopt/FileArgumentCallback.java
	(notifyFile): Throws OptionException.

2006-05-20  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/native2ascii/Native2ASCII.java: New file,
	from cp-tools.

2006-05-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/java-nio/gnu_java_nio_VMChannel.c:
	(JCL_print_buffer): Fix to work with -Werror on 64-bit
	platforms.
	
2006-05-20  Sven de Marothy  <sven@physto.se>

	* java/awt/Font.java (getNumGlyphs): Call correct peer method.
	
2006-05-20  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterJob.java 
	(print): Use PostScriptGraphics2D.
	* gnu/java/awt/print/PostScriptGraphics2D.java: New file.
	
2006-05-20  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/html/MinimalHTMLWriter.java: New file
	
2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/OID.java: Updated copyright year.
	(OID): Removed unused Javadoc param tag.
	* gnu/java/security/prng/PRNGFactory.java: Removed unused import.
	* gnu/java/security/hash/MD4.java: Fixed a Javadoc link.

2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/keyring/GnuKeyring.java (engineAliases):
	Formatting.
	Added trace/debug statements.
	(engineSetCertificateEntry): Ensure alias is not already used for a Key
	Entry.  Also ensure that any previous entry for this alias is removed
	before a new one is added.
	(engineGetKey): Do not trace/log passwords.
	Trace key's class name only.
	(engineSetKeyEntry): Ensure alias is not alredy used for a Trusted
	Certificate Entry. Also ensure that previous entry for this alias is
	removed before a new one is added.
	(engineLoad): Do not trace/log passwords.
	(engineStore): Likewise.
	(engineSize): Use size of enumeration instead of collection size.

2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/keyring/PrivateKeyEntry.java: Formatting.
	(toString): New method.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java (decrypt):
	Do not trace/log passwords.
	Set masked to false before decoding envelope.
	Do not set payload to null.
	(encrypt): Set masked to true.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java (verify):
	Do not trace/log passwords.
	Set masked to false before decoding envelope.
	Do not set payload to null.
	Added trace/debug statements.
	(authenticate): Do not trace/log passwords.
	Set masked to true.
	Added trace/debug statements.
	(getMac): Added trace/debug statements.
	* gnu/javax/crypto/keyring/MaskableEnvelopeEntry.java
	(remove(String)): Changed the signature to return a boolean.
	(toString): New method.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java (containsCertificate):
	Formatting
	(getCertificate): Likewise.
	(putCertificate): Likewise.
	(load): Likewise.
	Do not trace/log passwords.
	(store): Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java (getPrivateKey):
	Do not trace/log passwords.
	Added more trace/logging statements.
	(putPrivateKey): Do not trace/log passwords.
	Trace only key's class name.
	Formatting.
	(containsPublicKey): Formatting.
	(getPublicKey): Likewise.
	Trace only key's class name.
	(putPublicKey): Trace only key's class name.
	(containsCertPath): Formatting.
	(getCertPath): Likewise.
	(putCertPath): Likewise.
	(load): Do not trace/log passwords.
	Formatting.
	(store): Likewise.
	* gnu/javax/crypto/keyring/EnvelopeEntry.java (log): New field.
	(add): Do not set payload to null.
	Added trace/debug statements.
	(containsAlias): Added trace/debug statements.
	(get): Likewise.
	(remove(Entry)): Likewise.
	(remove(String)): Likewise.
	Changed the signature to return a boolean.
	Do not set payload to null unless really removed.
	(toString): New method.
	(decodeEnvelope): Clear entries before proceeding.
	(makeAliasList): Added trace/debug statements.
	Ensure only non-null aliases and alias-lists are added.
	* gnu/javax/crypto/keyring/Entry.java (log): New field.
	(TYPES): New constant.
	(toString): New method.
	(defaultDecode): Add trace/debug statement.

2006-05-20  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/ListCmd.java (rfc):
	Increased visibility.
	(setup): Do not trace/log passwords.
	(parsed): Was not setting correct (rfc) field; fixed.
	(print1Chain): Formatting.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java (setup):
	Do not trace/log passwords.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java (setup): Likewise.
	(orderChain): Added FIXME.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java (setup):
	Do not trace/log passwords.
	Removed commented out code.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java (setup): Likewise.
	* tools/gnu/classpath/tools/keytool/Command.java (doCommand): Formatting.
	(setKeystoreURLParam): Likewise.
	(setKeystorePasswordParam): Do not trace/log passwords.
	(saveKeyStore): Likewise.

2006-05-19  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	Added class docs.
	(pixel): Removed obsolete field.
	(draw(Shape)): Removed commented out code.
	(drawImage): Formatting.
	(drawString): Added optimization hook.
	(setPaint): Removed rawSetForeground().
	(getFontRenderContext): Return context with correct transform.
	(drawGlyphVector): Draw complete outline in one go.
	(copyArea): Added optimization hook.
	(clearRect): Added optimization hook.
	(drawImage): Added optimization hook.
	(fillShape): (Temporarily) Set antialiasing off by default for
	font rendering. Adjust the shape by some bits to improve rendering.
	Pass clip bounds to the render methods.
	(drawPixel): Removed.
	(rawSetPixel): Removed.
	(rawSetForeground): Removed.
	(rawDrawLine): Default impl calls standard pipeline.
	(rawDrawString): New method, calls standard pipeline for rendering.
	(rawClearRect): New method, calls standard pipeline for rendering.
	(rawFillRect): New method, calls standard pipeline for rendering.
	(rawDrawImage): New method, calls standard pipeline for rendering.
	(rawCopyArea): New method.
	(copyAreaImpl): New method.
	(rawFillShape): Renamed to fillShapeImpl(). Small optimization
	for rendering.
	(fillShapeAntialias): Fixed AA rendering.
	(fillScanlineAA): Fixed AA rendering.
	(getSegments): Take offset into account.

2006-05-19  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/AbstractWriter.java
	(getText): Fix parameters (start, length) not (start, end).
	
2006-05-19  Tom Tromey  <tromey@redhat.com>

	PR classpath/27444:
	* gnu/java/net/loader/URLLoader.java (getClassPath): Documented.
	Changed return type.
	* java/net/URLClassLoader.java (urlloaders): Removed.
	(addURLImpl): Updated.
	* gnu/java/net/loader/JarURLLoader.java (initialized): New field.
	(indexSet): Likewise.
	(classPath): Changed type.
	(JarURLLoader): New constructor.
	(initialize): New method.
	(getResource): Use index set if it exists.
	(getClassPath): Updated.
	* gnu/java/net/IndexListParser.java (IndexListParser): Avoid NPE.
	(prefixes): New field.
	(headers): Removed.
	(IndexListParser): Fill in prefixes.
	(clearAll): Clear prefixes.
	(getHeaders): Changed return type.

2006-05-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(MouseInputHandler.mouseExitted): No nothing there.
	(MouseInputHandler.endDragging): Move column to the
	first/last position if released outside the horizontal
	table range.

2006-05-19  Lillian Angel  <langel@redhat.com>

	* java/awt/font/GlyphVector.java
	(getGlyphCharIndex): Implemented.
	(getGlyphCharIndices): Implemented.
	(getGlyphOutline): Implemented.
	(getGlyphVisualBounds): Implemented.
	(getGlyphVisualBounds): Implemented.
	(getPixelBounds): Implemented.
	(getLayoutFlags): Implemented.

2006-05-19  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/LightweightDispatcher.java: Added field dragButton and
	documentation for it.
	(handleMouseEvent): Rewritten MOUSE_PRESSED case in switch-statement,
	added subexpression to if-clause in MOUSE_RELEASED case.

2006-05-19  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/metal/MetalButtonUI.java:
	(update): Removed some subexpression from if-clause and call
	updateWithGradient.
	(updateWithGradient): New method.

2006-05-19  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComponent.java
	(findOverlapFreeParent): Implemented algorithm for finding
	overlapping in component hierarchy.

2006-05-19  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Thread.java
	(contextClassLoaderIsSystemClassLoader): New field.
	(Thread(ThreadGroup,Runnable)): Call createAnonymousThreadName.
	(Thread(VMThread,String,int,boolean)): Call createAnonymousThreadName
	and set contextClassLoaderIsSystemClassLoader.
	(Thread(ThreadGroup,Runnable,String,long)):
	Set contextClassLoaderIsSystemClassLoader.
	(createAnonymousThreadName): New method.
	(getContextClassLoader): Check contextClassLoaderIsSystemClassLoader
	and fixed security check.
	(setContextClassLoader): Clear contextClassLoaderIsSystemClassLoader.

2006-05-19  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(createNonRolloverBorder): Rewritten.
	(createRolloverBorder): Rewritten.
	(setToNonRolloverBorder): Store old border instance in hashtable.
	(setToRolloverBorder): Store old border instance in hashtable, use
	AbstractButton instead of JButton in statements.
	(setBorderToNormal): Rewritten.
	* javax/swing/plaf/metal/MetalLookAndFeel.java:
	(initComponentDefaults): Added values for ToolBar.rolloverBorder and
	ToolBar.nonrolloverBorder.

2006-05-18  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/stream/ImageInputStreamImpl.java: Complete.
	* javax/imageio/stream/MemoryCacheImageInputStream.java: Likewise.

2006-05-18  Lillian Angel  <langel@redhat.com>

	* java/awt/font/GlyphMetrics.java
	(getLSB): Implemented.
	(getRSB): Implemented.

2006-05-18  Lillian Angel  <langel@redhat.com>

	* java/awt/font/GraphicAttribute.java:
	Documented entire class.
	(GraphicAttribute): Added check for alignment.
	(getBounds): Implemented.
	(getJustificationInfo): Implemented.

2006-05-18  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/LightweightDispatcher.java:
	(handleMouseEvent): Added note, added subexpression to if-statement.

2006-05-18  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(navigateFocusedComp): Marked as stub.
	(createRolloverBorder): Create a different Border instance, added note.
	* javax/swing/plaf/metal/MetalBorders.java:
	(ButtonBorder): Added documentation.
	(ButtonBorder.paintDefaultButtonBorder): Added else-block.
	(ButtonBorder.paintOceanButtonBorder): Added else-block, added
	subexpression into if-else cascade, added note.

2006-05-18  Lillian Angel  <langel@redhat.com>

	* java/awt/font/ShapeGraphicAttribute.java:
	Documented entire class.
	(ShapeGraphicAttribute): Initialized bounds field.
	(draw): Implemented.
	(equals): Implemented.
	(getAdvance): Implemented.
	(getAscent): Implemented.
	(getBounds): Implemented.
	(getDescent): Implemented.
	(hashCode): Implemented.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* javax/swing/CellRendererPane.java
	(CellRendererPane): Set CellRendererPane to invisible.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(clipRect): Removed old intersection statement.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(clipRect): Don't use Rectangle.intersection() to avoid creating
	2 unnecessary Rectangle instances and fix a clipping problem.
	(computeIntersection): New helper method, adapted from SwingUtilities.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComponent.java
	(isCompletelyDirty): Removed.
	(paint): Don't mark children as clean, this is no longer necessary.
	(findOverlapFreeParent): Don't stop at Viewports, this breaks
	painting when something overlaps the viewport (like a popup/menu).
	* javax/swing/RepaintManager.java
	(currentRepaintManagers): Made package private to avoid accessor
	methods.
	(dirtyComponents): Made private.
	(dirtyComponentsWork): Made private.
	(markCompletelyDirty): Fixed bounds of dirtyrect to be
	component-local not parent-local. Do not set flag in JComponent.
	(markCompletelyClean): Don't set JComponent flag.
	(isCompletelyDirty): Rewritten to return true when the complete
	component is marked dirty.
	(paintDirtyRegions): Improved parent-merging so that the merged-in
	components don't get painted too. 'Outsourced' the compilation
	of the repaint root components.
	(compileRepaintRoots): New helper method.

2006-05-18  Roman Kennke <kennke@aicas.com>

	PR 26368
	* javax/swing/text/GapContent.java
	(GapContentPosition(int)): Use adapted binarySearch method to
	allow for having a greater array than number of entries.
	(numMarks): New field, holds the end of the marks list.
	(GapContent): Initialize positionMarks with size of 10 instead of 0.
	(shiftGapStartDown): Adjusted for new setPositionsInRange signature.
	(shiftGapEndUp): Adjusted for new setPositionsInRange signature.
	(setPositionsInRange): Changed signature to narrow the purpose and
	special cases inside. Reimplemented to crunch together equal marks.
	(adjustPositionsInRange): Added assertion to make sure we do
	not accidentally change the order of the mark. Added some debug
	output for a special case of which I don't know if it even exists.
	(resetMarksAtZero): Made impl simpler.
	(dumpMarks): New debug helper method.
	(insertMark): Grow array in bigger chunks to avoid excessive copying.
	(binarySearch): New method. An adaption of Arrays.binarySearch()
	that allows for an maxIndex parameter.

2006-05-18  Roman Kennke <kennke@aicas.com>

	* javax/swing/KeyboardManager.java
	(topLevelLookup): Use WeakHashMap to avoid memory leak.

2006-05-18  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/net/loader/JarURLLoader.java
	(JarURLLoader): Use a slightly more efficient URL constructor.

2006-05-18  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/awt/print/JavaPrinterGraphics.java
	(drawImage(Image, int, int, Color, ImageObserver)): Fix endless loop,
	(drawImage(Image, int, int, ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, Color, ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, int, int, int, int, Color, 
	ImageObserver)): Likewise,
	(drawImage(Image, int, int, int, int, int, int, int, int, 
	ImageObserver)): Likewise.

2006-05-17  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile): Use a
	LinkedHashSet.

2006-05-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/AbstractBorder.java: Source code formatting fixes,
	* javax/swing/border/BevelBorder.java: Likewise,
	* javax/swing/border/CompoundBorder.java: Likewise,
	* javax/swing/border/TitledBorder.java: Likewise.

2006-05-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/AbstractTableModel.java: Formatting fixes,
	* javax/swing/table/DefaultTableModel.java: Likewise,
	* javax/swing/table/TableCellEditor.java: Likewise,
	* javax/swing/table/TableCellRenderer.java: Likewise.

2006-05-17  Lillian Angel  <langel@redhat.com>

	* java/awt/font/ImageGraphicAttribute.java:
	Documented entire class.
	(ImageGraphicAttribute): Changed to call this.
	(ImageGraphicAttribute): Implemented.
	(draw): Implemented.
	(equals): Implemented.
	(getAdvance): Implemented.
	(getAscent): Implemented.
	(getBounds): Implemented.
	(getDescent): Implemented.
	(hashCode): Implemented.
	* javax/swing/text/html/HTMLDocument.java
	(create): Removed. Sufficent enough for
	super to be called.
	(insert): Likewise.
	(insertUpdate): Likewise.
	(processHTMLFrameHyperlinkEvent): Marked as stub.
	(start): Removed FIXME.
	(end): Likewise.
	(start): Called super. 
	(end): Called super.
	(getElement): removed unneeded code.
	(setParagraphAttribute): Removed. Sufficent enough
	for super to be called.
	(fireChangedUpdate): Likewise.
	(fireUndoableEditUpdate): Likewise.	

2006-05-17  Lillian Angel  <langel@redhat.com>

	* java/awt/TexturePaint.java:
	Added documentation for class and all functions.
	(getTransparency): Implemented.

2006-05-17  Roman Kennke <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(findTarget): Translate point to child components.

2006-05-17  Roman Kennke <kennke@aicas.com>

	PR 26368
	* javax/swing/text/GapContent.java
	(GapContentPosition): Do no more implement Comparable.
	(GapContentPosition.mark): Removed field.
	(GapContentPosition.index): New field to hold the index into
	the positions array.
	(GapContentPosition(int)): Rewritten to use the new indirection
	to the positions array.
	(GapContentPosition.compareTo): Removed.
	(GapContentPosition.getOffset): Synchronized. Fetch mark from
	positionMarks array.
	(WeakPositionComparator): Removed obsolete class.
	(positions): Changed type to WeakHashMap.
	(positionMarks): New field, holds the marks of the positions.
	(GapContent): Initialize new fields.
	(createPosition): Rewritten to use the new indirection
	to the positions array.
	(getPositionsInRange): Rewritten to use the new indirection
	to the positions array.
	(setPositionsInRange): Rewritten to use the new indirection
	to the positions array.
	(adjustPositionsInRange): Rewritten to use the new indirection
	to the positions array.
	(insertMark): New helper method.
	(clearPositionReferences): Removed obsolete methods.

2006-05-17  Lillian Angel  <langel@redhat.com>

	* java/awt/GraphicsConfiguration.java
	(getImageCapabilities): Implemented.
	(getBufferCapabilities): Implemented.

2006-05-17  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(focusGained): Implemented.
	(focusLost): Implemented.
	(paint): Added code to paint the focus.
	* javax/swing/plaf/metal/MetalSliderUI.java
	(paintThumb): Added code to set the thumbColor.
	(paintFocus): Implemented properly.

2006-05-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27383
	* javax/naming/spi/NamingManager.java (getURLContext):
	Always search for the factory class in all possible places
	and use VMStackWalker.
	(forName): New method.

2006-05-17  Roman Kennke <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	(handleMouseEvent): Fixed search algorithm for finding the
	mouse event target.
	(findTarget): Fixed search algorithm for finding the
	mouse event target.

2006-05-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/naming/spi/NamingManager.java: Documented.

2006-05-17  Mark Wielaard  <mark@klomp.org>

	* THANKYOU: Add Trevor Linton <tlinton@xmission.com>.
	* gnu/javax/imageio/jpeg/DCT.java: Cleanup Todo copyright.
	* gnu/javax/imageio/jpeg/YCbCr_ColorSpace.java: Likewise.
	* gnu/javax/imageio/jpeg/ZigZag.java: Likewise.

2006-05-17  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR 26947.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Updated copyright
	year.
	(BorderListener.mouseClicked): Detect double-clicks in title pane,
	copied code from
	BasicInternalFrameTitlePaneUI.MaximizeAction.actionPerformed().

2006-05-17  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR 27626.
	* java/awt/LightweightDispatcher.java:
	(handleMouseEvent): Moved assignment into switch-block, added notes.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/StyleContext.java:
	Changed staticAttributeKeys  to be a Hashtable.
	(getStaticAttribute): Implemented.
	(getStaticAttributeKey): Implemented.
	(readAttributeSet): Implemented.
	(writeAttributeSet): Added FIXME. Not sure how
	to implement this.
	(readAttributes): Implemented.
	(writeAttributes): Implemented.
	(registerStaticAttibuteKey): Fixed to add key to 
	the hash table.

2006-05-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultButtonModel.java
	(setGroup): Removed event notification.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(uninstallKeyboardActions): Removed FIXME. Nothing
	to be done here.
	(installKeyboardActions): Likewise.
	* javax/swing/plaf/basic/BasicTextUI.java
	(uninstallKeyboardActions): Implemented.
	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added field for hashColor.
	Marked stub methods.
	(getHashColor): Implemented to use field.
	(setHashColor): Likewise.
	(getRowX): Implemented.
	(NodeDimensions.getRowX): Changed to use BasicTreeUI.getRowX.	

2006-05-16  Roman Kennke <kennke@aicas.com>

	PR 26521
	* javax/swing/JTable.java
	(rowHeights): New field.
	(initializeLocalVars): Call setRowHeigt instead of rowHeight=,
	in order to initialize rowHeights correctly.
	(tableChanged): Nullify rowHeights when model changes. Only
	create default columns from model when corresponding property
	is set. Sync table model with rowHeights as appropriate.
	(valueChanged): Call repaint with the correct rectangle.
	(rowAtPoint): Handle rowHeights.
	(getCellRect): Mostly rewritten. Check for boundaries
	of model and return (0,0,0,0) or (0,0,width,height) when outside.
	Handle component orientation. Round correctly.
	(getRowHeight(int)): Implemented for variable row height.
	(setRowHeight(int,int)): Implemented for variable row height.
	(setRowHeight(int)): Nullify rowHeights.
	(setModel): Notify tableChanged().
	* javax/swing/plaf/basic/BasicTableUI.java
	(installDefaults): Create rendererPane in installUI.
	(installUI): Create and install rendererPane.
	(uninstallUI): Uninstall rendererPane and nullify rendererPane
	and table.
	(paint): Correctly handle rowMargin.

2006-05-16  Tom Tromey  <tromey@redhat.com>

	PR classpath/27563:
	* java/text/NumberFormat.java (getIntegerInstance): Use
	"integerFormat", not "numberFormat".

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/JPopupMenu.java
	(addMenuKeyListener): Implemented.
	(removeMenuKeyListener): Implemented.
	(getMenuKeyListeners): Implemented.
	* javax/swing/ProgressMonitor.java:
	Added new protected field.
	(getAccessibleContext): Implemented.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* javax/swing/JFileChooser.java:
	Added new private field.
	(setDragEnabled): Implemented.
	(getDragEnabled): Implemented.

2006-05-16  Lillian Angel  <langel@redhat.com>

	* java/awt/Window.java
	(applyResourceBundle): Implemented.

2006-05-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultButtonModel.java
	(setSelected): If new SELECTED state is false, clear ARMED and PRESSED
	states also.

2006-05-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JList.java (getSelectedValues):
	Ask the value for the indexed array element.

2006-05-16  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(valueChanged): Also repaint when table has only 1 row. Fixed
	repaint rectangle to span the entire changed rows.

2006-05-16  Roman Kennke <kennke@aicas.com>

	PR 24031
	* javax/swing/JOptionPane.java
	(startModal): Rewritten. The events are now dispatched, even
	when the event dispatch thread gets blocked by the call
	to this method. Also, mouse events get intercepted outside the
	internal frame.

2006-05-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.mouseDragged):Do not set cursor 
	if the frame is being dragged.

2006-05-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener): Rewritten. (InternalFrameBorder):
	Made package private.
	(InternalFrameBorder.offset):
	Renamed to cornerSize, made package private.
	(bSize): Made package private.

2006-05-16  Roman Kennke <kennke@aicas.com>

	* javax/swing/JMenu.java
	(AccessibleJMenu.getAccessibleChildrenCount): Implemented.
	(AccessibleJMenu.getAccessibleChild): Implemented.
	(AccessibleJMenu.getAccessibleSelection): Implemented.
	(AccessibleJMenu.getAccessibleSelection(int)): Implemented.
	(AccessibleJMenu.isAccessibleChildSelected): Implemented.
	(AccessibleJMenu.getAccessibleRole): Documented.
	(AccessibleJMenu.getAccessibleSelectionCount): Implemented.
	(AccessibleJMenu.addAccessibleSelection): Implemented.
	(AccessibleJMenu.removeAccessibleSelection): Implemented.
	(AccessibleJMenu.clearAccessibleSelection): Implemented.
	(AccessibleJMenu.selectAllAccessibleSelection): Implemented.
	(createPath): New helper method.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* java/text/MessageFormat.java (format): Now varargs.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/Thread.java (State): Fixed typo.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* java/net/URLClassLoader.java: Moved inner classes to
	gnu.java.net.loader.
	(factoryCache): Changed type.
	(URL_LOADER_PREFIX): New constant.
	(URLClassLoader): Updated for new factoryCache.
	(addURLImpl): Use reflection to search for a loader.
	(findClass): Use getClass method on URLLoader.
	(getURLStreamHandler): Removed.
	* gnu/java/net/loader/URLLoader.java: New file, extracted
	from URLClassLoader.
	* gnu/java/net/loader/Resource.java: Likewise.
	* gnu/java/net/loader/FileResource.java: Likewise.
	* gnu/java/net/loader/FileURLLoaderjava: Likewise.
	* gnu/java/net/loader/JarURLLoader.java: Likewise.
	* gnu/java/net/loader/JarURLResource.java: Likewise.
	* gnu/java/net/loader/RemoteURLLoader.java: Likewise.
	* gnu/java/net/loader/RemoteResource.java: Likewise.
	* gnu/java/net/loader/ULRStreamHandlerCache.java: New file.

2006-05-15  Sven de Marothy  <sven@physto.se>

	* native/target/generic/target_generic_network.h: 
	Add a pair of parenthesis.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* java/awt/Graphics2D.java: Remove PrinterJob import.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20060515.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.91 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.91.

2006-05-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Announce inclusion of gcjwebplugin.
	Announce inclusion of appletviewer.
	* INSTALL: Note gcjwebplugin dependencies.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.91-generics.

2006-05-15  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add release date and VMClassLoader.getBootPackages()
	changes.

2006-05-15  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* README: Added CACAO to list of VMs.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/RepaintManager.java (paintDirtyRegions):
	Break loop as soon as the component repaint is merged
	with some parent. (ComponentComparator): Removed.
	(comparator): Removed.

2006-05-15  Roman Kennke <kennke@aicas.com>

	* javax/swing/border/TitledBorder.java
	(paintBorderWithTitle): Fixed indentation.

2006-05-15  Roman Kennke <kennke@aicas.com>

	* javax/swing/border/TitledBorder.java
	(layoutBorderWithTitle): Fetch border using getBorder() instead
	of using the border field directly. Allows for the use of
	an UI supplied border in the case when a null border was set.
	Fixed component orientation.
	(paintBorderWithTitle): Fetch border using getBorder() instead
	of using the border field directly. Allows for the use of
	an UI supplied border in the case when a null border was set.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/RepaintManager.java (paintDirtyRegions): Rewritten.
	(contains): New method.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* resource/gnu/classpath/tools/jar/messages.properties: Fixed
	argument indices.
	* resource/gnu/classpath/tools/getopt/Messages.properties: Fixed
	argument indices.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JComponent.java (findOverlapParent): Stop loop at
	 JViewport's.
	* javax/swing/RepaintManager.java (addDirtyRegion): Always add the given
	region. (paintDirtyRegions): Rewritten.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Main.java (setArchiveFile): Use
	MessageFormat.
	* tools/gnu/classpath/tools/jar/Indexer.java (indexJarFile): Use
	MessageFormat.
	* tools/gnu/classpath/tools/jar/Extractor.java: Externalized strings.
	(run): Use MessageFormat.
	* resource/gnu/classpath/tools/jar/messages.properties: New file.
	* tools/gnu/classpath/tools/jar/Creator.java: Externalized strings.
	(writeFile): Use MessageFormat.

2006-05-15  Jeroen Frijters  <jeroen@frijters.net>

	* java/awt/Toolkit.java (getDefaultToolkit): Use Class.forName()
	instead of directly calling the class loader.

2006-05-15  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/Option.java (getDescription):
	Removed old comment.
	* tools/gnu/classpath/tools/getopt/ClasspathToolParser.java:
	Externalized strings.
	(getVersionString): Use MessageFormat.
	* tools/gnu/classpath/tools/getopt/Messages.java: New file.
	* resource/gnu/classpath/tools/getopt/Messages.properties: New file.
	* tools/gnu/classpath/tools/getopt/Parser.java: Externalized strings.
	(getArgument): Use a MessageFormat.
	(handleLongOption): Likewise.
	(parse): Likewise.

2006-05-15  Robert Schuster  <robertschuster@fsfe.org>

	Fixes PR 27197.
	* javax/swing/text/FieldView.java:
	(paint): Calculate intersection between clip and allocation area and
	set that as new clip.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/JTextComponent.java: Marked stub methods.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java: Marked stub methods.

2006-05-15  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Increased visibility of fields used by parser anonymous classes.
	(KEYTOOL_TOOL): New constant.
	(cmdLineParser): Changed type to ToolParser.
	(fileAndAlias): new field.
	(main): Don't catch OptionException.
	(processArgs): Removed validation checks; now handled by ToolParser.
	(getParser): Removed.
	(ToolParserCallback): New inner class.
	(ToolParser): Likewise.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (TableTextArea.scrollRectToVisible):
	Removed.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultDesktopManager.java (endDraggingFrame, 
	endResizingFrame): Do not repaint, unless in the outline mode.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTabbedPane.getAccessibleRole): Implemented,
	(AccessibleJTabbedPane.getAccessibleChildrenCount): Implemented,
	(AccessibleJTabbedPane.getAccessibleSelection()): Implemented,
	(AccessibleJTabbedPane.getAccessibleAt): Implemented,
	(AccessibleJTabbedPane.getAccessibleSelectionCount): Implemented,
	(AccessibleJTabbedPane.getAccessibleSelection(int)): Implemented,
	(AccessibleJTabbedPane.isAccessibleChildSelected): Implemented,
	(AccessibleJTabbedPane.addAccessibleSelection): Implemented,
	(AccessibleJTabbedPane.removeAccessibleSelection): Implemented,
	(AccessibleJTabbedPane.clearAccessibleSelection): Implemented,
	(AccessibleJTabbedPane.selectAllAccessibleSelection): Implemented,
	(Page.getAccessibleName): Implemented.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultDesktopManager.java (setBoundsForFrame):
	Do not repaint nor revalidate here.

2006-05-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/RepaintManager.java (addDirtyRegion):
	If there is a lightweight parent, recursively add the corresponding
	region of the parent instead.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Graphics2D.java: Added some API doc comments.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTabbedPane.java
	(paramString): Reimplemented,
	(getAccessibleContext): Added API docs.

2006-05-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JFileChooser.java
	(paramString): Reimplemented,
	(getAccessibleContext): Updated API docs,
	(AccessibleJFileChooser): Added API docs.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Updater.java (run): No longer throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Creator.java (run): No longer throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Action.java (run): No longer throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Indexer.java (run): Removed.  Moved
	validation to JarParser.
	* tools/gnu/classpath/tools/jar/Main.java (JarParser): New class.
	(run): Moved validation to JarParser.  Don't throw OptionException.
	(initializeParser): Create a JarParser.
	(main): Don't catch OptionException.
	* tools/gnu/classpath/tools/getopt/Parser.java (printHelp): No longer
	public.
	(validate): New method.
	(parse): Call it.  Print '-help' in error message when long-only.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* gnu/java/awt/print/JavaPrinterJob.java (setPrintable): Fixed
	assignment.

2006-05-15  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterGraphics.java:
	Sweeping changes I can't be bothered to document in detail.
	* gnu/java/awt/print/JavaPrinterJob.java
	(getPageAttributes): New method.
	(setPageable,cancel,isCancelled): Implement.

2006-05-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JCheckBoxMenuItem.java
	(requestFocus): Fixed typo in API docs,
	(paramString): Just call super.paramString(),
	(getAccessibleContext): Added API docs,
	(AccessibleJCheckBoxMenuItem): Likewise.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Indexer.java
	(writeCommandLineEntries): Simplify insertion.
	* tools/gnu/classpath/tools/jar/Main.java (run): Don't allow both
	-m and -M.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	PR classpath/27514:
	* gnu/java/net/IndexListParser.java (JAR_INDEX_FILE): Renamed.  Now
	constant.
	(JAR_INDEX_VERSION_KEY): Likewise.
	(IndexListParser): Updated.
	(getVersionInfo): Likewise.
	* tools/gnu/classpath/tools/jar/Indexer.java: New file.
	* tools/gnu/classpath/tools/jar/Action.java (run): Now throws
	OptionException.
	* tools/gnu/classpath/tools/jar/Main.java (initializeParser): Handle
	-i.
	(ModeOption): New constructor.
	(parsed): Updated.  Use setArchiveFile.
	(setArchiveFile): New method.
	(run): Handle no-argument case.
	(main): Emit --help message on option error.
	* tools/gnu/classpath/tools/jar/Updater.java (inputJar): New field.
	(createManifest): New method.
	(run): Updated.  Throws OptionException.  Correctly copy zip entry.
	* tools/gnu/classpath/tools/jar/Creator.java (createManifest): New
	method.
	(writeManifest): Removed.
	(outputStream): Now a JarOutputStream.
	(writeCommandLineEntries): Changed parameters.  Updated callers.
	(run): Throws OptionException.
	* java/util/jar/JarOutputStream.java (putNextEntry): Typo fix.
	* java/util/jar/Manifest.java (read): Typo fix.

2006-05-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenuItem.java
	(paramString): Fixed class name in API doc comment.

2006-05-14  Tom Tromey  <tromey@redhat.com>

	* native/plugin/.cvsignore: Updated.

2006-05-14  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/javanet.c (_javanet_accept): Don't use C++
	comments.

2006-05-14  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java: Permit comments and PIs in doctype
	nodes to be preserved during cloneNode.

2006-05-14  Mark Wielaard  <mark@klomp.org>

	PR 27459
	* native/jni/java-net/javanet.c (_javanet_accept): Reset the
	inherited timeout on socket.

2006-05-14  Lillian Angel  <langel@redhat.com>

	* java/util/SimpleTimeZone.java: Reverted patch.
	(SimpleTimeZone): Throw exception if startMonth ==
	endMonth.
	(SimpleTimeZone): Likewise.
	(checkRule): Rewritten to properly check all values (more
	efficently).
	This code is now more stable, at least less buggy than before.
	Fixed API documentation.
	(setStartRule): Moved checkRule call to end.
	(setStartRule): Likewise.
	(setEndRule): Likewise.
	(setEndRule): Likewise.

2006-05-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java (leadRow):
	Initialise to -1.

2006-05-14  Robert Schuster  <robertschuster@fsfe.org>

	PR classpath/27595
	* javax/swing/text/AbstractDocument.java:
	(insertString): Flipped if-expression and its blocks.
	(remove): Dito.
	(replace): Flipped if-expression and its blocks, added note, invoke
	insertString and remove instead of insertStringImpl and removeImpl.

2006-05-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (main): Formatting.

2006-05-14  Raif S. Naffah  <raif@swiftdsl.com.au>

	* resource/gnu/classpath/tools/keytool/MessageBundle.properties:
	Added help text.
	* tools/gnu/classpath/tools/keytool/keytool.txt: Removed
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Likewise.
	(setup): Mark (Eclipse) strings that need not be externalised.
	(start): Likewise.
	* tools/gnu/classpath/tools/keytool/PrintCertCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Main.java: Amended to use getopt
	command line option parsing.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(setup): set 'all' local field.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Likewise.
	(setNewKeyPassword): Fixed comments.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	(findTrustInCACerts): Mark (Eclipse) strings that need not be
	externalised.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(setup): Mark (Eclipse) strings that need not be externalised.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Likewise.
	(ATTRIBUTES_OPT): New constant.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: 
	Increased visibility of fields used by parser anonymous classes.
	(processArgs): Removed.
	(setup): Mark (Eclipse) strings that need not be externalised.
	(start): Likewise.
	Reduced logging level.
	(getParser): New method.
	* tools/gnu/classpath/tools/keytool/Command.java
	(processArgs): Made it concrete.
	(getParser): New abstract method.
	* tools/Makefile.am (KEYTOOL_HELPS): Removed.

2006-05-13  Casey Marshall  <csm@gnu.org>

	Patch by Michael Barker <mike@middlesoft.co.uk>.
	* gnu/java/nio/PipeImpl.java: Retrofitted to use VMChannel.
	* gnu/java/nio/SelectorImpl.java (register): Added condition for
	gnu.java.nio.SocketChannelSelectionKeyImpl.
	* gnu/java/nio/SocketChannelSelectionKeyImpl.java: new file.
	* gnu/java/nio/channels/FileChannelImpl.java: retrofitted to use
	VMChannel.
	* include/gnu_java_nio_VMChannel.h: new file.
	* java/nio/FileChannel.java (read,write): changed to call abstract
	method.
	* native/jni/java-nio/gnu_java_nio_VMChannel.c: new file.
	* native/jni/java-nio/Makefile.am (libjavanio_SOURCES): add
	`gnu_java_nio_VMChannel.c.'
	* vm/reference/gnu/java/nio/VMChannel.java: new file.

2006-05-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/AbstractDocument.java:
	(insertString): Flipped if-expression and its blocks.
	(remove): Dito.
	(replace): Flipped if-expression and its blocks, added note, invoke
	insertString and remove instead of insertStringImpl and removeImpl.

2006-05-13  Tom Tromey  <tromey@redhat.com>

	* java/nio/ByteBufferImpl.java (compact): Always set position.

2006-05-13  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterGraphics.java
	(spoolPostScript): Use a faster writer.

2006-05-13  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/print/JavaPrinterGraphics.java
	(colorTripleHex): Reimplement better.

2006-05-13  Sven de Marothy  <sven@physto.se>

	* javax/swing/text/html/HTMLDocument.java
	(CharacterAction.start): Translate tag to StyleAttribute.
	(pushCharacterStyle): Push copy of attributes onto stack.
	* gnu/javax/swing/text/html/CharacterAttributeTranslator.java:
	New file

2006-05-13  Sven de Marothy  <sven@physto.se>

	* gnu/javax/print/ipp/IppRequest.java (send): Set a timeout.
	* java/awt/print/PrinterJob.java 
	(getPrinterJob): Return a JavaPrinterJob
	(setPrintService,getPrintService): Implement.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c:
	(getPixels): Gtk_threads_enter required.
	* gnu/java/awt/print/JavaPrinterGraphics.java
	* gnu/java/awt/print/JavaPrinterJob.java
	* gnu/java/awt/print/SpooledDocumet.java: 
	New files.
	
2006-05-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/TextAction.java:
	(HorizontalMovementAction): New inner class.
	(VerticalMovementAction): New inner class.
	* javax/swing/text/DefaultEditorKit.java: Added assigning instances of
	new inner classes to array 'defaultActions'.
	(SelectionBeginWordAction): New inner class.
	(SelectionEndWordAction): New inner class.
	(BeginWordAction): New inner class.
	(EndWordAction): New inner class.
	(PreviousWordAction.actionPerformed): Rewritten.
	(SelectLineAction): New inner class.
	(SelectWordAction): New inner class.
	(SelectionDownAction): Rewritten.
	(SelectionUpAction): Rewritten.
	(DownAction): Rewritten.
	(UpAction): Rewritten.
	(SelectionForwardAction): Rewritten.
	(SelectionBackwardAction): Rewritten.
	(ForwardAction): Rewritten.
	(BackwardAction): Rewritten.
	(BeginAction): New inner class.
	(EndAction): New inner class.
	(DefaultKeyTypedAction.actionPerformed): Use int variant of
	Character.isISOControl.

2006-05-13  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/NavigationFilterDemo.java:
	(WordFilter.getNextVisualPositionFrom): Added statement to check
	for variable pt not being null.

2006-05-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getNextWord): Fixed grammar in exception message.
	(getPreviousWord): Changed expression in first if-clause, added sub-
	expression to if-clause in while-loop.
	(getWordStart): Changed expression in if-clause.
	getNextVisualPositionFrom): Added package-private helper method.

2006-05-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
	* javax/swing/tree/DefaultTreeSelectionModel.java (leadRow):
	Initialise to -1.

2006-05-13  Raif S. Naffah  <raif@swiftdsl.com.au>

	* resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	Added help text.
	* tools/Makefile.am (JARSIGNER_HELPS): Removed.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Removed.
	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Increased visibility of fields used by parser anonymous classes.
	(HELP_PATH): Removed.
	(cmdLineParser): New field.
	(main): Handle JVM exit status.
	Handle command line parsing exceptions.
	(processArgs): Use getopt command line parser.
	(getParser): New method.
	(setupCommonParams): Removed checks now handled by processArgs().
	(setupSigningParams): Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java (start):
	Reuse an existing message-bundle constant.

2006-05-12  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/jar/Connection.java (getHeaderField):
	Explicitly specify class for synchronization.

2006-05-12  Tom Tromey  <tromey@redhat.com>

	* java/util/logging/Logger.java (resetLogger): Fixed typo.

2006-05-12  Sven de Marothy  <sven@physto.se>

	* gnu/java/net/protocol/http/HTTPConnection.java (get): Add timeout parameter.
	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(setConnectTimeout): New method.
	(getConnection): Add timeout parameter.
	*  java/net/URLConnection.java  
	(getConnectTimeout, setConnectTimeout): Implement.
	* native/target/generic/target_generic_network.h: 
	Set correct socket parameters SO_SNDTIMEO and SO_RCVTIMEO.
	
2006-05-12  Sven de Marothy  <sven@physto.se>
  
	* gnu/javax/print/CupsServer.java
	(CupsServer): Make the Cups host configurable.
	* java/lang/System.java: Document the system property.
	
2006-05-12  Roman Kennke <kennke@aicas.com>
  
	* javax/swing/border/TitledBorder.java
	(paintBorder): Rewritten for simplicity and correctness.
	(layoutBorderWithTitle): New helper method.
	(paintBorderWithTitle): New helper method.
	(getBorderInsets): Rewritten.
	(getMinimumSize): Rewritten.
	(getRealJustification): Removed.
	(getMeasurements): Removed.
	(Measurements): Removed.
  
2006-05-12  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/plaf/basic/BasicPanelUI.java
	(sharedUI): New field,
	(createUI): Return a shared instance rather than a new instance,
	(installUI): Reformatted and added API docs,
	(installDefaults): Install border if one is defined,
	(uninstallDefaults): Uninstall border.

2006-05-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JProgressBar.java: Updated API docs all over.

2006-05-11  Lillian Angel  <langel@redhat.com>

	* java/awt/ContainerOrderFocusTraversalPolicy.java
	(getComponentAfter): Should not throw exception if
	the ancestor is null. Added a check for this.
	Also, changed to use new helper function, we should
	iterate through all the components at least once.
	(getNextAvailableComponent): New helper function.
	(getPrevAvailableComponent): New helper function.
	(getComponentBefore): Should not throw exception if
	the ancestor is null. Added a check for this.
	Also, changed to use new helper function, we should
	iterate through all the components at least once.
	(getFirstComponent): Changed check to manually check
	fields. Calling accept() casts the object to a Component,
	so different values may be returned.
	(getLastComponent): Likewise.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalBorders.java: Clean up formatting/style,
	* javax/swing/plaf/metal/MetalButtonUI.java: Likewise,
	* javax/swing/plaf/metal/MetalCheckBoxUI.java: Likewise,
	* javax/swing/plaf/metal/MetalComboBoxButton.java: Likewise,
	* javax/swing/plaf/metal/MetalComboBoxIcon.java: Likewise,
	* javax/swing/plaf/metal/MetalFileChooserUI.java: Likewise,
	* javax/swing/plaf/metal/MetalIconFactory.java: Likewise,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java: Likewise,
	* javax/swing/plaf/metal/MetalLookAndFeel.java: Likewise,
	* javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java: Likewise,
	* javax/swing/plaf/metal/MetalRootPaneUI.java: Likewise,
	* javax/swing/plaf/metal/MetalScrollBarUI.java: Likewise,
	* javax/swing/plaf/metal/MetalSeparatorUI.java: Likewise,
	* javax/swing/plaf/metal/MetalSliderUI.java: Likewise,
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java: Likewise,
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java: Likewise,
	* javax/swing/plaf/metal/MetalToolTipUI.java: Likewise,
	* javax/swing/plaf/metal/MetalUtils.java: Likewise.

2006-05-11  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java: Made field 'textComponent'
	package-private, added field 'active'.
	(PropertyChangeHandler.propertyChange): Added variable 'name', added
	cases to update field 'active'.
	(mouseDragged): Added documentation, added if-clause to update
	selection or caret position.
	(mouseClicked): Added early return when text component is disabled.
	(focusGained): Moved statements into an if-clause.
	(focusLost): Added subexpression to if-clause.
	(install): Preset value of 'active'.
	(paint): Added subexpression to if-clause.
	(isVisible): Extended return expression.
	* javax/swing/text/JTextComponent.java:
	(copy): Copy only if component is enabled.
	(cut): Cut only if component is enabled and editable.
	(paste): Dito.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/multi/MultiComboBoxUI.java: Minor formatting change,
	* javax/swing/plaf/multi/MultiFileChooserUI.java: Likewise,
	* javax/swing/plaf/multi/MultiListUI.java: Likewise,
	* javax/swing/plaf/multi/MultiLookAndFeel.java: Likewise,
	* javax/swing/plaf/multi/MultiOptionPaneUI.java: Likewise,
	* javax/swing/plaf/multi/MultiSplitPaneUI.java: Likewise,
	* javax/swing/plaf/multi/MultiTabbedPaneUI.java: Likewise.	

2006-05-11  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/font/GNUGlyphVector.java
	(GNUGlyphVector): Don't apply the font renderer context's
	transform.
  
2006-05-11  Mark Wielaard  <mark@klomp.org>

	* java/util/logging/Logger.java (global): Initialize inside static
	PrivilegedAction.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/JFrame.java
	(EXIT_ON_CLOSE): Added note to API docs,
	(close_action): Renamed closeAction,
	(JFrame()): Change title to "",
	(JFrame(String)): Added API docs,
	(getAccessibleContext): Likewise,
	(getDefaultCloseOperation): Updated for renamed field, added API docs,
	(processWindowEvent): Updated for renamed field,
	(setDefaultCloseOperation): Likewise, and updated API docs.
  
2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/JFrame.java
	(paramString): Reimplemented,
	* javax/swing/SwingUtilities.java
	(convertWindowConstantToString): New method.
  
2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/WindowConstants.java: Updated API docs.
  
2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/plaf/basic/BasicToggleButtonUI.java: Updated API docs,
	(createUI): Removed 'final' qualifier for parameter,
	(paint): Reformatted.
  
2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/plaf/basic/BasicCheckBoxUI.java: Added API docs plus,
	(createUI): Removed 'final' qualifier on method argument.
  
2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/plaf/basic/BasicCheckBoxUI.java
	(getDefaultIcon): Removed this redundant method.

2006-05-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Pass component size to paintFocus().

2006-05-11  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Component.java:
	(dispatchEventImpl): Added comment.
  
  2006-05-11  Mark Wielaard  <mark@klomp.org>
  
	* tools/gnu/classpath/tools/appletviewer/Main.java (main): Cast
	Option constructor null argument to String.
  
2006-05-11  Mark Wielaard  <mark@klomp.org>

	* java/awt/geom/GeneralPath.java (WIND_EVEN_ODD, WIND_NON_ZERO):
	Fully qualify PathIterator constants

2006-05-11  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/Component.java:
	(dispatchEventImpl): Added subexpression to if-clause.	

2006-05-11  Mark Wielaard  <mark@klomp.org>

	* java/util/Collections.java (UnmodifiableMapEntry): Qualify
	Map.Entry.

2006-05-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/TransferHandler.java: Marked stub methods.

2006-05-10  Roman Kennke <kennke@aicas.com>

	PR classpath/27481
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Set background of content pane to null, if
	no custom color has been installed by the application yet.

2006-05-10  Roman Kennke <kennke@aicas.com>

	PR classpath/27481
	* javax/swing/JRootPane.java
	(createContentPane): Don't set background to null.

2006-05-10  Sven de Marothy <sven@physto.se>

	* java/awt/print/PrinterJob.java:
	(lookupPrintServices): Un-comment-out.

2006-05-11  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/getopt/OptionGroup.java
	(FILLER): New constant.
	(formatText(PrintStream,String,int)): New method.
	(formatText(PrintStream,String,int,Locale)): Likewise.
	(printHelp): Use formatText method.
	* tools/gnu/classpath/tools/getopt/Parser.java
	(MAX_LINE_LENGTH): New constant.
	(formatText(PrintStream,String)): New method.
	(formatText(PrintStream,String,Locale)): Likewise.
	(printHelp): New method.
	(printHelp(PrintStream)): Increased visibility to protected.
	Use formatText method.

2006-05-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(installDefaults): Use getPropertyPrefix() to allow subclasses to 
	modify the lookup key.

2006-05-10  Lillian Angel  <langel@redhat.com>

	* java/util/SimpleTimeZone.java: Reverted patch.
	(SimpleTimeZone): Throw exception if startMonth == 
	endMonth.
	(SimpleTimeZone): Likewise.
	(checkRule): Rewritten to properly check all values (more 
	efficently).
	This code is now more stable, at least less buggy than before. 
	Fixed API documentation.
	(setStartRule): Moved checkRule call to end.
	(setStartRule): Likewise.
	(setEndRule): Likewise.
	(setEndRule): Likewise.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponent.java:
	Some API comment fixlets.
	* gnu/java/awt/peer/swing/SwingComponentPeer.java:
	(createImage): Create a BufferedImage, not a Toolkit image.
	(paint): Removed bogus API comment.
	(prepareImage): Added checks to avoid NPE.
	* gnu/java/awt/peer/swing/SwingContainerPeer.java:
	(getInsets): Added check to avoid NPE.
	(handleMouseEvent): Added check to avoid NPE.
	* gnu/java/awt/peer/swing/SwingFramePeer.java:
	Some API comment fixlets.
	* gnu/java/awt/peer/swing/SwingMenuBarPeer.java:
	Some API comment fixlets.
	* gnu/java/awt/peer/swing/SwingTextFieldPeer.java:
	Changed start_pos name to startPos.
	* gnu/java/awt/peer/swing/SwingWindowPeer.java:
	Some API comment fixlets.

2006-05-10  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/BasicStroke.java
	(equals): Fixed typo in HTML tag for API doc comment.

2006-05-10  Gary Benson  <gbenson@redhat.com>

	* java/lang/ThreadGroup.java (parent): Make package-private.
	* java/lang/SecurityManager.java (checkAccess(Thread)):
	Reference ThreadGroup.parent directly to avoid extra checks.
	* java/lang/SecurityManager.java (checkAccess(ThreadGroup)):
	Likewise.

2006-05-10  Roman Kennke <kennke@aicas.com>

	Reported by Ingo Proetel (proetel@aicas.com)
	* java/awt/EventDispatchThread.java
	(DEFAULT_PRIORITY): New constant field.
	(EventDispatchThread()): Added gnu.awt.dispatchthread.priority
	system property for adjusting the priority of the event
	dispatch thread.

2006-05-10  Roman Kennke <kennke@aicas.com>

	Reported by Ingo Proetel (proetel@aicas.com)
	* java/awt/image/ColorModel.java
	(S_RGB_MODEL): New constant field.
	(getRGBDefault): Return constant SRGBColorModel.
	(SRGBColorModel): Specialized color model for sRGB.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* java/awt/ColorPaintContext.java
	(getRaster): Create Raster with (0,0) as source location.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AlphaCompositeContext.java
	(compose): Don't premultiply alpha to alpha itself.

2006-05-10  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(drawImage(Image,AffineTransform,ImageObserver)): Implemented.
	(drawImageImpl(Image,AffineTransform,ImageObserver,Rectangle)):
	New method.
	(drawImage(BufferedImage,BufferedImageOp,int,int)): Implemented.
	(drawRenderedImage(RenderedImage,AffineTransform)): Implemented.
	(drawRenderedImageImpl(RenderedImage,AffineTransform,Rectangle)):
	New method.
	(drawRenderableImage(RenderableImage,AffineTransform)): Implemented.
	(drawRenderableImageImpl(RenderableImage,AffineTransform,Rectangle)):
	New method.
	(scale): Inverse transform by doing 1/scale instead of -scale.
	(drawImage(Image,int,int,ImageObserver)): Implemented.
	(drawImage(Image,int,int,int,int,ImageObserver)): Implemented.
	(drawImage(Image,int,int,Color,ImageObserver)): Implemented.
	(drawImage(Image,int,int,int,int,Color,ImageObserver)): Implemented.
	(drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver)):
	Implemented.
	(drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver)):
	Implemented.
	(fillScanline): Work on translated destination raster for
	correct compositin.
	(init): Fetch the clip after the destination raster is initialized.
	* gnu/java/awt/java2d/ImagePaint.java: New file.
	* gnu/java/awt/java2d/RasterGraphics
	(drawImage): Removed.

2006-05-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	Clarify option descriptions.
	* tools/gnu/classpath/tools/appletviewer/Main.java: Use all
	uppercase for metasyntactic variables.

2006-05-09  Robert Schuster  <robertschuster@fsfe.org>

	PR classpath/24216
	* javax/swing/text/AbstractDocument.java:
	(insertString): Added more documentation, added argument check.
	(remove): Added more documentation.
	(removeImpl): Added argument check.
	(replace): Added more documentation, added argument check.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/.cvsignore: Added appletviewer.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/Parser.java (printHelp): Skip
	empty groups.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/OptionGroup.java (printHelp): 
	Special case for '-J'.  Use space instead of '='.
	* tools/gnu/classpath/tools/getopt/Parser.java (setHeader): Added
	comment.

2006-05-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Add --disable-plugin and --with-vm options.  Check
	for plugin support headers and libraries.
	* native/Makefile.am: Recurse into plugin directory.
	* native/plugin/.cvsignore: New file.
	* native/plugin/Makefile.am: New file.
	* native/plugin/gcjwebplugin.cc: New file.
	* tools/Makefile.am: Install appletviewer wrapper script.
	* tools/appletviewer.in: Replace VM location heuristic with
	VM_BINARY configure substitution.

2006-05-09  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/OptionGroup.java (printHelp): Added
	an initial pass to look for short options.  Added 'longOnly' option.
	* tools/gnu/classpath/tools/appletviewer/Main.java (main): Removed -J
	option.
	* tools/gnu/classpath/tools/getopt/Parser.java (parsed): Put stadnard
	options into final group.  Added -J.
	(add): Insert new groups before final group.
	(printHelp): Updated.

2006-05-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27518
	* tools/gnu/classpath/tools/giop/GRMIC.java (main),
	tools/gnu/classpath/tools/rmi/RMIC.java (main):
	Expect -classpath option.
	* tools/gnu/classpath/tools/rmi/RMIC.txt,
	tools/gnu/classpath/tools/giop/GRMIC.txt: Documenting
	-classpath option.
	tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java
	(classLoader): New field. (loadClass, setClassPath):
	New methods.

2006-05-09  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/RasterGraphics.java
	(RasterGraphics): Call init() and super().
	(drawImage): Temporary drawImage impl until AbstractGraphics2D has
	this.

2006-05-09  Gary Benson  <gbenson@redhat.com>

	* java/lang/Thread.java (Thread): Always perform threadgroup
	access checks on thread creation.

2006-05-09  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java: Permit comments and PIs in doctype nodes to
	  be preserved during cloneNode.

2006-05-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27517
	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java (compile): 
	Do not demand all thrown exceptions to be an instance of RemoteException.

2006-05-09  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	Use hash-style comments.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties:
	Likewise.

2006-05-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JLabel.java
	(paramString): Added more attribute details,
	* javax/swing/SwingUtilities.java
	(convertHorizontalAlignmentCodeToString): New method,
	(convertVerticalAlignmentCodeToString): New method.

2006-05-08  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/jar/Updater.java (run): Updated.
	* tools/gnu/classpath/tools/jar/Main.java: Use javadoc for fields.
	* tools/gnu/classpath/tools/jar/Lister.java (listJar): Use
	ZipInputStream.
	(run): Updated.
	* tools/gnu/classpath/tools/jar/Extractor.java (run): Use System.err
	for verbose.
	(run): Use ZipInputStream.
	(initSet): New method.
	(shouldExtract): Likewise.
	(run): Use new methods.
	* tools/gnu/classpath/tools/jar/Creator.java
	(writeCommandLineEntries): New overload.
	(writeFile): Use System.err for verbose.
	(writeManifest): New method.
	(writtenItems): New field.
	(writeFile): Update it.
	(writeCommandLineEntries): Return void.  Call writeManifest.
	(addEntries): Don't add extra '/'.
	* NEWS: Mention jar.

2006-05-08  Lillian Angel  <langel@redhat.com>

	* gnu/java/net/IndexListParser.java: New class.
	* java/net/URLClassLoader.java
	(JarURLLoader): Fixed code to use new class.

2006-05-08  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(AccessibleJComboBox.getAccessibleChildrenCount): Implemented.
	(AccessibleJComboBox.getAccessibleChild): Implemented.
	(AccessibleJComboBox.getAccessibleSelection()): Implemented.
	(AccessibleJComboBox.getAccessibleSelection(int)): Implemented.
	(AccessibleJComboBox.isAccessibleChildSelected): Implemented.
	(AccessibleJComboBox.getAccessibleAction): Implemented.
	(AccessibleJComboBox.getAccessibleActionDescription): Implemented.
	(AccessibleJComboBox.getAccessibleActionCount): Implemented.
	(AccessibleJComboBox.doAccessibleAction): Implemented.
	(AccessibleJComboBox.getAccessibleSelectionCount): Implemented.
	(AccessibleJComboBox.addAccessibleSelection): Implemented.
	(AccessibleJComboBox.removeAccessibleSelection): Implemented.
	(AccessibleJComboBox.clearAccessibleSelection): Implemented.
	(AccessibleJComboBox.selectAllAccessibleSelection): Implemented.

2006-05-08  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* configure.ac: Add support for building appletviewer.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle.properties:
	New file.
	* resource/gnu/classpath/tools/appletviewer/MessagesBundle_de.properties:
	New file.
	* tools/appletviewer.c: New file.
	* tools/appletviewer.in: New file.
	* tools/gnu/classpath/tools/appletviewer/AppletClassLoader.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/AppletSecurityManager.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/AppletTag.java: New file.
	* tools/gnu/classpath/tools/appletviewer/AppletWarning.java: New
	file.
	* tools/gnu/classpath/tools/appletviewer/CommonAppletContext.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/ConsoleDialog.java: New
	file.
	* tools/gnu/classpath/tools/appletviewer/ErrorApplet.java: New
	file.
	* tools/gnu/classpath/tools/appletviewer/Main.java: New file.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletContext.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletViewer.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletContext.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletViewer.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java:
	New file.
	* tools/gnu/classpath/tools/appletviewer/TagParser.java: New
	file.

2006-05-08  Tom Tromey  <tromey@redhat.com>

	* tools/gnu/classpath/tools/getopt/ClasspathToolParser.java: New file.
	* tools/gnu/classpath/tools/jar/Action.java: New file.
	* tools/gnu/classpath/tools/jar/Creator.java: New file.
	* tools/gnu/classpath/tools/jar/Entry.java: New file.
	* tools/gnu/classpath/tools/jar/Extractor.java: New file.
	* tools/gnu/classpath/tools/jar/Lister.java: New file.
	* tools/gnu/classpath/tools/jar/Main.java: New file.
	* tools/gnu/classpath/tools/jar/Updater.java: New file.
	* tools/gnu/classpath/tools/getopt/Option.java: New file.
	* tools/gnu/classpath/tools/getopt/OptionException.java: New file.
	* tools/gnu/classpath/tools/getopt/OptionGroup.java: New file.
	* tools/gnu/classpath/tools/getopt/Parser.java: New file.
	* tools/gnu/classpath/tools/getopt/FileArgumentCallback.java: New
	file.

2006-05-08  Lillian Angel  <langel@redhat.com>

	* java/net/URLClassLoader.java
	(JarURLLoader): Added check to make sure the INDEX.LIST file
	exists.

2006-05-08  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(fill): Removed commented out code.
	(fillShape): Also determine the outline of the clip and feed
	it into the rendering method. Use new helper method for
	converting the shapes into lists of segments.
	(getUserBounds): Removed obsolete method.
	(rawFillShape): Respect the clip when rendering shapes.
	(fillShapeAntialias): Adjusted signature for new clipped rendering.
	However, the implementation can't clip still.
	(getSegments): New helper method for converting a shape into
	a list of segments.
	(clipShape): Removed obsolete method.
	* gnu/java/awt/java2d/PolyEdge.java
	(isClip): New field.
	(PolyEdge): Added isField argument to constructor.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27481
	* javax/swing/JRootPane.java
	(createContentPane): Set background of the content pane to null,
	so that the content pane inherits its background from the
	root pane.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27480
	* javax/swing/ButtonGroup.java
	(add): Check if new button is selected and if so, deselect other
	buttons in the group.

2006-05-08  Lillian Angel  <langel@redhat.com>

	PR 27444
	* java/net/URLClassLoader.java
	(JarURLLoader): Added code to go through 
	META-INF/INDEX.LIST file to load all jars listed.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27461
	* javax/swing/ImageIcon.java
	(ImageIcon(URL)): Set description to URL.toString().

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27482
	* javax/swing/JTable.java
	(IconCellRenderer.getTableCellRendererComponent): Set icon to
	null when cell value is null.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27484
	* javax/swing/DefaultDesktopManager.java
	(closeFrame): Don't perform default close action on the frame
	to prevent endless loop.

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27485
	* javax/swing/table/DefaultTableModel.java
	(addExtraRows): New helper method.
	(checkSize): New helper method.
	(setRowCount): Use addExtraRows helper method.
	(addColumn): Use addExtraRows helper method.
	(getColumnName): Check and adjust size if necessary using
	checkSize().

2006-05-08  Roman Kennke <kennke@aicas.com>

	PR 27486
	* javax/swing/JTable.java
	(setValueAt): Allow setting values even when table is editable.

2006-05-08  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (compileFormat): Added missing
	space to error message.

2006-05-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractButton.java: Fixed comment typos.

2006-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/27435:
	* java/util/zip/DeflaterEngine.java:
	(deflateFast(boolean,boolean)): Empty buffer when full.
	
2006-05-07  Sven de Marothy <sven@physto.se>

	Fixed PR27343
	* java/util/Calendar.java (setTimeZone): Force recalculation.
	
2006-05-07  Sven de Marothy <sven@physto.se>

	Fixed PR27463
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane.java
	(propertyChange): Handle FRAME_ICON_PROPERTY property.
	
2006-05-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	PR classpath/27311:
	* gnu/java/text/StringFormatBuffer.java:
	(toString()): Implemented so we can see the contents.
	* java/text/DecimalFormat.java:
	(formatInternal(double,StringFormatBuffer,FieldPosition)):
	Don't calculate the exponent when the number is 0 or less.
	Also, use log10 instead of log now it's available.
	
2006-05-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/keyring/PrimitiveEntry.java (PrimitiveEntry):
	Use instance's field creationDate not the constructor's argument.
	* gnu/javax/crypto/keyring/PasswordEncryptedEntry.java:
	Removed unused imports.
	Sorted imports.
	(log): New field.
	(decrypt): Added trace/debug/timing statements.
	(encrypt): Likewise.
	Use PRNG instead of instantiating every time a new SecureRandom.
	* gnu/javax/crypto/keyring/PasswordAuthenticatedEntry.java:
	Removed unused imports.
	Sorted imports.
	(log): New field.
	(verify): Added trace/debug/timing statements.
	(authenticate): Likewise.
	Use PRNG instead of instantiating every time a new SecureRandom.

2006-05-07  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/classpath/debug/Simple1LineFormatter.java (DAT_FORMAT): Removed.
	(THREAD_FORMAT): Likewise.
	(dateFormat): Added field.
	(threadFormat): Added field.
	(format): Initialize instance fields if null.
	Use StringBuilder instead of StringBuffer.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/RasterGraphics.java: New file.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(fillShape): Determine user space bounds of shape and feed them
	into the actual rendering pipeline.
	(rawSetPixel): Made non-abstract for now. Maybe remove later.
	(rawSetForeground): Likewise.
	(getDestinationColorModel): Removed.
	(getDeviceBounds): Made non-abstract. Provide useful default impl.
	(rawFillShape): Handle paint context.
	(fillScanline): Implement painting and compositing.
	(fillShapeAntialias): Handle paint context.
	(fillScanlineAA): Implemented preliminary antialiasing based on
	composite context. Not working yet.
	(fillScanlineAlpha): Removed.
	(init): Fetch destination raster.
	(getDestinationRaster): New abstract method.
	(updateRaster): New backend method.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AlphaCompositeContext.java
	(compose): Fixed loops, conditions and logic to make compositing
	work correctly.

2006-05-07  Roman Kennke <kennke@aicas.com>

	* java/awt/ColorPaintContext.java
	(ColorPaintContext): Fixed filling of the raster.

2006-05-07  Sven de Marothy <sven@physto.se>

	Fixed PR27455
	* gnu/java/awt/peer/GLightweightPeer.java (mouseEntered): Remove.
	* java/awt/Component.java (processMouseEvent): 
	Do lightweight cursor handling.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(endResizing,mouseMoved): Save and reset original cursor, not the 
	default one.

2006-05-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27298
	* javax/swing/plaf/basic/BasicTreeUI.java (NodeDimensionsHandler.
	getNodeDimensions): Mind the size of the node icon. (getRowX):
	use totalChildIndent. (TreeExpansionHandler): Set maximal height
	to zero on events. (nullIcon): New field. (getCurrentControlIcon):
	Return nullIcon if there is no other icon. (getNodeIcon): New method.
	(installDefaults): assign totalChildIndent. (installUI): Call
	updateExpandedDescendants. (paintHorizontalPartOfLeg): Rewritten.
	(paintRow): Rewritten. (updateRenderer): Do not set the renderer for
	the tree.

2006-05-06  Sven de Marothy <sven@physto.se>

	Fixed PR27454
	* gnu/java/awt/peer/gtk/GtkImage: (drawPixels,drawPixelsScaled): 
	Check for zero image sizes.
	
2006-05-06  Olivier Jolly  <olivier.jolly@pcedev.com>

	Fixed PR27362
	* java/util/Calendar.java (clear(int)): Forced internal state
	completion before performing a field clearing.

2006-05-06  Olivier Jolly  <olivier.jolly@pcedev.com>

	* java/util/Collections.java(UnmodifiableMap.UnmodifiableEntrySet.
	UnmodifiableMapEntry): New Map.Entry implementation which is immutable.
	(UnmodifiableMap.UnmodifiableEntrySet.iterator,
	UnmodifiableMap.UnmodifiableEntrySet.toArray,
	UnmodifiableMap.UnmodifiableEntrySet.toArray(Object[])): Used
	UnmodifiableMapEntry as part of their return value. 

2006-05-06  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/keytool.sh.in: Removed (renamed to keytool.in).
	* tools/jarsigner.in: Removed (renamed to jarsigner.in).
	* tools/Makefile.am: Include jarsigner and keytool classes in tools.zip.
	Generate jarsigner and keytool scripts.
	* tools/keytool.in: New file (renamed from keytool.sh.in).
	* tools/jarsigner.in: New file (renamed from jarsigner.sh.in).
	* tools/.cvsignore: Replaced *.sh with *
	* configure.ac: Replaced tools/*.sh with tools/*.

2006-05-05  Roman Kennke <kennke@aicas.com>

	* java/awt/image/ColorModel.java
	(getNormalizedComponents): Implemented.

2006-05-05  Roman Kennke <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicRadioButtonUI.java
	(paint): Query the button model for it's state, not the
	button itself.

2006-05-05  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(tableChanged): Sync selection model with table model changes.

2006-05-05  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (paint): Return early
	if there are no visible nodes to paint.

2006-05-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JOptionPane.java: API doc updates.

2006-05-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToolBar.java
	(paramString): Reimplemented.

2006-05-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JScrollBar.java
	(paramString): Reimplemented.

2006-05-04  Tom Tromey  <tromey@redhat.com>

	PR classpath/27375:
	* java/util/zip/ZipFile.java (entries): Now a LinkedHashMap.
	(readEntries): Updated.
	(getEntries): Likewise.
	(getEntry): Likewise.
	(getInputStream): Likewise.

2006-05-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/javax/imageio/jpeg/DCT.java,
	gnu/javax/imageio/jpeg/HuffmanTable.java,
	gnu/javax/imageio/jpeg/JPEGComponent.java,
	gnu/javax/imageio/jpeg/JPEGDecoder.java,
	gnu/javax/imageio/jpeg/JPEGException.java,
	gnu/javax/imageio/jpeg/JPEGFrame.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/JPEGMarkerFoundException.java,
	gnu/javax/imageio/jpeg/JPEGScan.java,
	gnu/javax/imageio/jpeg/YCbCr_ColorSpace.java,
	gnu/javax/imageio/jpeg/ZigZag.java: New files.

2006-05-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/JLabel.java
	(JLabel): Pass in an empty string for the text parameter.
	(JLabel): Likewise.
	(JLabel): Likewise.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonListener.java
	(mouseEntered): Fixed conditions for changing states.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JOptionPane.java
	(AccessibleJOptionPane.getAccessibleRole): Implemented method.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JLabel.java
	(AccessibleJLabel.getSelectedText): Return null instead of "".
	(AccessibleJLabel.getSelectionStart): Added comment why
	return -1 is correct here.
	(AccessibleJLabel.getSelectionEnd): Added comment why
	return -1 is correct here.
	(AccessibleJLabel.getCharacterAttribute): Added comment about what
	to do here.
	(AccessibleJLabel.getCharCount): Added comment about what
	to do here.
	(AccessibleJLabel.getCharacterBounds): Tagged as not implemented.
	(AccessibleJLabel.getIndexAtPoint): Tagged as not implemented.
	(paramString): Return super.paramString() here, this provides
	a more meaningful output.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paint): Added null check to avoid NPE when clip == null.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(addImpl): New method. Installs an OverlayLayout if no
	other layout has been installed before.
	(setLayout): New method. Detect if a client app installs a custom
	layout.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/table/DefaultTableCellRenderer.java
	(noFocusBorder): Fixed width of empty border to 1.
	(getTableCellRendererComponent): Don't change the colors for
	focuses cells. Fixed border for focused cells.

2006-05-04  Roman Kennke <kennke@aicas.com>

	* javax/swing/JTable.java
	(moveToCellBeingEdited): Adjust bounding box of editing component
	to exactly cover the grid.
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Paint grid to the bottom and right of the cells instead
	of left and top. Adjust bounding box of cells accordingly.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Fixed color of JTable selection border.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Fixed color of JTable selection border.

2006-05-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/ExportCmd.java (setup):
	Use _alias instead of alias.

2006-05-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* configure.ac:
	Set version to 0.92-pre.
	* NEWS:
	Add space for 0.92 entries.

2006-05-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/Makefile.am:
	Added rules for gnu.java.net.local.LocalSocketImpl.h
	* include/java_lang_VMSystem.h:
	Regenerated correctly.
	
2006-05-03  Sven de Marothy <sven@physto.se>
       
	PR 24023, 24701
	* java/awt/Image.java:
	(getScaledInstance): Default to AreaAveraging for "smooth", 
	don't thrown an error on illegal flag values.
	* java/awt/image/AreaAveragingScaleFilter.java: Implement.

2006-05-03  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(adjustAllocation): Added if-block to return null when shape argument
	is null.
	* javax/swing/text/PlainView.java:
	(updateDamage): Added if-block to return early if a is null.

2006-05-03  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(changeUpdate): Added note.
	(removeUpdate): Dito.
	(insertUpdate): Dito.
	(damageRange): Added if-block to return early.
	(modelToView): Added check of getVisibleEditorRect's return value.
	(getVisibleEditorRect): Return null instead of empty rectangle.
	* javax/swing/text/DefaultCaret.java:
	(clearHighlight): Removed if-clause to create a highlight entry if it
	did not exist before.
	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.modelToView): Throw exception if allocation area is empty,
	removed 2nd part of if-expression.
	(WrappedLine.updateDamage): Added more documentation, added check
	whether allocation area rectangle is null.

2006-05-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JSplitPane.java (setDividerLocation(int)):
	Reset to preferred sizes if the argument is negative.

2006-05-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java: Added/updated API docs.

2006-05-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/JComponent.java
	(getRoot): New private function. Gets the root appropriate
	for painting. If an applet exists as a parent, then it is returned.
	(paintDoubleBuffered): Changed to use new function.
	* javax/swing/RepaintManager.java
	(getRoot): New private function. Gets the root appropriate
	for painting. If an applet exists as a parent, then it is returned.
	(getOffscreenBuffer): Changed to use new function.
	* javax/swing/SwingUtilties.java
	(getRoot): Reverted last patch to return Window, even if 
	an Applet exists.

2006-05-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/jce/keyring/GnuKeyring.java: Re-implemented using
	a pair of one public keyring and one private keyring.
	* gnu/javax/crypto/keyring/GnuPublicKeyring.java (log): New field.
	(containsCertificate): Added logging.
	(getCertificate): Likewise.
	(putCertificate): Likewsie.
	(load): Likewise.
	(store): Likewise.
	* gnu/javax/crypto/keyring/GnuPrivateKeyring.java (log): New field.
	(containsPrivateKey): Added logging.
	(getPrivateKey): Likewise.
	(putPrivateKey): Likewise.
	(containsPublicKey): Likewise.
	(getPublicKey): Likewise.
	(putPublicKey): Likewise.
	(containsCertPath): Likewise.
	(getCertPath): Likewise.
	(putCertPath): Likewise.
	(load): Likewise.
	(store): Likewise.

2006-05-03  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AlphaCompositeContext.java: New class.
	* java/awt/AlphaComposite.java
	(createContext): Implemented.

2006-05-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (drawRaster):
	Set the current color again after drawing the raster.

2006-05-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/text/WrappedPlainView.java (WrappedLine.modelToView):
	Do not check pos < currLineEnd if currLineStart == currLineEnd.

2006-05-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/keytool/Command.java (getCallbackHandler):
	Assign returned value to field handler.
	* tools/gnu/classpath/tools/jarsigner/Main.java (getCallbackHandler):
	Likewise.

2006-05-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/ScrollPaneLayout.java (layoutContainer):
	Return without action if there is no view in the viewport.
	* javax/swing/text/WrappedPlainView.java 
	(WrappedLine.getPreferredSpan): If metrics == null, update
	metrics.
	* javax/swing/tree/DefaultTreeModel.java (constructors):
	Do not call setRoot, assign the root node directly.

2006-05-02  Lillian Angel  <langel@redhat.com>

	* javax/swing/SwingUtilities.java
	(getRoot): Should return the Applet if it exists.
	Only return the Window if an Applet has not been
	encountered.

2006-05-02  Lillian Angel  <langel@redhat.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(readAttributes): Reverted Audrius' last patch. There is 
	a slight difference in code between the NUMTOKEN and SLASH case. 

2006-05-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/JTextComponent.java:
	(setText): Throw InternalError from catch-block.
	* javax/swing/text/GapContent.java:
	(removed): Removed if-expression, changed '>' to '>='.

2006-05-02  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(AA_SAMPLING): New constant.
	(alpha): New field. Used in the antialiasing renderer.
	(edgeTable): New field. Used in the antialiasing renderer.
	(AbstractGraphics2D): Initialize rendering hints wrt
	anti-aliasing.
	(draw): Clip after stroking. Commented out clipping for now,
	it seems to be buggy.
	(fill): Commented out clipping for now, it seems to be buggy.
	(setComposite): Don't create composite context.
	(setPaint): Only change paint when parameter is not null.
	(translate): Call setClip() so subclasses can update their clip
	too.
	(clip): Call setClip() so subclasses can update their clip
	too.
	(drawGlyphVector): Added clipping, but left it commented out
	because it's buggy.
	(getClipBounds): Returns null when clip is null.
	(drawLine): Call rawDrawLine with translation applied.
	(filLRect): Call rawFillRect with translation applied.
	(fillShape): Added support for anti-aliasing.
	(rawSetForeground(int,int,int)): New method.
	(rawFillShape): A couple of painting fixes.
	(fillScanline): Implemented to call rawDrawLine.
	(fillShapeAntialias): New method. Implements an anti-aliasing
	shape filler.
	(fillScanlineAA): New method. Used for the anti-aliasing
	shape filler.
	(fillScanlineAlpha): New method. Used for the anti-aliasing
	shape filler.
	(init): Initialize clip with the device bounds.
	(updateOptimization): Fixed the optimization condition.

2006-05-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(GapContent): Restrict size argument by 2.
	(insertString): Changed expression from >= to >.
	(remove): Changed right side of expression to 'length - 1', changed
	exception message.
	(getChars): Throw exception if where below 0.
	(replace): Replaced call to setPositionsInRange() with
	resetMarksAtZero(), removed note.

2006-05-02  Roman Kennke <kennke@aicas.com>

	PR 27326
	* javax/swing/MenuSelectionManager.java
	(setSelectedPath): Rewritten.

2006-05-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(readAttributes): Merge case NUMTOKEN: and case SLASH:
	sections.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/.cvsignore: Added keytool.sh.
	* configure.ac: Added tools/keytool.sh to AC_CONFIG_FILES.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* doc/tools.texinfo: New file.
	* doc/Makefile.am: Generate tools documentation.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/keytool.sh.in: New file.
	* tools/gnu/classpath/tools/keytool/CertReqCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Command.java: Likewise.
	* tools/gnu/classpath/tools/keytool/DeleteCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ExportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/GenKeyCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/IdentityDBCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ImportCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyCloneCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/KeyPasswdCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/ListCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Main.java: Likewise.
	* tools/gnu/classpath/tools/keytool/Messages.java: Likewise.
	* tools/gnu/classpath/tools/keytool/PrintCertCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/SelfCertCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/StorePasswdCmd.java: Likewise.
	* tools/gnu/classpath/tools/keytool/keytool.txt: Likewise.
	* tools/gnu/classpath/tools/keytool/package.html: Likewise.
	* resource/gnu/classpath/tools/keytool/MessageBundle.properties: Likewise.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Re-arranged to
	resemble more closely man-page style text.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java:
	Mark (Eclipse) strings that need not be externalised.
	(writeSF): Likewise.
	(writeDSA): Likewise.
	Use package-private Messages class to provide i18n-ready strings.
	(startSigning):
	Use package-private Messages class to provide i18n-ready strings.
	(updateEntry): Likewise.
	Mark (Eclipse) strings that need not be externalised.
	(finishSigning): Likewise.
	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Mark (Eclipse) strings that need not be externalised.
	(main): Do not use constant strings as class name.
	Use package-private Messages class to provide i18n-ready strings.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	(processArgs): Do not use constant strings as class name.
	Mark (Eclipse) strings that need not be externalised.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	(start): Do not use constant strings as class name.
	(teardown): Likewise.
	Use ProviderUtil.
	(setupCommonParams): Do not use constant strings as class name.
	Use package-private Messages class to provide i18n-ready strings.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	(installNewProvider): Do not use constant strings as class name.
	Use ProviderUtil.
	(setupSigningParams): Do not use constant strings as class name.
	Use package-private Messages class to provide i18n-ready strings.
	Mark (Eclipse) strings that need not be externalised.
	(getCallbackHandler): Use CallbackUtil.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java (start):
	Use package-private Messages class to provide i18n-ready strings.
	Reduced logging level so INFO becomes FINER, and WARNING becomes FINE.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java (start): Likewise.
	(verifySF): Likewise.
	(verifySFEntries): Do not use constant strings as class name.
	Use Boolean.valueOf instead of new Boolean().
	(verifySFEntry): Mark (Eclipse) strings that need not be externalised.
	* resource/gnu/classpath/tools/jarsigner/MessageBundle.properties:
	New file.
	* tools/gnu/classpath/tools/jarsigner/package.html: Likewise.
	* tools/gnu/classpath/tools/jarsigner/Messages.java: Likewise.

2006-05-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/common/CallbackUtil.java: New file.
	* tools/gnu/classpath/tools/common/ProviderUtil.java: Likewise.
	* tools/gnu/classpath/tools/common/SecurityProviderInfo.java: Likewise.

2006-05-01  Tom Tromey  <tromey@redhat.com>

	* java/nio/ByteBufferImpl.java (compact): Don't reset position
	in empty case.
	* gnu/java/nio/ChannelReader.java (read): Synchronize.
	(close): Synchronize.
	* java/nio/ShortBufferImpl.java (compact): Rewrote.
	* java/nio/LongBufferImpl.java (compact): Rewrote.
	* java/nio/IntBufferImpl.java (compact): Rewrote.
	* java/nio/FloatBufferImpl.java (compact): Rewrote.
	* java/nio/DoubleBufferImpl.java (compact): Rewrote.
	* java/nio/CharBufferImpl.java (compact): Rewrote.
	* gnu/java/nio/ChannelWriter.java: New file.
	* java/nio/channels/Channels.java (newWriter): Implemented.

2006-05-01  Lillian Angel  <langel@redhat.com>

	* java/util/SimpleTimeZone.java
	(SimpleTimeZone): Do not throw exception if startMonth == endMonth.
	(SimpleTimeZone): Likewise.
	(checkRule): Rewritten to properly check all values (more efficently). 
	This code is now more stable, at least less buggy than before. Fixed
	API documentation.
	(setStartRule): Moved checkRule call to end.
	(setStartRule): Likewise.
	(setEndRule): Likewise.
	(setEndRule): Likewise.

2006-05-01  Tom Tromey  <tromey@redhat.com>

	* lib/.cvsignore: Added classes.2.

2006-05-01  Tom Tromey  <tromey@redhat.com>

	* java/util/jar/JarFile.java (provider): Now package-private.
	* java/lang/Enum.java (compareTo): Javadoc fix.
	* java/lang/Boolean.java (compareTo): Javadoc fix.

2006-05-01  Lillian Angel  <langel@redhat.com>

	* gnu/javax/swing/text/html/parser/support/Parser.java
	(readAttributes): Formatted function. Added handling for 
	SLASH token. The value of an attribute may start with a slash
	(i.e. a path). I added handling similar to to the NUMTOKEN code.
	We should not be skipping over these type of attributes.

2006-04-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h,
	* include/gnu_java_awt_peer_gtk_GdkRobotPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h,
	* include/gnu_java_awt_peer_gtk_GtkButtonPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h,
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkImage.h,
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkListPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPanelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkSelection.h,
	* include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h,
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,
	* include/gnu_java_awt_peer_qt_MainQtThread.h,
	* include/gnu_java_awt_peer_qt_QMatrix.h,
	* include/gnu_java_awt_peer_qt_QPainterPath.h,
	* include/gnu_java_awt_peer_qt_QPen.h,
	* include/gnu_java_awt_peer_qt_QtAudioClip.h,
	* include/gnu_java_awt_peer_qt_QtButtonPeer.h,
	* include/gnu_java_awt_peer_qt_QtCanvasPeer.h,
	* include/gnu_java_awt_peer_qt_QtCheckboxPeer.h,
	* include/gnu_java_awt_peer_qt_QtChoicePeer.h,
	* include/gnu_java_awt_peer_qt_QtComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtContainerPeer.h,
	* include/gnu_java_awt_peer_qt_QtDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_qt_QtFileDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtFontMetrics.h,
	* include/gnu_java_awt_peer_qt_QtFontPeer.h,
	* include/gnu_java_awt_peer_qt_QtFramePeer.h,
	* include/gnu_java_awt_peer_qt_QtGraphics.h,
	* include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_qt_QtImage.h,
	* include/gnu_java_awt_peer_qt_QtLabelPeer.h,
	* include/gnu_java_awt_peer_qt_QtListPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuBarPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuItemPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtPanelPeer.h,
	* include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtScreenDevice.h,
	* include/gnu_java_awt_peer_qt_QtScrollPanePeer.h,
	* include/gnu_java_awt_peer_qt_QtScrollbarPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextAreaPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextFieldPeer.h,
	* include/gnu_java_awt_peer_qt_QtToolkit.h,
	* include/gnu_java_awt_peer_qt_QtVolatileImage.h,
	* include/gnu_java_awt_peer_qt_QtWindowPeer.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h,
	* include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h,
	* include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h,
	* include/gnu_xml_libxmlj_dom_GnomeAttr.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocument.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentType.h,
	* include/gnu_xml_libxmlj_dom_GnomeElement.h,
	* include/gnu_xml_libxmlj_dom_GnomeEntity.h,
	* include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h,
	* include/gnu_xml_libxmlj_dom_GnomeNode.h,
	* include/gnu_xml_libxmlj_dom_GnomeNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeNotation.h,
	* include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h,
	* include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathResult.h,
	* include/gnu_xml_libxmlj_sax_GnomeLocator.h,
	* include/gnu_xml_libxmlj_sax_GnomeXMLReader.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformer.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h,
	* include/java_lang_VMProcess.h:
	Regenerated.
	* native/jni/java-lang/java_lang_VMProcess.c:
	Redirect when pipe_count is 2 not 3.	

2006-04-30  Sascha Brawer <sascha@brawer.ch>

	* gnu/java/awt/font/FontDelegate.java,
	* gnu/java/awt/font/FontFactory.java,
	* gnu/java/awt/font/GNUGlyphVector.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/Scaler.java,
	* gnu/java/awt/font/opentype/truetype/Fixed.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/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/font/opentype/truetype/doc-files/ZonePathIterator-1.dia,
	* gnu/java/awt/font/opentype/truetype/doc-files/ZonePathIterator-1.png:
	New files. Imported font framework from:
	http://www.brawer.ch/software/fonts/

2006-04-30  Roman Kennke <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(lastTabInRun): Fix calculation of the last tab in a run. This
	has caused painting problems sometimes, making the
	last tab painted incorrectly.

2006-04-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27297
	* javax/swing/JComponent.java (paintChildrenWithOverlap):
	Use for and not while to prevent the endless loop.

2006-04-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(paramString): Changed from public to protected.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/HelpPrinter.java (printHelp): New method.
	(printHelpAndExit): Re-factored to use the above method.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/jarsigner.sh.in: Changed license to GPL + Exception.
	Use -Xbootclasspath/p instead of -cp when invoking the main class.
	* tools/gnu/classpath/tools/jarsigner/Main.java:
	Changed license to GPL + Exception.
	(handler): New field.
	(getCallbackHandler): New method.
	(setupSigningParams): Use above method.
	* tools/gnu/classpath/tools/jarsigner/HashUtils.java:
	Changed license to GPL + Exception.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Updated copyright.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/security/auth/callback/ConsoleCallbackHandler.java
	(handleConfirmation): Use print instead of println.
	(handleConfirmation): When case is YES_NO_OPTION, print default option
	if one was set.
	(handleLanguage): Use print instead of println.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/x509/X500DistinguishedName.java: Updated copyright.
	(putComponent): Handle O and OU components.
	(getDer): Use correct (it2) iterator.
	(readAttributeValue): Read next character and break if end-of-stream.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/provider/Gnu.java (run):
	Add "RSA" as an alias to MD5withRSA.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java (encodePublicKey):
	Always encode a NULL as the value of an algorithm parameters field.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java (log): New field.
	(encodePrivateKey): Added trace/log statements.
	(decodePrivateKey): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java (log): New field.
	(setup): Added trace/log statements.
	(generate): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java (str): New field.
	(toString): New method.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java (DEBUG): New constant.
	(str): New field.
	(toString): New method.
	* gnu/java/security/key/rsa/GnuRSAKey.java (str): New field.
	(getEncoded): Use defaultFormat.
	(toString): New method.
	* gnu/java/security/key/dss/DSSKey.java (toString):
	Include defaultFormat in string.
	* gnu/java/security/jce/sig/RSAKeyFactory.java (engineGeneratePublic):
	Break if successfully decoded public key.
	(engineGeneratePrivate): Break if successfully decoded private key.

2006-04-29  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/Security.java <clinit>: Add our Callback provider.
	* resource/java/security/classpath.security: Likewise

2006-04-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 27296
	* javax/swing/ScrollPaneLayout.java (layoutContainer):
	Decide about scroll bars from the preferred view size, not
	the current size.
	* javax/swing/ViewportLayout.java (layoutContainer):
	Do not change returned preferred size. Do not treat JScrollPane
	specially.

2006-04-28  Sven de Marothy <sven@physto.se>

	* java/awt/image/ReplicateScaleFilter.java: Fix comment. 
	* javax/swing/ProgressMonitor.java (actionPerformed): 
	Avoid divide-by-zero.

2006-04-28  Sven de Marothy <sven@physto.se>

	* javax/swing/JSpinner.java: Fix default text justification.
	* javax/swing/plaf/basic/BasicSpinnerUI.java: Fix spinner layout size.

2006-04-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(getMinSelectionIndex): Return correct value, added API docs,
	(getMaxSelectionIndex): Added API docs.

2006-04-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(JList(Object[])): Pass new model directly to init(),
	(JList(Vector)): Likewise,
	(JList(ListModel)): Renamed argument and updated API docs,
	(init): Throw IllegalArgumentException for null argument,
	(setListData(Object[])): Delegate model creation,
	(setListData(Vector)): Likewise,
	(createListModel(Object[])): New private method,
	(createListModel(Vector)): New private method,
	(paramString): Implemented.

2006-04-28  Tom Tromey  <tromey@redhat.com>

	* java/lang/Class.java (SYNTHETIC, ENUM, ANNOTATION): New fields.
	(isEnum): Rewrote.
	(isSynthetic): Likewise.
	(isAnnotation): Likewise.
	* vm/reference/java/lang/VMClass.java (isSynthetic): Removed.
	(isAnnotation): Likewise.
	(isEnum): Likewise.

2006-04-28  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/View.java:
	(getNextVisualPositionFrom): Call modelToView and viewToModel on parent
	view.

2006-04-28  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/View.java:
	(getNextVisualPositionFrom): Rewritten.
	* javax/swing/text/CompositeView.java:
	(getNextEastWestVisualPositionFrom): Partly implemented.
	(getNextNorthSouthVisualPositionFrom): Partly implemented.

2006-04-28  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JList.java
	(setFixedCellHeight): Use correct property name for event.

2006-04-28  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getNextWord): Use codePointAt instead of charAt, added note, changed
	if-expression, added throwing of exception.
	(getPreviousWord): Use codePointAt instead of charAt.

2006-04-28  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/StringBuilder.java
	(ensureCapacity, getChars, append(StringBuffer),
	append(char[],int,int), delete, replace, insert(int,char[],int,int),
	insert(int,String), insert(int,char), trimToSize): Replaced
	System.arraycopy calls with VMSystem.arraycopy.

2006-04-27  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/renderable/RenderableImageProducer.java
	(requestTopDownLeftRightResend): Implemented.
	(run): Likewise.
	(startProduction): Add new consumer.

2006-04-27  Sven de Marothy  <sven@physto.se>

	* javax/swing/JLabel.java (setIcon): Repaint on setting the icon.

2006-04-27  Roman Kennke <kennke@aicas.com>

	* java/awt/LightweightDispatcher.java
	Dispatch events only to targets that have a mouselistener
	attached. Changed to also handle null targets.

2006-04-27  Roman Kennke <kennke@aicas.com>

	* NEWS: Added entries about accessibility support and L&F
	window decorations.

2006-04-27  Robert Schuster  <robertschuster@fsfe.org>
	
	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Introduced width variable, rewritten the check
	which ends the loop.
	(getBreakLocation): Call getTabbedTextOffset with rounding argument set
	to false.
	      
2006-04-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TreeDemo.java
	(createContent): Added root visibility and selection listener demos.
	* javax/swing/JTree.java (setRootVisible): If false, unselect
	the root node, if it is selected.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(TreeTraverseAction.actionPerformed): Do not select the root if it
	is not visible.
	* javax/swing/tree/DefaultTreeSelectionModel.java (removeSelectionPath,
	removeSelectionPaths): Reset lead to null if the current lead path is
	removed from selection.
	* javax/swing/tree/TreePath.java (getParentPath): Cache the parent path.
	* javax/swing/tree/FixedHeightLayoutCache.java (NodeRecord.getPath):
	Return the same path regardless is root visible or not. (update):
	Reduce the identation if the root is not visible.
	* javax/swing/tree/VariableHeightLayoutCache.java (NodeRecord.getPath):
	Return the same path regardless is root visible or not. (update):
	Reduce the identation if the root is not visible.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org

	* javax/swing/plaf/basic/BasicTreeUI.java
	(TreeAction.actionPerformed):Newly obtain the current lead
	path that must stay visible.
	(TreeTraverseAction.actionPerformed):Rewritten.
	* javax/swing/tree/FixedHeightLayoutCache.java (countRows):
	Do not treat root specially. (setModel): Assume the root node
	initially expanded.
	* javax/swing/tree/VariableHeightLayoutCache.java:(countRows):
	Do not treat root specially. (setModel): Assume the root node
	initially expanded.

2006-04-26  Chris Burdess  <dog@gnu.org>

	Fixes PR 27290
	* javax/xml/datatype/DatatypeFactory.java: Use complete
	  implementation resolution mechanism.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeModel.java (nodeStructureChanged): 
	Implemented.
	* javax/swing/tree/DefaultTreeSelectionModel.java (toString):
	Removed NoImplementException form the implemented method.

2006-04-26  Tom Tromey  <tromey@redhat.com>

	* javax/net/ssl/HttpsURLConnection.java (HttpsURLConnection): Doesn't
	throw IOException.

2006-04-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListSelectionModel.java
	(clone): Initialise empty listener list,
	(setSelectionMode): Throw IllegalArgumentException for bad input.

2006-04-26  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultListSelectionModel.java
	(clearSelection): Clear the Bitset.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTree.java (setLeadSelectionPath):
	Repaint the new and old lead pathes.
	* javax/swing/plaf/basic/BasicTreeUI.java
	(FocusHandler): Repaint the lead row when focus changes.
	(PropertyChangeHandler): Use existing constants, not the
	string literals for the property names.
	(TreeIncrementAction): Shrink the selection when moving
	from the selection edge to the selection anchor.
	(TreeSelectionHandler.valueChanged): Repaint the 
	new and old lead pathes.
	(paintRow): Treat row as focused only if it is the lead row.
	* javax/swing/tree/DefaultTreeCellRenderer.java
	(getTreeCellRendererComponent): Set the vertical alignment to CENTER.
	(paint): Rewritten.
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath): Event construction fix (old and new lead were
	always the same).
	(addSelectionPaths): Likewise.
	* javax/swing/JComponent.java (setOpaque): Explained.
	* javax/swing/tree/FixedHeightLayoutCache.java (getBounds):
	Accept null.
	* javax/swing/tree/VariableHeightLayoutCache.java (getBounds):
	Accept null.

2006-04-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TreeDemo.java
	(createContent): Call DefaultTreeModel.reload(), not the
	tree.repaint(). Expand the parent of the added node.
	* javax/swing/JTree.java (constructor): Do not call
	UpdateUI (and documented why). (treeDidChange):
	Added comment, excluding the misinterpretation of this method.
	* javax/swing/plaf/basic/BasicTreeUI.java (componentListener,
	focusListener, keyListener, mouseListener, propertyListener,
	selectionModelPropertyChangeListener, treeModelListener,
	treeSelectionListener): Made package private.
	(PropertyChangeHandler): If the model changes, install the
	listener on it. (installUI): Assign treeModel.
	* javax/swing/tree/DefaultMutableTreeNode.java (add): Added
	comment, excluding misinterpretation.
	* javax/swing/tree/DefaultTreeModel.java (reload): Implemented.
	(reload(TreeNode)): Implemented.

2006-04-25  Tom Tromey  <tromey@redhat.com>

	* javax/swing/JComboBox.java (AccessibleJComboBox): Now public.
	* javax/swing/tree/VariableHeightLayoutCache.java
	(getVisiblePathsFrom): Genericized.
	* javax/swing/tree/FixedHeightLayoutCache.java (getVisiblePathsFrom):
	Genericized.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed):
	If clicked on the other row, cancel the current editing session.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(NodeDimensionsHandler.getRowX): Add half of the icon width.
	(paintExpandControl): Always paint in one gap distance from the left
	border of the path bounds.
	(paintHorizontalPartOfLeg): Rewritted, taking the icon width
	into consideration.
	(paintVerticalPartOfLeg): Paint two gaps from the parent's bounds
	left edge.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (paint): Rewritten.

2006-04-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/javax/swing/text/html/parser/support/Parser.java (readAttributes):
	Allow slashes (/) in the unquoted parameter value. 

2006-04-25  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java
	(drawString(String,int,int)): Implemented.
	(drawString(String,float,float)): Implemented.
	(drawString(AttributedCharacterIterator,int,int)): Implemented.
	(drawString(AttributedCharacterIterator,float,float)): Implemented.
	(getFontRenderContext): Implemented.
	(drawGlyphVector): Implemented.
	(getFont): Implemented.
	(setFont): Don't change font setting when null.
	(getFontMetrics): Implemented.
	(fillShape): Re-written to fill call rawFillShape() with a list
	of the edges instead of double arrays.
	(rawFillShape): Implemented using a polygon scanline conversion.
	(fillScanline): New helper method.
	(init): Initialize foreground black. Set font.
	* gnu/java/awt/java2d/PolyEdge.java: New file.
	* gnu/java/awt/java2d/PolyEdgeComparator.java: New file.

2006-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java: More API doc updates.

2006-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTable.java: Fixed API doc tags,
	* javax/swing/text/AsyncBoxView.java: Likewise,
	* javax/swing/text/FlowView.java: Likewise.

2006-04-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java
	(moveColumn): Call fireColumnMoved() not fireColumnAdded.

2006-04-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/DefaultTableColumnModel.java
	(DefaultTableColumnModel): Set selection model field and add 'this' as
	listener directly,
	(addColumn): Add 'this' as a PropertyChangeListener,
	(removeColumn): Remove column before firing event, and remove 'this' as
	a PropertyChangeListener,
	(setSelectionModel): Remove 'this' as a listener from old model, 
	(propertyChange): Check for 'width' property rather than
	TableColumn.COLUMN_WIDTH_PROPERTY.

2006-04-24  Chris Burdess  <dog@gnu.org>

	Fixes PR 27262
	* gnu/xml/dom/DomDocument.java: getElementById returns user-defined ID
	  attributes when no doctype exists.

2006-04-24  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ChangeEvent.java: Updated API docs,
	* javax/swing/event/ChangeListener.java: Likewise,
	* javax/swing/event/TableColumnModelEventListener.java: Likewise,
	* javax/swing/table/DefaultTableColumnModel.java: Likewise,
	* javax/swing/table/TableColumnModel.java: Likewise.

2006-04-24  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Utilities.java:
	(getBreakLocation): Introduced shift variable, added notes.
	* javax/swing/text/WrappedPlainView.java:
	(calculateBreakPosition): Decrease allocation area bounds by insets,
	added early return when allocation area is empty, provide start offset
	as argument.
	(WrappedPlainView.WrappedLine): Change default value for numLines to 1.
	(WrappedPlainView.WrappedLine.paint): Added count variable, update
	numLines after loop.
	(WrappedPlainView.WrappedLine.determineNumLines): Added early return.
	(WrappedPlainView.WrappedLine.getPreferredSpan): Removed if-statement.
	(WrappedPlainView.WrappedLine.viewToModel): Changed note, removed
	decreasing variable end by one, changed break condition in while-loop,
	added check for return value.
	(WrappedPlainView.WrappedLine.updateDamage): Set numLines to one if
	allocation area is empty.

2006-04-24  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/java2d/Segment.java: New file.
	* gnu/java/awt/java2d/CubicSegment.java: New file.
	* gnu/java/awt/java2d/QuadSegment.java: New file.
	* gnu/java/awt/java2d/LineSegment.java: New file.
	* java/awt/BasicStroke.java
	(start): New field.
	(end): New field.
	(createStrokedShape): Implemented.
	(solidStroke): New method.
	(dashedStroke): New method.
	(capEnds): New method.
	(convertPath): New method.
	(addSegments): New method.
	(capEnd): New method.
	(lineIntersection): New method.
	(joinSegments): New method.

2006-04-24  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java: Made implements
	Cloneable.
	(font): New field.
	(clip): Changed clip to be in user space not in target space.
	(isOptimized): Added flag to allow optimized drawing for
	primitive operations (e.g. for Swing).
	(AbstractGraphics2D()): Set foreground in init() to avoid trouble
	with the paint context etc.
	(draw): Clip the shape before drawing it.
	(fill): Clip the shape before drawing it.
	(setComposite): Update isOptimized flag.
	(setPaint): Likewise.
	(setStroke): Likewise.
	(translate): Update the clip.
	(rotate): Likewise.
	(scale): Likewise.
	(shear): Likewise.
	(transform): Likewise.
	(setTransform): Likewise.
	(clip): Added optimization for rectangle clips.
	(create): Implemented.
	(clone): New method.
	(setFont): Basic implementation.
	(setClip): Update opimization flag.
	(drawLine): Added possible optimization.
	(fillRect): Added possible optimization.
	(fillShape): Implemented shape-filling by filling the flattended
	shape using polygon fill.
	(drawPixel): Added basic painting.
	(rawSetPixel): Changed signature to only take coordinates.
	(rawSetForeground): New abstract method.
	(getUserBounds): Implemented default for this method.
	(rawDrawLine): New method.
	(rawFillRect): New method.
	(rawFillPolygon): New method.
	(init): New method.
	(updateOptimization): New method.
	(computeIntersection): New method.
	(updateClip): New method.
	(clipShape): New method.

2006-04-23  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Package.java: Added compatibility constructor to ease
	VM interface migration.

2006-04-23  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Class.java (getEnumConstants): Implemented without
	delegating to VMClass.
	* vm/reference/java/lang/VMClass.java (getEnumConstants): Removed.

2006-04-23  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/ClassLoader.java (definePackage): Added argument to
	Package constructor.
	* java/lang/Package.java (Package): Added ClassLoader argument.
	(loader): New field.
	(getDeclaredAnnotations): Implemented without help from VMPackage.
	* vm/reference/java/lang/VMClassLoader.java (static): Added argument
	to Package constructor.
	* vm/reference/java/lang/VMPackage.java: Removed.

2006-04-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TreeDemo.java:
	(createContent): Added check box to swith between single and 
	multiple selection.
	* javax/swing/JTree.java (leadSelectionPath): Removed.
	(addSelectionInterval): Explained. (getLeadSelectionPath):
	Request the path from model. (getPathsBetweenRows): Explained.
	(setLeadSelectionPath): Set the path in model.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(TreeIncrementAction.actionPerformed, isMultiSelectionEvent, 
	isToggleSelectionEvent, selectPath, selectPathForEvent): Rewritten.
	(MouseHandler.mousePressed): Call selectPathForEvent.

2006-04-23  Roman Kennke <kennke@aicas.com>

	* gnu/java/awt/java2d/AbstractGraphics2D.java: New file.

2006-04-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention changes to VMProcess and VMSystem.
	* doc/vmintegration.texinfo:
	Change documentation on VMProcess and VMSystem.
	* include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
	* include/gnu_java_awt_peer_gtk_GdkFontPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphics2D.h,
	* include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h,
	* include/gnu_java_awt_peer_gtk_GdkRobotPeer.h,
	* include/gnu_java_awt_peer_gtk_GdkTextLayout.h,
	* include/gnu_java_awt_peer_gtk_GtkButtonPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkChoicePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h,
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkFramePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkImage.h,
	* include/gnu_java_awt_peer_gtk_GtkLabelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkListPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPanelPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h,
	* include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkSelection.h,
	* include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h,
	* include/gnu_java_awt_peer_gtk_GtkToolkit.h,
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h,
	* include/gnu_java_awt_peer_qt_MainQtThread.h,
	* include/gnu_java_awt_peer_qt_QMatrix.h,
	* include/gnu_java_awt_peer_qt_QPainterPath.h,
	* include/gnu_java_awt_peer_qt_QPen.h,
	* include/gnu_java_awt_peer_qt_QtAudioClip.h,
	* include/gnu_java_awt_peer_qt_QtButtonPeer.h,
	* include/gnu_java_awt_peer_qt_QtCanvasPeer.h,
	* include/gnu_java_awt_peer_qt_QtCheckboxPeer.h,
	* include/gnu_java_awt_peer_qt_QtChoicePeer.h,
	* include/gnu_java_awt_peer_qt_QtComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtContainerPeer.h,
	* include/gnu_java_awt_peer_qt_QtDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h,
	* include/gnu_java_awt_peer_qt_QtFileDialogPeer.h,
	* include/gnu_java_awt_peer_qt_QtFontMetrics.h,
	* include/gnu_java_awt_peer_qt_QtFontPeer.h,
	* include/gnu_java_awt_peer_qt_QtFramePeer.h,
	* include/gnu_java_awt_peer_qt_QtGraphics.h,
	* include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h,
	* include/gnu_java_awt_peer_qt_QtImage.h,
	* include/gnu_java_awt_peer_qt_QtLabelPeer.h,
	* include/gnu_java_awt_peer_qt_QtListPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuBarPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuItemPeer.h,
	* include/gnu_java_awt_peer_qt_QtMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtPanelPeer.h,
	* include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h,
	* include/gnu_java_awt_peer_qt_QtScreenDevice.h,
	* include/gnu_java_awt_peer_qt_QtScrollPanePeer.h,
	* include/gnu_java_awt_peer_qt_QtScrollbarPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextAreaPeer.h,
	* include/gnu_java_awt_peer_qt_QtTextFieldPeer.h,
	* include/gnu_java_awt_peer_qt_QtToolkit.h,
	* include/gnu_java_awt_peer_qt_QtVolatileImage.h,
	* include/gnu_java_awt_peer_qt_QtWindowPeer.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h,
	* include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h,
	* include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h,
	* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h,
	* include/gnu_xml_libxmlj_dom_GnomeAttr.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocument.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h,
	* include/gnu_xml_libxmlj_dom_GnomeDocumentType.h,
	* include/gnu_xml_libxmlj_dom_GnomeElement.h,
	* include/gnu_xml_libxmlj_dom_GnomeEntity.h,
	* include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h,
	* include/gnu_xml_libxmlj_dom_GnomeNode.h,
	* include/gnu_xml_libxmlj_dom_GnomeNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeNotation.h,
	* include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h,
	* include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h,
	* include/gnu_xml_libxmlj_dom_GnomeXPathResult.h,
	* include/gnu_xml_libxmlj_sax_GnomeLocator.h,
	* include/gnu_xml_libxmlj_sax_GnomeXMLReader.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformer.h,
	* include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h,
	* include/java_lang_VMProcess.h,
	* include/java_lang_VMSystem.h:
	Regenerated with GCJ 4.1.

2006-04-22  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/27228.
	* gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.java
	(initialize): also accept `DHParameterSpec.'
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java (setup):
	handle a passed-in `DHParameterSpec' properly.
	(generate): don't check if the random exponent is less than `q -
	1' if no `q' was specified.

2006-04-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTree.java (TreeSelectionRedirector.valueChanged):
	Only repaint the patches, speficied in the passed event.
	(expandPath): Do nothing if the path is already expanded.
	(scrollPathToVisible): Only scroll to visible, do nothing else.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(TreeExpansionHandler.treeColapsed): Revalidate and repaint.
	(TreeExpansionHandler.treeExpanded): Revalidate and repaint.
	(TreeTraverseAction.actionPerformed): Collapse the node on the
	action "selectParent". (selectPath): Rewritten.
	* javax/swing/tree/DefaultTreeSelectionModel.java (clearSelection):
	Fire change event. (notifyPathChange): Implemented. (setSelectionPath):
	Do not reuse selection array.
	* javax/swing/tree/FixedHeightLayoutCache.java (getRowForPath):
	Accept null.
	* javax/swing/tree/VariableHeightLayoutCache.java (getRowForPath):
	Accept null.

2006-04-22  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath): If the path cannot be added, set it.
	(addSelectionPaths): Call insureRowContinuity.
	(arePathsContiguous): Implemented.
	(canPathBeAdded): New private method.
	(canPathsBeAdded): Implemented.
	(canPathsBeRemoved): Implemented.
	(getPath): New private method.
	(insureRowContinuity): Implemented.
	(removeSelectionPath): Call insureRowContinuity.
	(removeSelectionPaths): Call insureRowContinuity.
	(resetRowSelection): Removed stub marking, not used in implementation 
	(nothing to do there).
	(selectOne): New private method.
	(setSelectionMode) Call insureRowContinuity.
	(setSelectionPaths) Remove the current selection by clearing it.

2006-04-22  Carsten Neumann  <cn-develop@gmx.net>

	* javax/sql/Array.java: Fixed eclipse API doc warnings, named method
	parameters consistendly, documented some methods.
	* java/sql/Blob.java: Likewise.
	* java/sql/CallableStatement.java: Likewise.
	* java/sql/Clob.java: Likewise.
	* java/sql/Connection.java: Likewise.
	* java/sql/DatabaseMetaData.java: Likewise.
	* java/sql/Date.java: Likewise.
	* java/sql/Driver.java: Likewise.
	* java/sql/PreparedStatement.java: Likewise.
	* java/sql/ResultSet.java: Likewise.
	* java/sql/ResultSetMetaData.java: Likewise.
	* java/sql/SQLData.java: Likewise.
	* java/sql/SQLOutput.java: Likewise.
	* java/sql/SQLWarning.java: Likewise.
	* java/sql/Statement.java: Likewise.
	* java/sql/Time.java: Likewise.
	* java/sql/Timestamp.java: Likewise.

2006-04-21  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/reflect/AccessibleObject.java:
	Implemented AnnotatedElement.
	(getAnnotation, getAnnotations, getDeclaredAnnotations,
	isAnnotationPresent): New methods.

2006-04-21  Tom Tromey  <tromey@redhat.com>

	PR classpath/27163:
	* gnu/java/net/protocol/ftp/FTPConnection.java
	(changeWorkingDirectory): Do nothing if path is empty.

2006-04-21  Tom Tromey  <tromey@redhat.com>

	PR libgcj/27231:
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Handle
	case where no '/' appears in 'location'.

2006-04-21  Tom Tromey  <tromey@redhat.com>

	* java/security/Security.java (<clinit>): Add all default providers.
	* resource/java/security/classpath.security: Added comment.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java: Updated API docs all over,
	* javax/swing/SpinnerNumberModel.java: Likewise.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerDateModel.java
	(SpinnerDateModel(Date, Comparable, Comparable, int)): Fix argument
	checking to call compareTo() on start and end.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/border/AbstractBorder.java: API doc updates,
	* javax/swing/border/BevelBorder.java: Likewise,
	* javax/swing/border/CompoundBorder.java: Likewise,
	* javax/swing/border/EtchedBorder.java: Likewise,
	* javax/swing/border/LineBorder.java: Likewise,
	* javax/swing/border/MatteBorder.java: Likewise,
	* javax/swing/border/TitledBorder.java: Likewise.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/javax/crypto/cipher/Anubis.java:
	(selfTest): Use Boolean.valueOf() to avoid creating a new Boolean
	instance,
	* gnu/javax/crypto/cipher/Blowfish.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Cast5.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Khazad.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Rijndael.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Serpent.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Square.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/cipher/Twofish.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/mac/UMac32.java:
	(selfTest): Likewise,
	* gnu/javax/crypto/prng/CSPRNG.java:
	(getSystemInstance): Likewise.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/security/hash/Haval.java:
	(selfTest): Use Boolean.valueOf() to avoid creating new Boolean 
	instance,
	* gnu/java/security/hash/MD2.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/MD4.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/MD5.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/RipeMD128.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/RipeMD160.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha160.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha256.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha384.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Sha512.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Tiger.java:
	(selfTest): Likewise,
	* gnu/java/security/hash/Whirlpool.java:
	(selfTest): Likewise.

2006-04-21  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java 
	(PropertyChangeHandler.propertyChange): Set the row mapper
	for the selection model.
	* javax/swing/tree/AbstractLayoutCache.java 
	(NodeDimensions.getNodeDimensions): Explained.
	(getPreferredHeight, getPreferredWidth, isFixedRowHeight):
	Implemented. (setRowHeight): Invalidate sizes. 
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPath, addSelectionPaths): Update lead row.
	(removeSelectionPath, removeSelectionPaths): Do nothing if
	selection is empty.
	(clone): Only clone list selection model if it is not null.
	(getRow): New method. (isRowSelected, getLeadSelectionRow, 
	setSelectionPath, setSelectionPaths, toString): Implemented.
	* javax/swing/tree/FixedHeightLayoutCache.java (NodeRecord.getBounds):
	Pass the empty rectangle. (isFixedRowHeight): New method.
	* javax/swing/tree/VariableHeightLayoutCache.java
	(NodeRecord.getBounds):	Pass the empty rectangle.
	
2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/java/security/Properties.java
	(init): Use Boolean.valueOf() to avoid creating new Boolean instances.

2006-04-21  David Gilbert  <david.gilbert@object-refinery.com>

	* gnu/classpath/jdwp/util/Value.java
	(getUntaggedObj(ByteBuffer, Class)): Use Boolean.valueOf() to avoid 
	creating new Boolean instances.

2006-04-20  Mark Wielaard  <mark@klomp.org>

	* java/awt/Toolkit.java (getDefaultToolkit): Get classloader in
	PrivilegedAction. Access awt.toolkit through SystemProperties.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ActionMap.java: Removed unused imports,
	* javax/swing/DefaultListSelectionModel.java
	(clearSelection): Removed unused label,
	* javax/swing/JScrollPane.java: Removed unused imports,
	* javax/swing/UIManager.java: Likewise,
	* javax/swing/table/DefaultTableCellRenderer.java: Likewise.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSpinnerUI.java: Removed unused imports,
	* javax/swing/plaf/basic/BasicTextAreaUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextFieldUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTextUI.java: Likewise,
	* javax/swing/plaf/basic/BasicTreeUI.java: Likewise.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/sql/Array.java: Fixed Eclipse API doc warnings,
	* java/sql/Blob.java: Likewise,
	* java/sql/CallableStatement.java: Likewise,
	* java/sql/Clob.java: Likewise,
	* java/sql/Connection.java: Likewise,
	* java/sql/DatabaseMetaData.java: Likewise,
	* java/sql/Date.java: Likewise,
	* java/sql/Driver.java: Likewise,
	* java/sql/PreparedStatement.java: Likewise,
	* java/sql/ResultSet.java: Likewise,
	* java/sql/ResultSetMetaData.java: Likewise,
	* java/sql/SQLData.java: Likewise,
	* java/sql/SQLOutput.java: Likewise,
	* java/sql/SQLWarning.java: Likewise,
	* java/sql/Statement.java: Likewise,
	* java/sql/Time.java: Likewise,
	* java/sql/Timestamp.java: Likewise.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* java/sql/DriverManager.java
	(setLoginTimeout): Use incoming argument,
	(setLogStream): Likewise,
	(println): Fix API doc comment.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenuItem.java
	(paramString): Updated API docs,
	(getAccessibleContext): Added API docs,
	(AccessibleJMenuItem.stateChanged): Marked as stub,
	(AccessibleJMenuItem.getAccessibleRole): Added API docs,
	* javax/swing/JSlider.java
	(paramString): Fix for API docs,
	* javax/swing/JToolTip.java
	(getAccessibleContext): Fix for API docs.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JRadioButtonMenuItem.java
	(paramString): Reimplemented,
	(getAccessibleContext): API docs added,
	(AccessibleJRadioButtonMenuItem.AccessibleJRadioButtonMenuItem()): 
	Likewise,
	(AccessibleJRadioButtonMenuItem.getAccessibleRole): Likewise.

2006-04-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java
	(finish): Invalidate path bounds.
	(getMaxHeight): Set the row height to the layout cache.
	(startEditing): Do not request to recalculated 
	row height and preferred size.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(ICON_TEXT_GAP, ICON_TREE_GAP): Removed, replacing
	with 0.
	* javax/swing/tree/FixedHeightLayoutCache.java:
	Rewritten.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JDesktopPane.java
	(paramString): Reimplemented,
	plus API doc updates in AccessibleJDesktopPane.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ImageIcon.java:
	(AccessibleImageIcon.getAccessibleStateSet): Return null always,
	(AccessibleImageIcon.getLocale): Declared exception and always return 
	null,
	(getAccessibleContext): Updated API docs,
	plus updated API docs all over AccessibleImageIcon.

2006-04-20  Roman Kennke  <kennke@aicas.com>

	PR 27196
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintText): Fetch the ascent only once. Add the ascent to
	the text rect also when tabs are disabled.

2006-04-20  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* java/util/Locale.java (defaultLocale): Set to en_US per
	default and use user.country but prioritize user.region if
	defined.
	(getLocale(String language, String country)): Renamed region to
	country.
	(getLocale(String language, String region, String variant)):
	Likewise.
	(getAvailableLocales): Likewise.

2006-04-20  Roman Kennke  <kennke@aicas.com>

	PR 27222
	* javax/swing/JList.java
	(JList()): Call init() with DefaultListModel instance.
	(JList(Object[])): Call init() with null.
	(JList(Vector)): Call init() with null.
	(JList(ListModel)): Call init() with model.
	(init): Changed to take the model as argument. Don't call
	setter methods and initialize stuff directly instead.
	(getCellBounds): Check if UI is null.

2006-04-20  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/WrappedPlainView.java: Initialize
	WrappedLine.numLines with -1.
	(WrappedPlainView.WrappedLine.getPreferredSpan): Check whether
	numLines is -1 and reculcalate the value appropriately.
	(WrappedPlainView.WrappedLine.updateDamage): Set numLines to -1 if
	allocation area is empty.

2006-04-20  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JTabbedPane.java
	(AccessibleJTabbedPane.stateChanged): Marked as stub,
	(AccessibleJTabbedPane.getAccessibleRole): Likewise,
	(AccessibleJTabbedPane.getAccessibleChildrenCount): Likewise,
	(AccessibleJTabbedPane.getAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.getAccessibleAt): Likewise,
	(AccessibleJTabbedPane.getAccessibleSelectionCount): Likewise,
	(AccessibleJTabbedPane.getAccessibleSelection(int)): Likewise,
	(AccessibleJTabbedPane.isAccessibleChildSelected): Likewise,
	(AccessibleJTabbedPane.addAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.removeAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.clearAccessibleSelection): Likewise,
	(AccessibleJTabbedPane.selectAllAccessibleSelection): Likewise,
	(Page.getAccessibleStateSet): Likewise,
	(Page.getAccessibleIndexInParent): Likewise.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JProgressBar.java
	(paramString): Reimplemented.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JButton.java: Updated API docs all over.

2006-04-19  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getDefaultToolkit): Use system classloader to load the
	toolkit.

2006-04-19  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(DefaultCaret.Bypass.setDot): Call DefaultCaret.setDotImpl
	instead of DefaultCaret.setDot.

2006-04-19  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/local.c
	(local_read): Handle EINTR correctly.
	(local_write): Likewise.

2006-04-19  Riccardo Mottola  <multix@gmail.com>

	PR classpath/27062, PR classpath/25650:
	* native/fdlibm/ieeefp.h: Check for _POWER and _IBMR2.

2006-04-19  Tom Tromey  <tromey@redhat.com>

	* java/text/SimpleDateFormat.java (formatWithAttribute): Take absolute
	value of 'pureMinutes'.  PR classpath/27189.

2006-04-19  Olivier Jolly  <olivier.jolly@pcedev.com>

   * vm/reference/java/lang/VMClassLoader.java (getBootPackages): Loads
   boot packages list from the META-INF/INDEX.LIST file if it exists. 

2006-04-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	Suggested by Stephen White <stephen-gnu-crypto@randomstuff.org.uk>
	* gnu/javax/crypto/prng/IPBE.java: Updated documentation.
	(ITERATION_COUNT): Removed modifiers.
	(PASSWORD): Likewise.
	(SALT): Likewise.
	(PASSWORD_ENCODING): New property.
	(DEFAULT_PASSWORD_ENCODING): New constant.
	* gnu/javax/crypto/prng/PBKDF2.java (setup): Check for MAC's raw key
	material (bytes) before a password (chars).

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JMenu.java
	(getAccessibleChildrenCount): Marked as stub,
	(getAccessibleChild): Likewise,
	(getAccessibleSelection): Likewise,
	(getAccessibleSelection(int)): Likewise,
	(isAccessibleChildSelected): Likewise,
	(getAccessibleSelectionCount): Likewise,
	(addAccessibleSelection): Likewise,
	(removeAccessibleSelection): Likewise,
	(clearAccessibleSelection): Likewise,
	(selectAllAccessibleSelection): Likewise.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSplitPane.java
	(getAccessibleContext): Added API docs,
	(paramString): Reimplemented,
	(setOrientation): Updated API docs,
	(setResizeWeight): Added argument checking and event notification.

2006-04-18  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/25673	
	* java/security/KeyStore.java (getDefaultType): return "gkr" if no
	property is set. Update JavaDoc to reflect this.

2006-04-18  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomDocument.java
	(setCheckingCharacters): New function used to set
	checkingCharacters flag.
	* gnu/xml/dom/html2/DomHTMLParser.java
	(parseDocument): Added call to set checkingCharacters flag
	to false.

2006-04-18  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomDocument.java
	(checkNCName): Reverted last patch. Added check for colon at
	last position back in.

2006-04-18  Robert Schuster  <robertschuster@fsfe.org>

        * examples/gnu/classpath/examples/swing/NavigationFilterDemo.java:
        New file.
        * examples/gnu/classpath/examples/swing/Demo.java:
        (mkMenuBar): Added NavigationFilter demo.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSeparator.java: Updated API docs all over, plus
	(setOrientation): Fire PropertyChangeEvent,
	(paramString): Reimplemented.

2006-04-18  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(getNextVisualPositionFrom): Implemented.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JPanel.java: Updated API docs all over, plus
	(JPanel(LayoutManager, boolean)): Pass on null layout, set 
	double-buffer flag.

2006-04-18  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/DocumentFilterDemo.java:
	New file.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Added DocumenFilter demo.

2006-04-18  Tom Tromey  <tromey@redhat.com>

	* doc/www.gnu.org/include/layout.wml: Add FMJ.

2006-04-18  Mark Wielaard  <mark@klomp.org>

	Reported by John Sullivan (johns@fsf.org)
	* doc/www.gnu.org/stories.wml: Update JikesRVM location.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JInternalFrame.java
	(JDesktopIcon.getAccessibleContext): Added API docs,
	(getDefaultCloseOperation): Likewise,
	(paramString): Added 'title' attribute,
	(setDefaultCloseOperation): Added API docs.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(paramString): Reimplemented.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java
	(paramString): Reimplemented,
	(getAccessibleContext): Added API docs,
	(AccessibleJComboBox.getAccessibleRole): Likewise.

2006-04-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(dirtyComponentsWork): New field.
	(ComponentComparator): Use dirtyComponentsWork instead of
	dirtyComponents.
	(RepaintManager): Initialize new field.
	(paintDirtyRegions): Swap dirtyComponents with dirtyComponentsWork
	and work on the copy.

2006-04-18  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(setBounds): Call reshape().
	* gnu/java/awt/peer/swing/SwingContainerPeer.java
	(SwingContainerPeer): Changed argument to be a Component
	instead a Container.
	(getInsets): Call insets().
	(handleMouseEvent): Added null check to avoid NPE.
	(handleMouseMotionEvent): Added null check to avoid NPE.
	
2006-04-18  Roman Kennke  <kennke@aicas.com>

	PR 27185
	* javax/swing/JComponent.java
	(paintChildrenWithOverlap): When one child is not opaque, propagate
	the dirty rectangles to the next child.
	(paintChildrenOptimized): Removed unnecessary 'optimization'.
	This actually didn't work right and probably gained nothing.

2006-04-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getCallRect): Do not cache rectangles.
	(moveToCellBeingEdited): Do not clone the rectangle here.

2006-04-18  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(getActionMap): Fixed lookup key,
	(createActionMap): Modified actions to fetch slider/ui from the event
	source.

2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Enum.java: Documented.

2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/lang/InstrumentationImpl.java:
	Moved from java.lang.
	* java/lang/InstrumentationImpl.java:
	Removed.
	* vm/reference/gnu/java/lang/VMInstrumentationImpl.java:
	Moved from java.lang.
	* vm/reference/java/lang/VMClassLoader.java:
	Corrected reference to InstrumentationImpl.
	* vm/reference/java/lang/VMInstrumentationImpl.java:
	Removed.
	
2006-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/annotation/Annotation.java:
	Documented.
	
2006-04-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToolBar.java
	(AccessibleJToolBar.AccessibleJToolBar()): Updated API docs,
	(AccessibleJToolBar.getAccessibleStateSet): Implemented,
	(AccessibleJToolBar.getAccessibleRole): Updated API docs,
	(getAccessibleContext): Likewise.

2006-04-17  Dalibor Topic  <robilad@kaffe.org>

        * configure.ac:
        Added CLASSPATH_CONVENIENCE substitution for convenience library LDFLAGS.

        * native/fdlibm/Makefile.am,
        native/jni/classpath/Makefile.am:
        Don't use -module and -version-info for convenience libraries LDFLAGS.
        Fixes libtool warnings.

2006-04-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicComboPopup.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicInternalFrameUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicLabelUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicListUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicMenuBarUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicMenuUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicOptionPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicPopupMenuUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicScrollBarUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicScrollPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicSplitPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTableHeaderUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTableUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicTextUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise,
	* javax/swing/plaf/basic/BasicToolBarUI.java:
	(installKeyboardActions): Marked as stub,
	(uninstallKeyboardActions): Likewise.	

2006-04-17  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(installKeyboardActions): Implemented,
	(uninstallKeyboardActions): Implemented,
	(scrollByBlock): Accept any value for direction,
	(scrollByUnit): Likewise,
	(getInputMap): New method,
	(getActionMap): New method,
	(createActionMap): New method.


2006-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* doc/vmintegration.texinfo:
	Fix sectioning.

2006-04-16  Tom Tromey  <tromey@redhat.com>

	* native/jni/java-net/Makefile.am (AM_CFLAGS): Removed --save-temps.

2006-04-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Mention generics additions to the VM interface.
	* doc/vmintegration.texinfo:
	Added information on VMClass 1.5 additions and
	VMSecureRandom.
	
2006-04-16  Casey Marshall  <csm@gnu.org>

	* NEWS: add an entry mentioning local socket support.

2006-04-16  Casey Marshall  <csm@gnu.org>

	* configure.ac (--enable-local-sockets): new enable argument.
	(ENABLE_LOCAL_SOCKETS): new define.
	* native/jni/java-net/Makefile.am (local_sources): new variable.
	(lib_javanet_la_SOURCES): append `local_sources.'
	* native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c,
	* native/jni/java-net/local.c,
	* native/jni/java-net/local.h,
	* include/gnu_java_net_local_LocalSocketImpl.h,
	* gnu/java/net/local/LocalServerSocket.java,
	* gnu/java/net/local/LocalSocket.java,
	* gnu/java/net/local/LocalSocketAddress.java,
	* gnu/java/net/local/LocalSocketImpl.java: new files.

2006-04-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* javax/accessibility/AccessibleAction.java:
	(DECREMENT): Added field.
	(INCREMENT): Likewise.
	(TOGGLE_EXPAND): Likewise.
	* javax/accessibility/AccessibleRole.java:
	(EDITBAR): Added field.
	(FOOTER): Likewise.
	(HEADER): Likewise.
	(PARAGRAPH): Likewise.
	(PROGRESS_MONITOR): Likewise.
	(RULER): Likewise.
	* javax/accessibility/AccessibleState.java:
	(INDETERMINATE): Added field.
	(MANAGES_DESCENDANTS): Likewise.
	(TRUNCATED): Likewise.

2006-04-14  Tom Tromey  <tromey@redhat.com>

	* javax/swing/tree/DefaultTreeSelectionModel.java (getListeners):
	Genericized.
	* javax/swing/tree/AbstractLayoutCache.java (getVisiblePathsFrom):
	Genericized.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(getBypass): New method.
	(moveDot): Rewritten.
	(moveDotImpl): New method.
	(setDot): Rewritten.
	(setDotImpl): New method.
	(DefaultCaret.Bypass): New class.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/AbstractDocument.java:
	(getBypass): New method.
	(insertString): Rewritten.
	(remove): Rewritten.
	(replace): Rewritten.
	(insertStringImpl): New method.
	(removeImpl): New method.
	(replaceImpl): New method.
	(AbstractDocument.Bypass): New class.

2006-04-14  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/24642
	* NEWS: add note about SecureRandom changes, and addition of
	VMSecureRandom.
	* java/security/SecureRandom.java (isSeeded): new field.
	(setSeed, setSeed): set `isSeeded' to `true.'
	(nextBytes): seed this instance if `isSeeded' is false.
	(getSeed): call `generateSeed.'
	(SECURERANDOM_SOURCE, JAVA_SECURITY_EGD, logger): new constants.
	(generateSeed, generateSeed): new methods.
	* vm/reference/java/security/VMSecureRandom.java: new file.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(paint): Apply clipping rectangle of the allocation area
	before painting the text.
	* javax/swing/text/DefaultHighlighter.java:
	(DefaultHighlighter.DefaultHighlightPainter): Use SwingUtilities to
	compute union and intersection,	calculate intersection with allocation
	area before painting, adjust x and width when painting multiple lines
	by the range of the allocation area.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultHighlighter.java:
	(paintLayeredHighlights): Marked as stub.

2006-04-14  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextFieldUI.java:
	(propertyChanged): Added note, change color only if current background
	is a ColorUIResource instance.

2006-04-14  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextSupport.java (hasNext): No longer
	a stub.
	(next): Likewise.

2006-04-14  Tom Tromey  <tromey@redhat.com>

	* javax/swing/JComboBox.java (AccessibleJComboBox): Now public.

2006-04-14  Mark Wielaard  <mark@klomp.org>

	* java/lang/Thread.java (getUncaughtExceptionHandler): Return
	thread group when exceptionHandler isn't set.
	* vm/reference/java/lang/VMThread.java (run): Use result of
	thread.getUncaughtExceptionHandler directly.

2006-04-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSplitPane.java
	(AccessibleJSplitPane.getAccessibleStateSet): Implemented,
	(AccessibleJSplitPane.getAccessibleRole): Implemented,
	(AccessibleJSplitPane.getAccessibleValue): Implemented,
	(AccessibleJSplitPane.getCurrentAccessibleValue): Implemented,
	(AccessibleJSplitPane.setCurrentAccessibleValue): Implemented,
	(AccessibleJSplitPane.getMinimumAccessibleValue): Implemented,
	(AccessibleJSplitPane.getMaximumAccessibleValue): Implemented.

2006-04-10  Tom Tromey  <tromey@redhat.com>

	* javax/imageio/metadata/IIOMetadataFormatImpl.java (addObjectValue):
	Fixed parameter bounds.

2006-04-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
	
	* 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/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/cipher/Square.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/CipherAdapter.java,
	* gnu/javax/crypto/jce/cipher/DESSpi.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/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/key/dh/DiffieHellmanSender.java,
	* gnu/javax/crypto/key/srp6/SRP6TLSServer.java,
	* gnu/javax/crypto/keyring/PrivateKeyEntry.java,
	* gnu/javax/crypto/mode/IAuthenticatedMode.java,
	* gnu/javax/crypto/pad/WrongPaddingException.java,
	* gnu/javax/crypto/prng/ICMGenerator.java,
	* gnu/javax/crypto/prng/IPBE.java,
	* gnu/javax/crypto/prng/PBKDF2.java,
	* gnu/javax/crypto/sasl/ConfidentialityException.java,
	* gnu/javax/crypto/sasl/IllegalMechanismStateException.java,
	* gnu/javax/crypto/sasl/srp/IALG.java,
	* gnu/javax/crypto/sasl/srp/SRPServer.java:
	Remove CVS revision tags.

2006-04-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (getPreferredSize): 
	Removed debugging code.

2006-04-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
 
	* javax/swing/JTree.java (getPreferredSize): Return the
	cloned instance.
	* javax/swing/ViewportLayout.java (layoutContainer):
	Do not manage the view size and location if the view is
	in the scroll pane. Also manage size and location for
	Scrollable, if it is not in the scroll pane.
	* javax/swing/plaf/basic/BasicTreeUI.java,
	* javax/swing/tree/FixedHeightLayoutCache.java,
	* javax/swing/tree/VariableHeightLayoutCache.java: Rewritten.
	* gnu/javax/swing/tree/GnuPath.java: New file.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToolBar.java
	(AccessibleJToolBar.getAccessibleStateSet): Marked as stub.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/TextAreaDemo.java:
	(createCustomColoredPanel): Set background color as demo intends,
	changed custom selection color to red.
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java:
	Replaced various single variables with a Compound instance, added
	custom highlighter demo.
	(TextFieldDemo.DemoHighlightPainter): New class (taken from
	TextAreaDemo).
	(TextFieldDemo.Compound): New class.
	(createTextFieldCompound): New method.
	(createLeftAlignedPanel): Rewritten.
	(createRightAlignedPanel): Rewritten.
	(createCenteredPanel): Rewritten.
	(createCustomColoredPanel): Removed.
	(createCustomColoredPanel1): New method.
	(createCustomColoredPanel2): New method.
	(createCustomBordersPanel): New method.
	(createMiscPanel): Rewritten.
	(actionPerformed): Rewritten.
	(createContent): Add panels of new compounds to main panel, put
	main panel in a JScrollPane.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(Demo): Put desktop in a scrollpane.
	(mkMenuBar): Check availability of MetalLookAndFeel.getCurrentTheme()
	method via reflection.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalDesktopIconUI.java
	(createUI): Return new instance rather than shared instance.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(checkContainer): Call updateVisibility() at the end.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	* java/awt/event/MouseEvent.java:
	(paramString): Add value of 'consumed' variable in string.

2006-04-13  Robert Schuster  <robertschuster@fsfe.org>

	PR 26967
	* javax/swing/JTextField.java: Removed scrollOffset variable.
	(JTextField): Moved up initialization of horizontalVisibility field.
	(getScrollOffset): Implemented.
	(setScrollOffset): Implemented.
	(getHorizonztalVisibility): Removed note.
	(scrollRectToVisible): New method.
	* javax/swing/text/FieldView.java: Added cachedSpan variable.
	(checkContainer): New method.
	(updateVisibility): New method.
	(calculateHorizontalSpan): New method.
	(adjustAllocation): Removed unneeded local variables, added code
	to handle scrolling.
	(getPreferredSpan): Use new method calculateHorizontalSpan,
	avoid calculation by returning cached value cachedSpan.
	(paint): Added check whether the hosted component is a JTextField.
	(insertUpdate): Invalidate cached span value, update visibility
	if neccessary.
	(removeUpdate): Dito.
	(changeUpdate): Dito.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JInternalFrame.java
	(setTitle): Set old value to 'this.title', not 'title'.

2006-04-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JInternalFrame.java
	(AccessibleJInternalFrame.getAccessibleName): Implemented,
	(AccessibleJInternalFrame.getAccessibleRole): Implemented,
	(AccessibleJInternalFrame.getAccessibleValue): Implemented,
	(AccessibleJInternalFrame.getCurrentAccessibleValue): Implemented,
	(AccessibleJInternalFrame.getMaximumAccessibleValue): Implemented,
	(AccessibleJInternalFrame.getMinimumAccessibleValue): Implemented,
	(AccessibleJInternalFrame.setCurrentAccessibleValue): Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getAccessibleRole): Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getAccessibleValue): Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getCurrentAccessibleValue): 
	Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getMaximumAccessibleValue): 
	Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.getMinimumAccessibleValue): 
	Implemented,
	(JDesktopIcon.AccessibleJDesktopIcon.setCurrentAccessibleValue): 
	Implemented,
	(JInternalFrame()): Use "" for default title,
	(getAccessibleContext): Updated API docs,
	(getDesktopIcon): Likewise,
	(getLayer): Check for layer in client properties, and return 
	DEFAULT_LAYER if no setting is found,
	(getTitle): Updated API docs,
	(setDesktopIcon): Fire property change event.

2006-04-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/ScrollPaneLayout.java (layoutContainer):
	Mind that the presence of one scroll bar may cause the
	need for another.

2006-04-12  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REToken.java(unicodeAware): New field,
	(toLowerCase, toUpperCase): New methods.
	* gnu/regexp/RETokenBackRef.java, gnu/regexp/RETokenChar.java,
	gnu/regexp/RETokenNamedProperty.java, gnu/regexp/RETokenRange.java:
	Use toLowerCase and toUpperCase defined in REToken instead of
	those defined in java.lang.Character.
	* gnu/regexp/gnu/regexp/RE.java(REG_ICASE_USASCII): New flag.
	(initialize): Sets unicodeAware of the generated REToken to false if
	REG_ICASE_USASCII is set.
	* gnu/regexp/RETokenChar.java(constructor): Don't convert the character
	to lower case and keep the original value.
	(matchOneString): Use the new method charEquals to compare characters.
	(charEquals): New method to compare characters.
	* java/util/regex/Pattern.java: Sets the flag REG_ICASE_USASCII to true.

2006-04-12  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/InternalFrameEvent.java:
	(paramString): Implemented,
	updated API docs all over.
	
2006-04-12  Casey Marshall  <csm@gnu.org>

	* gnu/javax/crypto/prng/Fortuna.java (setup): call `fillBlock.'
	(Generator.setup): call `fillBlock.'

2006-04-12  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/24481.
	* gnu/java/security/jce/prng/SecureRandomAdapter.java (<init>):
	initialize the adaptee.
	(setSeed): call `addRandomBytes;' don't re-initialize the adaptee.
	* gnu/java/security/prng/MDGenerator.java (addRandomByte,
	addRandomBytes): new methods.

2006-04-12  Tom Tromey  <tromey@redhat.com>

	* java/io/DataOutputStream.java (writeUTF): Correctly handle zero
	length strings.

2006-04-12  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomDocument.java
	(checkNCName): Removed unneeded part of check.
	* gnu/xml/dom/DomNode.java
	(dispatchEvent): Added code to grow ancestors array
	if needed. Changed checks to use depth of node instead.
	Fixes an infinite loop and segmentation fault.
	* gnu/xml/dom/html2/DomHTMLParser.java
	(handleEndTag): No need to use/make a copy of the node.
	Causes an infinite loop.

2006-04-12  Tom Tromey  <tromey@redhat.com>

	PR classpath/27131:
	* java/util/BitSet.java (get): Early return if to==from.

2006-04-12  Mark Wielaard  <mark@klomp.org>

	* java/security/SecureRandom.java (algorithm): New private field.
	(SecureRandom): Initialize algorithm.
	(SecureRandom(SecureRandomSpi,Provider,String)): New private
	constructor.
	(getInstance): Call 3 argument constructor.
	(getAlgorithm): New method.

2006-04-12  Mark Wielaard  <mark@klomp.org>

	Port UncaughtExceptionHandler support from generics branch.
	* NEWS: Document Thread.UncaughtExceptionHandler VMThread change.

2006-04-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/Thread.java:
	(setUncaughtExceptionHandler(UncaughtExceptionHandler):
	Added docs and security check.
	(getUncaughtExceptionHandler()): Documented.
	(setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler):
	Added docs and security check.
	(getDefaultUncaughtExceptionHandler()): Documented.
	(getId()): Documented.

2006-04-12  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/lang/VMThread.java (run): Use thread's
	uncaught handler.
	* java/lang/Thread.java (defaultHandler): New field.
	(setDefaultUncaughtExceptionHandler,
	getDefaultUncaughtExceptionHandler, setUncaughtExceptionHandler,
	getUncaughtExceptionHandler): New methods.
	* java/lang/ThreadGroup.java (ThreadGroup): Implements
	UncaughtExceptionHandler.
	(uncaughtException): Use getDefaultUncaughtExceptionHandler.

2006-04-11  Bryce McKinlay  <mckinlay@redhat.com>

	* java/io/DataOutputStream.java (writeUTF): Re-use fixed length byte
	buffer. Loop only once to determine Utf8 length	when possible. Make
	the inner loop bounded by buf.length.
	(getUTFlength): New private method.
	(buf): New private field.

2006-04-11  Lillian Angel  <langel@redhat.com>

	* gnu/xml/dom/DomNodeIterator.java
	(nextNode): Moved line of code to avoid an infinite loop.
	* gnu/xml/dom/html2/DomHTMLAppletElement.java
	(getCls): New function.
	(setCls): Likewise.
	(getSrc): Likewise.
	(setSrc): Likewise.
	* gnu/xml/dom/html2/DomHTMLDocument.java:
	Added DomHTMLEmbedElement to map.
	(getApplets): Added node name, 'embed'.
	* gnu/xml/dom/html2/DomHTMLEmbedElement.java:
	New class.
	* gnu/xml/dom/html2/DomHTMLObjectElement.java
	(getJavaCode): New function.
	(setJavaCode): Likewise.
	(getObject): Likewise.
	(setObject): Likewise.
	(getJavaObject): Likewise.
	(setJavaObject): Likewise.
	(getJavaArchive): Likewise.
	(setJavaArchive): Likewise.
	(getJavaCodeBase): Likewise.
	(setJavaCodeBase): Likewise.
	(getJavaType): Likewise.
	(setJavaType): Likewise.
	(setMayscript): Likewise.
	(getMayscript): Likewise.
	(setScriptable): Likewise.
	(getScriptable): Likewise.
	* gnu/xml/dom/html2/DomHTMLParser.java
	(parseDocument): Should not check for well formedness
	when parsing an html document.
	* java/awt/Window.java
	(dispatchEvent): Added check to avoid NPE.

2006-04-10  Tom Tromey  <tromey@redhat.com>

	* javax/accessibility/AccessibleStreamable.java (getStream): Fixed
	name.
	* javax/accessibility/AccessibleRelation.java (EMBEDS): Fixed value.
	(SUBWINDOW_OF, SUBWINDOW_OF_PROPERTY): Likewise.

2006-04-10  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(getNextVisualPositionFrom): Marked as stub.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initSystemColorDefaults): Changed to use loadSystemColorDefaults
	and create the defaults as strings constants.
	(loadSystemColors): Implemented stubbed method.

2006-04-10  Tom Tromey  <tromey@redhat.com>

	* .settings/org.eclipse.core.resources.prefs: Set encoding for
	ChangeLog.

2006-04-10  Tom Tromey  <tromey@redhat.com>

	* java/io/CharArrayWriter.java (append): Javadoc fix.
	(append): Likewise.

2006-04-10  Tom Tromey  <tromey@redhat.com>

	* javax/accessibility/AccessibleTextSequence.java: New file.
	* javax/accessibility/AccessibleRelation.java (CHILD_NODE_OF): New
	field.
	(CHILD_NODE_OF_PROPERTY, EMBEDDED_BY, EMBEDDED_BY_PROPERTY, EMBEDS,
	EMBEDS_PROPERTY, FLOWS_FROM, FLOWS_FROM_PROPERTY, FLOWS_TO,
	FLOWS_TO_PROPERTY, PARENT_WINDOW_OF, PARENT_WINDOW_OF_PROPERTY,
	SUBWINDOW_OF, SUBWINDOW_OF_PROPERTY): Likewise.
	* javax/accessibility/AccessibleExtendedText.java: New file.
	* javax/accessibility/AccessibleContext.java
	(ACCESSIBLE_COMPONENT_BOUNDS_CHANGED): New field.
	(ACCESSIBLE_INVALIDATE_CHILDREN): Likewise.
	(ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED): Likewise.
	* javax/accessibility/AccessibleAttributeSequence.java: New file.
	* javax/accessibility/AccessibleStreamable.java: New file.
	* javax/accessibility/AccessibleText.java (getIndexAtPoint): Javadoc
	fix.

2006-04-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/AbstractLayoutCache.java 
	(getNodeDimensions, getRowsForPath): Implemented.
	* javax/swing/tree/FixedHeightLayoutCache.java: Rewritten.
	* javax/swing/tree/VariableHeightLayoutCache.java: Rewritten.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/tree/AbstractLayoutCache.java: Reformatted.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(AccessibleJInternalFrame): Marked all stubbed methods as such
	by adding throws NotImplementedException.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JFileChooser.java
	(getAccessibleContext): Don't create a new instance on each
	call, instead store the accessible context in the
	accessibleContext field.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(AccessibleJComboBox): Marked all stubbed methods as such
	by adding throws NotImplementedException.

2006-04-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ActionMap.java
	(readObject): Removed.
	(writeObject): Removed.

2006-04-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(addSelectionPaths, setSelectionPaths): Call 
	insureUniqueness. (clone, setRowMapper): Implemented.
	* TreePath (path): Marked final.

2006-04-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/tree/DefaultTreeSelectionModel.java:
	Documented and autoformatted. (insureUniqueness):
	Removed stub marking.

2006-04-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SizeSequence.java
	(sizes): Don't initialise here,
	(SizeSequence(int, int)): Initialise sizes field,
	(SizeSequence(int[])): Clone argument instead of calling setSizes(),
	(setSize): Do nothing when index is out of bounds,
	(getIndex): Implemented,
	(setSizes): Reimplemented,
	(getSizes): Likewise,
	(insertEntries): Likewise,
	(removeEntries): Likewise,
	plus added API docs all over.

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org

	* gnu/CORBA/gnuRequest.java (submit): Do not read any response after
	one way message and retry after any IOException.

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/CDR/EncapsulationStream.java (constructor):
	Set the byte order.

2006-04-09  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/PortableServer/ServantLocatorPOA.java: 
	(preinvoke, postinvoke): Remove default implementation.
	* org/omg/PortableServer/ServantActivatorPOA.java: 
	(incarnate, etherealize): Remove default implementation.	
	* org/omg/PortableInterceptor/ObjectReferenceFactory.java: 
	Extends from ValueBase and not from ObjectReferenceFactoryOperations.
	(make_object): Moved method from ObjectReferenceFactoryOperations.
	* org/omg/PortableInterceptor/ObjectReferenceFactoryOperations.java: 
	Removed unspecified interface.	
	* org/omg/DynamicAny/_DynAnyStub.java:
	(_DynAnyStub(Delegate)): Removed constructor.
	* org/omg/DynamicAny/_DynArrayStub.java,
	* org/omg/DynamicAny/_DynAnyFactoryStub.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: 
	Extend from ObjectImpl and not from _DynAnyStub.
	(type, next, destroy, copy, rewind, assign, component_count, 
	current_component, equal, from_any, get_any, get_boolean, get_char, 
	get_double, get_dyn_any, get_float, get_long, get_longlong, get_octet, 
	get_reference, get_short, get_string, get_typecode, get_ulong, 
	get_ulonglong, get_ushort, get_val, get_wchar, get_wstring, insert_any,
	insert_boolean, insert_char, insert_double, insert_dyn_any, insert_float,
	insert_long, insert_longlong, insert_octet, insert_reference, 
	insert_short, insert_string, insert_typecode, insert_ulong, 
	insert_ulonglong, insert_ushort, insert_val, insert_wchar, 
	insert_wstring, seek, to_any): New methods copied from _DynAnyStub.		
	* org/omg/CosNaming/_BindingIteratorStub.java:
	(_BindingIteratorStub(Delegate)): Made package private.
	* org/omg/CosNaming/_NamingContextExtStub.java:
	(_NamingContextExtStub(Delegate)): Made package private.
	* org/omg/CosNaming/_NamingContextStub.java:
	(_NamingContextStub(Delegate)): Made package private.
	(throw4, throw5): Likewise.
	* gnu/CORBA/NamingService/NameParser.java (resolve): 
	Adapt to package private constructor. Use _set_delegate instead.	
	* org/omg/CosNaming/NamingContextOperations.java: Do not extend IDLEntity.
	* org/omg/CORBA/ORB.java: 
	(create_recursive_sequence_tc): Made abstract.
	(get_default_context): Likewise.
	* gnu/CORBA/OrbRestricted.java: 
	(create_recursive_sequence_tc): New moved method.
	(get_default_context): Likewise.	
	* org/omg/CORBA/ParameterMode.java: 
	(PARAM_IN, PARAM_OUT, PARAM_INOUT): Made final.	

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/GIOP/MessageHeader.java (write): 
	More informative exception.
	* gnu/CORBA/IorDelegate.java (release): Do not close the socket.
	* gnu/CORBA/SocketRepository.java (get_socket):
	Removed debugging code.

2006-04-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/gnuRequest.java (submit): Try to read the response for the
	one way message, but ignore if EOF was received.
	* gnu/CORBA/GIOP/MessageHeader.java (read): Set the minor code to
	Minor.EOF if the end of file is received instead of the header.

2006-04-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(MetalTitlePane.IconifyAction): New inner class.
	(MetalTitlePane.MaximizeAction): New inner class.
	(MetalTitlePane.createActions): Create iconifyAction and
	maximizeAction.
	(MetalRootLayout.titlePane): New field.
	(MetalRootLayout.MetalRootLayout): Take titlePane parameter in
	constructor.
	(MetalRootLayout.preferredLayoutSize): Changed to not make
	assumptions about the actual component order.
	(MetalRootLayout.layoutContainer): Changed to not make
	assumptions about the actual component order.
	(installWindowDecorations): Pass the titlePane as parameter to
	the MetalRootLayout constructor.
	(uninstallWindowDecorations): Changed to not make
	assumptions about the actual component order.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(MetalTitlePane.MouseHandler): New inner class to handle dragging
	of frames.
	(MetalTitlePane.installListeners): Don't register a focus listener
	on the window. This is a potential memory leak and must be
	implemented on a different way. Install mouse listener here.
	(installWindowDecorations): Fixed assertion condition. Always
	insert the window decoration at index#1 in the layered 
	pane.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked):
	Only resize window if actual width or height value changes.
	Avoids nasty flicker when only setLocation() is beeing called
	on a window.

2006-04-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/GIOP/MessageHeader.java (read): Throw more informative
	exception if the magic sequence does not match.

2006-04-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/gnuRequest.java (p_invoke, submit): Do not try to read
	response for the one way messages.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/MenuSelectionManager.java
	(processKeyEvent): Implemented stub method.
	* javax/swing/JMenu.java
	(processKeyEvent): Implemented stub method.
	* javax/swing/JMenu.java
	(processKeyEvent): Implemented stub method.
	(processMenuKeyEvent): Implemented stub method.

2006-04-08  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractAction.java
	(readObject): Removed unneeded method.
	(writeObject): Removed unneeded method.

2006-04-08  Wolfgang Baer  <WBaer@gmx.de>

	* javax/swing/plaf/synth/SynthPainter.java: 
	(paintSplitPaneDividerBorder): Removed.

2006-04-08  Wolfgang Baer  <WBaer@gmx.de>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java: 
	(CLOSE_CMD, ICONIFY_CMD, MAXIMIZE_CMD, MOVE_CMD, RESTORE_CMD, SIZE_CMD):
	No longer constants.
	(static_initializer): Added to initialize above fields.
	* javax/accessibility/AccessibleRelation.java (LABEL_FOR, LABELED_BY, 
	MEMBER_OF, CONTROLLER_FOR, CONTROLLED_BY): No longer constants.
	(static_initializer): Added to initialize above fields.

2006-04-08  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/Dialog.java: Improved documentation all over.
	(Dialog(Frame)): If gc is null use the owners GraphicsConfiguration.
	(Dialog(Dialog)): Likewise.

2006-04-08  Mark Wielaard  <mark@klomp.org>

	* java/util/jar/JarFile.java (provider): New static field.
	(verify, verifyHashes, EntryInputStream.<init>): Pass provider
	to `getInstance.'

2006-04-08  Mark Wielaard  <mark@klomp.org>

	PR 27081
	* java/lang/StackTraceElement.java (toString): Don't add space
	between type and source indicator.

2006-04-07  Casey Marshall  <csm@gnu.org>

	Fixes PR classpath/24464	
	* java/util/jar/JarFile.java (verify, verifyHashes,
	EntryInputStream.<init>): pass the Gnu provider directly to
	`getInstance.'

2006-04-08  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR classpath/27071
	* gnu/java/security/hash/Whirlpool.java: Updated documentation.
	(DIGEST0): Use version 3 test vector.
	(Sd): Removed.
	(S_box): New field: Version 3 S-box values.
	(<clinit>): Use Version 3 circulant matrix to construct lookup tables.
	(transform): Formating.
	(padBuffer): Likewise.
	(getResult): Likewise.
	(selfTest): Likewise.

2006-04-07  Tom Tromey  <tromey@redhat.com>

	* java/util/InvalidPropertiesFormatException.java
	(serialVersionUID): New field.
	(readObject, writeObject): New methods.
	* java/util/Arrays.java (toString): Javadoc fixes.
	* java/net/URLConnection.java: Cleaned up imports.
	* java/lang/reflect/ParameterizedType.java: Javadoc fix.
	* java/lang/reflect/MalformedParameterizedTypeException.java
	(serialVersionUID): New field.
	* java/lang/reflect/GenericSignatureFormatError.java
	(serialVersionUID): New field.
	* java/lang/Class.java (Class): Javado fixes.
	(getComponentType): Likewise.
	(getGenericInterfaces): Likewise.
	(getTypeParameters): Likewise.
	* java/io/CharArrayWriter.java (append): Javadoc fixes.
	* java/lang/annotation/AnnotationFormatError.java (serialVersionUID):
	New field.
	* java/lang/TypeNotPresentException.java (serialVersionUID): New
	field.
	* java/lang/EnumConstantNotPresentException.java (serialVersionUID):
	New field.

2006-04-07  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/Dialog.java 
	(AccessibleAWTDialog): Added api docs
	(AccessibleAWTDialog.getAccessibleStateSet):
	 Renamed from getAccessibleState.
	* java/awt/Frame.java 
	(AccessibleAWTFrame): Added api docs
	(AccessibleAWTFrame.getAccessibleStateSet):
	 Renamed from getAccessibleState.

2006-04-07  Wolfgang Baer  <WBaer@gmx.de>

	* java/awt/Dialog.java: Reformatted.

2006-04-07  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(eventTypeEnabled): Added code for HierarchyEvent.HIERARCHY_CHANGED,
	HierarchyEvent.ANCESTOR_MOVED and HierarchyEvent.ANCESTOR_RESIZED.

2006-04-07  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextMembershipEvent.java
	(serialVersionUID): New field.
	* java/beans/beancontext/BeanContextServicesSupport.java
	(addBeanContextServicesListener): Synchronize.
	(addService): Implemented.
	(createBCSChild): Implemented.
	(BCSSChild): Added arguments.
	(fireServiceAdded): Implemented.
	(fireServiceRevoked): Implemented.
	(getCurrentServiceSelectors): Implemented.
	(hasService): Implemented.
	(removeBeanContextServicesListener): Implemented.
	(serviceAvailable): Implemented.
	(serviceRevoked): Implemented.
	* java/beans/beancontext/BeanContextSupport.java (BCSChild): Added
	arguments.
	(createBCSChild): Implemented.
	(BeanContextSupport): 
	(addBeanContextMembershipListener): Synchronize.
	(fireChildrenAdded): Implemented.
	(fireChildrenRemoved): Implemented.
	(BeanContextSupport): Use default locale.
	(isEmpty): Implemented.
	(isDesignTime): Implemented.
	(size): Implemented.
	(toArray): Synchronized.
	(toArray): Likewise.
	(iterator): Likewise.
	(BCSIterator): Implemented.
	(bcsChildren): Implemented.
	(validatePendingAdd): Implemented.
	(validatePendingRemove): Likewise.
	(childJustAddedHook): Implemented.
	(childJustRemovedHook): Likewise.
	(classEquals): Likewise.
	(toArray): Mark as stub.
	(setDesignTime): Implemented.
	(copyChildren): Implemented.
	(containsKey): Implemented.
	(contains): Likewise.
	(containsAll): Likewise.
	(getResource): Implemented.
	(getResourceAsStream): Likewise.
	(removeBeanContextMembershipListener): Likewise.
	* java/beans/beancontext/BeanContextServiceRevokedEvent.java
	(serialVersionUID): New field.
	* java/beans/beancontext/BeanContextServiceAvailableEvent.java
	(serialVersionUID): New field.
	* java/beans/beancontext/BeanContext.java (instantiateChild): Javadoc
	fix.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	PR 26937
	* javax/swing/MenuSelectionManager.java
	(setSelectedPath): Search one more item in the loop.
	
2006-04-06  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/renderable/RenderableImageProducer.java
	(image, context, consumers): New fields.
	(RenderableImageProducer): Implemented.
	(setRenderContext): Likewise.
	(addConsumer): Likewise.
	(isConsumer): Likewise.
	(removeConsumer): Likewise.
	(startProduction): Likewise.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(AccessibleAWTComponent.getBounds): Return the component
	bounds regardless of its showing state.
	(AccessibleAWTComponent.getLocation): Return the component
	location regardless of its showing state.
	(AccessibleAWTComponent.getSize): Return the component
	size regardless of its showing state.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JRootPane.java
	(getAccessibleContext): New method. Provides an accessibleContext
	for JRootPanes.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(initAccessibility): Use the 'gnu.classpath.home.url' property
	to determine the system confiuration directory.
	* java/awt/Component.java
	(dispatchEvent): Trigger Toolkit dispatching here.
	(dispatchEventImpl): Moved Toolkit dispatching to dispatchEvent,
	so it can't be overridden by subclasses and is performed in
	any case.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>
	
	* javax/naming/Binding.java: Added API docs.
	* javax/naming/NameClassPair.java: Added API docs.
	(fullName): New field.
	(setNameInNamespace): New 1.5 method.
	(getNameInNamespace): Likewise.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>

	* javax/naming/CompositeName.java: 
	(readObject): New deserialization method.
	(writeObject): New serialization method.

2006-03-29  Nektarios K. Papadopoulos  <npapadop at inaccessnetworks.com>

	* javax/security/auth/x500/X500Principal.java
	(readAttributeValue) Check for separator after quoted value was
	failing in all cases.

2006-04-06  Mark Wielaard  <mark@klomp.org>

	* java/lang/Class.java (getClassLoader): Don't do security check
	when loader is null.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getDefaultToolkit): Initialize accessibility after setting
	up the toolkit.
	(initAccessibility): New helper method to setup accessibility.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleAbstractButton.getAccessibleIcon): Implemented stub.
	(AccessibleAbstractButton.getAccessibleRelationSet): Implemented
	stub.
	(AccessibleAbstractButton.getIndexAtPoint): Implemented stub.
	(AccessibleAbstractButton.getAccessibleIcon): Implemented stub.
	(AccessibleAbstractButton.getCharacterBounds): Implemented stub.
	(AccessibleAbstractButton.getCharCount): Implemented stub.
	(AccessibleAbstractButton.getCaretPosition): Implemented stub.
	(AccessibleAbstractButton.getCharacterAttribute): Implemented stub.
	(AccessibleAbstractButton.getSelectionStart): Implemented stub.
	(AccessibleAbstractButton.getSelectionEnd): Implemented stub.
	(AccessibleAbstractButton.getSelectedText): Implemented stub.
	(AccessibleAbstractButton.getTextRectangle): Removed unneeded
	private method.

2006-04-06  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(AccessibleAWTComponent.getAccessibleStateSet): Don't handle opaque
	state here. This is only done in JComponent.
	* javax/swing/JComponent.java
	(AccessibleJComponent.getAccessibleStateSet): Handle opaque flag
	here.
	(getNextFocusableComponent): Implemented stub method.
	(grabFocus): Implemented stub method.
	(unregisterKeyboardAction): Implemented stub method.
	(setNextFocusableComponent): Implemented stub method.
	* javax/swing/CompatibilityFocusTraversalPolicy.java: New file.
	This is a helper class for providing compatibility with the older
	Swing focus API.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #26995
	* javax/naming/directory/BasicAttribute.java,
	* javax/naming/directory/BasicAttributes.java: 
	(readObject): New deserialization method.
	(writeObject): New serialization method.

2006-04-06  Wolfgang Baer  <WBaer@gmx.de>

	* javax/xml/validation/SchemaFactory.java: Corrected since tag.
	(getErrorHandler): Made method abstract.
	(setErrorHanlder): Likewise.
	* gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java
	(getErrorHandler): Implement abstract method from superclass.
	(setErrorHandler): Likewise.
	(errorHandler): New field.
	* gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java: 	
	(getErrorHandler): Implement abstract method from superclass.
	(setErrorHandler): Likewise.
	(errorHandler): New field.	
	* javax/xml/XMLConstants.java: Corrected since tag.
	(XMLConstants): Added private constructor.
	* javax/xml/datatype/Duration.java: Corrected since tag.
	(multiply): Made method abstract.
	* javax/xml/datatype/DatatypeConstants.java: Corrected since tag.
	(DatatypeConstants): Added private constructor.
	* javax/xml/xpath/XPathConstants.java: Corrected since tag.
	(XPathConstants): Added private constructor.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* javax/security/auth/kerberos/ServicePermission.java: Now final.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	PR libgcj/26625:
	* lib/Makefile.am (compile-classes): Touch the output file.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleAbstractButton.getAccessibleStateSet): Removed handling
	of the focused state. This is already done in AccessibleAWTComponent.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(accessibleContext): Fixed API doc for this field.
	(AccessibleJComponent.AccessibleFocusHandler): Fixed API docs.
	(AccessibleJComponent.AccessibleFocusHandler.focusGained):
	Implemented and added API docs.
	(AccessibleJComponent.AccessibleFocusHandler.focusLost):
	Implemented and added API docs.
	(AccessibleJComponent.AccessibleContainerHandler): Fixed API docs.
	(AccessibleJComponent.AccessibleContainerHandler.componentAdded):
	Implemented and added API docs.
	(AccessibleJComponent.AccessibleContainerHandler.componentRemoved):
	Implemented and added API docs.
	(AccessibleJComponent.accessibleContainerHandler): Added API docs.
	(AccessibleJComponent.accessibleFocusHandler): Added API docs.
	(AccessibleJComponent.addPropertyChangeListener): Added API docs.
	(AccessibleJComponent.removePropertyChangeListener): Added API docs.
	(AccessibleJComponent.getAccessibleStateSet): Simply return
	super here. Added comment about this.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.addPropertyChangeListener): Install
	ContainerHandler and FocusHandler here.
	(AccessibleJComponent.removePropertyChangeListener): Uninstall
	ContainerHandler and FocusHandler here.
	(AccessibleJComponent.getAccessibleChildrenCount): Replaced
	by super.getAccessibleChildrenCount().
	(AccessibleJComponent.getAccessibleChild): Replaced
	by super.getAccessibleChild().
	(AccessibleJComponent.getAccessibleStateSet): Implemented by
	adding OPAQUE to the supported states.
	(AccessibleJComponent.getAccessibleName): Added titled border
	and label fallbacks.
	(AccessibleJComponent.getAccessibleDescription): Added tooltip
	and label fallbacks.
	(AccessibleJComponent.getAccessibleRole): Removed TODO.
	(AccessibleJComponent.getAccessibleKeyBinding): Added comment
	explaining why return null seems correct here.
	* javax/swing/JLabel.java
	(LABEL_PROPERTY): New constant.
	(setLabelFor): Store label in labeled component's client properties
	for the AccessibleJComponent to read.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/ZipFile.java (available): Defer to super if
	entry's size is unknown.

2006-04-05  Tom Tromey  <tromey@redhat.com>

	* java/net/MimeTypeMapper.java (MimeTypeMapper): Look for system
	property with mime.types name.
	* gnu/classpath/SystemProperties.java: Set
	gnu.classpath.mime.types.file if not already set.
	* java/net/URLConnection.java (defaultFactory): New field.
	(guessContentTypeFromStream): Mark as unimplemented.
	(getContentHandler): Updated with libgcj's implementation.
	* gnu/java/net/DefaultContentHandlerFactory.java: New file,
	from libgcj.

2006-04-05  Bryce McKinlay  <mckinlay@redhat.com>

	PR classpath/27028
	PR classpath/24752
	* java/util/AbstractList.java (hasNext): Don't throw
	ConcurrentModificationException. Update Javadoc.
	(hasPrevious): Likewise.
	(nextIndex): Likewise.
	(previousIndex): Likewise.
	* java/util/HashMap.java (hasNext): Likewise.
	* java/util/Hashtable.java (hasNext): Likewise.
	* java/util/IdentityHashMap.java (hasNext): Likewise.
	* java/util/LinkedHashMap.java (hasNext): Likewise.
	* java/util/LinkedList.java (nextIndex): Likewise.
	(previousIndex): Likewise.
	(hasNext): Likewise.
	(hasPrevious): Likewise.
	* java/util/TreeMap.java (hasNext): Likewise.
	* java/util/WeakHashMap.java (hasNext): Likewise.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AccessibleAbstractButton.getAccessibleStateSet): Implemented stub.
	(AccessibleAbstractButton.doAccessibleAction): Implemented stub.
	(AccessibleAbstractButton.getAccessibleAction): Implemented stub.
	(AccessibleAbstractButton.getAccessibleActionCount): Implemented stub.
	(AccessibleAbstractButton.getAccessibleActionDescription):
	Implemented stub.
	(AccessibleAbstractButton.getAccessibleText): Implemented stub.
	(AccessibleAbstractButton.getAccessibleAction): Implemented stub.
	(AccessibleAbstractButton.getCurrentAccessibleValue): Implemented stub.
	(AccessibleAbstractButton.setCurrentAccessibleValue): Implemented stub.
	(AccessibleAbstractButton.getMinimumAccessibleValue): Implemented stub.
	(AccessibleAbstractButton.getMaximumAccessibleValue): Implemented stub.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(selectWithKeyChar): Implemented stubbed method.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/LookAndFeel.java
	(installProperty): New method. Allows primitive typed properties
	to be handled like UIResources.
	* javax/swing/AbstractButton.java
	(clientBorderPaintedSet): New field.
	(clientRolloverEnabledSet): New field.
	(clientIconTextGapSet): New field.
	(clientContentAreaFilledSet): New field.
	(setRolloverEnabled): Set the client field to true.
	(setBorderPainted): Likewise.
	(setIconTextGap): Likewise.
	(setContentAreaFilled): Likewise.
	(setUIProperty): New helper method.
	* javax/swing/JComponent.java
	(clientOpaqueSet): New field.
	(clientAutoscrollsSet): New field.
	(setAutoscrolls): Set the client field to true.
	(setOpaque): Likewise.
	(setUIProperty): New helper method.
	* javax/swing/JDesktopPane.java
	(clientDragModeSet): New field.
	(setDragMode): Set the client field to true.
	(setUIProperty): New helper method.
	* javax/swing/JSplitPane.java
	(clientDividerSizeSet): New field.
	(clientOneTouchExpandableSet): New field.
	(setDividerSize): Set the client field to true.
	(setOneTouchExpandable): Likewise.
	(setUIProperty): New helper method.
	* javax/swing/JTable.java
	(clientRowHeightSet): New field.
	(setRowHeight): Set the client field to true.
	(setUIProperty): New helper method.
	* javax/swing/JTree.java
	(clientRowHeightSet): New field.
	(clientScrollsOnExpandSet): New field.
	(clientShowsRootHandlesSet): New field.
	(setRowHeight): Set the client field to true.
	(setShowsRootHandles): Likewise.
	(setScrollsOnExpand): Likewise.
	(setUIProperty): New helper method.

2006-04-05  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(getFont): Don't request the font from the peer's graphics. The
	graphics should instead get the font from the Component, which might
	result in a loop.
	(getFocusCycleAncestor): Don't special case Window.
	(nextFocus): Moved implementation from the DefaultKeyboardFocusManager
	to here. Correctly determine the focus cycle root.
	(transferFocusBackward): Likewise.
	(transferFocusUpCycle): Likewise.
	* java/awt/Container.java
	(transferFocusDownCycle): Moved implementation from
	DefaultKeyboardFocusManager to here.
	* java/awt/DefaultKeyboardFocusManager.java
	(focusPreviousComponent): Moved implementation to
	Component.transferFocusBackward().
	(focusNextComponent): Moved implementation to
	Component.nextFocus().
	(upFocusCycle): Moved implementation to
	Component.transferFocusUpCycle().
	(downFocusCycle): Moved implementation to
	Container.transferFocusDownCycle().

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(equals): Implemented,
	(hashCode): Likewise.

2006-04-05  Jeroen Frijters  <jeroen@frijters.net>

	* java/lang/Class.java
	(cast): New method.

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(getBankIndices): Return a copy of the array, not a reference to the
	original,
	(getBandOffsets): Likewise.

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java: Added API docs all over.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	* java/net/MimeTypeMapper.java (MimeTypeMapper): Fixed indices.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	* java/net/MimeTypeMapper.java (mime_types): No longer static.
	(MimeTypeMapper): Initialize.
	(fillFromFile): New method.
	(main): New method.
	(mime_strings): Updated.

2006-04-04  Tom Tromey  <tromey@redhat.com>

	* lib/gen-classlist.sh.in: Correct handle generated files.

2006-04-04  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/CharIndexed.java(setAnchor): New method.
	* gnu/regexp/CharIndexedInputStream.java(setAnchor): New method.
	* gnu/regexp/CharIndexedCharSequence.java: New file.
	* gnu/regexp/CharIndexedCharArray.java: Rewritten as an extention of
	gnu.regexp.CharIndexedCharSequence.
	* gnu/regexp/CharIndexedString.java: Likewise.
	* gnu/regexp/CharIndexedStringBuffer.java: Likewise.
	* gnu/regexp/RE.java(makeCharIndexed): Make a new CharIndexed
	using CharIndexedCharSequence. Use setAnchor when the input
	object is already a CharIndexed.
	* java/util/regex/Matcher.java(inputCharIndexed): New field
	to be used as a parameter of the RE#getMatch.

2006-04-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/SampleModel.java: Reformatted.

2006-04-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java
	(ComponentSampleModel(int, int, int, int, int[])): Added API 
	documentation,
	(ComponentSampleModel(int, int, int, int, int[], int[]): Throw 
	IllegalArgumentException for DataBuffer.TYPE_UNDEFINED, take copies
	of the bandOffsets and bankIndices arguments, added API documentation,
	* java/awt/image/SampleModel.java
	(SampleModel(int, int, int, int): Throw IllegalArgumentException for
	unrecognised dataTypes, w * h exceeds Integer.MAX_VALUE, and numBands
	less than or equal to zero, added API documentation.

2006-04-04  Lillian Angel  <langel@redhat.com>

	* java/util/zip/ZipFile.java
	(getInputStream): Fixed to return size of ZipEntry
	minus the total bytes read. This guarantees that the 
	right value is returned even if some bytes have already
	been read.

2006-04-04  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGImageWriteParam.java (messages):
	Remove static modifier.

2006-04-04  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/image/ComponentSampleModel.java: Reformatted.

2006-04-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGImageWriteParam.java: New file.
	* javax/imageio/plugins/jpeg/JPEGImageReadParam.java: Add
	retrieval instructions to javadoc header.
	* javax/imageio/ImageWriteParam.java: Fix javadoc for
	compressionType field.
	* lib/Makefile.am (propertydirs): Add javax directory.
	(propertyfiles): Likewise.
	* resource/javax/imageio/plugins/jpeg/MessagesBundle.properties:
	New file.

2006-04-03  Tom Tromey  <tromey@redhat.com>

	PR classpath/26971:
	* javax/naming/directory/BasicAttribute.java: Added missing @since.
	(BasicAttributeEnumeration.where): Initialize to 0.
	(BasicAttributeEnumeration.nextElement): Post-increment 'where'.

2006-04-03  Lillian Angel  <langel@redhat.com>

	PR classpath/24596 and PR classpath/26930
	* java/util/zip/ZipFile.java
	(getInputStream): Override available function for 
	InflaterInputStream instance.

2006-04-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGImageReadParam.java: New file.

2006-04-03  Tom Tromey  <tromey@redhat.com>

	* javax/security/auth/kerberos/ServicePermission.java: New file.
	* javax/security/auth/kerberos/DelegationPermission.java: New file.
	* javax/security/auth/kerberos/KerberosKey.java: New file.
	* javax/security/auth/kerberos/KeyImpl.java: New file.
	* javax/security/auth/kerberos/KerberosTicket.java: New file.
	* javax/security/auth/kerberos/KerberosPrincipal.java: New file.

2006-04-03  Sven de Marothy  <sven@physto.se>

	* gnu/java/awt/peer/gtk/GtkClipboard.java: Add support for
	non-GtkImage images.

2006-04-03  Mark Wielaard  <mark@klomp.org>

	* lib/gen-classlist.sh.in: Use classes.tmp, not classes.2
	as temporary file name.

2006-04-03  Dalibor Topic  <robilad@kaffe.org>

	* INSTALL: Documented --with-glibj-zip option.

2006-04-03  Dalibor Topic  <robilad@kaffe.org>

	Fixed all pscan warnings.

	* native/jni/classpath/jcl.c (JCL_ThrowException),
	native/jni/classpath/jcl.h (DBG),
	native/target/generic/target_generic.h (TARGET_NATIVE_LAST_ERROR_STRING_FORMAT),
	native/target/generic/target_generic_misc.h (TARGET_NATIVE_MISC_FORMAT_STRING0):
	Use "%s" format in fprintf and snprintf explicitely when printing a single 
	string to prevent format string exploits.
	
	* native/jni/java-net/javanet.h (DBG): Removed duplicate
	definition. Included jcl.h instead.
 
2006-04-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java: Removed unused imports.
	(provider): Made it protected.
	(providerInstalled): New field.
	(Main): Made it a 0-arguments constructor.
	Removed throws clasue.
	(main): Removed throws clause.
	Call processArgs(args) after constructing instance.
	Call teardown() before existing.
	(processArgs): Added javadoc.
	Reduced to throws Exception.
	(start): Likewise.
	(teardown): New method.
	(setupCommonParams): Added javadoc.
	Install designated provider if not already installed.
	(installNewProvider): New method.
	(setupSigningParams): Added javadoc.
	Instantiate the KeyStore using type only.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java:
	Removed unused imports.
	(start): Reduced to throws Exception.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java (start): Likewise.
	* tools/gnu/classpath/tools/jarsigner/HashUtils.java:
	Re-organized imports.
	* gnu/java/security/key/KeyPairGeneratorFactory.java (getInstance):
	Test ignoring case.
	(getNames): Add "dsa" as an algorithm provided by this Factory.
	(makeInstance): Construct IllegalArgumentException with 2 arguments.

2006-04-03  Roman Kennke  <kennke@aicas.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector):
	Replaced g_free() with pango_item_free() to avoid problems
	with the allocator.

2006-04-03  Rafael H. Schloming  <rafaels@redhat.com>

	Fixes bug #26668
	* java/util/logging/Level.java (parse): Document.
	* java/util/logging/LogManager.java (rootLogger): Removed.
	(LogManager): Just set loggers to new HashMap.
	(getLogManager): Make synchronized. Create and init LogManager if it
	doesn't exist yet.
	(static): Removed block.
	(MANAGER_PROPERTY): New private final string.
	(makeLogManager): Use new property string, move warning to
	createInstance() method.
	(CONFIG_PROPERTY): New private final string.
	(initLogManager): New method.
	(addLogger): Use Logger.root, not rootLogger.
	(findAncestor): Likewise.
	(readConfiguration): Move warning to createInstance() method.
	Add handlers directly to Logger.root. Warn about bad level values.
	(getClassProperty): Use new locateClass() method.
	(getInstanceProperty): Only catch specific newInstance Errors.
	(createInstance): Make private and takes a string to use in warning
	messages. Use new locateClass() method and generate appropriate
	warning message.
	(warn): New methods.
	(locateClass): Locates a class through the context class loader and
	system class loader as backup.
	* java/util/logging/Logger.java (root): New static final field.
	(Logger): Set parent to root.
	(setParent): Directly check root field.

2006-04-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Collections.java:
	(binarySearch(List, T)): Fixed signature.
	(unmodifiableList(List)): Likewise.
	(UnmodifiableList(List)): Fixed constructor.
	(UnmodifiableRandomAccessList(List)): Likewise.
	(unmodifiableMap(Map)): Fixed signature.
	(UnmodifiableMap(Map)): Fixed constructor.
	(unmodifiableSortedMap(Map)): Fixed signature.
	(UnmodifiableSortedMap(Map)): Fixed constructor.
	
2006-04-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectOutputStream.java:
	(writeObject(Object)): Added enum support.
	(writeClassDescriptor(ObjectStreamClass)): Likewise.
	* java/io/ObjectStreamClass.java:
	(isEnum()): New package-private method.
	(setFlags(Class)): Added enum support.
	* java/io/ObjectStreamConstants.java:
	(SC_ENUM): Added.
	
2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Segment.java:
	(setPosition): Make exception message more verbose.
	* javax/swing/text/WrappedPlainView.java:
	(insertUpdate): Removed unneeded repaint call.
	(changeUpdate): Dito.
	(removeUpdate): Dito.
	(WrappedLine.determineNumLines): Do not return numLines, break
	from loop if no new break point has been calculated.
	(WrappedLine.updateDamage): Rewritten.
	(WrappedLine.insertUpdate): Removed unneeded update code.
	(WrappedLine.removeUpdate): Removed unneeded update code, added
	comment.	

2006-04-02  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac (with-glibj-zip): Added new option.

	* examples/Makefile.am,
	lib/Makefile.am,
	tools/Makefile.am: Adapted build classpath to use glibj.zip,
	in addition to classes in lib directory.

2006-04-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/GRMIC.java,
	tools/gnu/classpath/tools/giop/IorParser.java,
	tools/gnu/classpath/tools/giop/grmic/CompilationError.java,
	tools/gnu/classpath/tools/giop/grmic/Generator.java,
	tools/gnu/classpath/tools/giop/grmic/GiopIo.java,
	tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java,
	tools/gnu/classpath/tools/giop/grmic/HashFinder.java,
	tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java,
	tools/gnu/classpath/tools/rmi/RMIC.java,
	tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java,
	tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java,
	tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java: Removed
	linking exception from the licensing header.
	* tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java:
	Added licensing header.

2006-04-02  Mark Wielaard  <mark@klomp.org>

	* tools/Makefile.am (bin_SCRIPTS): Renamed to jarsigner.sh.
	(jarsigner): Removed.

2006-04-02  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac: don't check for isnan function.
	* native/fdlibm/fdlibm.h: Always use the isnan macro.

2006-04-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* configure.ac: Added tools/jarsigner.sh to AC_CONFIG_FILES.
	* tools/Makefile.am: Generate jarsigner shell script.
	* tools/jarsigner.sh.in: New template.
	* tools/.cvsignore: Added jarsigner.sh.

2006-04-02  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/HashUtils.java: Use GPL.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/Main.java: Likewise.
	Re-organised imports.

2006-04-01  Bernhard Rosenkraenzer  <bero@arklinux.org>

	PR classpath/25924:
	* java/awt/image/DirectColorModel.java (extractAndNormalizeSample):
	Handle case where alpha==0.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	PR #26676
	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Added check to decrement pos not below zero,
	changed	'>' comparison to '>='.
	* javax/swing/text/WrappedPlainView.java:
	(lineHeight): New field.
	(calculateBreakPosition): Throw InternalError in catch block, removed
	unneeded brackets, use specific version of
	Utilities.getTabbedTextOffset.
	(paint): Set various properties neccessary for drawing.
	(WrappedLine.paint): Removed code to set field of outer class.
	(WrappedLine.modelToView): Removed unneeded expression from
	if-statement.
	(WrappedLine.viewToModel): Initialize end with endOffset - 1, removed
	-1 from return statement, copy only a subset into the Segment, removed
	special	handling of mark value - just return it, simplified
	incrementation of currLineStart.
	(WrappedLine.insertUpdate): Recalculate numLines, report preference
	change to parent view.
	(WrappedLine.removeUpdate): Dito.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/Segment.java:
	(toString): Return empty string when array is null.

2006-04-02  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/plaf/basic/BasicTextUI.java:
	(damageRange): Use SwingUtilities.computeUnion to avoid
	unneccessary Rectangle instantiation.

2006-04-01  Tom Tromey  <tromey@redhat.com>

	* java/security/cert/Certificate.java (serialVersionUID): Fixed.

2006-04-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/CompositeView.java: Fixed copyright header.
	* javax/swing/text/BoxView.java: Fixed copyright header.
	* javax/swing/text/WrappedPlainView.java: Fixed copyright header.
	* javax/swing/text/Utilities.java: Fixed copyright header.

2006-04-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/CompositeView.java:
	(modelToView): Throw BadLocationException when no child
	view can be found, restructed to throw exception as early
	as possible.
	(viewToModel): Use mutable allocation as argument for viewToModel
	call on child view.
	* javax/swing/text/BoxView.java:
	(getViewAtPoint): Call setBounds() r before method returns with
	suitable child view.
	* javax/swing/text/Utilities.java:
	(getPositionBelow): Added try-catch-block around modelToView call,
	added method return when BadLocationException was thrown.
	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.viewToModel): Changed '<=' to '<' in if-expression,
	added note about meaning of rect.x and rect.width, removed unneeded
	checks, added code to not return the last possible document offset.

2006-04-01  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/WrappedPlainView.java:
	(WrappedLine.viewToModel): Change < to <= in if-statement,
	removed addition of currLineStart to return value.
	* javax/swing/text/BoxView.java:
	(getViewAtPoint): Use copy instead of r for method call
	which modifies the second argument.

2006-04-01  Mark Wielaard  <mark@klomp.org>

	Fixes PR26973
	* java/util/jar/Attributes.java: Fully qualify java.util.Map.

2006-03-31  Tom Tromey  <tromey@redhat.com>

	* lib/split-for-gcj.sh: Updated for multi-field format.
	* lib/Makefile.am (CLEANFILES): Added classes.2.
	* lib/gen-classlist.sh.in (GCJ): Removed.  Create classes.1 and
	classes.2 using multiple fields.

2006-03-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (columnSelectionChanged):
	Removed print statement.
	* javax/swing/DefaultListSelectionModel.java
	(addSelectionInterval, removeSelectionInterval):
	Fire the difference between selection. (setLeadSelectionIndex):
	Fire the difference and mark current and previous lead
	selection indexes for repaint.

2006-03-31  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java: Eliminate
	unnecessary copying.
	* javax/imageio/plugins/jpeg/JPEGQTable.java: Likewise.

2006-03-31  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(translateEvent): oldKey should be the value of the
	key char.

2006-03-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (columnSelectionChanged):
	Treat second repaint parameter as width.

2006-03-31  Lillian Angel  <langel@redhat.com>
	
	PR classpath/26924
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java
	(realize): New native function.
	* include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h:
	Added new function declaration.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
	(realize): New function.

2006-03-31  Robert Schuster  <robertschuster@fsfe.org>
	
	* javax/swing/text/GapContent.java:
	(replace): Move all Position instances from gap's end to
	it's start before increasing the gap start.
	* javax/swing/plaf/basic/BasicTextAreaUI.java:
	(propertyChanged): Update the view only instead of
	indicating a document change.

2006-03-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(fireActionPerformed): Put the textfields text in the action
	instead of the action name.

2006-04-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (setupCommonParams):
	Check for null jar-file argument.
	(setupSigningParams): Check for null alias argument.

2006-03-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(paintChildren): Split up in two cases, depending on the
	optimizedDrawingEnabled flag.
	(paintChildrenWithOverlap): New method. Paints children when
	not optimizedDrawingEnabled. This implements better painting
	algorithm for overlapping components, so that the painted
	regions are minimized.
	(paintChildrenOptimized): New method. Paints children when
	when optimizedDrawingEnabled. This implements a painting
	algorithm that is optimized for the case when all children
	are guaranteed to be tiled.

2006-03-31  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/SFHelper.java (updateEntry): Use
	Attributes.putValue(String,String).
	(finishSigning): Likewise.
	* gnu/java/util/jar/JarUtils.java (MANIFEST_VERSION): New constant.
	(SIGNATURE_VERSION): Likewise.
	(readSFManifest): Use local string constant.
	(readMainSection): Likewise.
	(readVersionInfo): Likewise.
	* java/util/jar/Attributes.java (MANIFEST_VERSION):
	Redefined using JarUtils constant.
	(SIGNATURE_VERSION): Likewise.
	(putValue(Name,String)): Made it private.

2006-03-31  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/DefaultListSelectionModel.java (fireDifference):
	New method. (clearSelection): Rewritten. (setSelectionInterval):
	Fire the difference between current and new selection.
	* javax/swing/JTable.java (columnSelectionChanged, valueChanged):
	Only repaint the region, where selection has been changed.
	* javax/swing/plaf/basic/BasicTableUI.java 
	(TableAction.actionPerformed): Do not change the column selection
	when only row selection change is wanted (and in reverse) and 
	do not call the repaint() here.

2006-03-31  David Gilbert  <david.gilbert@object-refinery.com>

	Fixes bug #26951
	* javax/swing/DefaultComboBoxModel.java
	(DefaultComboBoxModel(Vector)): Call getSize() instead of 
	vector.size(),
	(addElement): Call list.addElement() rather than list.add(), and only
	update selected item if it is currently null,
	(removeElementAt): Update selected item, then remove the element.

2006-03-31  David Gilbert  <david.gilbert@object-refinery.com>

	Fixes bug #26955
	* java/awt/geom/Point2D.java
	(distanceSq(double, double)): Fixed order of arguments,
	(distanceSq(Point2D)): Likewise,
	(distance(double, double)): Likewise,
	(distance(Point2D)): Likewise.

2006-03-30  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGQTable.java: New file.
	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java
	(ACChrominanceLengths, ACChrominanceValues, ACLuminanceLengths,
	ACLuminanceValues, DCChrominanceLengths, DCChrominanceValues,
	DCLuminanceLengths, DCLuminanceValues): Remove fields.

2006-03-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.swing.JTable (constructor): Initialize column
	model column margin and table row margin before setting the
	table column model. (initialiseLocalVars): Do not call 
	setIntercellSpacing.

2006-03-30  Chris Burdess  <dog@gnu.org>

	* javax/xml/datatype/DatatypeFactory.java (newDurationDayTime): Fix
	  method signature.
	* javax/xml/validation/SchemaFactoryLoader.java: New file.

2006-03-30  Mark Wielaard  <mark@klomp.org>

	PR 26848
	* java/awt/Window.java (dispatchEventImpl): On ComponentEvents
	adjust bounds. On resize invalidate and validate container.
	Always pass on ComponentEvents to Container super class.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (setBounds): Adjust for
	menuBar and pass to GtkWindowPeer super class.
	(postConfigureEvent): Adjust menu bar width. Adjust y and height
	bounds and pass to GtkWindowPeer super class.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java (x, y, width, height):
	New fields for local bounds.
	(getX, getY): New methods.
	(getWidth): Don't call into awtComponent.
	(getHeight): Likewise.
	(create): Cache local bounds.
	(setLocation): Documented, made protected and just call
	nativeSetLocation.
	(setLocationUnlocked): Removed unused method.
	(setBoundsUnlocked): Likewise.
	(setBounds): Check whether bounds actually changed and cache local
	bounds.
	(setSize): Documented and made protected.
	(setResizable): Documented and cache local bounds.
	(postConfigureEvent): Update local bounds. Don't call awtComponent
	directly but post ComponentEvents.
	(show): Cache local bounds.
	(getBounds): Override to return cached bounds.

2006-03-30  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GdkGraphics.java
	(drawImage): Added check to prevent NPE.
	(drawImage): Likewise.
	(drawImage): Likewise.
	* java/awt/Choice.java
	(dispatchEventImpl): New function. selectedIndex was
	not being updated properly otherwise.

2006-03-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(removeTabAt): Removed debug code.

2006-03-30  Roman Kennke  <kennke@aicas.com>

	PR 26045
	* javax/swing/plaf/basic/BasicTextUI.java
	(installKeyboardActions): Simply call getKeymap() and install this.
	(createKeymap): Reimplemented to fetch a keymap from the UIManager.

2006-03-30  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(removeTabAt): Adjust selection correctly when removing a tab
	before the selected tab. Also remove the component from the
	container, not only the tab object. Repaint and revalidate the
	component after the removal.
	(removeAll): Set selection to -1 before removing the tabs.

2006-03-29  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/ObjectInputStream.java:
	(parseContent(byte)): Added enum support.
	* java/io/ObjectStreamConstants.java:
	(TC_ENUM): Added.
	(TC_MAX): Changed to new maximum, TC_ENUM.
	
2006-03-29  Lillian Angel  <langel@redhat.com>

	Partial fix for bug #26929
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(updateComponent): Removed. We want to clear the panel
	before painting.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect): Fixed typo.
	Should set the background to the saved background color.

2006-03-29  Mark Wielaard  <mark@klomp.org>

	Partial fix for bug #26848 (pack).
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (setVisible):
	Always show instances of Window.

2006-03-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(setPaintLabels): Only create standard labels if labelTable is null,
	* javax/swing/plaf/basic/BasicSliderUI.java
	(PropertyChangeHandler.propertyChange): Recalculate geometry for 
	"paintTicks" property change,
	(calculateThumbSize): Updated API docs,
	(calculateContentRect): Likewise,
	(calculateTrackBuffer): Take into account the lowest and highest 
	labels when calculating buffer space,
	(calculateTrackRect): Include labels, if visible, in the calculation of
	the trackRect position,
	(calculateTickRect): Height is zero if ticks are not painted,
	(calculateLabelRect): Use max dimensions of actual labels,
	(getWidthOfHighValueLabel): Use preferred size,
	(getWidthOfLowValueLabel): Likewise,
	(getHeightOfHighValueLabel): Likewise,
	(getHeightOfLowValueLabel): Likewise,
	(drawInverted): Just return slider setting,
	(getHighestValueLabel): Updated API docs,
	(paintTicks): Removed redundant (and buggy) code, replaced with calls 
	to xPositionForValue() and yPositionForValue(),
	(paintHorizontalLabel): Removed full qualification of class name,
	(paintVerticalLabel): Likewise,
	(xPositionForValue): Reimplemented,
	(yPositionForValue): Reimplemented,
	* javax/swing/plaf/metal/MetalSliderUI.java
	(paintTrack): Made track one pixel longer.

2006-03-29  Tom Tromey  <tromey@redhat.com>

	PR gcc/26901:
	* tools/Makefile.am (JCOMPILER): Added encoding options.
	* examples/Makefile.am (JCOMPILER): Added encoding options.

2006-03-29  Gary Benson  <gbenson@redhat.com>

	Partial fix for PR classpath/24895
	* java/io/FilePermission.java (implies): Canonicalize paths.

2006-03-29  Robert Schuster  <robertschuster@fsfe.org>

	PR 26888
	* javax/swing/text/GapContent.java:
	(replace): Added call to resetMarksAtZero.

2006-03-29  Roman Kennke  <kennke@aicas.com>

	PR 23527
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(cachedRect): New field.
	(BasicMenuItemUI): Initialize cachedRect field.
	(getPreferredMenuItemSize): Use layoutMenuItem() helper method
	to determine layout. Store maximum accelerator and text width
	in client properties of parent to allow correct alignment
	of accelerators among menu items of one menu.
	(paintMenuItem): Outsourced menu item layout into layoutMenuItem
	method. Align accelerators according to the values calculated
	in getPreferredMenuItemSize.
	(getAcceleratorString) New helper method.
	(layoutMenuItem): New helper method.

2006-03-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java: Rewritten.
	* gnu/java/rmi/activation/BidiTable.java: Rewritten.
	* gnu/java/rmi/dgc/LeaseRenewingTask.java (constructor, sheduleLeases):
	Avoid NPEs.
	* gnu/java/rmi/server/ActivatableServerRef.java (getRefClass, 
	readExternal, writeExternal): New methods.
	* gnu/java/rmi/server/UnicastRef.java (invokeCommon): Splitten into
	two stages, invokeCommon(Remote, ...) and 
	invokeCommen(UnicastConnection, ...).
	* java/rmi/server/RemoteObject.java (readObject, writeObject): Expect
	also the ActivatableRef. toString(): Documented.
	* gnu/java/rmi/server/ActivatableRef.java,
	tools/gnu/classpath/tools/rmi/Persistent.java,
	tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java,
	tools/gnu/classpath/tools/rmi/PersistentHashTable.java,
	tools/gnu/classpath/tools/rmi/REGISTRY.java,
	tools/gnu/classpath/tools/rmi/REGISTRY.txt,
	tools/gnu/classpath/tools/rmi/RMID.java,
	tools/gnu/classpath/tools/rmi/RMID.txt,
	tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java,
	tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java,
	tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java,
	tools/gnu/classpath/tools/rmi/registry/package.html,
	tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl.java,
	tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java: 
	New files.
	* tools/README: Documented.
	* NEWS: Added entry about the activation.

2006-03-29  Roman Kennke  <kennke@aicas.com>

	PR 23527
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(viewRect): New field.
	(textRect): New field.
	(accelRect): New field.
	(iconRect): New field.
	(arrowIconRect): New field.
	(checkIconRect): New field.
	(BasicMenuItemUI): Initialize new fields.
	(paintMenuItem): Rewritten to correctly layout and paint
	the menu item in a more straightforward way. Use cached rectangle
	objects for layout.
	(paintAccelerator): Pulled inside the paintMenuItem method.

2006-03-29  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12Method.jav:
	Do not use initCause with UnexpectedException.
	* tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav:
	Likewise. 

2006-03-29  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(setCursorID): Removed unused static variable.

2006-03-29  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java: Reformatted.

2006-03-29  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26527
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetCursorUnlocked): Call gdk_flush().

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/UIManager.java
	(installLookAndFeel): Implemented.
	(setInstalledLookAndFeels): Implemented.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Paint gradient only when the background color
	is not a UIResource and if the button is neither armed nor
	pressed and if the button is contentAreaFilled.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JLayeredPane.java
	(addImpl): Repaint added component.

2006-03-28  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* java/util/regex/Matcher.java: Reverted.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AsyncBoxView.java
	(setEstimatedMajorSpan): Made method protected.
	(getEstimatedMajorSpan): Made method protected.
	* javax/swing/text/BoxView.java
	(flipEastAndWestAtEnds): Fixed typo.
	* javax/swing/text/InternationalFormatter.java
	(getActions): Made method protected.
	* javax/swing/text/Position.java
	(Bias): Made class final.
	* javax/swing/text/html/HTML.java
	(MEDIA): Made field package private. Not specified.
	(NOBR): Made field package private. Not specified.
	* javax/swing/text/html/NullView.java
	Made class package private.
	* javax/swing/text/html/parser/Entity.java
	Made class non-serializable as specified.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Don't paint gradient if the background color is
	no UIResource. Removed double getModel() call. Don't check for
	OceanTheme.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paint): Call paintMenuItem with the selectionBackground as
	parameter.
	(paintBackground): Fixed the condition and color for the background
	painting.

2006-03-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(tabsOpaque): New field.
	(paintLeftTabBorder): Paint some parts only when the tabs are
	opaque. Determine the tab background using the paintLeftTabBorder()
	helper method.
	(paintRightTabBorder): Likewise.
	(installDefaults): Fetch tabsOpaque property from the UIDefaults.

2006-03-27  Tom Tromey  <tromey@redhat.com>

	PR classpath/25189:
	* java/lang/Enum.java (valueOf): Ensure that the named field
	is an enum constant.
	(compareTo): Check class of enum.

2006-03-27  Tom Tromey  <tromey@redhat.com>

	* java/lang/reflect/ParameterizedType.java: Javadoc fix.

2006-03-27  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/lang/reflect/Method.java (METHOD_MODIFIERS):
	New constant.
	(getModifiersInternal): Renamed from getModifiers.
	(getModifiers): New method.
	(isBridge): Likewise.
	(isSynthetic): Likewise.
	(isVarArgs): Likewise.
	* vm/reference/java/lang/reflect/Field.java (FIELD_MODIFIERS):
	New constant.
	(getModifiersInternal): Renamed from getModifiers.
	(getModifiers): New method.
	(isSynthetic): Likewise.
	(isEnumConstant): Likewise.
	* vm/reference/java/lang/reflect/Constructor.java
	(getModifiersInternal): Renamed from getModifiers.
	(getModifiers): New method
	(CONSTRUCTOR_MODIFIERS): New constant.
	(isSynthetic): New method.
	(isVarArgs): Likewise.
	* java/lang/reflect/Member.java (isSynthetic): New method.

2006-03-28  Tom Tromey  <tromey@redhat.com>

	* java/net/Proxy.java (TYPE): Added missing ";".

2006-03-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/math/RoundingMode.java:
	Fixed serialization UID.
	* java/net/Proxy.java:
	(Type): Likewise.
	
2006-03-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/io/CharArrayWriter.java:
	(append(char)): Documented.
	(append(CharSequence)): Likewise.
	(append(CharSequence,int,int)): Likewise.
	
2006-03-27  Jeroen Frijters  <jeroen@frijters.net>

	* vm/reference/java/lang/reflect/Constructor.java
	(getTypeParameters): Check return value of getSignature for null.
	* vm/reference/java/lang/reflect/Method.java
	(getTypeParameters): Check return value of getSignature for null.

2006-03-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/rmi/activation/ActivationGroup_Stub.java:
	Made final.
	
2006-03-27  Tom Tromey  <tromey@redhat.com>
       
	* java/io/CharArrayWriter.java (append): New overloads.
	
2006-03-27  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeDispose):
	Added check for colormap. Prevents assertion error.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeCopyState):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage):
	Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkGraphics_initStateUnlocked):
	Likewise.

2006-03-27  Dalibor Topic  <robilad@kaffe.org>

	* m4/acinclude.m4 (CLASSPATH_FIND_JAVAC): Use 
	AC_MSG_ERROR instead of echoing the error message 
	that no compiler has been found manually.

2006-03-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(commitBuffer): Use simple drawImage() method instead of the
	scaling version.

2006-03-27  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainView.java:
	(drawLine): Use 'endOffset' instead of 'selectionEnd'
	for painting the selected line.

2006-03-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(getThumbSize): Removed TODO and updated API docs.

2006-03-27  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(mouseClicked): Word selection rewritten.
	(paint): Draw line inside the bounding rectangle.
	(damage): Retrieve caret height from line height.

2006-03-28  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (processArgs): Check
	for null args.
	Check for -help option.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Added -help option.

2006-03-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FieldView.java
	(getPreferredSpan): Don't include trailing newline in
	calculations.
	* javax/swing/text/PlainView.java
	(drawLine): Don't include trailing newline.
	(determineMaxLineLength): Don't include trailing newline.
	(getLineBuffer): Made method final.

2006-03-27  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JSlider.java
	(AccessibleJSlider.AccessibleJSlider): Minor API doc edit,
	(AccessibleJSlider.getAccessibleRole): Removed declaration of 
	NotImplementedException,
	(AccessibleJSlider.getAccessibleValue): Updated API docs.

2006-03-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/ProcessBuilder.java:
	Made final.

2006-03-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* gnu/java/net/protocol/http/Headers.java:
	Match layout of file on HEAD.
	* gnu/javax/swing/text/html/parser/htmlValidator.java:
	Likewise.
	* java/awt/datatransfer/DataFlavor.java
	Likewise.

2006-03-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* 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/sig/DSSKeyPairGeneratorSpi.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/KeyPairGeneratorFactory.java,
	* gnu/java/security/key/dss/DSSKey.java,
	* gnu/java/security/key/dss/DSSKeyPairRawCodec.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/sig/ISignature.java,
	* gnu/java/security/sig/ISignatureCodec.java,
	* gnu/java/security/sig/dss/DSSSignature.java,
	* gnu/java/security/sig/dss/DSSSignatureRawCodec.java,
	* gnu/java/security/sig/rsa/RSAPSSSignature.java,
	* gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java,
	* gnu/java/security/util/Util.java:
	Remove CVS revision tags.

2006-03-26  Tom Tromey  <tromey@redhat.com>

	* java/io/InputStream.java (InputStream): Implements Closeable.
	
2006-03-26  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/CharIndexed.java(setLastMatch, getLastMatch, getAnchor):
	New methods.
	* gnu/regexp/CharIndexedCharArray.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/CharIndexedInputStream.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/CharIndexedString.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/CharIndexedStringBuffer.java(setLastMatch, getLastMatch,
	getAnchor): New methods.
	* gnu/regexp/REMatch.java(start1): New field.
	* gnu/regexp/RE.java(initialize): Added support for \z and \G,
	(match): set the starting position to start1[] instead of start[],
	(getMatchImpl): Set the found REMatch to the input,
	(makeCharIndexed): Made public.
	* gnu/regexp/RETokenEndOfPreviousMatch.java: New file.
	* gnu/regexp/RETokenEndSub.java(matchThis, findMatch):
	set the value of start[] copying from start1[].
	* gnu/regexp/RETokenLookBehind.java(matchThis): Added the settings of
	offset.
	* java/util/regex/Matcher.java(inputCharIndexed): New field
	to be used as a parameter of the RE#getMatch.

2006-03-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/DefaultActivationGroup.java: 
	Documented the default jre spawning strategy (none).
	* java/rmi/activation/ActivationGroup.java (currentGroupId,
	getSystem): Obtain the acticivation system from the 
	DefaultActivationSystem.

2006-03-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/Main.java (setupSigningParams):
	Ask user for keystore password if one was not provided.

2006-03-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/README: Added Security tools section.
	Documented the jarsigner tool.

2006-03-25  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JScrollBar.java
	(AccessibleJScrollBar.getAccessibleStateSet): Implemented,
	(AccessibleJScrollBar.getAccessibleRole): Likewise,
	(AccessibleJScrollBar.getAccessibleValue): Likewise,
	(AccessibleJScrollBar.getCurrentAccessibleValue): Likewise,
	(AccessibleJScrollBar.setCurrentAccessibleValue): Likewise,
	(AccessibleJScrollBar.getMinimumAccessibleValue): Likewise,
	(AccessibleJScrollBar.getMaximumAccessibleValue): Likewise,
	(getAccessibleContext): Updated API docs.

2006-03-25  Tom Tromey  <tromey@redhat.com>

	* .externalToolBuilders/CreateLocaleData.launch: Run if resource files
	change or if generator script changes.

2006-03-25  Tom Tromey  <tromey@redhat.com>

	* javax/naming/ldap/StartTlsRequest.java: New file.
	* javax/naming/ldap/StartTlsResponse.java: New file.

2006-03-25  Olivier Jolly  <olivier.jolly@pcedev.com>

    * java/net/URLClassLoader.java (FileURLLoader.getResource): Added test
    to validate all components of a resource path.
    (FileURLLoader.walkPathComponents): Helper which ensures that we are
    allowed to walk through every component of a resource path.
    
2006-03-25  Michael Koch  <konqueror@gmx.de>

	* NEWS: Added item for CLDR 1.3 update.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_ar_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ar_IQ.properties,
	resource/gnu/java/locale/LocaleInformation_ar_KW.properties,
	resource/gnu/java/locale/LocaleInformation_ar_LY.properties,
	resource/gnu/java/locale/LocaleInformation_mn_MN.properties,
	resource/gnu/java/locale/LocaleInformation_uz_AF.properties:
	Removed locales.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_az.properties,
	resource/gnu/java/locale/LocaleInformation_bs.properties,
	resource/gnu/java/locale/LocaleInformation_byn.properties,
	resource/gnu/java/locale/LocaleInformation_byn_ER.properties,
	resource/gnu/java/locale/LocaleInformation_el_CY.properties,
	resource/gnu/java/locale/LocaleInformation_gez.properties,
	resource/gnu/java/locale/LocaleInformation_gez_ER.properties,
	resource/gnu/java/locale/LocaleInformation_gez_ET.properties,
	resource/gnu/java/locale/LocaleInformation_haw.properties,
	resource/gnu/java/locale/LocaleInformation_haw_US.properties,
	resource/gnu/java/locale/LocaleInformation_kok.properties,
	resource/gnu/java/locale/LocaleInformation_kok_IN.properties,
	resource/gnu/java/locale/LocaleInformation_sid.properties,
	resource/gnu/java/locale/LocaleInformation_sid_ET.properties,
	resource/gnu/java/locale/LocaleInformation_sl_SI.properties,
	resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_sr_BA_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_syr.properties,
	resource/gnu/java/locale/LocaleInformation_syr_SY.properties,
	resource/gnu/java/locale/LocaleInformation_tig.properties,
	resource/gnu/java/locale/LocaleInformation_tig_ER.properties,
	resource/gnu/java/locale/LocaleInformation_uz_AF_Arab.properties,
	resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
	resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_wal.properties,
	resource/gnu/java/locale/LocaleInformation_wal_ET.properties:
	New locales.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_kn.properties,
	resource/gnu/java/locale/LocaleInformation_kn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ko.properties,
	resource/gnu/java/locale/LocaleInformation_sl.properties,
	resource/gnu/java/locale/LocaleInformation_so.properties,
	resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
	resource/gnu/java/locale/LocaleInformation_so_ET.properties,
	resource/gnu/java/locale/LocaleInformation_so_SO.properties,
	resource/gnu/java/locale/LocaleInformation_sr.properties:
	Random fixes I forgot to commit before.

2006-03-25  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
	resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
	resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
	resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
	resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
	resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
	resource/gnu/java/locale/LocaleInformation_as_IN.properties,
	resource/gnu/java/locale/LocaleInformation_be_BY.properties,
	resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_en_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en_PK.properties,
	resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
	resource/gnu/java/locale/LocaleInformation_es_PY.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fa_IR.properties,
	resource/gnu/java/locale/LocaleInformation_gu_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hi_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ja_JP.properties,
	resource/gnu/java/locale/LocaleInformation_kn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_mr_IN.properties,
	resource/gnu/java/locale/LocaleInformation_or_IN.properties,
	resource/gnu/java/locale/LocaleInformation_pa.properties,
	resource/gnu/java/locale/LocaleInformation_pa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ps_AF.properties,
	resource/gnu/java/locale/LocaleInformation_ru_RU.properties,
	resource/gnu/java/locale/LocaleInformation_sa.properties,
	resource/gnu/java/locale/LocaleInformation_sa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ta_IN.properties,
	resource/gnu/java/locale/LocaleInformation_te_IN.properties:
	Updated currency formats.

2006-03-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(getAttributeContext): Made method final.
	(getCurrentWriter): Likewise.
	(getEndPosition): Likewise.
	(getProperty): Likewise.
	(getStartPosition): Likewise.
	(putProperty): Likewise.
	(readLock): Likewise.
	(readUnlock): Likewise.
	(writeLock): Likewise.
	(writeUnlock): Likewise.

2006-03-25  Roman Kennke  <kennke@aicas.com>

	* javax/swing/InputMap.java
	(allKeys): Check if parent keys is null.
	* javax/swing/KeyboardManager.java
	(registerEntireMap): Also register map's parent keys.
	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(propertyChange): Also call super.propertyChange().

2006-03-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* tools/gnu/classpath/tools/jarsigner/HashUtils.java: New file.
	* tools/gnu/classpath/tools/jarsigner/JarSigner.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/JarVerifier.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/Main.java (Main): Likewise.
	* tools/gnu/classpath/tools/jarsigner/SFHelper.java: Likewise.
	* tools/gnu/classpath/tools/jarsigner/jarsigner.txt: Likewise.

2006-03-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/util/jar/JarUtils.java: New file.
	* java/util/jar/Manifest.java (CRLF): Removed.
	(read_main_section): Likewise.
	(read_version_info): Likewise.
	(expect_header(String,BufferedReader)): Likewise.
	(expect_header(String,BufferedReader,String)): Likewise.
	(read_header_value): Likewise.
	(read_attributes): Likewise.
	(read_attribute): Likewise.
	(read_individual_sections): Likewise.
	(read_section_name): Likewise.
	(write_main_section): Likewise.
	(write_version_info): Likewise.
	(write_header): Likewise.
	(write_main_attributes): Likewise.
	(write_attribute_entry): Likewise.
	(write_individual_sections): Likewise.
	(write_entry_attributes): Likewise.
	(read): use JarUtils.
	(write): Likewise.

2006-03-25  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/pkcs/SignerInfo.java (log): New field.
	(DEBUG): Removed.
	(debug): Likewise.
	(SignerInfo(BERReader)): Updated javadoc.
	Use JDK logging.
	(SignerInfo(X500Principal,BigInteger,OID,byte[],OID,byte[],byte[])):
	New constructor.
	(encode): New method.
	* gnu/java/security/pkcs/PKCS7SignedData.java (log): New field.
	(PKCS7_DATA): Removed.
	(DEBUG): Likewise.
	(debug): Likewise.
	(PKCS7SignedData(BERReader)): Updated javadoc.
	Use JDK logging.
	(PKCS7SignedData(Set,PKCS7Data,Certificate[],X509CRL[],Set)): New
	constructor.
	(encode): New method.
	* gnu/java/security/pkcs/PKCS7Data.java: New file.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java (log): New field.
	(encodePrivateKey): Encode x (private MPN) as an OCTET STRING.
	(decodePrivateKey): Decode x from an OCTET STRING.
	* gnu/java/security/key/dss/DSSPublicKey.java (str): New field.
	(toString): New method.
	* gnu/java/security/key/dss/DSSPrivateKey.java (DEBUG): New field.
	(str): Likewise.
	(toString): New method.
	* gnu/java/security/key/dss/DSSKey.java (str): New Field.
	(toString): New method.
	* gnu/java/security/provider/DSAParameterGenerator.java: Removed.

2006-03-25  Roman Kennke  <kennke@aicas.com>

	* java/util/GregorianCalender.java
	(computeTime): Fix comparison to correctly calculate the
	calendar.

2006-03-25  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #26837
	* java/awt/Window.java:         
	(setFocusCycleRoot): New overriden method.
	(isFocusCycleRoot): Likewise.
	(getFocusCycleRootAncestor): Likewise.
	* java/awt/Container.java:
	(getFocusTraversalPolicy): Check also for anchestor == null.

2006-03-25  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26863 reported by John K Peterson <johnandtina@byu.net>
	* gnu/java/util/prefs/NodeWriter.java (writeRoot): Don't immediately
	close root tag.

2006-03-24  Tom Tromey  <tromey@redhat.com>

	* javax/imageio/stream/ImageOutputStreamImpl.java (writeBytes):
	Rewrote.
	(writeChar): Removed useless cast.
	(writeChars(String)): Implemented.
	(writeDouble): Rewrote.
	(writeFloat): Likewise.
	(writeUTF): Implemented.
	* javax/imageio/stream/ImageInputStreamImpl.java (byteOrder): Default
	to big endian.

2006-03-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JButton.java
	(def): Replaced field with defaultCapable field.
	(is_def): Removed field.
	(JButton): Initialize defaultCapable with true.
	(isDefaultButton): Documented and implemented method by querying
	the button's root pane if present.
	(isDefaultCapable): Changed def field to defaultCapable.
	Added documentation.
	(paramString): Call isDefaultButton() instead of accessing field,
	which got removed.
	(setDefaultCapable): Changed def field to defaultCapable.
	Added documentation.
	* javax/swing/JRootPane.java
	(setDefaultButton): Only change the default button if the
	new button is defaultCapable.
	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(DefaultPressAction): New class.
	(DefaultReleaseAction): New class.
	(installKeyboardActions): Implemented.
	(uninstallKeyboardActions): Implemented.
	(propertyChange): Implemented.
	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.paintBorder): 'Outsourced' default theme
	painting to paintDefaultButtonBorder().
	(ButtonBorder.paintDefaultButtonBorder): New helper method
	to paint the border in the default theme. This also fixes
	painting of the border for default buttons.
	(ButtonBorder.paintOceanButtonBorder): Added support for
	default button painting. Fixed border for pressed/default state.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Only paint gradient when in OceanTheme and when the
	button is not armed.

2006-03-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java:
	Inherit from Activator.

2006-03-24  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/DefaultActivationGroup.java (newInstance):
	Print debug message if debug flag is set.
	* gnu/java/rmi/activation/DefaultActivationSystem.java: Rewritten.
	* gnu/java/rmi/server/ActivatableServerRef.java (activate): assign
	detail, do not call iniCause(). (exportClass): New method.
	* gnu/java/rmi/server/CombinedClassLoader.java (constructor):
	Ignore null (bootstrap) class loader.
	* gnu/java/rmi/server/UnicastServerRef.java (methods, skel, stub,
	buildMethodHash, findStubSkelClass, getHelperClass): Changed 
	visibility to protected.
	* java/rmi/activation/Activatable.java (export, register): Rewritten.
	(toStub): New method.
	* java/rmi/activation/ActivationGroup.java (getSystem): Rewritten.
	* java/rmi/activation/ActivationSystem.java (SYSTEM_PORT): 
	Explained property java.rmi.activation.port.

2006-03-24  Tom Tromey  <tromey@redhat.com>

	* .externalToolBuilders/CreateLocaleData.launch: Updated.
	* gnu/java/locale/.cvsignore: New file.
	* lib/Makefile.am (LocaleData.java): Put in gnu/java/locale.
	* java/util/Locale.java (getAvailableLocales): Clone result.
	(getISOCountries): Likewise.
	(getISOLanguages): Likewise.
	* scripts/generate-locale-list.sh: Make class public.  Added new
	array.
	* gnu/java/locale/LocaleHelper.java (getCollatorLocales): New method.
	(getLocaleCount): Likewise.
	* java/text/Collator.java (getInstance): Javadoc typo fix.
	(getAvailableLocales): Wrote.

2006-03-24  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(getSelectedComponent): Return null when no component is
	selected.

2006-03-24  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add cursor and selection improvements.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* java/awt/Component.java
	(getAccessibleName): Just return accessibleName,
	* javax/swing/AbstractButton.java
	(getAccessibleStateSet): Mark as stub,
	(getAccessibleName): Implemented,
	(getAcessibleIcon): Mark as stub,
	(getAccessibleRelationSet): Likewise,
	(getAccessibleAction): Likewise,
	(getAccessibleValue): Likewise,
	(getAccessibleActionCount): Likewise,
	(getAccessibleActionDescription): Likewise,
	(doAccessibleAction): Likewise,
	(getCurrentAccessibleValue): Likewise,
	(setCurrentAccessibleValue): Likewise,
	(getMinimumAccessibleValue): Likewise,
	(getMaximumAccessibleValue): Likewise,
	(getAccessibleText): Likewise,
	(getIndexAtPoint): Likewise,
	(getCharacterBounds): Likewise,
	(getCharCount): Likewise,
	(getCaretPosition): Likewise,
	(getAtIndex): Likewise,
	(getAfterIndex): Likewise,
	(getBeforeIndex): Likewise,
	(getCharacterAttribute): Likewise,
	(getSelectionStart): Likewise,
	(getSelectionEnd): Likewise,
	(getSelectedText): Likewise,
	(getTextRectangle): Likewise,
	(setIconTextGap): Fire PropertyChangeEvent, not state changed,
	(getIconTextGap): Added @since 1.4,
	(setContentAreaFilled): Reordered code to make event sequence match
	reference implementation,
	* javax/swing/JButton.java
	(getSelectedObjects): Removed,
	*javax/swing/JComponent.java
	(getAccessibleName): Call super.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JProgressBar.java
	(AccessibleJProgressBar.getAccessibleStateSet): Implemented,
	(AccessibleJProgressBar.getAccessibleRole): Added API docs,
	(AccessibleJProgressBar.getAccessibleValue): Implemented,
	(AccessibleJProgressBar.getCurrentAccessibleValue): Likewise,
	(AccessibleJProgressBar.setCurrentAccessibleValue): Likewise,
	(AccessibleJProgressBar.getMinimumAccessibleValue): Likewise,
	(AccessibleJProgressBar.getMaximumAccessibleValue): Likewise,
	(getAccessibleContext): Added API docs.

2006-03-23  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/plaf/basic/BasicTextUI.java:
        (FocusListener.focusLost): Put current selection into the system
        clipboard.

2006-03-23  Robert Schuster  <robertschuster@fsfe.org>

        * java/awt/Component.java:
        (processMouseEvent): Remove call to consume event.
        (dispatchEventImpl): Handle specific events first, do focus request
        only when mouse event was not yet consumed.
        * javax/swing/text/DefaultCaret.java:
	(mousePressed): Rewritten.
	(setDot): Changed order of operations.
	(moveDot): Dito.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.changeSupport): Removed field,
	(AccessibleJComponent.AccessibleJComponent): Updated for removed field,
	(AccessibleJComponent.addPropertyChangeListener): Call super,
	(AccessibleJComponent.removePropertyChangeListener): Likewise,
	* javax/swing/JSlider.java
	(AccessibleJSlider.getAccessibleStateSet): Implemented,
	(AccessibleJSlider.getAccessibleRole): Likewise,
	(AccessibleJSlider.getAccessibleValue): Likewise,
	(AccessibleJSlider.getCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.setCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.getMinimumAccessibleValue): Likewise,
	(AccessibleJSlider.getMaximumAccessibleValue): Likewise,
	(getAccessibleContext): Added API docs.

2006-03-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java
	(debug): Made public. (constructor): Made protected.
	(activate, getActivationDesc): Throw more informative exceptions.
	* gnu/java/rmi/server/UnicastConnectionManager.java (toString):
	New method.
	* gnu/java/rmi/server/UnicastRef.java (remoteToString): 
	Stub, implemented.
	* gnu/java/rmi/server/UnicastServer.java (incomingMessageCall):
	Documented.
	* gnu/java/rmi/server/UnicastServerRef.java (incomingMessageCall):
	Better exception.
	* java/rmi/activation/Activatable.java (obtainId): Use the activation
	system, passed in the activation descriptor field.
	* java/rmi/activation/ActivationGroup.java (createGroup): Likewise.
	* java/rmi/activation/ActivationGroupID.java (system, uid): Changed
	to package private final. (equals): Compare uid, not the system. 
	(hashCode): Forward to uid.hashCode(). toString(): New method.
	* java/rmi/activation/ActivationID.java (readObject, writeObject):
	Rewritten. (equals): Compare UID only. toString(): New method.
	* java/rmi/server/ObjID.java (eq): New method. (equals): Compare also
	UID (space). (hashCode, toString): Rewritten.
	* java/rmi/server/RemoteObjectInvocationHandler.java (noArgs): 
	New method. (invoke): Treat null as an empty array for parameters.
	* java/rmi/server/UID.java (toString): Rewritten. (hashCode):
	Include count, do not include the static machineId.

2006-03-23  Tom Tromey  <tromey@redhat.com>

	* java/net/URLConnection.java (getContent(Class[])): Implemented.

2006-03-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/GRMIC.java (main): Accept -force.
	* tools/gnu/classpath/tools/giop/GRMIC.txt: Explain -force.
	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java
	(force): New field. (setForce): New method. (compile): Handle -force.
	* tools/gnu/classpath/tools/rmi/RMIC.java (main): Accept -force.
	* tools/gnu/classpath/tools/rmi/RMIC.txt: Explain -force.

2006-03-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(Page.getBackground): Return the JTabbedPane's background,
	rather than the page's component background.
	(Page.getForeground): Return the JTabbedPane's foreground,
	rather than the page's component foreground.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(uninstallUI): Don't set colors to null.
	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(paintTabBackground): Correctly determine the tab background.
	(getUnselectedBackground): New helper method to
	handle the UI property 'TabbedPane.unselectedBackground'
	correctly.

2006-03-23  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.showingResizeCursor): New field.
	(BorderListener.mouseMoved, BorderListner.mouseExited):
	Implemented.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComboBox.java
	(selectWithKeyChar): Mark as stub,
	* javax/swing/JFileChooser.java
	(setDragEnabled): Mark as stub,
	(getDragEnabled): Likewise,
	* javax/swing/JSlider.java
	(AccessibleJSlider.getAccessibleStateSet): Mark as stub,
	(AccessibleJSlider.getAccessibleRole): Likewise,
	(AccessibleJSlider.getAccessibleValue): Likewise,
	(AccessibleJSlider.getCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.setCurrentAccessibleValue): Likewise,
	(AccessibleJSlider.getMinimumAccessibleValue): Likewise,
	(AccessibleJSlider.getMaximumAccessibleValue): Likewise,
	* javax/swing/UIManager.java
	(installLookAndFeel): Mark as stub,
	(setInstalledLookAndFeels): Likewise.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/filechooser/UnixFileSystemView.java
	(getSystemDisplayName): Mark as stub,
	(getSystemIcon): Likewise,
	(getSystemTypeDescription): Likewise.

2006-03-23  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/AbstractLayoutCache.java
	(getNodeDimensions): Mark as stub,
	(getPreferredHeight): Likewise,
	(getPreferredWidth): Likewise,
	(getRowsForPaths): Likewise,
	(isFixedRowHeight): Likewise,
	* javax/swing/tree/DefaultTreeModel.java
	(reload()): Mark as stub,
	(reload(TreeNode)): Likewise,
	(nodeStructureChanged): Likewise,
	* javax/swing/tree/DefaultTreeSelectionModel.java
	(clone): Mark as stub,
	(setRowMapper): Likewise,
	(setSelectionPaths): Likewise,
	(isRowSelected): Likewise,
	(resetRowSelection): Likewise,
	(insureRowContinuity): Likewise,
	(arePathsContiguous): Likewise,
	(canPathsBeAdded): Likewise,
	(canPathsBeRemoved): Likewise,
	(notifyPathChange): Likewise,
	(updateLeadIndex): Likewise,
	(insureUniqueness): Likewise,
	* javax/swing/tree/FixedHeightLayoutCache.java: Marked all methods as
	stubs,
	* javax/swing/tree/VariableHeightLayoutCache.java: Likewise.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/StyleContext.java (getStaticAttribute): Mark as
	stub.
	(getStaticAttributeKey): Likewise.
	(readAttributeSet): Likewise.
	(writeAttributeSet): Likewise.
	(readAttributes): Likewise.
	(writeAttributes): Likewise.
	* javax/swing/text/html/HTMLEditorKit.java (insertAtBoundary): Mark
	as stub.
	* javax/swing/text/html/HTMLDocument.java (setParagraphAttributes):
	Mark as stub.
	(fireChangedUpdate): Likewise.
	(start): Likewise.
	(end): Likewise.
	(handleEndOfLineString): Likewise.
	(textAreaContent): Likewise.
	(preContent): Likewise.
	(addSpecialElement): Likewise.
	(setInnerHTML): Likewise.
	(setOuterHTML): Likewise.
	(insertBeforeStart): Likewise.
	(insertBeforeEnd): Likewise.
	(insertAfterEnd): Likewise.
	(insertAfterStart): Likewise.
	* javax/swing/table/JTableHeader.java (AccessibleJTableHeaderEntry):
	Mark all methods as stub.s
	* javax/swing/plaf/metal/MetalTreeUI.java (decodeLineStyle): Mark
	as stub.
	(paintHorizontalSeparators): Likewise.
	* javax/swing/plaf/basic/BasicLookAndFeel.java (loadSystemColors):
	Mark as stub.
	* javax/swing/MenuSelectionManager.java (processKeyEvent): Mark as
	stub.
	* java/beans/beancontext/BeanContextSupport.java: Mark most methods
	as stubs.
	* java/beans/beancontext/BeanContextServicesSupport.java: Mark most
	methods as stubs.

2006-03-22  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkCursor.java: New class.

2006-03-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26527
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (gtkWidgetSetCursor):
	Takes GtkImage, x and y coordinates.
	(gtkWidgetSetCursorUnlocked): Likewise.
	(GtkComponentPeer): Set cursor when set.
	(setCursor): Handle GtkCursor.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (createCustomCursor):
	New method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(gtkWidgetSetCursor): Takes GtkImage, x and y coordinates.
	(gtkWidgetSetCursorUnlocked): Likewise. Handle custom image.
	* include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Regenerated.

2006-03-23  Roman Kennke  <kennke@aicas.com>

	PR 26805
	* gnu/java/security/Registry.java
	(PKCS5_PAD): Added pad PKCS#5 algorithm.
	* gnu/javax/crypto/pad/PadFactory.java
	(getInstance): For PKCS#5, also return PKCS#7 pad
	algorithm.
	(getNames): Added PKCS#5.
	* javax/crypto/KeyGenerator.java
	(getInstance): Initialize key generator before returning
	it.

2006-03-23  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/RE.java(REG_X_COMMENTS): New copilation flag,
	(initialize): Ignore whiltespaces and comments if REG_X_COMMENTS is set.
	* java/util/regex/Pattern.java(constructor): Set RE.REG_X_COMMENTS
	if COMMENTS is set.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthStyle.java (getInt): Implemented.
	(getBoolean): Likewise.
	(getString): Likewise.
	(getIcon): Likewise.

2006-03-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26301
	* gnu/java/awt/peer/GLightweightPeer.java: Extend MouseAdapter.
	(GLightweightPeer(Component)): Install MouseListener.
	(setCursor): Implement.
	(mouseEntered): New method.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/ColorType.java (MAX_COUNT): No longer
	constant.
	* javax/swing/plaf/synth/SynthStyle.java (getColorForState): Now
	protected.
	(getFontForState): Likewise.
	(getInsets): Added 'result' argument.
	(getPainter): Renamed.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthPainter.java
	(paintScrollBarThumbBackground): Added 'orientation' argument.
	(paintScrollBarThumbBorder): Likewise.
	(paintSliderThumbBackground): Likewise.
	(paintSliderThumbBorder): Likewise.
	(paintTabbedPaneTabBackground): Added 'index' argument.
	(paintTabbedPaneTabBorder): Likewise.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* java/awt/ScrollPaneAdjustable.java (paramString): Implemented.
	(toString): New method.

2006-03-22  Tom Tromey  <tromey@redhat.com>

	* doc/hacking.texinfo (Source Code Style Guide): Mention
	NotImplementedException.
	* javax/imageio/stream/MemoryCacheImageOutputStream.java
	(flushBefore): Mark as stub.
	(read): Likewise.
	* javax/imageio/stream/MemoryCacheImageInputStream.java (flushBefore):
	Mark as stub.
	* javax/imageio/stream/ImageOutputStreamImpl.java (flushBits): Mark
	as stub.
	(write): Likewise.
	(writeBit): Likewise.
	(writeChars): Likewise.
	(writeUTF): Likewise.
	* javax/imageio/stream/FileCacheImageOutputStream.java (read): Mark
	as stub.
	(read): Likewise.
	* java/net/URLConnection.java (getContent): Mark as stub.
	* java/awt/Window.java (applyResourceBundle): Mark as stub.
	* java/awt/TexturePaint.java (createContext): Mark as stub.
	(getTransparency): Mark as stub.
	* java/awt/ScrollPaneAdjustable.java (paramString): Mark as stub.
	* java/awt/GridBagLayout.java (AdjustForGravity): Mark as stub.
	* java/awt/GraphicsConfiguration.java (getBufferCapabilities): Mark as
	stub.
	(getImageCapabilities): Likewise.
	* java/awt/BasicStroke.java (createStrokedShape): Mark as stub.
	* java/awt/AlphaComposite.java (createContext): Mark as stub.
	* java/awt/image/renderable/RenderableImageProducer.java: Mark all
	methods as stubs.
	* java/awt/font/TextMeasurer.java (deleteChar): Mark as stub.
	(getAdvanceBetween): Likewise.
	(getLayout): Likewise.
	(insertChar): Likewise.
	(getLineBreakIndex): Likewise.
	* java/awt/font/ShapeGraphicAttribute.java (draw): Mark as stub.
	(getAdvance): Likewise.
	(getAscent): Likewise.
	(getDescent): Likewise.
	* java/awt/font/LineBreakMeasurer.java (deleteChar): Mark as stub.
	(insertChar): Likewise.
	(nextLayout): Likewise.
	(nextLayout): Likewise.
	(nextOffset): Likewise.
	(nextOffset): Likewise.
	* java/awt/font/ImageGraphicAttribute.java (draw): Mark as stub.
	(equals): Likewise.
	(getAdvance): Likewise.
	(getAscent): Likewise.
	(getBounds): Likewise.
	(getDescent): Likewise.
	(hashCode): Likewise.
	(ImageGraphicAttribute): Likewise.
	* java/awt/font/GraphicAttribute.java (getBounds): Mark as stub.
	(getJustificationInfo): Likewise.
	* java/awt/font/GlyphVector.java (getGlyphCharIndex): Mark as stub.
	(getGlyphCharIndices): Likewise.
	(getGlyphOutline): Likewise.
	(getGlyphPixelBounds): Likewise.
	(getLayoutFlags): Likewise.
	(getPixelBounds): Likewise.
	* java/awt/font/GlyphMetrics.java (getLSB): Mark as stub.
	(getRSB): Likewise.
	* java/nio/channels/Channels.java (newWriter): Mark as stub.
	* java/awt/dnd/DragSourceContext.java: Marked most methods as stubs.
	* java/awt/dnd/DragGestureRecognizer.java (fireDragGestureRecognized):
	Mark as stub.
	(resetRecognizer): Likewise.
	* java/awt/datatransfer/SystemFlavorMap.java (getFlavorsForNative):
	Mark as stub.
	(getNativesForFlavor): Likewise.
	* javax/swing/plaf/synth/SynthStyle.java: Mark all methods as stub.s
	* javax/swing/plaf/synth/SynthLookAndFeel.java (updateStyles): Mark
	as stub.
	(getRegion): Likewise.
	(createUI): Likewise.
	(initialize): Likewise.
	(uninitialize): Likewise.
	(getDefaults): Likewise.
	(load): Likewise.
	(shouldUpdateStyleOnAncestorChanged): Likewise.
	* javax/swing/plaf/synth/SynthGraphicsUtils.java (getMinimumSize):
	Mark as stub.
	(getPreferredSize): Likewise.
	(getMaximumSize): Likewise.
	(paintText): Likewise.
	* java/text/RuleBasedCollator.java (getCollationElementIterator): Mark
	as stub.
	* java/text/Collator.java (getAvailableLocales): Mark as stub.

2006-03-22  Wolfgang Baer  <WBaer@gmx.de>

	* java/io/ObjectStreamConstants.java: Added since tag.
	(PROTOCOL_VERSION_1): Added javadoc.
	(PROTOCOL_VERSION_2): Likewise.
	* java/io/ObjectOutputStream.java: 
	(setDefaultProtocolVersion): Removed.
	(useProtocolVersion): Fixed parameter tests. Updated javadoc.
	
2006-03-21  Lillian Angel  <langel@redhat.com>

	* gnu/javax/imageio/bmp/BMPInfoHeader.java
	(BMPInfoHeader): Removed debug lines.
	* gnu/javax/imageio/bmp/EncodeRLE4.java
	(encode): Implemented.
	(uncompress): New function implemented to
	uncompress the image before encoding.
	* gnu/javax/imageio/bmp/EncodeRLE8.java
	(encode): Implemented.
	(uncompress): New function implemented to
	uncompress the image before encoding.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(getImageData): New helper method.

2006-03-21  Tom Tromey  <tromey@redhat.com>

	* vm/reference/gnu/classpath/Unsafe.java (arrayBaseOffset): Javadoc
	fix.
	(Unsafe): Now final.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/FormView.java
	(MouseEventListener): New inner class.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ListView.java: New file.

2006-03-21  Tom Tromey  <tromey@redhat.com>

	* java/text/Bidi.java: Completed.

2006-03-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTable.java:
	(columnAtPoint): Removed the null check, this method should throw a NPE
	if the argument is null.

2006-03-21  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/text/DefaultHighlighter.java:
        (DefaultHighlighter.DefaultHighlightPainter.paint): Rewritten.

2006-03-21  Robert Schuster  <robertschuster@fsfe.org>

        * javax/swing/text/DefaultCaret.java: Added class variable denoting
        the textcomponent having a selection.
        (clearSelection): Clear 'componentWithSelection' variable.
        (handleSelection): Clear selection of current component having a
        selection before setting a new selection in another component.
	(mouseDragged): Only react on left mouse button.
	(mouseClicked): Only react on left mouse button.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(paintContentBorderTopEdge): Implemented.
	(paintContentBorderBottomEdge): Implemented.
	(paintContentBorderLeftEdge): Implemented.
	(paintContentBorderRightEdge): Implemented.
	(isLastTabInRun): New helper method.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(Page.getForeground): Fall back to returning the tabbed pane's
	foreground if no foreground has been exclicitly set.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(setEnabled): Update colors of button correctly.
	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(MetalPropertyChangeListener.propertyChange): Update the colors
	of the list and the button when any of the color properties
	of the ComboBox change.

2006-03-21  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(uninstallDefaults): Only nullify button colors if they are
	not UIResource instances.

2006-03-21  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.getAccessibleDescription): Call super,
	* javax/swing/JToolTip.java: API doc updates all over, plus
	(AccessibleJToolTip.getAccessibleDescription): Implemented,
	(AccessibleJToolTip.getAccessibleRole): Implemented,
	(getAccessibleContext): Implemented,
	(paramString): Reimplemented,
	(setComponent): Fire PropertyChangeEvent,
	(setTipText): Likewise.

2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/util/Formatter.java:
	Make the class final.
	
2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* java/lang/System.java:
	(nanoTime()): Documented.
	* java/lang/Thread.java:
	(setUncaughtExceptionHandler(UncaughtExceptionHandler):
	Added docs and security check.
	(getUncaughtExceptionHandler()): Documented.
	(setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler):
	Added docs and security check.
	(getDefaultUncaughtExceptionHandler()): Documented.
	(getId()): Documented.
	(Thread.State): Documented.
	* vm/reference/gnu/classpath/Unsafe.java:
	Documented.
	(getUnsafe()): Updated to handle security.
	
2006-03-20  Tom Tromey  <tromey@redhat.com>

	* java/lang/System.java:
	(nanoTime()): Implemented.
	* java/lang/Thread.java:
	(getId()): Implemented.
	* java/util/AbstractMap.java:
	(SimpleImmutableEntry): New 1.6 class.
	(BasicMapEntry): Modified to be SimpleEntry.
	* java/util/Collections.java:
	Modified to use SimpleEntry.
	* java/util/EnumMap.java: Likewise.
	* java/util/HashMap.java: Likewise.
	* java/util/Hashtable.java: Likewise.
	* java/util/TreeMap.java: Likewise.
	* vm/reference/gnu/classpath/Unsafe.java:
	New class to handle low-level facilities for concurrency.
	* vm/reference/java/lang/VMSystem.java:
	(nanoTime()): Implemented.
	
2006-03-20  Tom Tromey  <tromey@redhat.com>

	* java/security/cert/PKIXCertPathChecker.java: Javadoc fix.
	* java/security/cert/CertStoreSpi.java: Added import for javadoc.
	(CertStoreSpi): Updated throws clause.
	* java/security/cert/CertPathValidatorSpi.java: Added import for
	javadoc.
	(engineValidate): Updated 'throws' clause.
	* java/security/cert/PKIXParameters.java: Javadoc fix.
	* java/security/cert/X509CertSelector.java
	(setAuthorityKeyIdentifier): Javadoc fix.

2006-03-20  Tom Tromey  <tromey@redhat.com>

	* .classpath: Build gnu.javax.swing.plaf.

2006-03-20  Lillian Angel  <langel@redhat.com>

	* gnu/javax/imageio/bmp/BMPDecoder.java:
	Removed unneeded import.
	* gnu/javax/imageio/bmp/BMPEncoder.java:
	New class.
	* gnu/javax/imageio/bmp/BMPFileHeader.java
	(BMPFileHeader): New constructor used to create info header
	for an output stream.
	(write): Fixed indexes.
	* gnu/javax/imageio/bmp/BMPImageReaderSpi.java:
	Initialized writerSpiNames field.
	* gnu/javax/imageio/bmp/BMPImageWriter.java:
	New class.
	* gnu/javax/imageio/bmp/BMPImageWriterSpi.java:
	New class.
	* gnu/javax/imageio/bmp/BMPInfoHeader.java:
	Change visibility for fields.
	(BMPInfoHeader): New constructor used to create
	file header for an output stream.
	(intToDWord): New method. Converts an int to a
	double word.
	(intToWord): New method. Converts an int to a word.
	* gnu/javax/imageio/bmp/DecodeBF32.java:
	Removed unneeded imports.
	* gnu/javax/imageio/bmp/EncodeRGB1.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB16.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB24.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB32.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB4.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRGB8.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRLE4.java:
	New class.
	* gnu/javax/imageio/bmp/EncodeRLE8.java:
	New class.
	* javax/imageio/ImageIO.java:
	Fixed comment.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalTabbedPaneUI.java
	(TabbedPaneLayout.normalizeTabRuns): New method.
	(createLayoutManager): Return the Metal TabbedPaneLayout, not super.
	(paintTabBorder): Replaced if-else chain with switch.
	(paintTopTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintBottomTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintLeftTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintRightTabBorder): Rewritten to correctly paint tab. Also support
	Ocean theme.
	(paintTabBackground): Fetch background color from the TabbedPane.
	Fixed painting and improved by not using fillPolygon, and instead
	using fillRectangle. Replaced if-else chain with switch.
	(calculateMaxTabHeight): Added overridden method with FIXME.
	(getTabRunOverlay): Overridden to provide overlay for LEFT or RIGHT
	placement.
	(paintContentBorderTopEdge): Added stub with FIXME.
	(paintContentBorderBottomEdge): Added stub with FIXME.
	(paintContentBorderLeftEdge): Added stub with FIXME.
	(paintContentBorderRightEdge): Added stub with FIXME.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(tabsOpaque): New field.
	(installDefaults): Fetch tabsOpaque property from UIManager.
	(paintTab): Fill tab background when tabsOpaque property is true.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added TabbedPane.tabsOpaque property.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(Pane.getBackground): When no background was explicitly set, return
	the JTabbedPane's background.

2006-03-20  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/CORBA/ACTIVITY_COMPLETED.java,
	* org/omg/CORBA/ACTIVITY_REQUIRED.java,
	* org/omg/CORBA/BAD_INV_ORDER.java,
	* org/omg/CORBA/BAD_CONTEXT.java,
	* org/omg/CORBA/BAD_OPERATION.java,
	* org/omg/CORBA/BAD_PARAM.java,
	* org/omg/CORBA/BAD_QOS.java,
	* org/omg/CORBA/BAD_TYPECODE.java,
	* org/omg/CORBA/CODESET_INCOMPATIBLE.java,
	* org/omg/CORBA/COMM_FAILURE.java,
	* org/omg/CORBA/CurrentHolder.java,
	* org/omg/CORBA/DATA_CONVERSION.java,
	* org/omg/CORBA/FREE_MEM.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_ACTIVITY.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/MARSHAL.java,
	* org/omg/CORBA/NO_RESOURCES.java,
	* org/omg/CORBA/NO_MEMORY.java,
	* org/omg/CORBA/NO_IMPLEMENT.java,
	* org/omg/CORBA/NO_PERMISSION.java,
	* org/omg/CORBA/NO_RESPONSE.java,
	* org/omg/CORBA/OBJECT_NOT_EXIST.java,
	* org/omg/CORBA/OBJ_ADAPTER.java,
	* org/omg/CORBA/ParameterModeHolder.java,
	* org/omg/CORBA/PolicyError.java,
	* org/omg/CORBA/PolicyErrorHolder.java,
	* org/omg/CORBA/PolicyHolder.java,
	* org/omg/CORBA/PolicyListHolder.java,
	* org/omg/CORBA/REBIND.java,
	* org/omg/CORBA/TIMEOUT.java,
	* org/omg/CORBA/TRANSACTION_MODE.java,
	* org/omg/CORBA/TRANSACTION_REQUIRED.java,
	* org/omg/CORBA/TRANSACTION_ROLLEDBACK.java,
	* org/omg/CORBA/TRANSACTION_UNAVAILABLE.java,
	* org/omg/CORBA/TRANSIENT.java,
	* org/omg/CORBA/TypeCodeHolder.java,
	* org/omg/CORBA/UNKNOWN.java,
	* org/omg/CORBA/UnionMember.java,
	* org/omg/CORBA/UnknownUserException.java,
	* org/omg/CORBA/UnknownUserExceptionHolder.java,
	* org/omg/CORBA/WrongTransactionHolder.java,
	* org/omg/IOP/IOR.java,
	* org/omg/IOP/IORHolder.java,
	* org/omg/IOP/MultipleComponentProfileHolder.java,
	* org/omg/IOP/ServiceContextHolder.java,
	* org/omg/IOP/ServiceContextListHolder.java,
	* org/omg/IOP/TaggedComponentHolder.java,
	* org/omg/IOP/TaggedProfileHolder.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java,
	* org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java,
	* org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java,
	* org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java:
	Made class final, various javadoc fixlets.	
	* org/omg/CORBA/CompletionStatus.java, 
	* org/omg/CORBA/PERSIST_STORE.java,
	* org/omg/CORBA/ValueMember.java,
	* org/omg/PortableInterceptor/ForwardRequest.java,
	* org/omg/PortableInterceptor/InvalidSlot.java,
	* org/omg/IOP/CodecPackage/TypeMismatch.java,
	* org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java,
	* org/omg/IOP/CodecPackage/FormatMismatch.java,
	* org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java,
	* org/omg/IOP/Encoding.java,
	* org/omg/IOP/TaggedComponent.java,
	* org/omg/IOP/TaggedProfile.java: Made class final.
	* org/omg/CORBA/SystemException.java: Made class abstract.	
	* org/omg/CORBA/UserException.java: Made class abstract.
	(UserException): Now protected.
	(UserException(String)): Likewise.
	* org/omg/Messaging/SyncScopeHelper.java: Now abstract, javadoc fixes.
	(typecode): Removed unused private variable.

2006-03-20  Chris Burdess  <dog@gnu.org>

	Fixes PR 26761
	* gnu/xml/stream/XMLParser.java: Permit U+fffd as XML Char.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintTabArea): Look up tab run indices in tabRuns array instead
	of using the index directly.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paintTab): Fixed painting.
	(paintText): Fixed text painting.
	(paintFocusIndicator): Fixed painting of the focus rectangle.
	(paintContentBorder): Fixed painting of the content area.

2006-03-20  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkPixbufDecoder.java (pixbufLock): New
	static lock Object field.
	(produce): Synchronize on pixbufLock when calling initState(),
	pumpBytes() and pumpDone().
	(finalize): Likewise when calling finish().
	(GdkPixbufWriter.write): Likewise when calling streamImage().
	* gnu/java/awt/peer/gtk/GtkImage.java (GtkImage(String)): Likewise
	when calling loadPixbuf. Chain exception.
	(GtkImage(byte[])): Likewise when calling loadImageFromData.
	(GtkImage(URL)): Likewise.
	(GtkImage(int,int)): Likewise when calling createPixmap().
	(GtkImage(GtkImage,int,int,int)): Likewise when calling
	createScaledPixmap().
	(GtkImage(Pointer)): Likewise when calling createFromPixbuf().
	(setImage): Likewise when calling createPixmap() and setPixels().
	(getSource): Likewise when calling getPixels().
	(flush): Likewise when calling freePixmap().
	(finalize): Likewise.
	(drawImage): Likewise when calling drawPixelsScaledFlipped() and
	drawPixelsScaledFlipped().
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState): Remove
	gdk_threads_enter/leave().
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage): Likewise.
	(Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes): Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_getPixels): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_setPixels): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_createPixmap): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_freePixmap): Likewise.
	(Java_gnu_java_awt_peer_gtk_GtkImage_createScaledPixmap): Likewise.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(calculateTabHeight): Not need to use SwingUtilities here.
	(getTabInsets): Do not rotate insets.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paint): Make sure the layout is valid before painting.
	(paintTabArea): Made tab painting more straightforward and efficient.

2006-03-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (ROWS_PER_WHEEL_CLICK): Removed.
	(getScrollableUnitIncrement): Rewritten.
	* javax/swing/JTree.java (ROWS_PER_WHEEL_CLICK): Removed.
	(getScrollableUnitIncrement): Rewritten.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(ROWS_PER_WHEEL_CLICK): New field. 
	(MouseWheelHandler.mouseWheelMoved): Rewritten.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(paint): Make sure the layout is valid before painting.
	(paintTabArea): Made tab painting more straightforward and efficient.

2006-03-20  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(MouseHandler.mousePressed): Rewritten for clearer and simpler
	code.
	(MouseHandler.mouseEntered): Implemented to set the rollover tab.
	(MouseHandler.mouseMoved): Implemented to set the rollover tab.
	(MouseHandler.mouseExited): Implemented to unset the rollover tab.
	(TabbedPaneLayout.calculateLayoutInfo): Don't set the component's
	bounds here. That is moved into layoutContainer().
	(calculateSize): Correctly respect insets. Made code slightly more
	clear and efficient.
	(calculateTabRects): Rewritten completely. The old code was
	not quite right and unstable in some situations.
	(layoutContainer): Moved layout of tabbed pane's subcomponents
	here.
	(tabRunsDirty): New field.
	(rolloverTab): New field.
	(tabForCoordinate): Rewritten for simplicity and correctness.
	(setRolloverTab): New method.
	(getRolloverTab): New method.

2006-03-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getScrollableUnitIncrement): Rewritten.
	* javax/swing/JTree.java (getScrollableUnitIncrement): Rewritten.
	(getScrollableUnitIncrement
	* javax/swing/Scrollable.java: Documented.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java 
	(MouseWheelHandler):Rewritten.

2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Updated with gnu.classpath.Unsafe
	
2006-03-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* NEWS:
	Updated with VMArray and Unsafe changes.
	
2006-03-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (ROWS_PER_WHEEL_CLICK): New field.
	(getScrollableUnitIncrement): Rewritten.
	* javax/swing/JTree.java (ROWS_PER_WHEEL_CLICK): New field.
	(getScrollableUnitIncrement): Rewritten. 
	(getScrollableBlockIncrement): Rewritten.
	* javax/swing/plaf/basic/BasicScrollPaneUI.java 
	(MouseWheelHandler): Implemented. (ViewportContainerListener): 
	New class. (containerListener): New field. (SCROLL_NON_SCROLABLES): 
	New field. (installListeners): Install wheel listeners. 
	(uninstallListeners): Uninstall wheel listeners.
	* javax/swing/plaf/basic/BasicTableUI.java: Remove the implementation
	of the MouseWheelListener. (installListeners): Do not install wheel
	listener. (ROWS_PER_WHEEL_CLICK): Removed.

2006-03-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* vm/reference/gnu/classpath/Unsafe.java:
	Documented.
	(getUnsafe()): Updated to handle security.

2006-03-19  Tom Tromey  <tromey@redhat.com>

	* vm/reference/gnu/classpath/Unsafe.java:
	New class to handle low-level facilities for concurrency.

2006-03-19  Mark Wielaard  <mark@klomp.org>

	* include/Makefile.am: Rename PlainDatagramSocketImpl to
	VMPlainDatagramSocketImpl and PlainSocketImpl to VMPlainSocketImpl.
	* include/gnu_java_net_VMPlainDatagramSocketImpl.h: Regenerated.
	* include/gnu_java_net_VMPlainSocketImpl.h: Likewise.

2006-03-19  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkFontPeer.java (getPostScriptName): Return
	familyName.
	* gnu/java/awt/peer/gtk/GtkFontPeer.java: Removed unused file.

2006-03-19  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_aa_ET.properties,
	resource/gnu/java/locale/LocaleInformation_am.properties,
	resource/gnu/java/locale/LocaleInformation_am_ET.properties,
	resource/gnu/java/locale/LocaleInformation_as_IN.properties,
	resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_bg.properties,
	resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ca.properties,
	resource/gnu/java/locale/LocaleInformation_cs.properties,
	resource/gnu/java/locale/LocaleInformation_cy.properties,
	resource/gnu/java/locale/LocaleInformation_da.properties,
	resource/gnu/java/locale/LocaleInformation_de.properties,
	resource/gnu/java/locale/LocaleInformation_dv.properties,
	resource/gnu/java/locale/LocaleInformation_el.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_en_GB.properties,
	resource/gnu/java/locale/LocaleInformation_en_IN.properties,
	resource/gnu/java/locale/LocaleInformation_en_PK.properties,
	resource/gnu/java/locale/LocaleInformation_en_SG.properties,
	resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
	resource/gnu/java/locale/LocaleInformation_es.properties,
	resource/gnu/java/locale/LocaleInformation_es_AR.properties,
	resource/gnu/java/locale/LocaleInformation_es_BO.properties,
	resource/gnu/java/locale/LocaleInformation_es_CL.properties,
	resource/gnu/java/locale/LocaleInformation_es_CO.properties,
	resource/gnu/java/locale/LocaleInformation_es_CR.properties,
	resource/gnu/java/locale/LocaleInformation_es_DO.properties,
	resource/gnu/java/locale/LocaleInformation_es_EC.properties,
	resource/gnu/java/locale/LocaleInformation_es_ES.properties,
	resource/gnu/java/locale/LocaleInformation_es_GT.properties,
	resource/gnu/java/locale/LocaleInformation_es_HN.properties,
	resource/gnu/java/locale/LocaleInformation_es_MX.properties,
	resource/gnu/java/locale/LocaleInformation_es_NI.properties,
	resource/gnu/java/locale/LocaleInformation_es_PA.properties,
	resource/gnu/java/locale/LocaleInformation_es_PE.properties,
	resource/gnu/java/locale/LocaleInformation_es_PR.properties,
	resource/gnu/java/locale/LocaleInformation_es_PY.properties,
	resource/gnu/java/locale/LocaleInformation_es_SV.properties,
	resource/gnu/java/locale/LocaleInformation_es_US.properties,
	resource/gnu/java/locale/LocaleInformation_es_UY.properties,
	resource/gnu/java/locale/LocaleInformation_es_VE.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fa_IR.properties,
	resource/gnu/java/locale/LocaleInformation_fi.properties,
	resource/gnu/java/locale/LocaleInformation_fr.properties,
	resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
	resource/gnu/java/locale/LocaleInformation_ga.properties,
	resource/gnu/java/locale/LocaleInformation_gu_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hi_IN.properties,
	resource/gnu/java/locale/LocaleInformation_hr.properties,
	resource/gnu/java/locale/LocaleInformation_hu.properties,
	resource/gnu/java/locale/LocaleInformation_id.properties,
	resource/gnu/java/locale/LocaleInformation_is.properties,
	resource/gnu/java/locale/LocaleInformation_it.properties,
	resource/gnu/java/locale/LocaleInformation_ja.properties,
	resource/gnu/java/locale/LocaleInformation_kk.properties,
	resource/gnu/java/locale/LocaleInformation_kl.properties,
	resource/gnu/java/locale/LocaleInformation_km.properties,
	resource/gnu/java/locale/LocaleInformation_ky.properties,
	resource/gnu/java/locale/LocaleInformation_lo.properties,
	resource/gnu/java/locale/LocaleInformation_lo_LA.properties,
	resource/gnu/java/locale/LocaleInformation_lt.properties,
	resource/gnu/java/locale/LocaleInformation_lt_LT.properties,
	resource/gnu/java/locale/LocaleInformation_lv.properties,
	resource/gnu/java/locale/LocaleInformation_mk.properties,
	resource/gnu/java/locale/LocaleInformation_mn.properties,
	resource/gnu/java/locale/LocaleInformation_mr.properties,
	resource/gnu/java/locale/LocaleInformation_mr_IN.properties,
	resource/gnu/java/locale/LocaleInformation_ms.properties,
	resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
	resource/gnu/java/locale/LocaleInformation_mt.properties,
	resource/gnu/java/locale/LocaleInformation_nb.properties,
	resource/gnu/java/locale/LocaleInformation_nl.properties,
	resource/gnu/java/locale/LocaleInformation_nn.properties,
	resource/gnu/java/locale/LocaleInformation_om_ET.properties,
	resource/gnu/java/locale/LocaleInformation_or_IN.properties,
	resource/gnu/java/locale/LocaleInformation_pa.properties,
	resource/gnu/java/locale/LocaleInformation_pl.properties,
	resource/gnu/java/locale/LocaleInformation_pt.properties,
	resource/gnu/java/locale/LocaleInformation_ru.properties,
	resource/gnu/java/locale/LocaleInformation_ru_RU.properties,
	resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
	resource/gnu/java/locale/LocaleInformation_sa.properties,
	resource/gnu/java/locale/LocaleInformation_sa_IN.properties,
	resource/gnu/java/locale/LocaleInformation_sk.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sv.properties,
	resource/gnu/java/locale/LocaleInformation_sw.properties,
	resource/gnu/java/locale/LocaleInformation_sw_TZ.properties,
	resource/gnu/java/locale/LocaleInformation_ta_IN.properties,
	resource/gnu/java/locale/LocaleInformation_te.properties,
	resource/gnu/java/locale/LocaleInformation_te_IN.properties,
	resource/gnu/java/locale/LocaleInformation_th.properties,
	resource/gnu/java/locale/LocaleInformation_ti.properties,
	resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
	resource/gnu/java/locale/LocaleInformation_ti_ET.properties,
	resource/gnu/java/locale/LocaleInformation_tr.properties,
	resource/gnu/java/locale/LocaleInformation_tt.properties,
	resource/gnu/java/locale/LocaleInformation_uk.properties,
	resource/gnu/java/locale/LocaleInformation_ur.properties,
	resource/gnu/java/locale/LocaleInformation_uz.properties,
	resource/gnu/java/locale/LocaleInformation_zh.properties,
	resource/gnu/java/locale/LocaleInformation_zh_Hant.properties:
	More updates for CLDR 1.3.
	
2006-03-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* doc/vmintegration.texinfo:
	Updated to include VMArray.
	* include/Makefile.am:
	Replace java_lang_reflect_Array.h with
	java_lang_reflect_VMArray.h
	* include/java_lang_reflect_VMArray.h:
	New autogenerated header.
	* include/java_lang_reflect_Array.h:
	Removed.
	* java/lang/reflect/Array.java:
	(newInstance(Class,int)): Calls VMArray.
	(createMultiArray(Class,int[],int)): Likewise.
	(createObjectArray(Class,int)): Removed.
	* native/jni/java-lang/Makefile.am:
	Replaced java_lang_reflect_Array.c with
	java_lang_reflect_VMArray.c
	* native/jni/java-lang/java_lang_reflect_VMArray.c:
	Renamed from java_lang_reflect_Array.c.
	* vm/reference/java/lang/reflect/VMArray.java:
	(createObjectArray(Class,int)): Native method moved
	from java.lang.reflect.Array.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/plaf/metal/CustomizableTheme.java: New class.
	* examples/gnu/classpath/examples/swing/MetalThemeEditor.java:
	New class.
	* examples/gnu/classpath/examples/swing/Demo.java
	(mkButtonBar): Hook up theme editor.
	(mkMenuBar): Hook up theme editor.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(ApproveSelectionAction.actionPerformed): Added case for when
	nothing has been selected but the user has typed a filename
	into the textfield.
	(getFileName): Return the value of the text field.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JColorChooser.java
	(createDialog): Create JDialog instead of ModalDialog. Make this
	dialog modal by calling setModal(true).
	(ModalDialog): Removed unnecessary inner class.

2006-03-19  Tom Tromey  <tromey@redhat.com>

	* java/awt/font/NumericShaper.java: Rewrote.

2006-03-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableUI.java:
	Implement MouseWheelListener. (ROWS_PER_WHEEL_CLICK):
	New field. MouseInputHandler.mouseWheelMoved): New method.
	(installListeners): Register MouseInputHandler as
	wheel listener also.
	
2006-03-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 26746
	* javax/swing/ViewportLayout.java (layoutContainer):
	If Scrollable tracks dimension, set view size to the port size. 
	If port is larger than the view, move the view to the top/left.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/MenuSelectionManager.java
	(isComponentPartOfCurrentMenu): Also consider the first element
	in a menu selection list. Make a isDescendentFrom check instead
	of simple equals to also catch sub components.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComboBox.java
	(actionPerformed): Fetch selected item directly from the editor
	instead of trying to get it from the event.

2006-03-19  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxEditor.java
	(listener): Removed field.
	(BasicComboBoxEditor): Removed initialization of listener field.
	(addActionListener): Add listener directly to editor.
	(removeActionListener): Remove listener directly from editor.
	(ComboBoxEditorListener): Removed class.
	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(getPreferredSize): Fixed to return the minimumSize.
	(getMinimumSize): Improved code for more clearness.
	(getMaximumSize): Return (32767,32767) as requested by the mauve test.
	(rectangleForCurrentValue): Correctly respect insets.
	(getDefaultSize): Return preferredSize here. Dont override height
	with 100.
	(getDisplaySize): Moved around code for more clearness. Added
	handling of prototype renderer.
	(ComboBoxLayoutManager.layoutContainer): Set editor bounds after
	arrowButton bounds since the former depends on the latter.
	* javax/swing/plaf/metal/MetalComboBoxButton.java:
	(MetalComboBoxButton): Make button rollover disabled.
	(isFocusTraversable): Return false unconditionally.
	* javax/swing/plaf/metal/MetalComboBoxEditor.java:
	(EditorTextField): New class. Fixes the size properties.
	(MetalComboBoxEditor): Create instance of EditorTextField.
	* javax/swing/plaf/metal/MetalComboBoxUI.java:
	(getMinimumSize): Fixed editable size.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (BooleanCellRenderer): Rewritten.

2006-03-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalToolBarUI.java
	(update): Added overridden method to support OceanTheme.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTableUI.java (KeyHandler.keyTyped): 
	Activate the cell editing on character keystroke.

2006-03-18  Mark Wielaard  <mark@klomp.org>

	* java/awt/Component.java (eventTypeEnabled): Handle
	MouseEvent.MOUSE_WHEEL.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postMouseWheelEvent):
	New callback method.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(AWT_MOUSE_WHEEL): New constant.
	(AWT_WHEEL_UNIT_SCROLL): Likewise.
	(postMouseWheelEventID): New static variable.
	(cp_gtk_component_init_jni): Record postMouseWheelEventID.
	(cp_gtk_component_connect_mouse_signals): Connect scroll-event.
	(button_number): Renamed to ...
	(button_number_direction): variable to hold button number or scroll
	direction.
	(component_button_press_cb): Use button_number_direction.
	(component_scroll_cb): New static callback function.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.swing.JTable.java (TableTextField.scrollRectToVisible):
	Return without action.

2006-03-18  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (paintComponent):
	Don't cast graphics object to GdkGraphics.
	(updateComponent): Likewise.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/TableDemo.java
	(TModel.getColumnClass): Set second column to Icon.
	(TModel.isCellEditable): Say icons are not editable.
	(createContent): Fill the in second column with some icons from 
	MetalIconFactory.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkButtonBar): Set maximal button bar height to the preferred height.

2006-03-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Substract insets from scroller width.
	(getPopupHeightForRowCount): If height==0, return a default of 100
	instead for empty ComboBoxes.

2006-03-18  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper.autoClosePopups): Removed field.
	(PopupHelper.mousePressed): Removed processing of registered
	autoclose popups.
	(registerForAutoClose): Removed unneeded method.
	(autoClosePopups): Removed unneeded method.
	(registerForAutoClose): Removed unneeded method.

2006-03-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.swing.JTable.java (TableTextField): Set border.
	(moveToCellBeingEdited): Do not adjust the editor boundaries

2006-03-18  Michael Koch  <konqueror@gmx.de>

	* resource/gnu/java/locale/LocaleInformation_aa.properties,
	resource/gnu/java/locale/LocaleInformation_af.properties,
	resource/gnu/java/locale/LocaleInformation_am.properties,
	resource/gnu/java/locale/LocaleInformation_ar.properties,
	resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
	resource/gnu/java/locale/LocaleInformation_be.properties,
	resource/gnu/java/locale/LocaleInformation_bg.properties,
	resource/gnu/java/locale/LocaleInformation_bn.properties,
	resource/gnu/java/locale/LocaleInformation_ca.properties,
	resource/gnu/java/locale/LocaleInformation_cs.properties,
	resource/gnu/java/locale/LocaleInformation_cy.properties,
	resource/gnu/java/locale/LocaleInformation_da.properties,
	resource/gnu/java/locale/LocaleInformation_de.properties,
	resource/gnu/java/locale/LocaleInformation_de_CH.properties,
	resource/gnu/java/locale/LocaleInformation_dz.properties,
	resource/gnu/java/locale/LocaleInformation_en.properties,
	resource/gnu/java/locale/LocaleInformation_eo.properties,
	resource/gnu/java/locale/LocaleInformation_es.properties,
	resource/gnu/java/locale/LocaleInformation_et.properties,
	resource/gnu/java/locale/LocaleInformation_eu.properties,
	resource/gnu/java/locale/LocaleInformation_fa.properties,
	resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
	resource/gnu/java/locale/LocaleInformation_fi.properties,
	resource/gnu/java/locale/LocaleInformation_fo.properties,
	resource/gnu/java/locale/LocaleInformation_fr.properties,
	resource/gnu/java/locale/LocaleInformation_ga.properties,
	resource/gnu/java/locale/LocaleInformation_gl.properties,
	resource/gnu/java/locale/LocaleInformation_gu.properties,
	resource/gnu/java/locale/LocaleInformation_he.properties,
	resource/gnu/java/locale/LocaleInformation_hi.properties,
	resource/gnu/java/locale/LocaleInformation_hr.properties,
	resource/gnu/java/locale/LocaleInformation_hu.properties,
	resource/gnu/java/locale/LocaleInformation_hy.properties,
	resource/gnu/java/locale/LocaleInformation_id.properties,
	resource/gnu/java/locale/LocaleInformation_is.properties,
	resource/gnu/java/locale/LocaleInformation_it.properties,
	resource/gnu/java/locale/LocaleInformation_ja.properties,
	resource/gnu/java/locale/LocaleInformation_ka.properties,
	resource/gnu/java/locale/LocaleInformation_km.properties,
	resource/gnu/java/locale/LocaleInformation_ko.properties,
	resource/gnu/java/locale/LocaleInformation_lo.properties,
	resource/gnu/java/locale/LocaleInformation_lt.properties,
	resource/gnu/java/locale/LocaleInformation_lv.properties,
	resource/gnu/java/locale/LocaleInformation_mk.properties,
	resource/gnu/java/locale/LocaleInformation_mr.properties,
	resource/gnu/java/locale/LocaleInformation_ms.properties,
	resource/gnu/java/locale/LocaleInformation_mt.properties,
	resource/gnu/java/locale/LocaleInformation_nb.properties,
	resource/gnu/java/locale/LocaleInformation_nl.properties,
	resource/gnu/java/locale/LocaleInformation_nn.properties,
	resource/gnu/java/locale/LocaleInformation_om.properties,
	resource/gnu/java/locale/LocaleInformation_pl.properties,
	resource/gnu/java/locale/LocaleInformation_ps.properties,
	resource/gnu/java/locale/LocaleInformation_pt.properties,
	resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
	resource/gnu/java/locale/LocaleInformation_ro.properties,
	resource/gnu/java/locale/LocaleInformation_ru.properties,
	resource/gnu/java/locale/LocaleInformation_sk.properties,
	resource/gnu/java/locale/LocaleInformation_sl.properties,
	resource/gnu/java/locale/LocaleInformation_so.properties,
	resource/gnu/java/locale/LocaleInformation_sq.properties,
	resource/gnu/java/locale/LocaleInformation_sr.properties,
	resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
	resource/gnu/java/locale/LocaleInformation_sv.properties,
	resource/gnu/java/locale/LocaleInformation_sw.properties,
	resource/gnu/java/locale/LocaleInformation_ta.properties,
	resource/gnu/java/locale/LocaleInformation_te.properties,
	resource/gnu/java/locale/LocaleInformation_th.properties,
	resource/gnu/java/locale/LocaleInformation_tr.properties,
	resource/gnu/java/locale/LocaleInformation_uk.properties,
	resource/gnu/java/locale/LocaleInformation_uz.properties,
	resource/gnu/java/locale/LocaleInformation_vi.properties,
	resource/gnu/java/locale/LocaleInformation_zh.properties,
	resource/gnu/java/locale/LocaleInformation_zh_Hant.properties:
	Updated to use the new localized strings for currencies, languages,
	variants, territories, etc.

2006-03-18  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REMatch.java(matchedCharIndexed): New field,
	(start, end): Added comment about the negative values of them,
	(finish): Saves the input text in matchedCharIndexed,
	(toString): If the start or end index is out of bounds of the
	matched text, get the substring from matchedCharIndexed.
	Added special handlings in case start/end index < -1,
	(getSubStartIndex, getStartIndex, getSubEndIndex, getEndIndex):
	Added special handlings in case start/end index < -1,
	* gnu/regexp/RETokenLookAhead.java(matchThis): Return the newly
	found match, but keep the index as the original match.
	* gnu/regexp/RETokenLookBehind.java(matchThis): Return the newly
	found match, but keep the index as the original match.
	* gnu/regexp/RETokenBackRef.java(matchThis): Added special handlings
	in case start/end index < -1.
	
2006-03-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/activation/ActivationSystemTransient.java (debug):
	Set to false. 	

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>
  	 
	* javax/swing/text/DefaultCaret.java:
	(mouseClicked) Use setDot() and moveDot() instead of
	JTextComponent.select().

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(MetalComboBoxEditorBorder.paintBorder): Implemented special
	border painting for the Ocean theme.
	(MetalComboBoxEditor): Create editor directly instead of going
	to super.
	
2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/JTextComponent.java
	(JTextComponent): Make text components opaque.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxUI.java
	(MetalComboBoxLayoutManager.layoutContainer): Forward to
	layoutComboBox().
	(MetalPropertyChangeListener.propertyChange): Update focusable
	flag according to the enable and editable state.
	(editablePropertyChanged): Removed unnecessary code.
	(getMinimumSize): Rewritten to correctly compute the
	size, respecting the insets of the components and the icon,
	the visual properties of the combobox, etc.
	(configureEditor): Update listeners correctly.
	(unconfigureEditor): Update listeners correctly.
	(layoutComboBox): Implemented.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxEditor.java
	(MetalComboBoxEditorBorder): Made this a subclass of AbstractBorder
	instead of Flush3DBorder.
	(paintBorder): Fixed border painting.
	(editorBorderInsets): Fixed border's insets.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(rendererPane): Documented.
	(MetalComboBoxButton): Set enabled flag from ComboBox.
	Set focusable flag from ComboBox's enabled flag.
	(isFocusTraversable): Make button focus traversable if
	ComboBox is not editable but enable.
	(paintComponent): Fixed painting to correctly adjust
	the boxes of the renderer and button.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(installDefaults): Only install UI margin if installed margin.
	is null or a UIResource. 	 
	(uninstallDefaults): Only uninstall margin if it's 	 
	a UIResource. 	 
  	 
 2006-03-17  Robert Schuster  <robertschuster@fsfe.org> 	 
  	 
         * javax/swing/text/DefaultCaret.java: 	 
         (mouseClicked) Use setDot() and moveDot() instead of 	 
         JTextComponent.select(). 	 
 
2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultEditorKit.java: Refactored anonymous
	inner classes into package-private inner classes, added actions
	for caret movement and selection to the next and previous word
	and an action which selects the whole text.

2006-03-17  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/swing/Spring.java: Uncomment springdebug methods and
	rename them toString.
	* javax/swing/SpringLayout.java: Likewise.

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/FieldView.java:
	(viewToModel): Added call to adjust allocation area.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxUI.java
	(mouseListener): Removed field.
	(buttonBackground): Removed field.
	(buttonShadow): Removed field.
	(buttonDarkShadow): Removed field.
	(buttonHighlight): Removed field.
	(BasicComboBoxUI): Initialize currentValuePane and cachedMinimumSize.
	(installUI): Initialize and configure renderer and editor here.
	(uninstallUI): Close popup before uninitializing.
	Message popup that we are uninitializing. Clear layout.
	(installDefaults): Install UI border. Don't install colors.
	(installListeners): Install listeners fetched from the popup.
	Remove handling of mouseListener.
	(uninstallDefaults): Uninstall border. Don't handle colors.
	(uninstallListeners): Don't handle mouseListener. Uninstall
	listener from the popup.
	(createMouseListener): Removed method.
	(createRenderer): Create UIResource.
	(installComponents): Cleaned up.
	(uninstallComponents): Only remove renderer when it is
	a UIResource.
	(addEditor): Remove editor before adding new one.
	Fetch editor from comboBox.
	(removeEditor): Only do something when editor != null. Unconfigure
	editor before removing.
	(configureEditor): Add key listener. Call comboBox.configureEditor.
	(unconfigureEditor): Removed key listener.
	(configureArrowButton): Only handle when arrowButton != null.
	Add mouse listeners to arrow button.
	(unconfigureArrowButton): Remove listeners.
	(createArrowButton): Don't handle colors here.
	(setPopupVisible): Don't handle focus here.
	(paint): Only paint when comboBox is not editable. Update
	hasFocus flag.
	(getPreferredSize): Implemented to be minimumSize + 4 pixels width.
	(getMinimumSize): Respect insets here.
	(getMaximumSize): Return preferredSize with width of 32767.
	(getInsets): Return ComboBox insets.
	(paintCurrentValue): Paint using currentValuePane.
	Install correct colors. Don't revalidate.
	(paintCurrentValueBackground): Implemented.
	(getDefaultSize): Reimplemented using a default renderer.
	(getDisplaySize): Reimplemented to use renderer.
	(ComboBoxLayoutManager.preferredLayoutSize): Forward to component.
	(ComboBoxLayoutManager.minimumLayoutSize): Forward to component.
	(ComboBoxLayoutManager.layoutContainer): Fixed layout.
	(FocusHandler.focusGained): Don't invalidate minimumSize.
	(FocusHandler.focusLost): Don't invalidate minimumSize.
	Only close popup if focus change is not temporary.
	(ItemHandler.itemStateChanged): Don't invalidate minimumSize.
	Reconfigure editor if not null.
	(ListDataHandler.contentsChanged): Revalidate and reconfigure
	editor if necessary.
	(ListDataHandler.intervalAdded): Fixed updating of the display size.
	(ListDataHandler.intervalRemoved): Forward to contentsChanged.
	(MouseHandler): Removed unnecessary class.

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(Demo): Set default closing operation to shutdown the runtime.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(BasicComboPopup): Create listeners here.
	Configure components here.
	(show): Correctly calculate bounds using computePopupBounds().
	Make scroller fixed-size. Removed special autocloser handling.
	(hide): Rewritten to use MenuSelectionHandler.
	(createList): Don't set selection mode here.
	(configureList): Correctly install colors and fonts and selectionMode.
	(createScroller): Set scrollpane policies.
	(configureScroller): Make scroller and scrollbar not-focusable.
	(configurePopup): Make popup opaque and borderPainted.
	(installComboBoxListeners): Don't install mouse listener on ComboBox.
	(delegateFocus): Implemented.
	(convertMouseEvent): Implemented.
	(updateListBoxSelectionForEvent): Implemented to also handle
	autoscrolling.
	(InvocationMouseHandler.mousePressed): Delegate focus correctly.
	Only open popup on left mouse-click.
	(InvocationMouseHandler.mouseReleased): Rewritten.
	(InvocationMouseMotionHandler.mouseDragged): Rewritten to better
	support autoscrolling.
	(ItemHandler.itemStateChanged): Implemented to sync selection with
	the comboBox.
	(ListMouseHandler.mouseReleased): Fetch selected index directly
	from list.
	(ListMouseMotionHandler.mouseMoved): Only update when mouse is inside
	the list box.
	(PropertyChangeHandler.propertyChange): Don't revalidate/repaint here.
	When model changes, then update listeners correctly.
	(uninstallListeners): Don't uninstall list listeners.
	(uninstallComboBoxListeners): Don't uninstall mouse listeners
	from comboBox.
	(syncSelection): New helper method.

2006-03-17  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainView.java:
	(drawLine): Rewritten.
	(drawSelectedText): Corrected last argument for
	Utilities.drawTabbedText() call.
	(paint): Store start and end of selection in object variables,
	store constant values of for-loop in local variables.
	* javax/swing/text/Utilities.java:
	(drawTabbedText): Add 'pixelWidth' to the return value, store
	constant value of for-loop in local variable.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboPopup.java
	(BasicComboPopup): Create listeners here.
	Configure components here.
	(show): Correctly calculate bounds using computePopupBounds().
	Make scroller fixed-size. Removed special autocloser handling.
	(hide): Rewritten to use MenuSelectionHandler.
	(createList): Don't set selection mode here.
	(configureList): Correctly install colors and fonts and selectionMode.
	(createScroller): Set scrollpane policies.
	(configureScroller): Make scroller and scrollbar not-focusable.
	(configurePopup): Make popup opaque and borderPainted.
	(installComboBoxListeners): Don't install mouse listener on ComboBox.
	(delegateFocus): Implemented.
	(convertMouseEvent): Implemented.
	(updateListBoxSelectionForEvent): Implemented to also handle
	autoscrolling.
	(InvocationMouseHandler.mousePressed): Delegate focus correctly.
	Only open popup on left mouse-click.
	(InvocationMouseHandler.mouseReleased): Rewritten.
	(InvocationMouseMotionHandler.mouseDragged): Rewritten to better
	support autoscrolling.
	(ItemHandler.itemStateChanged): Implemented to sync selection with
	the comboBox.
	(ListMouseHandler.mouseReleased): Fetch selected index directly
	from list.
	(ListMouseMotionHandler.mouseMoved): Only update when mouse is inside
	the list box.
	(PropertyChangeHandler.propertyChange): Don't revalidate/repaint here.
	When model changes, then update listeners correctly.
	(uninstallListeners): Don't uninstall list listeners.
	(uninstallComboBoxListeners): Don't uninstall mouse listeners
	from comboBox.
	(syncSelection): New helper method.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicComboBoxRenderer.java
	(noFocusBorder): Make border with insets of (1,1,1,1).
	(BasicComboBoxRenderer): Make renderer opaque.
	No need to explicitly set alignment.
	(getListCellRendererComponent): Rewritten to correctly initialize
	color and font.

2006-03-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JPopupMenu.java
	(setVisible): Handle JPopupMenu opening and closing via
	the MenuSelectionHandler.

2006-03-17  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/DynamicAny/DynAnyPackage/InvalidValue.java: Now final.
	* org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java: Likewise.
	* org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java: 
	Likewise.	
	* org/omg/CORBA/portable/RemarshalException.java: Likewise
	* org/omg/CORBA/TypeCodePackage/BadKind.java: Likewise.
	* org/omg/CORBA/TypeCodePackage/Bounds.java: Likewise.
	* org/omg/CORBA/ORBPackage/InvalidName.java: Likewise.
	* org/omg/CORBA/ORBPackage/InconsistentTypeCode.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/TypeMismatch.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/InvalidValue.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/InvalidSeq.java: Likewise.
	* org/omg/CORBA/DynAnyPackage/Invalid.java: Likewise.
	* org/omg/Dynamic/Parameter.java: Now final, javadoc fixes.

2006-03-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/Activatable.java: Implemented.
	java/rmi/activation/ActivationDesc.java: Implemented.
	java/rmi/activation/ActivationGroup.java: Implemented.
	java/rmi/activation/ActivationGroupDesc.java: Implemented.
	java/rmi/activation/ActivationID.java: Implemented.
	java/rmi/activation/ActivationSystem.java: Implemented.
	* gnu/java/rmi/server/UnicastServerRef.java 
	(exportObject, incommingMessageCall): Documented.
	* java/rmi/activation/package.html: Documented.
	* java/rmi/server/ObjID.java (objNum, space): Made package
	protected.
	* gnu/java/rmi/server/UnicastServer.java: Rewritten.
	* gnu/java/rmi/server/CombinedClassLoader.java (constructor):
	Iteration bug fix.
	* gnu/java/rmi/activation/ActivationSystemTransient.java: New file.
	gnu/java/rmi/activation/BidiTable.java: New file.
	gnu/java/rmi/activation/DefaultActivationGroup.java: New file.
	gnu/java/rmi/activation/DefaultActivationSystem.java: New file.
	gnu/java/rmi/server/ActivatableServerRef.java: New file.

2006-03-17  Mark Wielaard  <mark@klomp.org>

	* java/security/BasicPermission.java (BasicPermission): Check
	name equals empty string to force NullPointerException.

2006-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/26606
	Commit patch by Caolan McNamara  <caolanm@redhat.com>
	* javax/swing/Spring.java: Complete implementation
	* javax/swing/SpringLayout.java: Likewise.

2006-03-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (_mainThread): Not needed. Removed
	all references.
	(run): Remove catch clause for InterruptedException. It is no
	longer necessary.

2006-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getFontMetrics): Handle monospaced fonts specially.

2006-03-16  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java (getJdwpThreadGroup): New method.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(suspendAllThreads): Use Jdwp.getJdwpThreadGroup.
	Don't suspend the current thread unless it is not part of the JDWP
	thread group.

2006-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GdkFontMetrics.java (getLeading): Always
	return 0.
	* gnu/java/awt/peer/gtk/GdkFontPeer.java (getFontMetrics): Get
	font metrics through toolkit.
	* gnu/java/awt/peer/gtk/GdkGraphics.java (getFontMetrics):
	Likewise.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
	(getFontMetrics): To calculate Java logical ascent and descent
	values, average Pango ink and logical values.

2006-03-16  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Character.java: Updated header comment.

2006-03-16  Tom Tromey  <tromey@redhat.com>

	* javax/sound/sampled/AudioSystem.java (getAudioFileFormat): New
	constructor.
	* javax/sound/sampled/FloatControl.java: Now abstract.
	* javax/sound/sampled/EnumControl.java: Now abstract.
	* javax/sound/sampled/CompoundControl.java: Now abstract.
	* javax/sound/sampled/BooleanControl.java: Now abstract.

2006-03-16  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/ConvolveOp.java (getBounds2D): Now final.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* java/util/zip/ZipFile.java
	(openFile): New helper method.
	(ZipFile): Use new openFile method to ensure the proper
	exception is thrown. This applies for all overloaded constructors.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* java/text/DateFormatSymbols.java
	(setAmPmStrings): Added null check and throw NPE.
	(setEras): Likewise.
	(setLocalPatternChars): Likewise.
	(setMonths): Likewise.
	(setShortMonths): Likewise.
	(setShortWeekdays): Likewise.
	(setWeekdays): Likewise.
	(setZoneStrings): Likewise.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/DefaultDesktopManager.java
	(iconifyFrame): Repaint after removing the frame.
	(removeIconFor): Repaint after removing the icon.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(remove): Respect the rootPaneCheckingEnabled flag here.

2006-03-16  Roman Kennke  <kennke@aicas.com>

	* gnu/javax/swing/plaf/gnu/GNULookAndFeel.java
	Moved from examples into gnu.javax.swing.. namespace.
	* examples/gnu/classpath/examples/swing/GNULookAndFeel.java
	Moved to gnu.javax.swing.. namespace.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(themesMenu): New field. Used to disable theme switch in
	non-Metal-L&Fs.
	(mkMenuBar): Added L&F menu.
	(ChangeThemeAction.actionPerformed): Only switch theme when
	in Metal L&F.
	(ChangeLAFAction): New class used for changing themes.
	* javax/swing/UIManager.java
	(installed): Added GNU L&F as installed L&F.

2006-03-16  Mark Wielaard  <mark@klomp.org>

	* examples/gnu/classpath/examples/swing/badge.png: Removed.
	* examples/gnu/classpath/examples/icons/badge.png: Added.
	* examples/gnu/classpath/examples/swing/DemoDesktop.java: Use badge
	from icon directory.

2006-03-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* examples/gnu/classpath/examples/awt/AnimationApplet.java: New
	example.
	* examples/gnu/classpath/examples/swing/FillRect.java: Likewise.
	* examples/gnu/classpath/examples/awt/Demo.java: Add
	AnimationApplet demo.
	* examples/gnu/classpath/examples/swing/Demo.java: Add FillRect
	demo.

2006-03-15  Thomas Fitzsimmons  <fitzsim@redhat.com>

	PR classpath/26486
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java (getGraphics): Remove
	method.
	(handleEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (isInRepaint):
	Remove field.
	(beginNativeRepaint): Remove method.
	(endNativeRepaint): Likewise.
	(handleEvent): Call paintComponent and updateComponent.
	(paintComponent): New method.
	(updateComponent): Likewise.
	(repaint): Return early if width or height is less than one.
	(postExposeEvent): Remove isInRepaint reference.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java: (getGraphics):
	Remove method.
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java (getGraphics): Inherit
	from GtkWindowPeer.
	(postMouseEvent): Likewise.
	(postExposeEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (updateComponent):
	Override to do nothing.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (getGraphics): Inherit
	from GtkWindowPeer.
	(postMouseEvent): Likewise.
	(postExposeEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java (handleEvent): Inherit
	paint and update handling from GtkComponentPeer.
	(updateComponent): Override to call paintComponent.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c: Replace
	gdk_flush calls with schedule_flush calls.
	(flush): New function.
	(schedule_flush): Likewise.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* java/beans/beancontext/BeanContextSupport.java (BCSChild): New
	constructor.
	(BCSIterator): Likewise.
	* java/beans/beancontext/BeanContextServicesSupport.java (BCSSChild):
	New constructor.
	(BCSSProxyServiceProvider): Likewise.
	(BCSSServiceProvider): Likewise.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* javax/sound/midi/Track.java (Track): New constructor.
	(events): Now package-private.
	* javax/sound/midi/MidiUnavailableException.java
	(MidiUnavailableException): Removed invalid constructors.
	* javax/sound/midi/MidiSystem.java (MidiSystem): New constructor.
	* javax/sound/midi/InvalidMidiDataException.java
	(InvalidMidiDataException): Removed invalid constructors.
	* javax/sound/midi/Sequencer.java (hashCode): Now final.
	* javax/sound/midi/SysexMessage.java (SysexMessage): Now protected.
	* javax/sound/midi/ShortMessage.java (ShortMessage): Now protected.
	(SYSTEM_EXCLUSIVE): Removed.
	(getDataLength): Updated.
	* javax/sound/midi/MidiDevice.java (Info): Now protected.
	(equals): Now final
	(getName): Now final.
	(getVendor): Now final.
	(getDescription): Likewise.
	(hashCode): Likewise.
	(getVersion): Likewise.
	(toString): Likewise.
	* javax/sound/midi/MetaMessage.java (MetaMessage): Now protected.
	* javax/sound/sampled/ReverbType.java (getDecayTime): Now final.
	(getEarlyReflectionDelay): Likewise.
	(getEarlyReflectionIntensity): Likewise.
	(getLateReflectionDelay): Likewise.
	(getLateReflectionIntensity): Likewise.
	(toString): Likewise.
	* javax/sound/sampled/Port.java (toString): Now final.
	* javax/sound/sampled/LineEvent.java (getFramePosition): Now final.
	(getLine): Likewise.
	(getType): Likewise.
	* javax/sound/sampled/Mixer.java (Info): Now protected.
	(getDescription): Now final.
	(getName): Likewise.
	(getVendor): Likewise.
	(getVersion): Likewise.
	(toString): Likewise.
	* javax/sound/sampled/Control.java: Now abstract.
	(Type.toString): Now final.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/util/LineTable.java (lines): Remove all occurances
	of this redundant variable.
	(LineTable): Assert that the number of line numbers and the number of
	code indicies is the same.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* javax/imageio/stream/ImageOutputStreamImpl.java (flushBits): Now
	final.
	* javax/imageio/stream/ImageOutputStream.java (flushBefore): Javadoc
	fix.
	* java/util/zip/ZipFile.java (ENDNRD): New constant.
	* java/util/zip/ZipConstants.java (ENDNRD, ENDDCD): Removed.
	* java/util/zip/Inflater.java (end): Not deprecated.
	* java/util/zip/Deflater.java (end): Not deprecated.
	* java/text/Bidi.java (Bidi): Now final.
	* java/nio/MappedByteBuffer.java (finalize): Now protected.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/util/Location.java: Rewrite using VMMethod.
	(Location): Index is a long, not an int.
	(getMethod): New method.
	(getIndex): New method.
	(toString): New method.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/RescaleOp.java (getRenderingHints): Now final.
	* java/awt/image/LookupOp.java (filter): Now final.
	(getBounds2D): Likewise.
	(getPoint2D): Likewise.
	(getTable): Likewise.
	(getRenderingHints): Likewise.
	* java/awt/image/ConvolveOp.java (filter): Now final.
	(getBounds2D): Likewise.
	(getKernel): Likewise.
	(getPoint2D): Likewise.
	(getRenderingHints): Likewise.
	* java/awt/image/BandCombineOp.java (getPoint2D): Now final.
	(getMatrix): Likewise.
	(getBounds2D): Likewise.
	(getRenderingHints): Likewise.
	* java/awt/image/AffineTransformOp.java (getPoint2D): Now final.
	* java/awt/Button.java (AccessibleAWTButton.serialVersionUID): Now
	private.
	* java/awt/dnd/DropTargetContext.java (TransferableProxy): Now
	protected.
	* java/awt/dnd/DropTarget.java (DropTargetAutoScroller): Now
	protected.
	* java/awt/MenuItem.java (AccessibleAWTMenuItem): Now protected.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java:
	Update javadoc.
	(matches): Implement.

2006-03-15  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/BreakpointEvent.java: New file.
	
	* gnu/classpath/jdwp/exception/NativeMethodException.java: New file.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java (signum): New methods.

2006-03-15  Tom Tromey  <tromey@redhat.com>

	* .settings/org.eclipse.jdt.core.prefs: Set tabs to 8 spaces.

2006-03-15  Lillian Angel  <langel@redhat.com>

	PR classpath/24211
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilterUnlocked):
	Added check to avoid segmentation fault.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(getComponentAt): Fixed documentation.
	(getComponentAt): Likewise.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(dragBuffer): New field.
	(dragBufferInitialized): New field.
	(paint): Added facility for buffered dragging of components.
	(initializeDragBuffer): New method.
	(getConditionForKeyStroke): Removed deprecated flag. Adjusted
	API docs.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BorderListener.mouseDragged): Turn on buffered dragging.
	(BorderListener.mouseReleased): Turn off buffered dragging.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(getComponentAt): Fixed documentation.
	(getComponentAt): Likewise.
	(findComponentAt): Likewise.
	(findComponentAt): Likewise.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(PropertyChangeHandler.propertyChange): Call enableActions().
	Fixed 'iconable' property name.

2006-03-15  Chris Burdess  <dog@gnu.org>

	Fixes PR 26700
	* gnu/xml/stream/XMLParser.java: Fix for detectEncoding false positive.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(desktop): New field.
	(mkMenuBar): Added new subdemos.
	(mkButtonWorld): Removed.
	(CheckCellRenderer): Moved to ListDemo.
	(LabelCellRenderer): Moved to ListDemo.
	(mkTreeWorld): Moved to TreeDemo.
	(mkDesktopWorld): Removed.
	(mkTabWorld): Moved to TabbedPaneDemo.
	(mkTabbedPane): Removed.
	(Demo): Replaced 'worlds' tabbed pane with desktop.
	(PopupAction): Made class non-static.
	(PopupAction.actionPerformed): Bring up subdemos in internal
	frame.
	(mkButtonBar): Added new demos.
	(createDesktop): New method.
	* examples/gnu/classpath/examples/swing/DemoDesktop.java: New class.
	* examples/gnu/classpath/examples/swing/ListDemo.java: New demo.
	* examples/gnu/classpath/examples/swing/TreeDemo.java: New demo.
	* examples/gnu/classpath/examples/swing/TabbedPaneDemo.java: New demo.
	* examples/gnu/classpath/examples/swing/badge.png: New image file.

2006-03-15  Lillian Angel  <langel@redhat.com>
	
	* java/awt/Container.java
	(getComponentAt): Fixed mistake in comments.
	(getComponentAt): Likewise.
	(locate): Likewise. Also, handled lightweight components.
	Heavyweights take precedence over lightweights, so we should
	iterate through the heavyweights first.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Container.java
	(getComponentAt): Added API documentation.
	(getComponentAt): Likewise.
	(locate): Likewise. Also, removed lines to ignore
	invisible components.
	(findComponentAt): Added API documentation.
	(findComponentAt): Added API documentation.
	(findComponentForMouseEvent): Removed, never used.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/Popup.java
	(LightweightPopup.show): Repaint the panel after showing it.

2006-03-15  Lillian Angel  <langel@redhat.com>

	* java/awt/Component.java
	(show): repaint should only be called if the component
	isShowing and isLightweight.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(setClosable): Made this property bound.
	(setResizable): Made this property bound.
	(setIconifiable): Made this property bound.
	(setMaximizable): Made this property bound.

2006-03-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(sizeWidthToFit): Implemented.

2006-03-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java: API docs updated all over, plus
	(setIdentifier): Fire required PropertyChangeEvent,
	(setCellEditor): Likewise.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/ButtonDemo.java,
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java,
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java,
	* examples/gnu/classpath/examples/swing/ProgressBarDemo.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/TableDemo.java,
	* examples/gnu/classpath/examples/swing/TextAreaDemo.java,
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java:
	Reworked to implemented DemoFactory and lazy loading of Sub-demos.
	* examples/gnu/classpath/examples/swing/Demo.java:
	Cleaned up. Reworked handling of Sub-demos to load lazily.
	* examples/gnu/classpath/examples/swing/DemoFactory.java:
	New interface. Used for loading the subdemos lazily.

2006-03-15  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicToolBarUI.java
	(PropertyListener.propertyChange): Added null check to avoid NPE.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(COLUMN_WIDTH_PROPERTY): Updated API docs,
	(width): Likewise.
	(minWidth): Likewise,
	(preferredWidth): Likewise,
	(maxWidth): Likewise,
	(headerRenderer): Likewise,
	(cellRenderer): Likewise,
	(cellEditor): Likewise,
	(changeSupport): Likewise,
	(firePropertyChange(String, Object, Object)): Removed,
	(firePropertyChange(String, int. int)): Likewise,
	(firePropertyChange(String, boolean, boolean)): Likewise,
	(setModelIndex): Fire property change,
	(setHeaderValue): Call changeSupport directly to generate event,
	(setHeaderRenderer): Likewise,
	(setCellRenderer): Likewise,
	(setWidth): Likewise,
	(setPreferredWidth): Likewise,
	(setMinWidth): Likewise,
	(setMaxWidth): Likewise,
	(createDefaultHeaderRenderer): Added API docs.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	Removed static initializer.
	(mkMenuBar): Made method non-static. Added themes menu.
	(ChangeThemeAction): New inner class, used to change themes.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(setMaxWidth): Updated width and preferredWidth if necessary,
	(getMaxWidth): Updated API docs.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSliderUI.java
	(TrackListener.mouseDragged): Only process event when slider is
	enabled.
	(TrackListener.mouseReleased): Only process event when slider is
	enabled.
	(TrackListener.mousePressed): Only process event when slider is
	enabled.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added note about OceanTheme support.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalIconFactory.java
	(HorizontalSliderThumbIcon.gradientMask): New field
	(HorizontalSliderThumbIcon.paintIcon): Added support for the
	OceanTheme.
	(VerticalSliderThumbIcon.gradientMask): New field
	(VerticalSliderThumbIcon.paintIcon): Added support for the
	OceanTheme.
	* javax/swing/plaf/metal/MetalUtils.java
	(paintHorizontalGradient): Fixed painting of 'masked' gradients.
	(paintVerticalGradient): Fixed painting of 'masked' gradients.

2006-03-14  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26641
	* java/awt/LightweightDispatcher.java (dispatchEvent): Return result
	of handleMouseEvent.
	(handleMouseEvent): Return boolean to indicate whether we handled the
	event by passing it to a lightweight.

2006-03-14  Wolfgang Baer  <WBaer@gmx.de>

	* org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java,
	* org/omg/PortableServer/ServantActivatorPOA.java,
	* org/omg/PortableServer/ServantLocatorPOA.java: 
	Make class abstract and minor api docs fixlets.
	* org/omg/PortableServer/ForwardRequest.java, 
	* org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java, 
	* org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java, 
	* org/omg/PortableServer/POAPackage/AdapterNonExistent.java, 
	* org/omg/PortableServer/POAPackage/InvalidPolicy.java, 
	* org/omg/PortableServer/POAPackage/NoServant.java, 
	* org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java, 
	* org/omg/PortableServer/POAPackage/ObjectNotActive.java, 
	* org/omg/PortableServer/POAPackage/ServantAlreadyActive.java, 
	* org/omg/PortableServer/POAPackage/ServantNotActive.java, 
	* org/omg/PortableServer/POAPackage/WrongAdapter.java, 
	* org/omg/PortableServer/POAPackage/WrongPolicy.java, 
	* org/omg/PortableServer/POAManagerPackage/AdapterInactive.java, 
	* org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java,
	* org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java,
	* org/omg/PortableServer/CurrentPackage/NoContext.java: Make class final.

2006-03-14  Wolfgang Baer  <WBaer@gmx.de>

	* NEWS: Added entry about printing support.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(COLUMN_WIDTH_PROPERTY): Updated API docs,
	(isResizable): Likewise,
	(setWidth): Likewise,
	(getWidth): Likewise,
	(setPreferredWidth): Likewise,
	(getPreferredWidth): Likewise,
	(setMinWidth): Check for negative argument and update width and 
	preferredWidth if necessary,
	(getMinWidth): Updated API docs.

2006-03-14  Lillian Angel  <langel@redhat.com>
	
	* java/awt/Container.java
	(addImpl): Removed call to repaint. No need to repaint here.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalSliderUI.java
	(paintTrack): Added OceanTheme support.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/table/TableColumn.java
	(setResizable): Fire PropertyChangeEvent if the flag value changes,
	(isResizable): Updated API docs.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/LookAndFeel.java: Updated API docs.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(paintGradient): Added support for 'masked' gradients.
	(paintHorizontalGradient): Likewise.
	(paintVerticalGradient): Likewise.
	* javax/swing/plaf/metal/MetalIconFactory.java
	(RadioButtonIcon.gradientMask): New field.
	(RadioButtonIcon.paintIcon): Added mask for gradient painting.

2006-03-14  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26645.
	* javax/swing/plaf/basic/BasicComboBoxEditor.java (listener):
	New field.
	(removeActionListener): Add listener to ComboBoxEditorListener.
	(removeActionListener): Remove listener from ComboBoxEditorListener.
	(ComboBoxEditorListener): New static helper class.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(getToolBarButtonBorder): Don't create a UIResource border
	here.
	* javax/swing/plaf/metal/MetalToolBarUI.java
	(installUI): New overridden method. Installs the rollover property.
	(uninstallUI): New overridden method. Resets the rollover property.
	* javax/swing/plaf/metal/MetalUtils.java
	(paintGradient): Fetch Float values from the UIManager. Adjusted
	method signatures accordingly.
	(paintHorizontalGradient): Adjusted signature to accept float
	instead of double.
	(paintVerticalGradient): Adjusted signature to accept float
	instead of double.
	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Added missing UIDefaults entries,
	except of Icons. Fixed gradient entries to use Float instead
	of Double.

2006-03-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(JInternalFrame): Make JInternalFrame opaque.
	* javax/swing/JToolBarFrame.java
	(JToolBar): Make JToolBar opaque.

2006-03-14  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/TreeNode.java: Fixed bad API doc tags,
	* javax/swing/tree/TreePath.java: Likewise.

2006-03-13  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/html/StyleSheet.java (removeAttributes):
	Genericized.
	* javax/swing/plaf/synth/SynthLookAndFeel.java (load): Genericized.
	* java/rmi/server/RMIClassLoader.java (loadProxyClass): Genericized.

2006-03-13  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(executeMethods): Output number of methods.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicButtonUI.java
	(uninstallDefaults): Only uninstall border if it's a UIResource.
	* javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
	(SystemMenuBar.isFocusTraversable): Fixed typo in signature.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installUI): Don't touch the opaque flag of the glassPane and
	the frame. Don't invalidate.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installUI): Don't touch the opaque flag of the glassPane.
	* javax/swing/plaf/basic/BasicMenuBarUI.java
	(properyChangeListener): Made field private.
	(ChangeHandler): Made class private.
	(ContainerHandler): Made class private.
	(PropertyChangeHandler): Made class private.
	* javax/swing/plaf/basic/BasicMenuUI.java
	(MenuHandler): Made class private.
	(PropertyChangeHandler): Removed unneeded class.
	(MenuDragMouseHandler): Made class private.
	(MenuKeyHandler): Made class private.
	* javax/swing/plaf/basic/BasicPanelUI.java
	(installDefaults): Made method protected. Don't set opaque
	flag.
	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(TrackListener.shouldScroll): Made method private.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.BasicHorizontalLayoutManager):
	Made constructor package private.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java
	(cellBorder): Made field private.
	* javax/swing/plaf/basic/BasicTextUI.java
	(installDefaults): Don't make component opaque.
	* javax/swing/plaf/basic/BasicToolBarUI.java
	(createNonRollOverBorder): Don't create UIResource border.
	(createRollOverBorder): Don't create UIResource border.
	(installComponents): Moved setRolloverBorders call here.
	(installDefaults): Moved setRolloverBorders call from here.
	(installUI): Don't make toolbar opaque.
	(setBorderToNonRollover): Handle AbstractButton instead of
	JButton here.
	(uninstallComponents): Don't nullify class fields here.

2006-03-13  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SwingUtilities.java
	(calculateInnerArea): handle null component, and replace 
	getLocalBounds() with getBounds(Rectangle) to avoid unnecessary object
	creation.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JColorChooser.java
	(updateUI): Don't call revalidate().
	* javax/swing/JComboBox.java
	(updateUI): Don't call invalidate().
	* javax/swing/JDesktopPane.java
	(updateUI): Don't call invalidate().
	* javax/swing/JFileChooser.java
	(updateUI): Don't call revalidate().
	* javax/swing/JMenu.java
	(updateUI): Don't call invalidate().
	* javax/swing/JMenuBar.java
	(updateUI): Don't call invalidate().
	* javax/swing/JMenuItem.java
	(updateUI): Don't call invalidate().
	* javax/swing/JOptionPane.java
	(updateUI): Don't call invalidate().
	* javax/swing/JPopupMenu.java
	(updateUI): Don't call invalidate().
	* javax/swing/JProgressBar.java
	(updateUI): Don't call invalidate().
	* javax/swing/JScrollBar.java
	(updateUI): Don't call invalidate() and repaint().
	* javax/swing/JScrollPane.java
	(updateUI): Rewritten to be like the other updateUI()
	methods.
	* javax/swing/JSlider.java
	(updateUI): Don't call invalidate() and repaint().
	* javax/swing/JSplitPane.java
	(updateUI): Don't call invalidate() and repaint().
	* javax/swing/JTabbedPane.java
	(updateUI): Don't call invalidate().
	* javax/swing/JTable.java
	(updateUI): Don't call revalidate() and repaint().
	* javax/swing/JToolBar.java
	(updateUI): Don't call revalidate() and repaint().
	* javax/swing/JToolTip.java
	(updateUI): Don't call revalidate() and repaint().

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(updateComponentTreeUI): Rewritten to be more robust. Handling of
	menus and non-Swing components is improved.
	(updateComponentTreeUIImpl): New helper method.
	(replaceUIActionMap): Added check for uiActionMap==parent to
	avoid loop.
	(replaceUIInputMap): Added check for uiInputMap==parent to
	avoid loop.

2006-03-13  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/classpath/debug/Component.java: 
	(IPP) New component for IPP debugging. 
	(EVERYTHING): Adapted to include IPP.
	* javax/print/PrintServiceLookup.java: 
	(registerServiceProvider): New method.
	(registerService): Likewise.
	(lookupPrintServices): Likewise.
	(lookupMultiDocPrintServices): Likewise.
	(lookupDefaultPrintService): Likewise.
	(static_initializer): Likewise.
	(printServiceLookups): New field for found service providers.
	(printServices): New field for application registered providers.
	(systemProvider): New field for the system provider.	
	* javax/print/ServiceUI.java: New file.	
	* javax/print/package.html: Added more usage content.
	* javax/print/event/package.html: Likewise.
	* javax/print/attribute/package.html: Likewise.
	* javax/print/attribute/standard/package.html: Likewise.
	* gnu/javax/print/PrintUriException.java,
	gnu/javax/print/PrintFlavorException.java,
	gnu/javax/print/PrinterDialog.java,
	gnu/javax/print/PrintAttributeException.java,
	gnu/javax/print/CupsPrintServiceLookup.java,
	gnu/javax/print/CupsServer.java,
	gnu/javax/print/CupsPrintService.java,
	gnu/javax/print/CupsMediaMapping.java,
	gnu/javax/print/CupsIppOperation.java:
	New implementation files of the Java Print Service API.
	* gnu/javax/print/ipp/IppValueTag.java,
	gnu/javax/print/ipp/MultiDocPrintJobImpl.java,
	gnu/javax/print/ipp/IppStatusCode.java,
	gnu/javax/print/ipp/IppUtilities.java,
	gnu/javax/print/ipp/IppResponse.java,
	gnu/javax/print/ipp/IppException.java,
	gnu/javax/print/ipp/IppPrintService.java,
	gnu/javax/print/ipp/IppRequest.java,
	gnu/javax/print/ipp/IppMultiDocPrintService.java,
	gnu/javax/print/ipp/IppDelimiterTag.java,
	gnu/javax/print/ipp/DocPrintJobImpl.java:
	New files of the IPP client implementation.
	* gnu/javax/print/ipp/attribute/UnknownAttribute.java,
	gnu/javax/print/ipp/attribute/StatusMessage.java,
	gnu/javax/print/ipp/attribute/RequestedAttributes.java,
	gnu/javax/print/ipp/attribute/NaturalLanguageSyntax.java,
	gnu/javax/print/ipp/attribute/DocumentAccessError.java,
	gnu/javax/print/ipp/attribute/DetailedStatusMessage.java,
	gnu/javax/print/ipp/attribute/DefaultValueAttribute.java,
	gnu/javax/print/ipp/attribute/CharsetSyntax.java: 
	New attribute syntax/role files of the printing implementation.
	* gnu/javax/print/ipp/attribute/supported/UriSecuritySupported.java,
	gnu/javax/print/ipp/attribute/supported/UriAuthenticationSupported.java,
	gnu/javax/print/ipp/attribute/supported/SidesSupported.java,
	gnu/javax/print/ipp/attribute/supported/PrintQualitySupported.java,
	gnu/javax/print/ipp/attribute/supported/PrinterUriSupported.java,
	gnu/javax/print/ipp/attribute/supported/PrinterResolutionSupported.java,
	gnu/javax/print/ipp/attribute/supported/PageRangesSupported.java,
	gnu/javax/print/ipp/attribute/supported/
	OrientationRequestedSupported.java, 
	gnu/javax/print/ipp/attribute/supported/OperationsSupported.java,
	gnu/javax/print/ipp/attribute/supported/
	MultipleDocumentHandlingSupported.java, 
	gnu/javax/print/ipp/attribute/supported/
	MultipleDocumentJobsSupported.java, 
	gnu/javax/print/ipp/attribute/supported/MediaSupported.java,
	gnu/javax/print/ipp/attribute/supported/JobSheetsSupported.java,
	gnu/javax/print/ipp/attribute/supported/JobHoldUntilSupported.java,
	gnu/javax/print/ipp/attribute/supported/IppVersionsSupported.java,
	gnu/javax/print/ipp/attribute/supported/
	GeneratedNaturalLanguageSupported.java,
	gnu/javax/print/ipp/attribute/supported/FinishingsSupported.java,
	gnu/javax/print/ipp/attribute/supported/DocumentFormatSupported.java,
	gnu/javax/print/ipp/attribute/supported/CompressionSupported.java,
	gnu/javax/print/ipp/attribute/supported/CharsetSupported.java:
	New supported attribute files.
	* gnu/javax/print/ipp/attribute/printer/CharsetConfigured.java,
	gnu/javax/print/ipp/attribute/printer/DocumentFormat.java,
	gnu/javax/print/ipp/attribute/printer/MultipleOperationTimeOut.java,
	gnu/javax/print/ipp/attribute/printer/NaturalLanguageConfigured.java,
	gnu/javax/print/ipp/attribute/printer/PrinterCurrentTime.java,
	gnu/javax/print/ipp/attribute/printer/PrinterDriverInstaller.java,
	gnu/javax/print/ipp/attribute/printer/PrinterStateMessage.java,
	gnu/javax/print/ipp/attribute/printer/PrinterUpTime.java:
	New printer description attribute files.
	* gnu/javax/print/ipp/attribute/job/AttributesCharset.java,
	gnu/javax/print/ipp/attribute/job/AttributesNaturalLanguage.java,
	gnu/javax/print/ipp/attribute/job/JobDetailedStatusMessages.java,
	gnu/javax/print/ipp/attribute/job/JobDocumentAccessErrors.java,
	gnu/javax/print/ipp/attribute/job/JobPrinterUri.java,
	gnu/javax/print/ipp/attribute/job/JobId.java,
	gnu/javax/print/ipp/attribute/job/JobMoreInfo.java,
	gnu/javax/print/ipp/attribute/job/JobUri.java,
	gnu/javax/print/ipp/attribute/job/JobStateMessage.java:
	New job description attribute files.
	* gnu/javax/print/ipp/attribute/defaults/CopiesDefault.java,
	gnu/javax/print/ipp/attribute/defaults/DocumentFormatDefault.java,
	gnu/javax/print/ipp/attribute/defaults/FinishingsDefault.java,
	gnu/javax/print/ipp/attribute/defaults/JobHoldUntilDefault.java,
	gnu/javax/print/ipp/attribute/defaults/JobPriorityDefault.java,
	gnu/javax/print/ipp/attribute/defaults/JobSheetsDefault.java,
	gnu/javax/print/ipp/attribute/defaults/MediaDefault.java,
	gnu/javax/print/ipp/attribute/defaults/
	MultipleDocumentHandlingDefault.java,
	gnu/javax/print/ipp/attribute/defaults/NumberUpDefault.java,
	gnu/javax/print/ipp/attribute/defaults/OrientationRequestedDefault.java,
	gnu/javax/print/ipp/attribute/defaults/PrinterResolutionDefault.java,
	gnu/javax/print/ipp/attribute/defaults/PrintQualityDefault.java,
	gnu/javax/print/ipp/attribute/defaults/SidesDefault.java:
	New default printing attribute files.
	* resource/gnu/javax/print/PrinterDialog.properties: New file.
	* resource/gnu/javax/print/PrinterDialog_de.properties: Likewise.
	* examples/gnu/classpath/examples/print/Demo.java: 
	New demo application of the current implemented functionality.

2006-03-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/ActivationGroupDesc.java: Implemented.
	java/rmi/activation/ActivationDesc.java.java,
	java/rmi/activation/ActivationGroup.java,
	java/rmi/activation/ActivationID.java,
	java/rmi/activation/ActivationMonitor.java,
	java/rmi/activation/ActivationSystem.java,
	java/rmi/activation/package.html: Documenting.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(setSelected): Repaint frame when it is showing and the selection
	state changes.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/AbstractButton.java
	(AbstractAccessibleButton.getAccessibleRelationSet): Return super....()
	instead of null.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/accessibility/AccessibleContext.java
	(getAccessibleRelationSet): Return empty set instead of null.

2006-03-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ImageIcon.java
	(loadImage): Remove completed images from the MediaTracker. This
	avoids a potential memory leak.

2006-03-12  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/MultiDocPrintService.java, 
	* javax/print/MultiDocPrintJob.java, 
	* javax/print/MultiDoc.java: Added and enhanced documentation.

2006-03-12  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/ActivationID.java (uid): New field.
	(writeExternal, readExternal): New methods. 
	(equals, hashCode): Rewritten.
	* java/rmi/activation/ActivationInstantiator.java,
	* java/rmi/activation/ActivationSystem.java,
	* java/rmi/activation/Activator.java,
	* java/rmi/activation/Activatable.java,
	* java/rmi/activation/ActivationGroup.java,
	* java/rmi/activation/ActivationGroupDesc.java: 
	Documented and autoformatted.
	* java/rmi/activation/package.html: Added content.
	
2006-03-12  Chris Burdess  <dog@gnu.org>

	Fixes PR 26652
	* gnu/xml/stream/XMLParser.java: Fix for case when both reader and
	  encoding are specified.

2006-03-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultSingleSelectionModel.java: API docs all over, plus
	(changeEvent): Initialise in fireStateChange(),
	(setSelectedIndex): Check if change is made before firing event,
	(clearSelection): Delegate to setSelectedIndex(),
	(fireStateChanged): Initialise changeEvent if necessary,
	* javax/swing/SingleSelectionModel.java: API docs all over.

2006-03-11  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/InflaterInputStream.java: Reverted previous
	patch.

2006-03-11  Mark Wielaard  <mark@klomp.org>

	* java/text/AttributedCharacterIterator.java (Attribute.readResolve):
	Compare name.

2006-03-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TreeSelectionEvent.java
	(isAddedPath(TreePath)): Throw IllegalArgumentException if path is
	not one of the added/removed paths,
	(cloneWithSource): Reformatted.

2006-03-11  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/TreeCellEditor.java: Added API docs,
	* javax/swing/tree/TreeCellRenderer.java: Likewise.

2006-03-10  Casey Marshall  <csm@gnu.org>

	Fixes PR 23768.
	* javax/crypto/Cipher.java (doFinal, doFinal, doFinal): don't
	reset `state.'
	(doFinal, update): new methods.
	(init, init, init, init): initialize `state' after trying the
	implementation, which can throw an exception.
	* javax/crypto/CipherSpi.java (engineDoFinal, engineUpdate): new
	methods.

2006-03-11  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/BacktrackStack.java: New file.
	* gnu/regexp/RE.java(findMatch): New method.
	* gnu/regexp/REMatch.java(next,matchFlags,MF_FIND_ALL,
	REMatchList): Removed. (backtrackStack): New field.
	* gnu/regexp/REToken.java(match): Changed from an abstract
	method to an ordinary method defined with the new method
	matchThis. (matchThis, getNext, findMatch, returnsFixedLengthMatches,
	findFixedLengthMatches, backtrack, toString): New methods.
	* gnu/regexp/RETokenAny.java: Inplemented new methods of REToken.
	* gnu/regexp/RETokenBackRef.java: Likewise.
	* gnu/regexp/RETokenChar.java: Likewise.
	* gnu/regexp/RETokenEnd.java: Likewise.
	* gnu/regexp/RETokenEndSub.java: Likewise.
	* gnu/regexp/RETokenIndependent.java: Likewise.
	* gnu/regexp/RETokenLookAhead.java: Likewise.
	* gnu/regexp/RETokenLookBehind.java: Likewise.
	* gnu/regexp/RETokenNamedProperty.java: Likewise.
	* gnu/regexp/RETokenPOSIX.java: Likewise.
	* gnu/regexp/RETokenRange.java: Likewise.
	* gnu/regexp/RETokenStart.java: Likewise.
	* gnu/regexp/RETokenWordBoundary.java: Likewise
	* gnu/regexp/RETokenOneOf.java: Rewriten.
	* gnu/regexp/RETokenRepeated.java: Rewriten.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalBorders.java
	(RolloverButtonBorder.paintBorder): Only call super here.
	* javax/swing/plaf/metal/MetalButtonListener.java
	(propertyChange): Only call super here.
	* javax/swing/plaf/metal/MetalButtonUI.java
	(update): Changed condition from isOpaque() to isContentAreaFilled()
	for the gradient fill.
	* javax/swing/plaf/metal/MetalToggleButtonUI.java
	(paintText): API doc fix. Makes paintText not deprecated as specified
	but adds comment that this is obsolete.
	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): Fixed condition so that the Java2D is not
	used when the noGraphics2D property is set.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(createDefaultTheme): Set OceanTheme as default metal theme.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/WrappedPlainView.java
	(metrics): Made field package private to avoid accessor method.
	(WrappedLine.paint): Call drawLine with y offset of the font ascent.
	The drawLine (righly) interprets the y parameter as the baseline.
	* javax/swing/text/Utilities.java
	(getBreakLocation): Don't consider the offset. The returned value
	for getTabbedTextOffset is already relative to the offset.

2006-03-10  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/http/Headers.java: Added documentation all over.
	(dateFormat): Made private.
	(put): Replace only the last occurance and the value.
	(putAll): Save one iteration. Clarified documentation.

2006-03-10  Tom Tromey  <tromey@redhat.com>

	* java/util/zip/InflaterInputStream.java (read): Replace with libgcj
	implementation.
	* java/util/zip/GZIPInputStream.java (readHeader): Use DEFLATED,
	not '8'.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c
	(comboboxgroup_get_widget): New function.
	(removed): Fixed to use new function to get the correct widget.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(nativeSetCheckboxGroup): Reverted last patch to use get_widget
	function.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(ArrangeGrid): Added checks to determine if component
	is placed last in a row or column. If so, the location
	of the last component should be used to get the location
	of the current component.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(nativeSetCheckboxGroup): No need to use new function here.
	Should just pass in pointer.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(distributeSizeAndWeight): Change else if to else. This
	allows for components to be added to a new row when 
	their gridheight is REMAINDER.

2006-03-10  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/activation/ActivationDesc.java,
	java/rmi/activation/ActivationGroupID.java,
	java/rmi/activation/Activator.java,
	java/rmi/server/Operation.java,
	java/rmi/server/RemoteServer.java: Documented and formatted.

2006-03-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/JToggleButton.java: Fixed API doc tags,
	* javax/swing/OverlayLayout.java: Likewise.

2006-03-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultCellEditor.java
	(cancelCellEditing): Removed spurious API doc tag.

2006-03-10  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(create): Put checkbox widget into an event box so it paints properly.
	(connectSignals): Fixed to use new function.
	(nativeSetCheckboxGroup): Likewise.
	(gtkToggleButtonSetActive): Likewise.
	(gtkWidgetModifyFont): Likewise.
	(gtkButtonSetLabel): Likewise.
	(combobox_get_widget): New function.

2006-03-10  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/rtf/package.html: New file.
	
2006-03-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/OceanTheme.java
	(addCustomEntriesToTable): Fixed ScrollBar.gradient value.
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(paintThumb): Only draw Metal pattern if theme is not OceanTheme.
	(paintThumbHorizontal): Added handling of OceanTheme.
	(paintThumbVertical): Added handling of OceanTheme.

2006-03-10  Roman Kennke  <kennke@aicas.com>

	Reported by Fridjof Siebert <siebert@aicas.com>
	* java/awt/MediaTracker.java
	(removeImage): Only set prev to e when the the images of the
	entries are not the same. This avoids a potentially corrupt list.

2006-03-10  Chris Burdess  <dog@gnu.org>

	PR 26620:
	* gnu/xml/transform/TransformerImpl.java: Suspend wellformedness
	  checking while reindenting.

2006-03-10  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* javax/imageio/plugins/jpeg/JPEGHuffmanTable.java: New file.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/26585:
	* tools/Makefile.am (TOOLSdir): Don't put tools.zip in tools
	subdir.  Added README.
	(install-data-local): Removed.
	(uninstall-local): Likewise.
	(EXTRA_DIST): Removed.

2006-03-09  Tom Tromey  <tromey@redhat.com>

	PR classpath/26623:
	* native/jni/qt-peer/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/midi-alsa/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-net/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-lang/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/xmlj/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/gtk-peer/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/midi-dssi/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-io/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-nio/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jni/java-util/Makefile.am (nativeexeclib_LTLIBRARIES):
	Renamed.
	* native/jawt/Makefile.am (nativeexeclib_LTLIBRARIES): Renamed.
	* configure.ac (nativeexeclibdir): Renamed from nativelibdir.

2006-03-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/processor/MethodCommandSet.java
	(executeVariableTable): Use VMMethod instead of reflection.
	(executeLineTable): Likewise.
	* gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
	(executeMethods): Rewrite to use new VMVirtualMachine.getAllClassMethods.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(getLineTable): Removed. Now resides in VMMethod.
	(getVarTable): Likewise.
	(getAllClassMethods): New method.
	
2006-03-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/event/EventManager.java: Update javadoc.
	* gnu/classpath/jdwp/event/ThreadStartEvent.java
	(ThreadStartEvent): Likewise.
	* gnu/classpath/jdwp/event/VmDeathEvent.java (VmDeathEvent): Likewise.
	* gnu/classpath/jdwp/event/filters/ConditionalFilter.java
	(ConditionalFilter): Likewise.
	* gnu/classpath/jdwp/event/filters/ExceptionOnlyFilter.java
	(ExceptionOnlyFilter): Likewise.
	* gnu/classpath/jdwp/event/filters/FieldOnlyFilter.java
	(FieldOnlyFilter): Likewise.
	* gnu/classpath/jdwp/event/filters/StepFilter.java (getDepth): Likewise.
	(getSize): Likewise.
	(StepFilter): Likewise.
	* gnu/classpath/jdwp/id/JdwpId.java: Likewise (for _tag).
	* gnu/classpath/jdwp/transport/JdwpPacket.java
	(JdwpPacket): Likewise.
	(fromBytes): Likewise.
	* gnu/classpath/jdwp/transport/JdwpReplyPacket.java
	(JdwpReplyPacket): Likewise.
	* gnu/classpath/jdwp/util/Value.java (getUntaggedObj): Likewise.
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java
	(getReferenceType): Likewise.
	(newObjectId): Likewise.
	* vm/reference/gnu/classpath/jdwp/VMMethod.java (readId): Likewise.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(getFrames): Fix typo in parameter name and update javadoc.
	(getClassMethod): Update javadoc.

2006-03-09  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TreeSelectionEvent.java: Updated API docs,
	* javax/swing/event/TreeSelectionListener.java: Likewise.

2006-03-09  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
	(getHScrollbarHeight): Fixed property name.
	(getVScrollbarHeight): Likewise.

2006-03-09  Lillian Angel  <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
	(get_widget): New function.
	(gtkWidgetSetParent): Changed to use new function.
	(gtkWidgetSetCursorUnlocked): Likewise.
	(gtkWidgetSetSensitive): Likewise.
	(gtkWidgetRequestFocus): Likewise.
	(gtkWindowGetLocationOnScreen): Likewise.
	(gtkWidgetGetDimensions): Likewise.
	(gtkWidgetGetPreferredDimensions): Likewise.
	(setNativeBounds): Likewise.
	(gtkWidgetGetBackground): Likewise.
	(gtkWidgetGetForeground): Likewise.
	(gtkWidgetSetBackground): Likewise.
	(gtkWidgetSetForeground): Likewise.
	(setVisibleNativeUnlocked): Likewise.
	(isEnabled): Likewise.
	(isRealized): Likewise.
	(setNativeEventMask): Likewise.

2006-03-09  Lillian Angel  <langel@redhat.com>

	PR Classpath\22163
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
	(create): Added combobox widget to an event box.
	(connectSignals): Added call to choice_get_widget to get the
	combobox out of the event box.
	(append): Likewise.
	(nativeRemoveAll): Likewise.
	(nativeRemove): Likwise.
	(nativeAdd): Likewise.
	(selectNative): Likewise.
	(choice_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
	(create): Added list scroll window widget to an event box.
	(connectSignals): Changed call to use new function to get the
	correct widget out of the event box.
	(getWidgetModifyFont): Likewise.
	(getWidgetRequestFocus): Likewise.
	(append): Likewise.
	(add): Likewise.
	(delItems): Likewise.
	(select): Likewise.
	(deselect): Likewise.
	(getSize): Likewise.
	(getSelectedIndexes): Likewise.
	(makeVisible): Likewise.
	(setMultipleMode): Likewise.
	(list_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
	(create): Added scrollpane to an eventbox.
	(setScrollPosition): Changed call to use new function to get the
	correct widget out of the event box.
	(gtkScrolledWindowSetHScrollIncrement): Likewise.
	(gtkScrolledWindowSetVScrollIncrement): Likewise.
	(getHScrollbarHeight): Likewise.
	(getVScrollbarWidth): Likewise.
	(setPolicy): Likewise.
	(scrollpane_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
	(connectSignals): Changed call to use new function to get the
	correct widget out of the event box.
	(create): Added scrollbar to an eventbox.
	(setLineIncrement): Changed call to use new function to get the
	correct widget out of the event box.
	(setPageIncrement): Likewise.
	(setBarValues): Likewise.
	(scrollbar_get_widget): New function.
	* native/jni/gtk-peer/gnu_java_gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
	(create): Added text area scroll window widget to an event box.
	(connectSignals): Changed call to use new function to get the
	correct widget out of the event box.
	(insert): Likewise.
	(replaceRange): Likewise.
	(gtkWidgetModifyFont): Likewise.
	(gtkWidgetRequestFocus): Likewise.
	(getHScrollbarHeight): Likewise.
	(getVScrollbarWidth): Likewise.
	(getCaretPosition): Likewise.
	(setCaretPosition):Likewise.
	(getSelectionStart): Likewise.
	(getSelectionEnd): Likewise.
	(select): Likewise.
	(setEditable): Likewise.
	(getText): Likewise.
	(setText): Likewise.
	(textarea_get_widget): New function.

2006-03-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/dgc/VMID.java: 
	(equals, hashCode, static initializer):	Rewritten.
	* java/rmi/dgc/package.html: Documented.
	
2006-03-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkClipboard.java (clipboard, selection):
	New static field.
	(stringMimeType, imageMimeType, filesMimeType): Initialize directly.
	(canCache): Likewise.
	(GtkClipboard): Take String argument.
	(getInstance): Removed.
	(getClipboardInstance, getSelectionInstance): New static methods.
	(setSystemContents): Make synchronized. Takes boolean argument.
	(initNativeState): Add clipboard and selection.
	* gnu/java/awt/peer/gtk/GtkClipboardNotifier.java
	(announceClipboardChange, announcePrimaryChange): New static field.
	(announce): Take GtkClipboard as argument.
	(run): Check which clipboard to announce change for.
	* gnu/java/awt/peer/gtk/GtkSelection.java (clipboard): New final
	boolean field.
	(GtkSelection): Take GtkClipboard as argument.
	(requestText, requestImage, requestURIs, requestBytes): Add boolean
	clipboard argument.
	(requestMimeTypes): Likewise.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (getSystemSelection):
	New method.
	* java/awt/Toolkit.java (getSystemSelection): Document.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
	(cp_gtk_selection_instance): New var.
	(current_selection, owner): Removed.
	(clipboard_owner_change_cb): Use clipboard argument.
	(initNativeState): Store clipboard and selection instances. Cache
	setSystemContentsID, provideContentID, provideTextID, provideImageID,
	and provideURIsID.
	(clipboard_get_func): Use clipboard argument.
	(clipboard_clear_func): Likewise. Always call method.
	(advertiseContent): Don't cache method ids here. Check whether to
	use clpboard or selection. Don't set owner or current_selection.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
	(requestText, requestImage, requestURIs, requestBytes): Use extra
	boolean argument to select clipboard.
	* native/jni/gtk-peer/gtkpeer.h (cp_gtk_selection): New extern.
	(cp_gtk_clipboard_instance, cp_gtk_selection_instance): Likewise.
	* include/gnu_java_awt_peer_gtk_GtkClipboard.h: Regenerate.
	* include/gnu_java_awt_peer_gtk_GtkSelection.h: Likewise.

2006-03-09  Keith Seitz  <keiths@redhat.com>

	* gnu/classpath/jdwp/Jdwp.java: Remove unused imports.
	* gnu/classpath/jdwp/event/EventRequest.java: Likewise.
	* gnu/classpath/jdwp/event/filters/ClassMatchFilter.java: Likewise.
	* gnu/classpath/jdwp/event/filters/ThreadOnlyFilter.java: Likewise.
	* gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java: Likewise.
	* gnu/classpath/jdwp/transport/ITransport.java: Likewise.
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java: Likewise.
	* vm/reference/gnu/classpath/jdwp/VMMethod.java: Likewise.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java: Likewise.

2006-03-09  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JList.java (ensureIndexIsVisible): Check whether cell
	bounds for index is valid.
	* javax/swing/plaf/basic/BasicListUI.java (valueChanged): Likewise.
	(paint): Likewise.
	(getCellBounds): Update documentation.

2006-03-09  Arnaud Vandyck  <avdyk@gnu.org>

	* .classpath: added exclude pattern on source folders
	(Makefiles, README and .cvsignore)

2006-03-08  Michael Koch  <konqueror@gmx.de>

	* java/net/Proxy.java (NO_PROXY): Made final.
	(equals): Likewise.
	(hashCode): Likewise.

2006-03-08  Keith Seitz  <keiths@redhat.com>

	* vm/reference/gnu/classpath/jdwp/VMMethod.java: New file.
	* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
	(getClassMethod): New method.

2006-03-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UID.java (getMachineId): Include the host IP address.
    
2006-03-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/ObjID.java: Documented and autoformatted.

2006-03-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 26584
	* tools/Makefile.am (install-data-local,
	uninstall-local): Install/uninstall the tools/README only.
	* tools/gnu/classpath/tools/giop/README: Updated.
	* tools/README: New file.

2006-03-08  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): If the last component added had gridwidth == REMAINDER,
	then the next item should be set to current_y (not 0).

2006-03-08  Lillian Angel  <langel@redhat.com>

	* java/awt/GridBagLayout.java
	(GetLayoutInfo): If gridy is RELATIVE and there is no component
	in the bottom-most spot of the column, we need to place that component
	at the y-location of the other components in that row. If there are
	no other components in that row, then place it at y = 0.

2006-03-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/ProgressMonitor.java: Updated API docs,
	* javax/swing/ProgressMonitorInputStream.java: Likewise.

2006-03-08  Michael Koch  <konqueror@gmx.de>

	* java/net/InetSocketAddress.java
	(InetSocketAddress(String,int,resolve)): New private contructor.
	(InetSocketAddress(String,int)): Use new private constructor.
	(createUnresolved): New method.

2006-03-07  Michael Koch  <konqueror@gmx.de>

	* gnu/java/net/DefaultProxySelector.java,
	java/net/Proxy.java, java/net/ProxySelector.java:
	New files.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UID.java (constructor): Assign last and time fields
 	after pause.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UID.java: New file (replacing). 

2006-03-08  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/jar/Manifest.java: Removed unused imports.
	(CRLF): New constant.
	(read): Added method documentation.
	Use UTF-8 encoding instead of 8859_1.
	(write): Added method documentation.
	Use BufferedOutputStream (w/ 4K buffer) instead of PrintWriter.
	(write_main_section): Replace PrintWriter arg with OutputStream.
	Replace JarException with IOException.
	(write_version_info): Likewise.
	(write_main_attributes): Likewise.
	(write_attribute_entry): Likewise.
	(write_individual_sections): Likewise.
	(write_entry_attributes): Likewise.
	(write_header): Replace PrintWriter arg with OutputStream.
	Re-implemented.

2006-03-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultMutableTreeNode.java
	(getFirstChild): Updated API docs,
	(getLastChild): Likewise,
	(getChildAfter): Likewise,
	(getChildBefore): Likewise,
	(isNodeSibling): Return true if node == this,
	(getSiblingCount): Updated API docs,
	(getNextSibling): Likewise,
	(getPreviousSibling): Likewise,
	(isLeaf): Likewise,
	(getFirstLeaf): Likewise,
	(getLastLeaf): Likewise,
	(getNextLeaf): Implemented,
	(getPreviousLeaf): Implemented.

2006-03-07  Tom Tromey  <tromey@redhat.com>

	* java/awt/image/ColorModel.java (getComponents): Javadoc fix.
	* java/awt/datatransfer/FlavorEvent.java: Added missing @since.
	* java/awt/dnd/DropTargetEvent.java (serialVersionUID): New field.
	* java/awt/DefaultFocusTraversalPolicy.java (serialVersionUID): New
	field.

2006-03-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/DefaultMutableTreeNode.java: API docs all over plus
	(clone): Reimplemented,
	(add): Throw IllegalArgumentException if child is an ancestor,
	(remove(int)): Set child's parent to null,
	(remove(MutableTreeNode)): Check arguments and set child's parent to 
	null,
	(insert): Check allowsChildren flag, check for null argument, and
	check for a node that is an ancestor,
	(getIndex): Throw IllegalArgumentException for null argument,
	(setAllowsChildren): If setting to false, remove existing children,
	(removeAllChildren): Set parent to null for removed children.

2006-03-07  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/tree/TreeNode.java: Reformatted and added API docs all
	over.

2006-03-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/StrictMath.java (ulp): New methods.
	* java/lang/Math.java (ulp): New methods.

2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/UnicastRef.java,
	* gnu/java/rmi/server/UnicastServer.java: Formatted.
	
2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/CombinedClassLoader.java 
	(findClass, findLibrary, findResouce, findResources): check
	all loaders in array.
	
2006-03-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

        PR 25526
	* gnu/java/rmi/dgc/DGCImpl.java (LeaseRecord, leaseCache): Removed.
	(RefProtector):    new inner class. (dirty): Rewritten.
	* gnu/java/rmi/server/UnicastRef.java (dgcId, dgcInterfaceHash,
	dgcSequence, DIRTY, this_id): New fields. (equals, hashCode, notifyDGC):
	new methods. (readExternal): Create LeaseRenewingTask if non local.
	* gnu/java/rmi/server/UnicastServer.java (objects):
	Use WeakHashMap. (refcache): Use WeakIdentityHashMap.
	(getExported): New method.
	* gnu/java/rmi/dgc/LeaseRenewingTask.java: New file.
	
2006-03-06  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20060306.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.90 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.90.
	
2006-03-06  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Use Boolean.TRUE for
        'CheckBoxMenuItem.borderPainted'.
	
2006-03-06  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/http/Headers.java: Added documentation all over.
	(dateFormat): Made private.
	(put): Replace only the last occurance and the value.
	(putAll): Reimplemented with the put method.
	
2006-03-06  Lillian Angel  <langel@redhat.com>

        PR classpath/26569
	* java/awt/List.java
	(preferredSize): Return the size of the list if the peer is 
        null.
	* gnu/java/awt/peer/gtk/GtkListPeer.java
	(preferredSize): Code was returning the minimum size of the 
	list. Added adjustment to the width of the list so it is a 
	proper size.
	
2006-03-06  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/http/HTTPURLConnection.java: Organized imports.
	(getRequestProperty): Remove duplicated null check.
	* java/net/URLConnection.java:
	(URLConnection): Javadoc fix.
	(addRequestProperty): Likewise.
	(getDefaultRequestProperty): Likewise.
	(getHeaderField): Likewise.
	(getHeaderFieldDate): Likewise.
	(getHeaderFieldKey): Likewise.
	(getHeaderFields): Likewise.
	(getRequestProperties): Likewise.
	(getRequestProperty): Likewise.
	(setDefaultRequestProperty): Likewise.
	(setRequestProperty): Likewise.
	
2006-03-06  Robert Schuster  <robertschuster@fsfe.org>
      
	* examples/gnu/classpath/examples/swing/TextArea.java: New file.
	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkButtonBar): Changed layout manager to GridLayout, added entry for
	textarea example.
	(mkMenuBar): Added entry for text area example.
	
2006-03-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/Region.java (FILE_CHOOSER): Renamed.
	(FORMATTED_TEXT_FIELD): Likewise.
	
2006-03-06  Tom Tromey  <tromey@redhat.com>

	* javax/swing/plaf/synth/SynthPainter.java: Finished.
	
2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* examples/gnu/classpath/examples/swing/Demo.java:
	(mkMenuBar): Added menu entry that will display the VM's name,
	version and distributor.
	
2006-03-06  Tom Tromey  <tromey@redhat.com>
	 
	* javax/swing/plaf/synth/SynthLookAndFeel.java (getDescription): 
	Javadoc fix.
	(getName): Likewise.
	
2006-03-06  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/jar/Manifest.java: Removed unused imports.
	(CRLF): New constant.
	(read): Added method documentation.
	Use UTF-8 encoding instead of 8859_1.
	(write): Added method documentation.
	Use BufferedOutputStream (w/ 4K buffer) instead of PrintWriter.
	(write_main_section): Replace PrintWriter arg with OutputStream.
	Replace JarException with IOException.
	(write_version_info): Likewise.
	(write_main_attributes): Likewise.
	(write_attribute_entry): Likewise.
	(write_individual_sections): Likewise.
	(write_entry_attributes): Likewise.
	(write_header): Replace PrintWriter arg with OutputStream.
	Re-implemented.
	
2006-03-06  David Gilbert  <david.gilbert@object-refinery.com>

        
	* javax/swing/tree/FixedHeightLayoutCache.java: Reformatted and fixed
        API doc tag warnings,
	* javax/swing/tree/VariableHeightLayoutCache.java: Likewise.
	
2006-03-06  Dalibor Topic  <robilad@kaffe.org>

	* gnu/java/net/protocol/file/Connection.java (unquote):
        Update position in buffer after decoding a unicode character
        outside of the basic plane.
	
2006-03-06  Dalibor Topic  <robilad@kaffe.org>

	* java/net/URI.java
	(quote): Pass Unicode characters outside the basic plane through.
	
2006-03-06  Robert Schuster  <robertschuster@fsfe.org>
       
	* javax/swing/plaf/basic/BasicTextUI.java:
	(damageRange): Rewritten if-expressions to correctly identify the
        break condition.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.90-generics.
	* NEWS: Fix typos.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26568 reported by Paul Jenner <psj@harker.dyndns.org>
	* native/fdlibm/fdlibm.h (__ieee754_rem_pio2): Return an int32_t.
	(isnan): Define explicitly isnan if it is not a macro.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(insertString): Throw exception when argument is below
	zero.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainDocument.java:
	(insertUpdate): Extended if-expression, added
	code to generate another Element when newly inserted characters
	and old ones will be on the same line.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultCaret.java:
	(mouseDragged): Do selection when shift is pressed.
	(mouseClicked): Implemented.

2006-03-06  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/PlainDocument.java: Fix copyright header,
	added author tags.
	(insertUpdate): Do not copy the whole document any more, added some
	more variables to prevent needless method calls.

2006-03-06  Christian Thalinger <twisti@complang.tuwien.ac.at>

	* configure.ac: Check for FREETYPE2.  This is a reverted patch and
	is required on Darwin.
	* native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Added FREETYPE2.
	(AM_CFLAGS): Likewise.

2006-03-06  Mark Wielaard  <mark@klomp.org>

	* NEWS: Add updates for 0.90 release.

2006-03-05  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/GapContent.java:
	(insertString): Throw exception when argument is below
	zero.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

        
	* javax/swing/filechooser/FileFilter.java:
	(accept): Fixed API doc tag,
       (getDescription): Likewise,
	* javax/swing/filechooser/FileView.java:       
	(isTraversable): Fixed API doc tag.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/colorchooser/ColorSelectionModel.java: Reformatted and
        added API docs all over.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/plaf/ComboBoxUI.java: Fixed typo in class description,
        and corrected a bad API doc tag.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/undo/StateEditable.java
	(restoreState): Fixed bad API doc tag,
	* javax/swing/undo/UndoableEdit.java: Copied API doc comments from
	AbstractUndoableEdit.java,
	* javax/swing/undo/UndoableEditSupport.java
	(createCompoundEdit): Fixed bad API doc tag,
	* javax/swing/undo/UndoManager.java
	(editToBeUndone): Fixed bad API doc tag,
	(editToBeRedone): Likewise.

2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/DefaultFocusManager.java: Fixed bad API doc tags,
	* javax/swing/FocusManager.java: Likewise.


2006-03-05  David Gilbert  <david.gilbert@object-refinery.com>

        
	* javax/swing/plaf/metal/MetalComboBoxButton.java
	(MetalComboBoxButton(JComboBox, Icon, boolean, CellRendererPane,
	JList)): Fixed API doc tag,
	* javax/swing/plaf/metal/MetalInternalFrameTitlePane
	(createLayout): Fixed API doc warning.
	
2006-03-05  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/lang/reflect/Constructor.java (toString): Use
        ClassHelper.getUserName.
	* vm/reference/java/lang/reflect/Method.java (toString): Use
	ClassHelper.getUserName.
	(getUserTypeName): Removed.
	* gnu/java/lang/ClassHelper.java (getUserName): New method.
	* vm/reference/java/lang/reflect/Field.java (toString): Use
	ClassHelper.getUserName.

2006-03-05  Olivier Jolly  <olivier.jolly@pcedev.com>

	Fixes PR 22813
	* java/net/URLClassLoader.java (FileURLLoader.getResource):   
	Allows directories as valid resources.

2006-03-05  Mark Wielaard  <mark@klomp.org>

	* configure.ac (VERSION): Set to 0.90-pre-generics.
	* Merge with CVS trunk from classpath-0_90-branch-point.

2006-03-04  Tom Tromey  <tromey@redhat.com>

	* javax/swing/SpringLayout.java (Constraints): New constructor.
	* javax/swing/Spring.java (width): New method.
	(height): Likewise.
	(scale): Likewise.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* gnu/java/net/protocol/http/HTTPConnection.java (Pool.get): Remove
	existing connection from pool before returning.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* gnu/xml/stream/SAXParser.java (parse(InputSource)): Ignore
	exceptions thrown by handlers while cleaning up and rethrow original
	exception.

2006-03-04  Tom Tromey  <tromey@redhat.com>

	* java/beans/PropertyDescriptor.java (createPropertyEditor): New
	method.
	(findConstructor): Likewise.
	(instantiateClass): Likewise.

2006-03-04  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/dgc/DGCImpl.java:  More comments, boilerplate fix.
	(dirty): Do not synchronize on Hashtable. Use the passed (requested) 
	lease value and not always the default one.
 	(LeaseRecord): Remember the array of objects, marked as dirty.
 	java/rmi/dgc/Lease.java: Boilerplate fix.

2006-03-05  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/jar/Attributes.java (putValue): Made it public and updated
	method documentation.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* java/awt/Container.java (remove(int)): Always call removeNotify()
	on removed Component.

2006-03-04  Mark Wielaard  <mark@klomp.org>

	Fixes bug #26460 reported by Beat Wolf <asraniel@fryx.ch>.
	* javax/swing/JEditorPane.java (setText): Check for empty String
	with equals(), not equality (==).

2006-03-04  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java: Qualify ElementSpec as
	DefaultStyledDocument.ElementSpec for gcj 4.0.x.

2006-03-04  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/GapContent.java
	(getArray): Mark as final.

2006-03-04  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StyleConstants.java
	(CharacterConstants.Background): Marked final,
	(CharacterConstants.BidiLevel): Likewise,
	(CharacterConstants.Bold): Likewise,
	(CharacterConstants.ComponentAttribute): Likewise,
	(CharacterConstants.Family): Likewise,
	(CharacterConstants.Size): Likewise,
	(CharacterConstants.Foreground): Likewise,
	(CharacterConstants.IconAttribute): Likewise,
	(CharacterConstants.Italic): Likewise,
	(CharacterConstants.StrikeThrough): Likewise,
	(CharacterConstants.Subscript): Likewise,
	(CharacterConstants.Superscript): Likewise,
	(CharacterConstants.Underline): Likewise,
	(ColorConstants.Foreground): Likewise,
	(ColorConstants.Background): Likewise,
	(FontConstants.Bold): Likewise,
	(FontConstants.Family): Likewise,
	(FontConstants.Italic): Likewise,
	(FontConstants.Size): Likewise,
	(ParagraphConstants.Alignment): Likewise,
	(ParagraphConstants.FirstLineIndent): Likewise,
	(ParagraphConstants.LeftIndent): Likewise,
	(ParagraphConstants.LineSpacing): Likewise,
	(ParagraphConstants.Orientation): Likewise,
	(ParagraphConstants.RightIndent): Likewise,
	(ParagraphConstants.SpaceAbove): Likewise,
	(ParagraphConstants.SpaceBelow): Likewise,
	(ParagraphConstants.TabSet): Likewise.	

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* javax/net/ssl/SSLException.java: Added missing @since.
	Wrote javadoc.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* javax/net/ssl/SSLException.java (SSLException): New constructors.
	(serialVersionUID): New field.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/security/spec/InvalidKeySpecException.java
	(InvalidKeySpecException): New constructors.
	* java/security/cert/CertificateParsingException.java
	(CertificateParsingException): New constructors.
	* java/security/cert/CertificateEncodingException.java
	(CertificateEncodingException): New constructors.
	* java/security/cert/CertificateException.java (CertificateException):
	New constructors.
	* java/security/cert/CRLException.java (CRLException): New
	constructors.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/security/SignatureException.java (SignatureException): New
	constructors.
	* java/security/ProviderException.java (ProviderException): New
	constructors.
	* java/security/NoSuchAlgorithmException.java
	(NoSuchAlgorithmException): New constructors.
	* java/security/KeyStoreException.java (KeyStoreException): New
	constructors.
	* java/security/KeyManagementException.java (KeyManagementException):
	New constructors.
	* java/security/InvalidKeyException.java (InvalidKeyException): New
	constructors.
	* java/security/KeyException.java (KeyException): New constructors.
	* java/security/InvalidAlgorithmParameterException.java
	(InvalidAlgorithmParameterException): New constructors.
	* java/security/DigestException.java (DigestException): New
	constructors.
	* java/security/GeneralSecurityException.java
	(GeneralSecurityException): New constructors.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/CaretEvent.java: Reformatting and fixed API doc 
	warnings,
	* javax/swing/event/DocumentEvent.java: Likewise,
	* javax/swing/event/EventListenerList.java: Likewise,
	* javax/swing/event/MenuDragMouseEvent.java: Likewise,
	* javax/swing/event/MenuKeyEvent.java: Likewise,
	* javax/swing/event/TableColumnModelEvent.java: Likewise,
	* javax/swing/event/TreeExpansionEvent.java: Likewise,
	* javax/swing/event/TreeModelEvent.java: Likewise,
	* javax/swing/event/TreeSelectionEvent.java: Likewise,
	* javax/swing/event/UndoableEditEvent.java: Likewise.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/Insets.java (set): New method.
	(equals): Added @since.

2006-03-03  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(getRequestProperties): Rewrote.
	(addRequestProperty): Rewrote.
	(getHeaderFields): Rewrote.
	(getHeaderField): Rewrote.
	(getHeaderFieldKey): Rewrote.
	(getHeaderField): Removed useless cast.
	* gnu/java/net/protocol/http/Headers.java: Entire class rewritten.
	* gnu/java/net/protocol/http/Request.java (dispatch): Use new Headers
	interface.
	(notifyHeaderHandlers): Use new Headers interface.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* javax/naming/NamingException.java (getExplanation): Javadoc fix.
	* javax/naming/spi/ResolveResult.java,
	javax/naming/event/NamingExceptionEvent.java,
	javax/naming/event/NamingEvent.java,
	javax/naming/directory/SearchResult.java,
	javax/naming/directory/SearchControls.java,
	javax/naming/directory/SchemaViolationException.java,
	javax/naming/directory/NoSuchAttributeException.java,
	javax/naming/directory/ModificationItem.java,
	javax/naming/directory/InvalidSearchFilterException.java,
	javax/naming/directory/InvalidSearchControlsException.java,
	javax/naming/directory/InvalidAttributesException.java,
	javax/naming/directory/InvalidAttributeIdentifierException.java,
	javax/naming/directory/AttributeModificationException.java,
	javax/naming/directory/AttributeInUseException.java,
	javax/naming/TimeLimitExceededException.java,
	javax/naming/SizeLimitExceededException.java,
	javax/naming/PartialResultException.java,
	javax/naming/Reference.java,
	javax/naming/ServiceUnavailableException.java,
	javax/naming/OperationNotSupportedException.java,
	javax/naming/NotContextException.java,
	javax/naming/NoPermissionException.java,
	javax/naming/NoInitialContextException.java,
	javax/naming/NameNotFoundException.java,
	javax/naming/NameAlreadyBoundException.java,
	javax/naming/NameClassPair.java,
	javax/naming/MalformedLinkException.java,
	javax/naming/LinkLoopException.java,
	javax/naming/LinkException.java,
	javax/naming/LimitExceededException.java,
	javax/naming/InvalidNameException.java,
	javax/naming/InterruptedNamingException.java,
	javax/naming/InsufficientResourcesException.java,
	javax/naming/ContextNotEmptyException.java,
	javax/naming/ConfigurationException.java,
	javax/naming/CannotProceedException.java,
	javax/naming/CommunicationException.java,
	javax/naming/Binding.java,
	javax/naming/AuthenticationNotSupportedException.java,
	javax/naming/AuthenticationException.java: Added serialVersionUID.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TableColumnModelEvent.java: Reformatted.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/TableModelListener.java: Updated API docs.

2006-03-03  Mark Wielaard  <mark@klomp.org>

	* java/awt/Component.java (addNotify): Expand documentation.

2006-03-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer):
	Always call setParentAndBounds().
	(setComponentBounds): Always call setBounds().
	(setBounds): Call setVisible().
	(setVisible): If no pixels are showing then don't make it visible.
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): No need
	to call setParentAndBounds() anymore.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JInternalFrame.java
	(JInternalFrame): Set frame invisible.
	(show): Reformatted.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(installDefaults): Do not set invisible here.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* java/awt/Toolkit.java
	(getScreenInsets): Return (0,0,0,0) here.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/FlowView.java
	(FlowStrategy.layoutRow): Added check for rowCount == 0.
	(FlowStrategy.getLogicalView): Made method protected.

2006-03-03  Chris Burdess  <dog@gnu.org>

	* 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: New RELAX NG grammar
	  builder and data model.
	* 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: New
	  W3C XML Schema builder and schema components.
	* javax/xml/validation/SchemaFactory.java: Recognise RELAX NG and W3C
	  XML Schema namespace URIs.

2006-03-03  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* NEWS: Add entry for --enable-collections.
	* configure.ac: Add --enable-collections option.
	* lib/Makefile.am (collections.jar): New target.
	(glibj_DATA): Add $(COLLECTIONS).
	* lib/mkcollections.pl.in (destpath): Set from COLLECTION_PREFIX
	configure substitution.
	(classpath): Read from command line.
	(javautilclasses): Remove BasicMapEntry.  Add RandomAccess.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpringLayout.java: Fixed API doc warnings.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListSelectionEvent.java
	(toString): Implemented,
	plus updated API docs all over.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/event/ListSelectionEvent.java: Reformatted and fixed
	API doc warnings,
	* javax/swing/event/ListSelectionListener.java: Updated API docs.

2006-03-03  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/dgc/DGCImpl.java,
	java/rmi/dgc/DGC.java,
	java/rmi/dgc/Lease.java: Formatted and commented.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added comment about text highlighting and copy+paste
	in Swing.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java
	(remove(int)): Call super.remove(int) instead of remove(Component).
	Avoids a stack overflow.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTable.java
	(distributeSpillResizing): Avoid ArithmeticException by checking
	divisor.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/package.html: Added package description.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/CellRendererPane.java: Minor API doc fix,
	* javax/swing/ComboBoxModel.java: Updated API docs.

2006-03-03  Chris Burdess  <dog@gnu.org>

	Fixes PR 26503
	* gnu/xml/stream/EntityReferenceImpl.java,
	  gnu/xml/stream/FilteredEventReader.java,
	  gnu/xml/stream/SAXParser.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,
	  javax/xml/stream/EventFilter.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/XMLStreamReader.java,
	  javax/xml/stream/events/EntityDeclaration.java,
	  javax/xml/stream/events/EntityReference.java,
	  javax/xml/stream/events/XMLEvent.java,
	  javax/xml/stream/util/EventReaderDelegate.java,
	  javax/xml/stream/util/ReaderDelegate.java: Updated to final version of
	  StAX API as specified in JWSDP 2.0.
	* gnu/xml/stream/EndEntityImpl.java,
	  gnu/xml/stream/LocationImpl.java,
	  gnu/xml/stream/StartEntityImpl.java,
	  gnu/xml/stream/XMLStreamReaderImpl.java,
	  javax/xml/stream/XMLFilter.java,
	  javax/xml/stream/XMLIterator.java,
	  javax/xml/stream/events/EndEntity.java,
	  javax/xml/stream/events/StartEntity.java: Removed legacy files.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/CellEditor.java: API doc updates,
	* javax/swing/DefaultCellEditor.java: Likewise.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractListModel.java:
	(AbstractListModel): Added API docs,
	(fireContentsChanged): Minor API doc correction,
	(fireIntervalAdded): Likewise,
	(fireIntervalRemoved): Likewise.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* NEWS: Added paragraph about Swing improvements.

2006-03-03  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/AbstractAction.java: Updated API docs all over,
	* javax/swing/AbstractCellRenderer.java: Minor reformatting, plus
	(stopCellEditing): Minor API doc correction,
	* javax/swing/UnsupportedLookAndFeelException.java
	(UnsupportedLookAndFeelException): Changed argument name, updated API
	docs.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalUtils.java
	(fillMetalPattern): Added switch to not use Graphics2D methods,
	even if they are available.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicHTML.java
	(isHTMLString): Check for string beeing null.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(BasicInternalFrameListener.internalFrameActivated): Implemented.
	(BasicInternalFrameListener.internalFrameDeactivated): Implemented.
	(InternalFrameLayout): Don't touch the glass pane here.
	(installUI): Fix handling of glass pane.
	* javax/swing/plaf/basic/BasicLabelUI.java
	(vr): New field.
	(ir): New field.
	(tr): New field.
	(BasicLabelUI): Initialize new fields.
	(getPreferredSize): Avoid creating new Rectangles by using
	SwingUtilities method.
	(paint): Avoid creating new Rectangles by reusing
	new fields. Added some preliminary handling of HTML inside the
	label.
	(installComponents): Handle HTML by calling BasicHTML.updateRenderer.
	(uninstallComponents): Clear HTML renderer.
	(propertyChange): Check for HTML text and install renderer if
	appropriate.
	* javax/swing/plaf/basic/BasicListUI.java
	(getCellBounds): Avoid creating new Rectangle by using SwingUtilities
	method.
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.getStartOffset): Implemented.
	(RootView.getEndOffset): Implemented.
	(RootView.getDocument): Implemented.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.inserUpdate): Added check for zero-length
	element.
	* javax/swing/text/DefaultStyledDocument.java
	(setIndex): Improved exception message.
	* javax/swing/text/TableView.java
	Made class abstract.
	(TableRow.replace): Probably extend columnRequirements
	arrays.
	(TableRow.layoutMinorAxis): Call super.layoutMinorAxis instead
	of super.layoutMajorAxis.
	(columnRequirements): Made field package private.
	(TableView): Do not load any child views here.
	(layoutColumns): Implemented this method.
	(updateColumnRequirements): New helper method.
	* javax/swing/text/Utilities.java
	(getBreakLocation): Also take offset into account when
	finding end location.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.parseStack): New field.
	(HTMLReader.blockOpen): Properly handle p-implied tags.
	(HTMLReader.blockClose): Properly handle p-implied and empty tags.
	(HTMLReader.addContent): Insert p-implied when adding content to
	a block element.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create HTMLTableView for <table> tags and
	ParagraphView for TD tags. Print out warning for tags that don't have
	matching view yet and create NullView for them.
	(read): Only set document base when document != null.
	* javax/swing/text/html/HTMLTableView.java:
	New class

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicHTML.java
	(HTMLRootView): New inner class.
	(createHTMLView): Embed view inside a HTMLRootView.

2006-03-03  Wolfgang Baer  <WBaer@gmx.de>

	* gnu/java/net/protocol/jar/Connection.java: 
	(connect): Throw FileNotFoundException.
	(getInputStream): Remove duplicated code.

2006-03-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(commitBuffer): Added null check for clip.

2006-03-02  Lillian Angel <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem): Fixed
	to use GtkWidget instead of GTKMenu.

2006-03-02  Lillian Angel <langel@redhat.com>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem): Changed to 
	use the submenu to get the list of children. This now works
	in the same way as addItem.

2006-03-02  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/StringBuilder.java:
	(codePointAt): New method.
	(codePointBefore): Likewise.
	(codePointCount): Likewise.
	(trimToSize): Likewise.

2006-03-02  Tom Tromey  <tromey@redhat.com>

	* java/rmi/server/RMIClassLoader.java (getProviderInstance): Wrote.

2006-03-02  Tom Tromey  <tromey@redhat.com>

	* java/rmi/server/RMIClassLoader.java (loadProxyClass): New method.
	(getProviderInstance): 

2006-03-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c:
	Fix regression caused by move to VM variant.
	PR classpath/22926.
	
2006-03-01  Tom Tromey  <tromey@redhat.com>

	* vm/reference/java/net/VMNetworkInterface.java: Organized imports.
	* vm/reference/java/net/VMInetAddress.java: Organized imports.
	* vm/reference/java/lang/reflect/VMProxy.java (getProxyClass): Added
	imports for javadoc.
	(getProxyClass): Javadoc fixes.
	(getProxyData): Likewise.
	(generateProxyClass): Likewise.
	* vm/reference/java/lang/VMSystem.java (setIn): Javadoc fix.
	(setOut): Likewise.
	(setErr): Likewise.
	* vm/reference/java/lang/VMProcess.java: Javadoc fixes.
	* vm/reference/java/lang/VMClassLoader.java (getResources): Javadoc
	fix.
	* vm/reference/java/lang/VMClass.java (getComponentType): Import for
	javadoc.
	(getModifiers): Likewise.
	(getDeclaredClasses): Javadoc fix.
	(getDeclaredFields): Likewise.
	(getDeclaredMethods): Likewise.
	(getDeclaredConstructors): Likewise.
	* vm/reference/gnu/classpath/VMSystemProperties.java (preInit):
	Javadoc fix.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/ResponseHeaderHandler.java: Javadoc fix.
	* gnu/java/net/protocol/http/HTTPConnection.java: Organized imports.
	(getVersion): Javadoc fix.
	(get): Likewise.
	* gnu/java/net/protocol/http/Headers.java: Organized imports.
	* gnu/java/net/protocol/ftp/FTPURLConnection.java: Organized imports.

2006-03-01  David Daney  <ddaney@avtrex.com>

	* java/net/URL.java (URL(URL, String, URLStreamHandler)): Treat spec
	as relative if it contains a colon but no protocol handler can be
	found.

2006-03-01  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AbstractDocument.java
	(LeafElement.LeafElement): Handle delta with respect to content
	length not document length.
	* javax/swing/text/CompositeView.java
	(getViewIndex): Handle bias correctly.
	* javax/swing/text/DefaultCaret.java
	(paint): Align caret position to document bounds to avoid trouble
	when removing large portions of content.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.insertFirstContentTag): Use pos instead of offset.
	(ElementBuffer.createFracture): Copy old childs attribute. The
	ElementSpec usually doesn't carry attribute information.
	Use pos instead of offset.
	(ElementBuffer.insertFracture): Use pos instead of offset.
	(createDefaultRootElement): Don't use create* and instead directly
	instantiate the elements.
	(handleInsertAfterNewline): Compare the paragraphs startOffset
	rather than previous paragraphs endOffset.
	* javax/swing/text/JTextComponent.java
	(getScrollableTracksViewportWidth): Remove unnecessary cast to
	JViewport.
	(getScrollableTracksViewportHeight): Remove unnecessary cast to
	JViewport.
	* javax/swing/text/PlainView.java
	(damageLineRange): Avoid creating new Rectangle by using
	SwingUtilities.
	* javax/swing/text/View.java
	(forwardUpdate): Correct the use of bias.
	(modelToView): Avoid new Rectangles by using SwingUtilities.
	(dump): Made (temprorarily) protected for use in BasicTextUI.
	(dump(int)): Dump out the element of the view.

2006-03-01  Lillian Angel  <langel@redhat.com>

	* NEWS: javax.imageio.plugins.bmp implementation.

2006-03-01  Lillian Angel  <langel@redhat.com>

	* javax/imageio/ImageWriteParam.java: 
	Added documentation for fields.
	* javax/imageio/plugins/bmp/BMPImageWriteParam.java:
	New class implemented.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention java.util.prefs update.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* gnu/java/nio/channels/FileChannelImpl.java (position): Fixed typo.
	* java/nio/charset/UnmappableCharacterException.java:
	(serialVersionUID): New field.
	* java/nio/charset/MalformedInputException.java:
	(serialVersionUID): New field.
	* java/nio/charset/CoderMalfunctionError.java:
	(serialVersionUID): New field.
	* java/nio/charset/CharacterCodingException.java:
	(serialVersionUID): New field.
	* java/nio/channels/UnsupportedAddressTypeException.java:
	(serialVersionUID): New field.
	* java/nio/channels/UnresolvedAddressException.java:
	(serialVersionUID): New field.
	* java/nio/channels/OverlappingFileLockException.java:
	(serialVersionUID): New field.
	* java/nio/channels/NotYetConnectedException.java:
	(serialVersionUID): New field.
	* java/nio/channels/NotYetBoundException.java
	(serialVersionUID): New field.
	* java/nio/channels/NonWritableChannelException.java
	(serialVersionUID): New field.
	* java/nio/channels/NonReadableChannelException.java
	(serialVersionUID): New field.
	* java/nio/channels/NoConnectionPendingException.java
	(serialVersionUID): New field.
	* java/nio/channels/IllegalSelectorException.java
	(serialVersionUID): New field.
	* java/nio/channels/IllegalBlockingModeException.java
	(serialVersionUID): New field.
	* java/nio/channels/FileLockInterruptionException.java
	(serialVersionUID): New field.
	* java/nio/channels/ConnectionPendingException.java
	(serialVersionUID): New field.
	* java/nio/channels/ClosedSelectorException.java (serialVersionUID):
	New field.
	* java/nio/channels/ClosedChannelException.java (serialVersionUID):
	New field.
	* java/nio/channels/ClosedByInterruptException.java
	(serialVersionUID): New field.
	* java/nio/channels/CancelledKeyException.java (serialVersionUID): 
	New field.
	* java/nio/channels/AsynchronousCloseException.java
	(serialVersionUID): New field.
	* java/nio/channels/AlreadyConnectedException.java (serialVersionUID):
	New field.
	* java/nio/ReadOnlyBufferException.java (serialVersionUID): New field.
	* java/nio/InvalidMarkException.java (serialVersionUID): New field.
	* java/nio/BufferUnderflowException.java (serialVersionUID): New
	field.
	* java/nio/BufferOverflowException.java (serialVersionUID): New field.
	* java/nio/channels/spi/AbstractInterruptibleChannel.java (end):
	Javadoc fix.  Added import.
	* java/nio/channels/DatagramChannel.java (isConnected): Javadoc fix.
	(validOps): Likewise.
	* gnu/java/nio/charset/iconv/IconvProvider.java: Organized imports.
	* gnu/java/nio/charset/iconv/IconvEncoder.java: Organized imports.
	* gnu/java/nio/charset/iconv/IconvDecoder.java: Organized imports.
	* java/nio/channels/Channels.java: Added import.
	* java/nio/channels/FileChannel.java (lock): Typo fix.
	(tryLock): Likewise.

2006-03-01  Tom Tromey  <tromey@redhat.com>

	* java/util/prefs/Preferences.java (defaultFactoryClass): Use
	FileBasedFactory.
	* gnu/java/util/prefs/FileBasedPreferences.java: New file.
	* java/util/prefs/AbstractPreferences.java (removeSpi): Typo fix.
	(clear): Likewise.
	(putSpi): Likewise.
	(newNode): Likewise.
	(node): Likewise.
	* gnu/java/util/prefs/MemoryBasedFactory.java: Typo fix.
	* gnu/java/util/prefs/FileBasedFactory.java (systemPreferences): New
	field.
	(systemRoot): Use it.
	(userPreferences): New field.
	(userRoot): Use it.

2006-03-01  Jeroen Frijters  <jeroen@frijters.net>

	* java/util/ResourceBundle.java
	(tryBundle): Catch and ignore all Exceptions.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicScrollBarUI.java
	(getPreferredSize): Fixed add a fixed space between the buttons
	instead of something related to min/max.
	(installComponents): Create and install buttons here.
	(installDefaults): Don't create buttons here.
	* javax/swing/plaf/metal/MetalScrollBarUI.java
	(getMinimumThumbSize): Return (0,0) when UI is not yet installed.
	(getPreferredSize): New method.

2006-02-28  David Gilbert  <david.gilbert@object-refinery.com>

	* examples/gnu/classpath/examples/swing/Demo.java
	(mkMenuBar): Removed 'Toggles', 'Checkbox' and 'Radio' actions, 
	connected 'Spinner' action to SpinnerDemo, 
	(mkCheckbox): Removed,
	(mkRadio): Likewise,
	(mkSpinner): Likewise,
	(mkToggle): Likewise,
	(mkButtonBar): Removed 'Toggles', 'Checkbox' and 'Radio' actions,
	connected 'Spinner' action to SpinnerDemo.

2006-02-28  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/ServiceUIFactory.java: Added documentation to class.

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	PR classpath/26434
	* javax/swing/DefaultListSelectionModel.java:
	(addSelectionInterval): Return early if either of the arguments is -1.
	(removeSelectionInterval): Likewise.
	(setSelectionInterval): Likewise.

2006-02-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultFormatter.java
	(stringToValue): Added NPE check.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	PR classpath/25675
	* javax/swing/JList.java
	(getPreferredScrollableViewportSize): Restored specified behaviour.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(createList): Set filelist panel's preferredSize, so that it doesn't
	get size into infinity for big lists.

2006-02-28  Lillian Angel  <langel@redhat.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Should not extend container to be 
	minimum size. Mauve test shows that the preferred size
	and the size of the viewport can be set smaller than
	the minimum.

2006-02-28  Lillian Angel  <langel@redhat.com>

	PR classpath/25675
	* javax/swing/JList.java
	(getPreferredScrollableViewportSize): Added a check to determine
	if orientation is VERTICAL_WRAP. If it is, we should only 
	show 3 columns. 

2006-02-28  Lillian Angel  <langel@redhat.com>

	PR classpath/26003
	* javax/swing/ViewportLayout.java:
	Patch submitted by Audrius Meskauskas
	(addLayoutComponent): Added documentation.
	(removeLayoutComponent): Likewise.
	(preferredLayoutSize): Likewise.
	(minimumLayoutSize): Likewise.
	(layoutContainer): Fixed code, so view is set
	to the right position when inside a scrollpane.	

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigInteger.java:
	Committed patch by Rafael: 
	developer.classpath.org/pipermail/classpath-patches/
	2006-February/000473.html
	(signum): Return early 0 if words == null and ival == 0.
	(readObject): Handle special case of magnitude.length or signum being
	0.
	(writeObject): If signum is zero return a zero-sized byte[].

2006-02-28  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(create): Initially set the directory to the current working directory.
	(setDirectory): Removed else-if. No need for this check.

2006-02-28  Tom Tromey  <tromey@redhat.com>

	* .project: Run java builder before header generation.

2006-02-28  Tom Tromey  <tromey@redhat.com>

	* gnu/java/util/prefs/MemoryBasedPreferences.java (childrenNamesSpi):
	Javadoc fix.
	* gnu/java/util/prefs/EventDispatcher.java: New file.
	* gnu/java/util/prefs/NodeWriter.java (NodeWriter): Removed.
	(NodeWriter): Specify UTF-8.
	(writeHeader): Emit DOCTYPE.
	* java/util/prefs/Preferences.java (getFactory): Add cause to
	exception.
	(exportNode): Documented.
	(exportSubtree): Likewise.
	(importPreferences): Likewise.
	* java/util/prefs/NodeChangeEvent.java (readObject): New method.
	(writeObject): Likewise.
	* java/util/prefs/PreferenceChangeEvent.java (readObject): New method.
	(writeObject): Likewise.
	* java/util/prefs/AbstractPreferences.java (putBoolean): Use 1.4 code.
	(nodeListeners): New field.
	(preferenceListeners): Likewise.
	(addNodeChangeListener): Implemented.
	(addPreferenceChangeListener): Likewise.
	(removeNodeChangeListener): Likewise.
	(removePreferenceChangeListener): Likewise.
	(fire): New methods.
	(put): Fire event.
	(remove): Likewise.
	(purge): Likewise.  Fixed synchronization.
	(removeNode): Fixed synchronization.
	(getNode): Fire event.
	(flushNode): Fixed synchronization.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/BranchElement.java
	(startOffset): New field.
	(endOffset): New field.
	(BranchElement): Initialize new fields.
	(getEndOffset): Rewritten to possibly return cached values
	if element has no children.
	(getStartOffset): Rewritten to possibly return cached values
	if element has no children.
	* javax/swing/text/LeafElement.java
	(startDelta): New field.
	(endDelta): New field.
	(LeafElement): Handle possible delta of start/endOffset when
	these parameters lie outside the document range.
	(getStartOffset): Handle possible startDelta.
	(getEndOffset): Handle possible startDelta.

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* NEWS: Added line about Unicode 4.0.0 support.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Set textIconGap to 0 when icon == null.

2006-03-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/classpath/debug/Simple1LineFormatter.java: New file.

2006-03-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java:
	Amended class documentation.
	(encodeSignature): Emit the ASN.1 raw bytes not the DER-encoded BIT
	STRING.
	(decodeSignature): Parse the ASN.1 raw bytes of a BIT STRING and not
	a BIT STRING construct.
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java: Amended class
	documentation.
	(encodeSignature): Emit the ASN.1 raw bytes not the DER-encoded BIT
	STRING.
	(decodeSignature): Parse the ASN.1 raw bytes of a BIT STRING and not
	a BIT STRING construct.
	* gnu/java/security/jce/sig/SignatureAdapter.java (log): New field.
	(engineVerify): Added logging.

2006-02-28  Roman Kennke  <kennke@aicas.com>

	* java/awt/Component.java
	(dispatchEventImpl): Let the Toolkit dispatch global events.
	* java/awt/Container.java
	(dispatchEventImpl): Let the LightweightDispatcher handle events
	first.
	* java/awt/EventQueue.java
	(dispatchEvent): Don't do the global event dispatching here. This
	is moved to the Component.
	(globalDispatchEvent): Moved this method to Toolkit.
	* java/awt/LightweightDispatcher.java
	(instances): New field.
	(getInstance): New method. Delivers an instance of
	LightweightDispatcher.
	(LightweightDispatcher): Made default constructor private.
	(dispatchEvent): New method. Replaces the eventDispatched method.
	This now returns true when the event was actually dispatched.
	(eventDispatched): Replaced by dispatchEvent.
	(handleMouseEvent): Send MOUSE_CLICKED to the same component that
	received the last MOUSE_RELEASED.
	* java/awt/Toolkit.java
	(Toolkit): Don't register LightweightDispatcher as global event
	handler.
	(globalDispatchEvent): Moved here from EventQueue.

2006-02-27  David Daney  <ddaney@avtrex.com>

	PR classpath/25851
	* gnu/java/net/protocol/http/HTTPURLConnection.java (imports) Cleaned
	up.
	(getRequestProperties): Rewrote.

2006-02-27  David Daney  <ddaney@avtrex.com>

	PR classpath/26312
	* gnu/java/net/protocol/http/ChunkedInputStream.java (imports): Cleaned
	up.
	(ChunkedInputStream): Extend InputStream.
	(in): New field.
	(headers): Moved to top of class.
	(constructor): Save referenct to in.
	(read(byte[])): Removed method.
	(read(byte[], int, int)): Made synchronized and throw IOException
	on error parsing chunk header.
	(available): New method.
	(close): New method.

2006-02-27  David Daney  <ddaney@avtrex.com>

	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(imports): Cleaned up.
	(GetHTTPPropertiesAction): Removed, and moved contents to ...
	(constructor): ... Here, using SystemProperties instead of System.
	
2006-02-27  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
	(setDirectory): GtkFileChooser requires an absolute directory
	name. Added a check to make the directory passed to nativeSetDirectory
	is absolute.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/SwingUtilities.java
	(computeIntersection): Changed to store result in rect, instead of
	creating new Rectangle instances. Fixed API docs accordingly.
	(computeUnion): Changed to store result in rect, instead of
	creating new Rectangle instances. Fixed API docs accordingly.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java
	(static_init): Changed default scrollmode to BLIT.
	(paintSimple): Added some clipping to avoid painting problems.
	(paintBlit): Added some clipping to avoid painting problems.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(rectCache): Made field static to save memory.
	(getVisibleRect): Don't use rectCache and create new Rectangle
	instance instead.
	(repaint(Rectangle)): Directly call RepaintManager.addDirtyRegion().
	(repaint(long,int,int,int,int)): Directly call
	RepaintManager.addDirtyRegion(). The visibleRect check is now
	performed in the RepaintManager.

2006-02-27  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(currentRepaintManagers): Made field private.
	(rectCache): New field.
	(addDirtyRegion): Clip dirty rectangle with visible rectangle of
	component. Changed Rectangle handling to avoid unnecessary new
	Rectangle instances.
	(getOffscreenBuffer): Create buffer with size of the root window.
	Respect the maximum buffer size here.
	(commitBuffer): Align the regions so that they are inside the buffer
	image and inside the clip. This avoids problems with a bug in GTKImage.
	Fixed Rectangle handling to avoid creation of new Rectangle instances.

2006-02-26  Andrew John Hughes  <gnu_andrew@member.fsf.org>

	* native/fdlibm/e_acos.c,
	* native/fdlibm/e_asin.c,
	* native/fdlibm/e_atan2.c,
	* native/fdlibm/e_cosh.c,
	* native/fdlibm/e_exp.c,
	* native/fdlibm/e_fmod.c,
	* native/fdlibm/e_hypot.c,
	* native/fdlibm/e_log.c,
	* native/fdlibm/e_log10.c,
	* native/fdlibm/e_rem_pio2.c,
	* native/fdlibm/e_remainder.c,
	* native/fdlibm/e_sinh.c,
	* native/fdlibm/e_sqrt.c,
	* native/fdlibm/k_cos.c,
	* native/fdlibm/k_sin.c,
	* native/fdlibm/k_tan.c,
	* native/fdlibm/s_atan.c,
	* native/fdlibm/s_cbrt.c,
	* native/fdlibm/s_ceil.c,
	* native/fdlibm/s_copysign.c,
	* native/fdlibm/s_cos.c,
	* native/fdlibm/s_expm1.c,
	* native/fdlibm/s_fabs.c,
	* native/fdlibm/s_finite.c,
	* native/fdlibm/s_floor.c,
	* native/fdlibm/s_log1p.c,
	* native/fdlibm/s_rint.c,
	* native/fdlibm/s_scalbn.c,
	* native/fdlibm/s_sin.c,
	* native/fdlibm/s_tan.c,
	* native/fdlibm/s_tanh.c:
	Fixed to call our macros rather than __HI and __LO.
	* native/fdlibm/fdlibm.h:
	Reintroduced previous extraction code.
	(EXTRACT_WORDS(ix0,ix1,d)): Readded.
	(GET_HIGH_WORD(i,d)): Readded.
	(GET_LOW_WORD(i,d)): Readded.
	(INSERT_WORDS(d,ix0,ix1)): Readded.
	(SET_HIGH_WORD(d,i)): Readded.
	(SET_LOW_WORD(d,i)): Readded.
	* native/jni/gtk-peer/gthread-jni.c:
	Use Glib macros to convert integers/pointers portably.
	
2006-02-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/SecureRandom.java (SecureRandom): Use GNU-CRYPTO class
	as the fallback SPI.
	* gnu/java/security/provider/Gnu.java (run): Replaced mappings with new
	ones referencing GNU-CRYPTO classes.
	* gnu/java/security/provider/PKIXCertPathValidatorImpl.java
	(engineValidate): Use GNU-CRYPTO class.
	* gnu/java/security/provider/DiffieHellmanKeyFactoryImpl: Removed.
	* gnu/java/security/provider/DiffieHellmanKeyPairGeneratorImpl: Likewise.
	* gnu/java/security/provider/DSAKeyFactory: Likewise.
	* gnu/java/security/provider/DSAKeyPairGenerator: Likewise.
	* gnu/java/security/provider/DSAParameters: Likewise.
	* gnu/java/security/provider/DSASignature: Likewise.
	* gnu/java/security/provider/EncodedKeyFactory: Likewise.
	* gnu/java/security/provider/GnuDHPublicKey: Likewise.
	* gnu/java/security/provider/GnuDSAPrivateKey: Likewise.
	* gnu/java/security/provider/GnuDSAPublicKey: Likewise.
	* gnu/java/security/provider/GnuRSAPrivateKey: Likewise.
	* gnu/java/security/provider/GnuRSAPublicKey: Likewise.
	* gnu/java/security/provider/MD2withRSA: Likewise.
	* gnu/java/security/provider/MD4withRSA: Likewise.
	* gnu/java/security/provider/MD5: Likewise.
	* gnu/java/security/provider/MD5withRSA: Likewise.
	* gnu/java/security/provider/RSA: Likewise.
	* gnu/java/security/provider/RSAKeyFactory: Likewise.
	* gnu/java/security/provider/SHA: Likewise.
	* gnu/java/security/provider/SHA1PRNG: Likewise.
	* gnu/java/security/provider/SHA1withRSA: Likewise.
	* gnu/javax/crypto/GnuDHPrivateKey: Likewise.

2006-02-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/EncodedKeyFactory.java (log): New field.
	(engineGeneratePublic): Added logging.
	(engineGeneratePrivate): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java (log): New field.
	(encodePublicKey): Added logging.
	Clarified in method documentation that params is optional, but is
	always NULL if present.
	(decodePublicKey): Added logging.
	Handle optional NULL element.

2006-02-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/util/logging/FileHandler.java: Fixed a javadoc reference.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/awt/MenuBar.java (shortcuts): Genericized.

2006-03-03  Tom Tromey  <tromey@redhat.com>

	* java/beans/EventSetDescriptor.java (EventSetDescriptor):
	Genericized.
	(getListenerType): Likewise.
	* java/beans/Introspector.java (getBeanInfo): Genericized.
	* java/beans/DefaultPersistenceDelegate.java (initialize):
	Genericized.

2006-03-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(precision): Fixed overflow problem with large numbers.
	(longValueExact): New method.
	(intValueExact): Likewise.
	(byteValueExact): Likewise.
	(shortValueExact): Likewise.

2006-03-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(remainder(BigDecimal)): New method.
	(divideAndRemainder(BigDecimal)): Likewise.
	(divideToIntegralValue(BigDecimal)): Likewise.
	(floor): New implementation method.

2006-02-28  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(divide(BigDecimal, int, RoundingMode)): New method.
	(divide(BigDecimal, RoundingMode)): Likewise.
	(divide(BigDecimal, int, int)): Removed incorrect throwing of exception
	when the new scale is < 0.
	(setScale(int, RoundingMode)): New method.
	(ulp): Likewise.

2006-02-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java: Replaced occurences of BigInteger.valueOf
	with BigInteger.ZERO, BigInteger.ONE, BigInteger.TEN where appropriate.
	(add(BigDecimal, MathContext)): New method.
	(subtract(BigDecimal, MathContext)): Likewise.
	(precision): Fixed to correctly handle BigIntegers with more than 19
	digits.
	(pow(int, MathContext)): New method.

2006-02-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java: Added @throws clause to constructors.
	(mathContext): Removed this unneeded field.
	(BigDecimal(int, MathContext)): New constructor.
	(BigDecimal(BigInteger, int, MathContext)): Likewise.
	(multiply(BigDecimal, MathContext)): New method.
	(negate(MathContext)): Likewise.
	(plus(MathContext)): Likewise.
	(numDigitsInLong): Fixed to properly handle negatives.
	
2006-02-25  Chris Burdess  <dog@gnu.org>
  
	* gnu/java/net/CRLFInputStream.java,
	  gnu/java/net/LineInputStream.java: Streams that use mark
	  capabilities on the underlying stream do not expose mark
	  functionality themselves.
	* gnu/xml/stream/CRLFReader.java: Fix incorrect end condition when
	  off > 0.

2006-02-25  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REMatch.java(matchFlags): New int field used as
	option flags passed to match methods.
	(MF_FIND_ALL): New flag.
	* gnu/regexp/RETokenOneOf.java(matchP): Unless MF_FIND_ALL is set,
	do not try other possibilties once a match is found.
	* gnu/regexp/RETokenRepeated.java(findDoables): Set MF_FIND_ALL
	so that all possibilities can be found.
	(match): Rewritten using new methods matchMinimum and _match.
	(_match): New method which performs a depth-first recursive search.
	(matchMinimum): New method.
	(initVisited), (visitedContains), (addVisited): New methods for
	manipulating an array of icharacter positions which _match has
	already visited.

2006-02-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(BigDecimal(long, MathContext)): New constructor.
	(BigDecimal(BigInteger, MathContext)): Likewise.
	(BigDecimal(String, MathContext)): Likewise.
	(BigDecimal(double, MathContext)): Likewise.
	(round): Fixed a typo where the precision field was used instead of a
	call to the precision method, and also store the new precision in the
	returned BigDecimal.
	(abs(MathContext)): New method.

2006-02-24  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java
	(toBigInteger): Fixed problem where this method couldn't handle 
	negative values for scale.
	(toBigIntegerExact): New method.
	(stripTrailingZeros): Likewise.

2006-02-24  David Daney  <ddaney@avtrex.com>

	PR classpath/26082
	* gnu/java/net/protocol/http/HTTPConnection.java (pool): Changed to
	type Pool.
	(Pool): New inner class.
	(timeLastUsed): New field.
	(setPool): Changed parameter type to Pool.
	(release): Moved pool management logic to new class Pool.
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connectionPool):
	Removed.
	(maxConnections) : Removed.
	(GetHTTPPropertiesAction.run): Don't initialize maxConnections.
	(getConnection):  Moved pool management logic to HTTPConnection.Pool.
  
2006-02-24  Lillian Angel  <langel@redhat.com>
  
	* java/awt/Container.java:
	Added new field. True if Container has been cleared and
	heavyweights need to be repainted.
	(paint): Fixed comment. Fixed to use backCleared and 
	reset backCleared.
	(update): Set backCleared to true after the background
	of the container has been cleared.
  
2006-02-24  Lillian Angel  <langel@redhat.com>
  
	* java/awt/TextField.java
	(addNotify): Added call to super.
  
2006-02-24  Lillian Angel  <langel@redhat.com>
  
  	* java/awt/Component.java
	(reshape): Reverted last patch. Should have check here.
	(addNotify): Added check. If parent is lightweight, then
	initialize listener on the parent.
	(HeavyweightInLightweightListener): New class.
  
2006-02-24  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Register the popup with the autocloser after it has been
	opened completely, by putting the registration on the eventqueue.
  
2006-02-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* gnu/java/security/prng/BasePRNG.java:
	(clone()): Added cast of buffer to byte[].
	* gnu/javax/crypto/mac/TMMH16.java:
	(clone()): Fixed casting of cloned arrays.
	* native/fdlibm/fdlibm.h:
	Added missing defines from old fdlibm.h needed by Darwin.
	(GET_FLOAT_WORD(i,d)): Re-added.
	(SET_FLOAT_WORD(d,i)): Re-added.
  	
2006-02-24  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Container.java:
	(dispatcher): Removed field.
	(dispatchEventImpl): Removed lightweight dispatching.
	(addNotifyContainerChildren): Removed LightweightDispatcher
	handling.
	(LightweightDispatcher): Removed class.
	* java/awt/LightweightDispatcher.java: New class.
	* java/awt/Toolkit.java
	(Toolkit): Install LightweightDispatcher in global listener
	array.
  
2006-02-24  Chris Burdess  <dog@gnu.org>
  
	Fixes PR 26324
	* gnu/java/net/CRLFInputStream.java: Fix incorrect end condition when
	  off > 0.
  
2006-02-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* NEWS: Mentions the VMMath runtime changes.
	* doc/vmintegration.texinfo: Updated to include
	VMMath.
  
2006-02-24  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper.autoClosePopups): New field.
	(PopupHelper.mousePressed): Also autoclose any registered popups.
	(PopupHelper.registerForAutoClose): New method.
	(PopupHelper.autoClosePopups): New method.
	(popupHelper): Changed type of field to PopupHelper.
	(registerForAutoClose): New method.
	* javax/swing/plaf/basic/BasicComboPopup.java
	(show): Register this popup for autoclosing.
  
2006-02-24  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/javax/crypto/mac/TMMH16.java (clone): New method.
	* gnu/java/security/prng/MDGenerator.java (clone): New method.
	* gnu/java/security/prng/BasePRNG.java (clone): Clone buffer.
  
2006-02-24  Roman Kennke  <kennke@aicas.com>
  
	Reported by Ingo Proetel <proetel@aicas.com>
	* java/util/logging/LogManager.java
	(addLogger): Search the parent loggers for log level
	configuration and inherit that.
	(readConfiguration): Provide minimal default configuration
	if no configuration can be found otherwise.

2006-02-23  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(toString): Fixed a problem where the negative sign was being displayed
	twice in the exponent.
	(toEngineeringString): New method.
	(toPlainString): Likewise.
	(pow): Likewise.

2006-02-23  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(toString): Rewrote this method to behave as specified.  Added API
	comments to explain behaviour.
	(scaleByPowerOfTen): New method.

2006-02-23  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JRootPane.java
	(isOptimizedDrawingEnabled): Implemented to return true
	when the glassPane is not visible.
  
2006-02-23  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(PopupHelper): New inner class.
	(popupHelper): New field.
	(initialize): New method.
	(uninitialize): New method.
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(mouseInputListener): Removed field.
	(PopupMenuHandler.popupMenuWillBecomeInvisible): Removed
	handling of GlassPane.
	(PopupMenuHandler.popupMenuWillBecomeVisible): Removed
	handling of GlassPane.
	(MouseInputHandler): Removed class.

2006-02-23  Roman Kennke  <kennke@aicas.com>

	* java/awt/AWTEvent.java
	(eventIdToMask): New utility method.
	* java/awt/EventQueue.java
	(dispatchEvent): Also globally dispatch events via the toolkit.
	(globalDispatchEvent): New method.
	* java/awt/Toolkit.java
	(awtEventListeners): New field.
	(Toolkit()): Initialize new field.
	(createComponent): Create GLightweightPeer here.
	(addAWTEventListener): Implemented and documented.
	(removeAWTEventListener): Implemented and documented.
	(getAWTEventListeners): Implemented and documented both method
	variants.
	* java/awt/event/AWTEventListenerProxy.java
	(eventDispatched): Don't filter events here.

2006-02-23  Chris Burdess  <dog@gnu.org>

	Fixes PR 26410
	* gnu/xml/dom/DomDocumentBuilderFactory.java,
	  gnu/xml/dom/JAXPFactory.java,
	  gnu/xml/libxmlj/dom/GnomeDocumentBuilderFactory.java,
	  javax/xml/parsers/DocumentBuilderFactory.java: Add and trivially
	  implement DocumentBuilderFactory.get/setFeature methods.

2006-02-23  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/GLightweightPeer.java
	(repaint): Scott's proposed fix. Send repaint to the
	component's parent.
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(setBounds): Removed next_parent, not needed. Removed
	lightweightChild, we always need to compensate for the
	menu bar's height.
	* java/awt/Component.java
	(setBounds): Removed check. Caused lots of problems, because some
	components were not being invalidated. Components should be
	invalidated when they are resized or moved, and in some cases,
	when a parent is resized/moved, the components do not know
	about it and do not adjust.
	* java/awt/Graphics.java
	(hitClip): Scott's proposed fix. Added check to handle a 
	null clip.
  
2006-02-23  Wolfgang Baer  <WBaer@gmx.de>
  
	* javax/print/attribute/standard/MediaSize.java: 
	(media): Field renamed to mediaName for serialization.
	(MediaSize): Adapted to new fieldname.
	(getMediaSizeName): Likewise.
	* javax/print/attribute/HashAttributeSet.java: 
	(interfaceName): Field renamed to myInterface for serialization.
	(HashAttributeSet): Adapted to the new fieldname.
	(add): Likewise.
	(addAll): Likewise.
	(addInternal): Likewise.
	(attributeMap): Made transient.
	(readObject): New serialization method.
	(writeObject): Likewise.
	* javax/print/attribute/AttributeSetUtilities.java: 
	(SynchronizedAttributeSet.set): Field renamed to attrset for serialization.
	(SynchronizedAttributeSet.add): Adapted to the new fieldname.
	(SynchronizedAttributeSet.addAll): Likewise.
	(SynchronizedAttributeSet.clear): Likewise.
	(SynchronizedAttributeSet.containsKey): Likewise.
	(SynchronizedAttributeSet.containsValue): Likewise.	
	(SynchronizedAttributeSet.equals): Likewise.
	(SynchronizedAttributeSet.get): Likewise.
	(SynchronizedAttributeSet.hashCode): Likewise.	
	(SynchronizedAttributeSet.isEmpty): Likewise.
	(SynchronizedAttributeSet.remove): Likewise.	
	(SynchronizedAttributeSet.size): Likewise.	
	(SynchronizedAttributeSet.toArray): Likewise.	
	(UnmodifiableAttributeSet.set): Field renamed to attrset for serialization.
	(UnmodifiableAttributeSet.add): Adapted to the new fieldname.
	(UnmodifiableAttributeSet.addAll): Likewise.
	(UnmodifiableAttributeSet.clear): Likewise.
	(UnmodifiableAttributeSet.containsKey): Likewise.
	(UnmodifiableAttributeSet.containsValue): Likewise.	
	(UnmodifiableAttributeSet.equals): Likewise.
	(UnmodifiableAttributeSet.get): Likewise.
	(UnmodifiableAttributeSet.hashCode): Likewise.	
	(UnmodifiableAttributeSet.isEmpty): Likewise.
	(UnmodifiableAttributeSet.remove): Likewise.	
	(UnmodifiableAttributeSet.size): Likewise.	
	(UnmodifiableAttributeSet.toArray): Likewise.	
	* javax/print/attribute/standard/MediaPrintableArea.java: 
	(width): Field renamed to w for serialization.
	(height): Field renamed to h for serialization. 
	(MediaPrintableArea): Adapted to the new fieldnames.	
	(MediaPrintableArea): Likewise.
	(equals): Likewise.
	(hashCode): Likewise.
	(getHeight): Likewise.
	(getWidth): Likewise.
  
2006-02-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* include/java_lang_VMMath.h:
	(Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_expm1(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_hypot(JNIEnv*,jclass,jdouble,jdouble)): Added.
	(Java_java_lang_VMMath_log10(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_log1p(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_sinh(JNIEnv*,jclass,jdouble)): Added.
	(Java_java_lang_VMMath_tanh(JNIEnv*,jclass,jdouble)): Added.
	* java/lang/Math.java:
	(cbrt(double)): Implemented.
	(cosh(double)): Implemented.
	(expm1(double)): Implemented.
	(hypot(double,double)): Implemented.
	(log10(double)): Implemented.
	(log1p(double)): Implemented.
	(signum(double)): Implemented.
	(signum(float)): Implemented.
	(sinh(double)): Implemented.
	(tanh(double)): Implemented.
	* native/fdlibm/Makefile.am:
	Added new files from fdlibm 5.3.
	* native/fdlibm/e_acos.c,
	* native/fdlibm/e_asin.c,
	* native/fdlibm/e_atan2.c,
	* native/fdlibm/e_exp.c,
	* native/fdlibm/e_fmod.c,	
	* native/fdlibm/e_log.c,
	* native/fdlibm/e_rem_pio2.c,
	* native/fdlibm/e_remainder.c,
	* native/fdlibm/e_scalb.c,
	* native/fdlibm/e_sqrt.c,
	* native/fdlibm/k_cos.c,
	* native/fdlibm/k_rem_pio2.c,
	* native/fdlibm/k_sin.c,
	* native/fdlibm/k_tan.c,
	* native/fdlibm/s_atan.c,
	* native/fdlibm/s_ceil.c,
	* native/fdlibm/s_copysign.c,
	* native/fdlibm/s_cos.c,
	* native/fdlibm/s_fabs.c,
	* native/fdlibm/s_finite.c,
	* native/fdlibm/s_floor.c,
	* native/fdlibm/s_rint.c,
	* native/fdlibm/s_scalbn.c,
	* native/fdlibm/s_sin.c,
	* native/fdlibm/s_tan.c,
	* native/fdlibm/w_acos.c,
	* native/fdlibm/w_asin.c,
	* native/fdlibm/w_atan2.c,
	* native/fdlibm/w_acos.c,
	* native/fdlibm/w_exp.c,
	* native/fdlibm/w_fmod.c,
	* native/fdlibm/w_log.c,
	* native/fdlibm/w_pow.c,
	* native/fdlibm/w_remainder.c,
	* native/fdlibm/w_sqrt.c:
	Updated to fdlibm 5.3.
	* native/fdlibm/e_cosh.c,
	* native/fdlibm/e_hypot.c,
	* native/fdlibm/e_log10.c,
	* native/fdlibm/e_sinh.c,
	* native/fdlibm/s_cbrt.c,
	* native/fdlibm/s_expm1.c,
	* native/fdlibm/s_log1p.c,
	* native/fdlibm/s_tanh.c,
	* native/fdlibm/w_cosh.c,
	* native/fdlibm/w_hypot.c,
	* native/fdlibm/w_log10.c,
	* native/fdlibm/w_sinh.c:
	Imported from fdlibm 5.3.
	* native/fdlibm/fdlibm.h:
	Imported from fdlibm 5.3 with Classpath additions.
	* native/fdlibm/namespace.h:
	Updated from new math_symbols file.
	* native/jni/java-lang/java_lang_VMMath.c:
	(Java_java_lang_VMMath_cbrt(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_cosh(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_expm1(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_hypot(JNIEnv*,jclass,jdouble,jdouble)):
	Implemented.
	(Java_java_lang_VMMath_log10(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_log1p(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_sinh(JNIEnv*,jclass,jdouble)): Implemented.
	(Java_java_lang_VMMath_tanh(JNIEnv*,jclass,jdouble)): Implemented.
	* scripts/math_symbols:
	Added tanh, expm1, log10 and log1p.
	* vm/reference/java/lang/VMMath.java:
	(cbrt(double)): Implemented.
	(cosh(double)): Implemented.
	(expm1(double)): Implemented.
	(hypot(double,double)): Implemented.
	(log10(double)): Implemented.
	(log1p(double)): Implemented.
	(sinh(double)): Implemented.
	(tanh(double)): Implemented.
	
2006-02-23  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/DocFlavor.java: Added documentation all over.
	(BYTE_ARRAY.TEXT_HTML_HOST): Include host charset encoding to mimetype.
	(BYTE_ARRAY.TEXT_PLAIN_HOST): Likewise.
	(INPUT_STREAM.TEXT_HTML_HOST): Likewise.
	(INPUT_STREAM.TEXT_PLAIN_HOST): Likewise.
	(URL.TEXT_HTML_HOST): Likewise.
	(URL.TEXT_PLAIN_HOST): Likewise.
	(hostEncoding): Initialize with host default charset encoding.
	(mediaSubtype): Made transient.
	(mediaType): Likewise.
	(params): Made transient. Changed type to TreeMap.
	(className): Removed, changed to myClassName.
	(myClassName): New field as defined in serialized form.
	(DocFlavor): Adapted to new variable types, names.
	(parseMimeType): Reimplemented.
	(getParameter): Search with lowercase name.
	(getRepresentationClassName): Adapted to changed variable name.
	(hashCode): Likewise.
	(toString): Reimplemented.
	(readObject): New method for serialization.
	(writeObject): Likewise.
  
2006-02-23  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/RepaintManager.java
	(commitBuffer): Clip the repaint area with the current clip.
  
2006-02-23  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java
	(DEFAULT_PRIME_SIZE): Made public.
	(DEFAULT_EXPONENT_SIZE): Likewise.
	(setup): Handle DHParameterSpec as well.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (getEncoded): Return
	defaultFormat instead of Raw.
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePublicKey): Use DerUtil.
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePrivateKey): Use DerUtil.
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Updated mapping of
	KeyAgreement.DH.
	Added mappings for AlgorithmParameters.DH and
	AlgorithmParameterGenerator.DH.
	* gnu/javax/crypto/jce/DiffieHellmanImpl.java: New file.
	* gnu/javax/crypto/jce/sig/DHParametersGenerator.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHParameters.java: Likewise.
	* gnu/javax/crypto/jce/sig/DHKeyFactory.java (engineGeneratePrivate):
	Return result.
	(engineGeneratePublic): Likewise.
	* gnu/java/security/util/DerUtil.java: New file.
	* gnu/java/security/sig/rsa/RSASignatureFactory.java (getNames):
	Include only valid RSA PKCS1 (v1.5) signature names.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java
	(RSAPKCS1V1_5SignatureX509Codec): Removed.
	(checkIsConstructed): Likewise.
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodeSignature): Use DerUtil.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePublicKey): Use DerUtil.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePrivateKey): Use DerUtil.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePublicKey): Use DerUtil.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
	(checkIsConstructed): Removed.
	(checkIsBigInteger): Likewise.
	(decodePrivateKey): Use DerUtil.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java
	(DEFAULT_MODULUS_LENGTH): Made it public.
	* gnu/java/security/key/dss/DSSKey.java (getEncoded): Return
	defaultFormat instead of Raw.
	* gnu/java/security/jce/sig/DSSParametersGenerator.java: New file.
	* gnu/java/security/jce/sig/DSSParameters.java: Likewise..
	* gnu/java/security/jce/sig/DSSKeyFactory.java (engineGeneratePrivate):
	Return result.
	(engineGeneratePublic): Likewise.
	* gnu/javax/crypto/DiffieHellmanImpl: Removed.

2006-02-22  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(BigDecimal(char[], int, int, MathContext)): New constructor.
	(BigDecimal(char[], MathContext)): Likewise.
	(BigDecimal(char[])): Likewise.
	(BigDecimal(char[], int, int)): Likewise.
	(BigDecimal(String)): Fixed handling of exponent and scale.

2006-02-22  Mark Wielaard  <mark@klomp.org>

	* java/awt/Checkbox.java (setState): Check that state actually changed
	before calling peer.
	(dispatchEventImpl): Set new state if ItemEvent.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (changing): Removed.
	(create): Set currentState.
	(setState): Make synchronized, check and set currentState before
	calling gtkToggleButtonSetActive.
	(postItemEvent): Make synchronized, check and set currentState before
	posting ItemEvent.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
	(postItemEventID): Method now takes boolean.
	(item_toggled_cb): Likewise.
  
2006-02-22  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/DefaultHighlighter.java:
	(changeHighlight): Added code to minimize the damaged area.
  
2006-02-22  Robert Schuster  <robertschuster@fsfe.org>
  
        * javax/swing/text/PlainView.java:
        (getPreferredSpan): Added missing 'break'.
        statement which corrects an unwanted fall through.
        (updateDamage): Update maxLineLength correctly when text is
        removed, call preferenceChanged accordingly.
        (viewToModel): Restrict line number to be within 0 and the
        number of elements-1.
  
2006-02-22  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/Utilities.java:
	(getPositionAbove): Prefer first value by changing comparison
	from < to <=.
	(getPositionBelow): Dito.
  
2006-02-22  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/DefaultEditorKit.java: Added checks and fallback
	behavior when magic caret position is null.
  
2006-02-22  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JTextField.java
	(isValidateRoot): New method.
  
2006-02-22  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JEditorPane.java
	(getPreferredSize): Rewritten to behave like the reference impl.
	(getScrollableTracksViewportWidth): Likewise.
	(getScrollableTracksViewportHeight): Likewise.
  
2006-02-22  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/RepaintManager.java
	(addInvalidComponent): Also consider the component itself.
  
2006-02-22  Mark Wielaard  <mark@klomp.org>
  
	* javax/swing/text/html/HTMLDocument.java (createDefaultRoot): Fully
	qualify AbstractDocument.AttributeContext.
	(blockOpen): Likewise.
  
2006-02-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/BigDecimal.java:
	(mathContext): New field.
	(precision): Likewise.
	(BigDecimal(int)): New constructor.
	(BigDecimal(long)): Likewise.
	(BigDecimal(BigInteger)): Added API docs.
	(BigDecimal(BigInteger, int)): Removed incorrect NumberFormatException
	and added API docs.
	(plus): New method.
	(round): Likewise.
	(precision): Likewise.
	(valueOf): Likewise.
	(numDigitsInLong): New implementation method.

2006-02-21  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/math/MathContext.java: New class.
	* java/math/RoundingMode: New Enum.

2006-02-21  Mark Wielaard  <mark@klomp.org>
  
	* java/awt/Component.java (translateEvent): Translate
	AdjustmentEvents to 1.0 Events.
	* java/awt/Scrollbar.java (dispatchEventImpl): Set valueIsAdjusting.
	Call setValue() before processing event.
	* gnu/java/awt/peer/gtk/GtkScrollbarPeer.java (setValues): Check
	whether we are currently changing and being called back from the
	Scrollbar component.
	(setBarValues): New native method.
	(postAdjustmentEvent): Mark AdjustmentEvent as user generated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues): Renamed to
	Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValue
	* include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Regenerated.
  
2006-02-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/View.java
	(setParent): Set child parent to null when disconnecting
	the view from the View hierarchy.
  
2006-02-21  Wolfgang Baer  <WBaer@gmx.de>
  
	* javax/print/StreamPrintService.java: Added and enhanced documentation.
  
2006-02-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/WrappedPlainView.java
	(calculateBreakPosition): Changed to use the view's allocation instead
	of the container's preferredSize.
  
2006-02-21  Wolfgang Baer  <WBaer@gmx.de>
  
	* java/awt/CardLayout.java:
	(first): Updated api documentation.
	(last): Likewise.
	(next): Likewise.
	(previous): Likewise.
	(show): Clarified api docs. Return if name is null. Throw
	IllegalArgumentException if layout of container is not this.
	(gotoComponent): Updated api documentation. Throw
	IllegalArgumentException if layout of container is not this.
  
2006-02-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/NavigationFilter.java
	(getNextVisualPositionFrom): New method.
  
2006-02-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.setView): Call setParent() on the view with this as
	argument instead of null.
	(setView): Don't set root view's parent here.
  
2006-02-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/AbstractDocument.java
	(AbstractElement.getAttribute): Use getResolveParent() to fetch
	the resolving parent.
	(AbstractElement.getResolveParent): Fixed to handle possible null
	parent.
	* javax/swing/text/BoxView.java
	(childReqs): New field.
	(paint): Added debugging code (commented out).
	(getPreferredSpan): Rewritten to use new update* methods.
	(getMaximumSpan): Rewritten to return Integer.MAX_VALUE
	for the minor axis and preferredSpan for the major axis.
	(getMinimumSpan): Rewritten to use new update* methods.
	(baselineRequirements): Rewritten to avoid creation of 
	unnecessary SizeRequirements objects.
	(baselineLayout): Rewritten to use new update* methods.
	(calculateMajorAxisRequirements): Rewritten to avoid creation of 
	unnecessary SizeRequirements objects.
	(calculateMinorAxisRequirements): Rewritten to avoid creation of 
	unnecessary SizeRequirements objects.
	(layout): Some robustness fixes for the layout. Turned AssertionErrors
	into warnings.
	(layoutMajorAxis): Rewritten to use new update* methods.
	(layoutMinorAxis): Rewritten to use new update* methods.
	(getChildRequirements): Replaced by the update* methods.
	(getAlignment): Use update* methods.
	(updateChildRequirements): New methods. Updates the child requirements
	if necessary.
	(updateRequirements): New methods. Updates the BoxView requirements
	if necessary.
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.insert): Added warning for illegal replacement operation.
	* javax/swing/text/FlowView.java
	(layoutRow): When offset doesn't change, return -1.
	(LogicalView): Now subclasses BoxView.
	(loadChildren): Let the CompositeView.setParent() load the children
	of the logicalView.
	(calculateMinorRequirements): New overridden method.
	* javax/swing/text/GlyphView.java
	(DefaultGlyphPainter.paint): Fixed typo.
	(startOffset): Made field private.
	(endOffset): Made field private.
	(paint): Call getStartOffset() and getEndOffset() instead of the
	element methods.
	(isStrikeThrough): Fixed typo.
	(breakView): Use Utilities.getBreakLocation() to determine best
	break location.
	(changedUpdate): Call preferencedChange on this instead of parent.
	(removeUpdate): Call preferencedChange on this instead of parent.
	* javax/swing/text/ParagraphView.java
	(Row.getAlignment): For Y_AXIS, call super.
	(getAlignment): Likewise.
	* javax/swing/text/Utilities.java
	(getBreakLocation): Set Segment object directly on the BreakIterator.
	* javax/swing/text/html/HTML.java
	(Attribute): Made class non-serializable and final as specified.
	(Attribute(String)): Made constructor private.
	(Attribute.compareTo): Removed.
	(Attribute.equals): Removed.
	(Attribute.hashCode): Removed.
	(Tag): Made class non-comparable and non-serializable as specified.
	(Tag.compareTo): Removed.
	(Tag.equals): Removed.
	(Tag.hashCode): Removed.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.blockOpen): Add tag as name attribute to element.
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create NullView for <head> tags, removed unused
	fallback.
	* javax/swing/text/html/InlineView.java
	(setPropertiesFromAttributes): Call super.
	* javax/swing/text/html/NullView.java: New class.
  
2006-02-21  Roman Kennke  <kennke@aicas.com>
  
	PR classpath/26368
	* javax/swing/text/GapContent.java
	(GapContentPosition): Made class private.
	(InsertUndo): Made class private.
	(UndoRemove): Made class private.
	(WeakPositionComparator): New inner class.
	(positions): Made field private.
	(createPosition): Clear up GC'ed positions before creating
	a new one. Store position as WeakReference.
	(getPositionsInRange): Changed to handle WeakReference
	positions.
	(setPositionsInRange): Changed to handle WeakReference
	positions.
	(adjustPositionsInRange): Changed to handle WeakReference
	positions.
	(dumpPositions): Handle WeakReference positions.
	(clearPositionReferences): New method.
  
2006-02-21  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/plaf/basic/BasicTextUI.java:
	(paint): Remove unneccessary part of the if-expression.
	(damageRange): Added case where the range spans multiple lines.
	* javax/swing/text/DefaultCaret.java:
	(clearHighlight): New method.
	(handleHighlight): Removed unneccessary part of the if-expression.
	(setDot): Use clearHighlight method.
	* javax/swing/text/DefaultHighlighter.java: Use ArrayList instead
        of Vector.
        (paint): Prevented calling size() on every loop iteration, fixed
        calculation of allocation area bounds.
        (getHighlights): Implemented.
	(removeHighlight): Mark damaged area in textcomponent.
	(addHighlight): Mark damaged area in textcomponent.
	(changeHighlight): Mark damaged area in textcomponent.
        (DefaultHighlighter.HighlightEntry): Made it a real
        Highlighter.Highlight implementation.
        (DefaultHighlighter.DefaultHighlightPainter.paint): Fixed
        calculations.

2006-02-20  Stuart Ballard  <stuart.a.ballard@gmail.com>

	* java/util/zip/ZipConstants.java
	(LOCSIG): Change type to long.
	(EXTSIG): Likewise.
	(CENSIG): Likewise.
	(ENDSIG): Likewise.
	* java/util/zip/ZipOutputStream.java
	(writeLeInt(long)): New method.
  
2006-02-21  Michael Koch  <konqueror@gmx.de>
  
	* gnu/javax/net/ssl/provider/PRNG.java: Removed.
  
2006-02-20  Mark Wielaard  <mark@klomp.org>
  
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
	(begin_drawing_operation): Output stacktrace and return on bad cairo
	status.
	(end_drawing_operation): Likewise. And reset cairo_t.
  
2006-02-20  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/DefaultEditorKit.java: Fixed comparison
	in backward selection action.
  
2006-02-20  Olivier Jolly  <olivier.jolly@pcedev.com>
  
	* java/lang/reflect/Proxy.java:
	(ProxyData.getProxyData): Skipped overriding of core methods.
	(ProxyData.isCoreObjectMethod): New method.
  
2006-02-20  Mark Wielaard  <mark@klomp.org>
  
	* gnu/java/nio/charset/Provider.java (Provider): Package private.
  
2006-02-20  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/html/Option.java: New class.
  
2006-02-20  Lillian Angel  <langel@redhat.com>
  
	* java/swt/Window.java
	(show): Calling show() on the owned windows caused problems.
	Changed back to get the peer and call setVisible.
  
2006-02-20  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(damageRange): Implemented this method.
  
2006-02-20  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/GapContent.java:
	(shiftGapEndUp): Corrected new mark value.
	* javax/swing/text/AbstractDocument.java:
	(remove): Changed order of operations.
  
2006-02-20  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/GapContent.java:
	(shiftGapEndUp): Reverted.
	* javax/swing/text/AbstractDocument.java:
	(remove): Reverted.
  
2006-02-20  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/GapContent.java:
	(shiftGapEndUp): Corrected new mark value.
	* javax/swing/text/AbstractDocument.java:
	(remove): Changed order of operations.
  
2006-02-20  Mark Wielaard  <mark@klomp.org>
  
	* java/awt/Menu.java (add(MenuItem)): Use item.getParent() to get
	parent field.
	(insert): Likewise.
	(addNotify): Add the item after addNotifying it.
	* java/awt/MenuBar.java (setHelpMenu): Only call removeNotify() when
	there is a peer. Use getParent() and setParent() to manipulate parent
	field.
	(add(Menu)): Use getParent() and setParent() to manipulate parent
	field. Call addNotify() and addMenu() when there is a peer.
	(remove(int)): Call removeNotify() and delMenu() when there is a peer.
	(addNotify): Use getPeer()/setPeer(). Call addMenu() and addHelpMenu()
	when there is a peer.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): Document.
	(GtkMenuComponentPeer): Document. Take MenuComponent as argument.
	(setFont): Call setFont(Font).
	(setFont(Font)): Document. Only set font when not null.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (create): Document. Made
	protected.
	(connectSignals): Likewise.
	(GtkMenuItemPeer): Document. Don't try to add item. Always call
	connectSignals().
	* gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java (create): Make
	protected.
	(postMenuActionEvent): Document.
	* gnu/java/awt/peer/gtk/GtkMenuPeer.java (create): Document. Made
	protected.
	(addItem): Document. Made private.
	(addTearOff): Made private.
	(connectSignals): New protected overridden method.
	(GtkMenuPeer): Correctly cast setupAccelGroup() arguments.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (hasHelpMenu): New field.
	(create): Document.
	(addMenu): Made private, take GtkMenuPeer as argument and document.
	(GtkMenuBarPeer): Document.
	(nativeSetHelpMenu): Removed.
	(addHelpMenu): Implement.
	(delMenu): Document.
	(addMenu): Implement.
	* gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java (setParent): Removed.
	* include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_nativeSetHelpMenu):
	Removed.
  
2006-02-20  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* gnu/java/rmi/server/RMIObjectInputStream.java (resolveProxyClass):
	Expect that proxy interfaces may have different class loaders.
	* gnu/java/rmi/server/UnicastServerRef.java: Rewritten.
	* java/rmi/registry/Registry.java,
	* java/rmi/server/UnicastRemoteObject.java: 
	Documented about proxy stubs.
	* gnu/java/rmi/server/CombinedClassLoader.java,
	java/rmi/server/RemoteObjectInvocationHandler.java: New files.
	* NEWS: Added entry.

2006-02-19  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): Set
	Parent and Bounds of our children if either or parent is showing, or
	we are a Window and are showing ourselves now.
  
2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* gnu/classpath/tools/rmi/rmic/RmicCompiler.java (convertStubName): 
	New method.
	* gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav: 
	Another stub name fix.
  
2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java (compile):
	Call convertStubName. (convertStubName): New method.
	* gnu/classpath/tools/rmi/RMIC.java (main): Stub name fix.
	* gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java 
	(convertStubName): New method.
	(getMethodHashCode): 
	Use existing gnu.java.rmi.server.RMIHashes.getMethodHash.
	* gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav: Stub name fix.

2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* java/rmi/server/UnicastRemoteObject.java: Documenting. 

2006-02-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/UnicastServerRef.java: Reformatted.

2006-02-18  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JViewport.java (paintBackingStore): If the component has
	not been scrolled, only repaint the buffer part, indicated by
	the parameter graphics clip. 
     
2006-02-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/OutgoingMessage.java (writePublicKey): Handle new
	internal format.
	(writePrivateKey): Likewise.
	(writeKey): New method.
	(getKeyType): Likewise.
	* gnu/javax/crypto/key/IncomingMessage.java (readPublicKey): Handle new
	internal format.
	(readPrivateKey): Likewise.
	(getKeyPairCodec): New method.
	* gnu/javax/crypto/key/srp6/SRPKey.java (getFormat): Always return Raw.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (getFormat): Use FormatUtil.
	* gnu/java/security/Registry.java (RSA_SIG_PREFIX): New constant.
	(RSA_PSS_ENCODING): Likewise..
	(RSA_PKCS1_V1_5_ENCODING): Likewise.
	(RSA_PSS_SIG): Redefined using other constants.
	(RSA_PKCS1_V1_5_SIG): Likewise.
	(MAGIC_RAW_RSA_PKCS1V1_5_SIGNATURE): New constant.
	* gnu/java/security/util/FormatUtil.java: New file.
	* gnu/java/security/sig/SignatureFactory.java (names): New field.
	(getInstance): Let RSASignatureFactory handle RSA signature names.
	(getNames): Handle new RSA signature (with format) names.
	* gnu/java/security/sig/SignatureCodecFactory.java: New file.
	* gnu/java/security/sig/BaseSignature.java (BaseSignature): Add check
	for null md.
	(name): Include hash algorithm name.
	* gnu/java/security/sig/rsa/RSASignatureFactory.java: New file.
	* gnu/java/security/sig/rsa/RSAPSSSignature.java
	(RSAPSSSignature): Call constructor with IMessageDigest.
	(RSAPSSSignature(ImessageDigest,int)): New constructor.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureRawCodec.java: New
	file.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5SignatureX509Codec.java:
	Likewise.
	* gnu/java/security/sig/rsa/RSAPKCS1V1_5Signature.java
	(RSAPKCS1V1_5Signature(String)): Call constructor with IMessageDigest.
	(RSAPKCS1V1_5Signature(IMessageDigest)): New constructor.
	* gnu/java/security/sig/rsa/EMSA_PKCS1_V1_5.java (getInstance): Added
	hash algorithm name to exception.
	* gnu/java/security/sig/dss/DSSSignatureX509Codec.java: New file.
	* gnu/java/security/key/KeyPairCodecFactory.java
	(names): New class field.
	(getInstance(Sitrng)): Deconstruct and call getInstance(String,String).
	(getInstance(String,String)): New method.
	(getInstance(String,int)): New method.
	(getInstance(byte[])): Removed.
	(getInstance(Key)): Handle new formats.
	(getNames): Likewise.
	(getEncodingName(int)): Moved to FormatUtil.
	(getEncodingShortName(int)): Likewise.
	(getRawCodec(String)): New method.
	(getX509Codec(String)): Likewise.
	(getPKCS8Codec(String)): Likewise.
	(getRawCodec(Key)): Likewise.
	(getX509Codec(Key)): Likewise.
	(getPKCS8Codec(Key)): Likewise.
	* gnu/java/security/key/dss/DSSKey.java (getFormat): Use FormatUtil.
	* gnu/java/security/key/rsa/GnuRSAKey.java (getFormat): Likewise.
	* gnu/java/security/jce/sig/SHA512withRSA.java: New File.
	* gnu/java/security/jce/sig/SHA384withRSA.java: Likewise.
	* gnu/java/security/jce/sig/SHA256withRSA.java: Likewise.
	* gnu/java/security/jce/sig/SHA160withRSA.java: Likewise.
	* gnu/java/security/jce/sig/SHA160withDSS.java: Likewsie.
	* gnu/java/security/jce/sig/MD5withRSA.java: Likewise.
	* gnu/java/security/jce/sig/MD2withRSA.java: Likewise.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* java/awt/dnd/DragSource.java (getDefaultDragSource): Return new
	DragSource.
	(NoDragGestureRecognizer): New static class.
	(createDragGestureRecognizer): Return NoDragGestureRecognizer when
	Toolkit doesn't support drag and drop.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/AbstractAction.java (AbstractAction()): Nothing to do.
	(AbstractAction(String)): Just call putValue() for NAME.
	(putValue): Nothing to do is old and new value are both null.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JRootPane.java (layoutContainer): Get contentPane
	through getContentPane().
	(preferredLayoutSize): Likewise.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JMenuBar.java (paintBorder): Check whether border is
	actually set before painting.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/html/HTMLDocument.java (addContent):
	Fully qualify AbstractDocument.AttributeContext and
	DefaultStyledDocument.ElementSpec.ContentType for gcj 4.0.

2006-02-18  Mark Wielaard  <mark@klomp.org>

	* java/awt/datatransfer/DataFlavor.java (tryToLoadClass): Rewritten.
	(getRepresentationClassFromMime): Add exception cause to
	IllegalArgumentException.
  
2006-02-17  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java:
	Removed unneeded import.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java:
	Removed unneeded imports.
	* java/awt/BorderLayout.java:
	Fixed comment, this is not yet handled in the JDK 1.5.
	* java/awt/Container.java:
	Removed unneeded import.
  
2006-02-17  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(setBounds): Removed check. Coordinates should always be changed
	to incorporate the parent's coordinates.
	* gnu/java/awt/peer/gtk/GtkFramePeer.java
	(setMenuBar): Added checks. Don't validate component if it has 
	not been validated yet, it will be validated later. Only validate
	if it has already been validated, in that case it needs to be
	revalidated.
	* java/awt/Window.java
	(show): Added check. If the window is visible, then bring it to the
	front. Otherwise, iterate through all its children windows and show them.
	No need to do both.

2006-02-17  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ParagraphView.java: New file.

2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (getCellRect): return +rowMargin if spacing
	is included. (moveToCellBeingEdited): Adjusted to start editing at the
	same location where was the initial text.
	* javax/swing/plaf/basic/BasicTableUI.java (paint): Rewritten.

2006-02-17  Chris Burdess  <dog@gnu.org>

	Fixes PRs 26319, 26320, 26321, 26322, 26325
	* gnu/xml/stream/SAXParser.java: On error, reset parser before
	  rethrowing exception.
	* gnu/xml/stream/XMLParser.java: Only report "illegal use of
	  1.1-style prefix unbinding in 1.0 document" error for xmlns
	  prefixes, not xmlns attributes. Fix a problem with empty namespace
	  stack at the end of a document. Permit parameter entity references
	  in element and attribute-list definition name area. Corrected
	  normalisation of whitespace character entity references in CDATA
	  attribute values. Fixed number of characters read following a
	  reset when detecting end of character data with characters after a
	  Unicode surrogate pair.
  
2006-02-17  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/html/HTMLEditorKit.java
	(HTMLFactory.create): Create InlineView for content tags.
	* javax/swing/text/html/HTMLDocument.java
	(HTMLReader.flush): Call create() on first flush and insert
	on subsequent flushes.
  
2006-02-17  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/AbstractDocument.java
	(BranchElement.getStartOffset): Implemented workaround for wrong
	NPE.
	(BranchElement.getEndOffset): Implemented workaround for wrong
	NPE.
	(ElementBuffer.split): Use createBranchElement() instead of
	new BranchElement().
	(ElementBuffer.insertFracture): Use createBranchElement() instead of
	new BranchElement().
	(ElementBuffer.recreateAfterFracture): Use createBranchElement()
	instead of new BranchElement().
	(createDefaultRoot): Use createBranchElement() and createLeafElement
	instead of the constructors.
	(create): Rewritten.
  
2006-02-17  Keith Seitz  <keiths@redhat.com>
  
	* gnu/classpath/jdwp/id/JdwpId.java (size): Remove.
	(SIZE): New constant.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeIDsizes): Use SIZE constant.
	* vm/reference/gnu/classpath/jdwp/VMFrame.java (size): Remove.
	(SIZE): New constant.

2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (IconCellRenderer): Set the component
	text to empty string. (createDefaultRenderers): Register
	IconCellRenderer also for ImageIcon. 
	(getCellEditor(int, int), getCellRenderer(int, int)):
	Use model index for data model and column index for column model.
	(getColumnClass): Convert to model index before requesting class
	from model. 
  
2006-02-17  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/html/HTMLDocument.java
	(createDefaultRoot): Implemented.
	(createLeafElement): Implemented.
	(createBranchElement): Implemented.
	(BlockElement.getName): Fixed to handle HTML.Tag objects as name.
	(RunElement.getName): Fixed to handle HTML.Tag objects as name.
	(HTMLReader.ParagraphAction.start): Call blockOpen at the very least.
	(HTMLReader.ParagraphAction.end): Call blockClose at the very least.
	(HTMLReader.blockOpen): Add name attribute with the current tag.
	(HTMLReader.addContent): Add name attribute with HTML.Tag.CONTENT.
  
2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler):
	Rewritten.
	* javax/swing/table/JTableHeader.java: Documenting related methods.
  
2006-02-17  Jeroen Frijters  <jeroen@frijters.net>
  
	Fixes PR 25752
	* gnu/java/net/protocol/ftp/FTPURLConnection.java
	(connect): Changed to use SystemProperties.
	(getInputStream): Try changeWorkingDirectory to figure out if
	url is a directory, if not use retrieve.
	(getOutputStream): Don't worry about directories, simply always
	try to do a store.
  
2006-02-17  Jeroen Frijters  <jeroen@frijters.net>
  
	* gnu/java/net/protocol/ftp/ActiveModeDTP.java
	(ActiveModeDTP): Mark accept thread as daemon.
  
2006-02-17  Michael Koch  <konqueror@gmx.de>
  
	* tools/.cvsignore: Ignore tools.zip.
  
2006-02-16  Keith Seitz  <keiths@redhat.com>
  
	* vm/reference/gnu/classpath/jdwp/VMIdManager.java (newReferenceTypeId):
	Set the ID's reference.
	(<clinit>): Remove comments for field, method, and frame ID types,
	which will not be handled by VMIdManager.
  
2006-02-17  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java (getCellEditor, getCellRenderer):
	Use model index, not the column number.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler):
	Rewritten. (draggingHeaderRect): New field. (paint): Animate column 
	movement by painting draggingHeaderRect.
	* NEWS: Added entry about JTable columns. 
  
2006-02-16  Keith Seitz  <keiths@redhat.com>
  
	* gnu/classpath/jdwp/id/JdwpId.java (size): Make static. Return
	default size of eight bytes.
	* gnu/classpath/jdwp/id/ObjectId.java (size): Remove.
	* gnu/classpath/jdwp/id/ReferenceTypeId.java (size): Remove.
	* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
	(executeIDsizes): Use new static methods.
	* vm/reference/gnu/classpath/jdwp/VMFrame.java (size): New static
	method.
	
2006-02-16  David Daney  <ddaney@avtrex.com>
  
	PR classpath/26312
	* gnu/java/net/protocol/http/ChunkedInputStream.java (read): Mask
	return value with 0xff.
  
2006-02-16  Keith Seitz  <keiths@redhat.com>
  
	* gnu/classpath/jdwp/event/EventRequest.java (getFilters): New method.
	(matches): Use Iterator instead of ListIterator.
  
2006-02-16  Keith Seitz  <keiths@redhat.com>
  
	* gnu/classpath/jdwp/Jdwp.java (_doInitialization): Name the packet
	processor thread for easier debugging.
	(_enforceSuspendPolicy): Suspend the current thread, not the JDWP
	main thread.
  
2006-02-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java 
	(TableColumnPropertyChangeHandler.propertyChange): Return without
	action if table header resizing column in not null. (doLayout):
	Only repaint the header if it is not null.	
	* javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(MouseInputHandler.mouseExited, MouseInputHandler.mouseReleased):
	Rewritten. (MouseInputHandler.endResizing): New method.
  
2006-02-16  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/html/InlineView.java: New file.
  
2006-02-16  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JTabbedPane.java
	(AccessibleJTable.getAccessibleChild): Implemented to return
	the Page instance for the specified index.
	(Page): Changed to implement Accessible and extend
	AccessibleContext.
	(Page.getAccessibleContext): New method.
	(Page.getAccessibleRole): New method.
	(Page.getAccessibleStateSet): New method.
	(Page.getAccessibleIndexInParent): New method.
	(Page.getAccessibleChildrenCount): New method.
	(Page.getAccessibleChild): New methdod.
	(Page.getLocale): New method.
  
2006-02-16  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(TabbedPaneLayout.calculateTabRects): Expand tabRuns array when
	tabCount gets greater than tabRuns.length.
	(TabbedPaneScrollLayout.calculateTabRects): Expand tabRuns array
	when tabCount gets greater than tabRuns.length.
	(paintTabArea): Don't set tabCount == runCount.
  
2006-02-16  Roman Kennke  <kennke@aicas.com>
  
  	* javax/swing/plaf/basic/BasicTextUI.java
	(installUI): Moved installation of PropertyChangeListener
	to installListeners(). Call modelChanged() after everything is
	is installed.
	(installListeners): Install PropertyChangeListener here.
	(uninstallUI): Moved uninstallation of PropertyChangeListener
	to uninstallListeners.
	(uninstallListeners): Uninstall PropertyChangeListener here.

2006-02-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (doLayout): 
	case AUTO_RESIZE_SUBSEQUENT_COLUMNS rewritten. Repaint the header
	on exit.
	javax/swing/plaf/basic/BasicTableHeaderUI.java 
	(MouseInputHandler.mouseDragged): Do not repaint the header.
  
2006-02-16  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JViewport.java
	(static_initializer): Set default scrollMode to backingstore.
  
2006-02-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java (moveToCellBeingEdited): Clone the value,
	returned by getCellRect. To not translate the component.
  
2006-02-16  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JComponent.java
	(rectCache): Made field non-static to avoid nasty interferences.
	(computeVisibleRect): Avoid creation of new Rectangles and double
	calculations on ints by using Swing.computeIntersection() instead
	of Rectangle2D.intersect().
	(repaint): Interect the dirty region with the visible rectangle
	of this component to avoid unnecessary painting.
  
2006-02-16  Gary Benson  <gbenson@redhat.com>
  
	* java/lang/Thread.java (stop): Add a missing access check.
  
2006-02-16  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/JTextComponent.java:
	(replaceSelection): Added code to update the magic caret position.
	* javax/swing/text/DefaultEditorKit.java: Added code to update
	the magic caret position of the text component in all relevant
	movement actions, make use of the magic caret position in up
	and down movements and selections, simplified some actions
	(code-wise).

2006-02-15  Anthony Balkissoon  <abalkiss@redhat.com>

	* gnu/java/lang/CharData.java: Regenerated from 
	doc/unicode/UnicodeData-4.0.0.txt, doc/unicode/SpecialCasing-4.0.0.txt
	and scripts/unicode-muncher.pl.
	* java/lang/Character.java: 
	(PrivateUseCharacters): New private static class.
	(UnassignedCharacters): Likewise.
	(blocks): Changed from char[] to char[][] to reflect the changes in 
	gnu/java/lang/CharData.  There is now one char[] per Unicode code
	plane.
	(data): Likewise.
	(numValue): Likewise.
	(upper): Likewise.
	(lower): Likewise.
	(direction): Likewise.
	(readChar): Replaced this method with new method readCodePoint.
	(readCodePoint): New method.
	(isLowerCase(char)): Redirected to new isLowerCase(int).
	(isLowerCase(int)): New method.
	(isUpperCase(char)): Redirected to new isUpperCase(int).
	(isUpperCase(int)): New method.
	(isTitleCase(char)): Redirected to new isTitleCase(int).
	(isTitleCase(int)): New method.
	(isDigit(char)): Redirected to new isDigit(int).
	(isDigit(int)): New method.
	(isDefined(char)): Redirected to new isDefined(int).
	(isDefined(int)): New method.
	(isLetter(char)): Redirected to new isLetter(int).
	(isLetter(int)): New method.
	(isLetterOrDigit(char)): Redirected to new isLetterOrDigit(int).
	(isLetterOrDigit(int)): New method.
	(isJavaIdentifierStart(char)): Redirected to new 
	isJavaIdentifierStart(int).
	(isJavaIdentifierStart(int)): New method.
	(isJavaIdentifierPart(char)): Redirected to new 
	isJavaIdentifierPart(int).
	(isJavaIdentifierPart(int)): New method.
	(isUnicodeIdentifierStart(char)): Redirected to new
	isUnicodeIdentifierStart(int).
	(isUnicodeIdentifierStart(int)): New method.
	(isUnicodeIdentifierPart(char)): Redirected to new 
	isUnicodeIdentifierPart(int).
	(isUnicodeIdentifierPart(int)): New method.
	(isIdentifierIgnorable(char)): Redirected to new
	isIdentifierIgnorable(int).
	(isIdentifierIgnorable(int)): New method.
	(toLowerCase(char)): Changed access to lower to correspond with new
	char[][] type of lower.
	(toLowerCase(int)) New method.
	(toUpperCase(char)): Changed access to upper to correspond with new
	char[][] type of upper.
	(toUpperCase(int)): New method.
	(toTitleCase(int)): New method.
	(digit(char, int)): Replaced call to readChar with call to 
	readCodePoint and changed access to numValue to reflect new char[][]
	type of numValue. 
	(digit(int, int)): New method.
	(getNumericValue(char)): Changed access to numValue to reflect new
	char[][] type of numValue.
	(getNumericValue(int)): New method.
	(isSpaceChar(char)): Redirected to new isSpaceChar(int).
	(isSpaceChar(int)): New method.
	(isWhitespace(char)): Redirected to new isWhitespace(int).
	(isWhitespace(int)): New method.
	(isISOControl(char)): Redirected to new isISOControl(int).
	(isISOControl(int)): New method.
	(getType(char)): Redirected to new getType(int).
	(getType(int)): New method.
	(getDirectionality(char)): Redirected to new getDirectionality(int).
	(getDirectionality(int)): New method.
	(isMirrored(char)): Changed call to readChar to readCodePoint.
	(isMirrored(int)): New method.
	* java/lang/String.java:
	(upperCaseExpansion): Changed access to Character.direction to reflect
	new char[][] type of direction.
	(offsetByCodePoints): New method.
	* scripts/unicode-muncher.pl: Adapted this script to handle Unicode 
	4.0.0 which introduced supplementary character assignments.  

2006-02-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java,
	javax/swing/plaf/basic/BasicTableHeaderUI.java,
	javax/swing/table/DefaultTableModel.java: Documented.
  
2006-02-15  Lillian Angel  <langel@redhat.com>
  
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
	Removed duplicate methods.
  
2006-02-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java (distributeSpillResizing): New method.
	(doLayout): Use distributeSpillResizing when resizing.
	* javax/swing/plaf/basic/BasicTableHeaderUI.java (MouseInputHandler):
	Rewritten. (installListeners): Add mouse motion listener. 
	(uninstallListeners): Remove mouse motion listener. 
  
2006-02-15  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(setVisible): Removed method.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(setLocation): New method.
	(setLocationUnlocked): New method.
	(show): Changed to use setLocation instead of setBounds.
  	* java/awt/Component.java
	(show): Should call peer.show(), not peer.setVisible(), so the
	location of the component is correctly set.
	(preferredSize): Added curly braces so else statements are
	properly associated with if's.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation): 
	New function.
	(Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSet
	LocationUnlocked): New function.
	* include/gnu_java_awt_peer_gtk_GtkWindowPeer.h:
	Added declarations for Java_gnu_java_awt_peer_gtk_
	GtkWindowPeer_nativeSetLocation and 
	Java_gnu_java_awt_peer_gtk_GtkWindowPeer
	_nativeSetLocationUnlocked.
  
2006-02-15  Mark Wielaard  <mark@klomp.org>
  
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create):
	Downcast gtk_plug_new result when used.
  
2006-02-15  Olivier Jolly  <olivier.jolly@pcedev.com>
  
	* java/io/ObjectOutputStream.java (writeClassDescriptor):
	Call assignNewHandle() after writing Proxy class.
  
2006-02-15  Olivier jolly  <olivier.jolly@pcedev.com>
  
	Fixes bug #14144
	* java/io/ObjectInputStream.java (readClassDescriptor):
	Class doesn't have to be abstract for first_nonserial.
  
2006-02-15  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JInternalFrame.java
	(setClosed): Call dispose to actually make the frame invisible
	and unselected.
  
2006-02-15  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JInternalFrame.java
	(dispose): Call setVisible(false) instead of hide.
	(doDefaultCloseOperation): Likewise.
  
2006-02-15  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JComponent.java
	(paintChildren): Also check for the visibility of a child component
	to avoid artifacts.
	(repaint): Simply add this component to the RepaintManager rather than
	trying to do useless optimization here.
  
2006-02-15  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/JSpinner.java
	(DefaultEditor.DefaultEditor(JSpinner)): Add self to text field as a 
	PropertyChangeListener,
	(DefaultEditor.getSpinner): Updated API docs,
	(DefaultEditor.dismiss): Likewise,
	(DefaultEditor.getTextField): Likewise,
	(DefaultEditor.layoutContainer): Likewise,
	(DefaultEditor.minimumLayoutSize): Likewise,
	(DefaultEditor.preferredLayoutSize): Likewise,
	(DefaultEditor.propertyChange): Implemented,
	(DefaultEditor.stateChanged): Implemented,
	(DefaultEditor.removeLayoutComponent): Updated API docs,
	(DefaultEditor.addLayoutComponent): Likewise,
	(NumberEditor.NumberEditor(JSpinner)): Set formatter for text field,
	(NumberEditor.NumberEditor(JSpinner, String)): Likewise,
	(NumberEditor.getFormat): Implemented,
	(NumberEditor.getModel): Updated API docs,
	(NumberEditorFormatter): New static inner class,
	(ListEditor.getModel): Updated API docs,
	(DateEditor.dateFormat): Removed,
	(DateEditor.DateEditor(JSpinner)): Set formatter for text field,
	(DateEditor.DateEditor(JSpinner, String)): Likewise,
	(DateEditor.init): Removed,
	(DateEditor.getFormat): Reimplemented,
	(DateEditorFormatter): New static inner class,
	(ModelListener): New inner class,
	(model): Updated API docs,
	(editor): Likewise,
	(listener): Removed,
	(JSpinner()): Updated API docs,
	(JSpinner(SpinnerModel)): Set up ModelListener,
	(setEditor): Fire property change,
	(getModel): Updated API docs,
	(setModel): Removed check for null editor,
	(setValue): Updated API docs,
	(getUIClassID): Updated API docs,
	(createEditor): Handle SpinnerListModel case,
	* javax/swing/plaf/basic/BasicSpinnerUI.java
	(createUI): Updated API docs,
	(createPropertyChangeListener): Added FIXME,
	(installDefaults): Set text field border to null,
	(DefaultLayoutManager): Updated API docs,
	(DefaultLayoutManager.layoutContainer): Modified layout,
	(DefaultLayoutManager.minimumLayoutSize): Ignore button heights,
	(DefaultLayoutManager.preferredLayoutSize): Likewise,
	(DefaultLayoutManager.removeLayoutComponent): Removed tabs,
	(DefaultLayoutManager.addLayoutComponent): Likewise,
	(DefaultLayoutManager.minSize): Renamed prefSize,
	(DefaultLayoutManager.setBounds): Reformatted,
	(DefaultLayoutManager.editor): Added API docs,
	(DefaultLayoutManager.next): Likewise,
	(DefaultLayoutManager.previous): Likewise,
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added entry for 'Spinner.border',
	* examples/gnu/classpath/examples/swing/SpinnerDemo.java: New file.

2006-02-15  Chris Burdess  <dog@gnu.org>

	* 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/FloatType.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/IntType.java,
	  gnu/xml/validation/datatype/IntegerType.java,
	  gnu/xml/validation/datatype/LongType.java,
	  gnu/xml/validation/datatype/MaxExclusiveFacet.java,
	  gnu/xml/validation/datatype/MaxInclusiveFacet.java,
	  gnu/xml/validation/datatype/MinExclusiveFacet.java,
	  gnu/xml/validation/datatype/MinInclusiveFacet.java,
	  gnu/xml/validation/datatype/NegativeIntegerType.java,
	  gnu/xml/validation/datatype/NonNegativeIntegerType.java,
	  gnu/xml/validation/datatype/NonPositiveIntegerType.java,
	  gnu/xml/validation/datatype/PositiveIntegerType.java,
	  gnu/xml/validation/datatype/ShortType.java,
	  gnu/xml/validation/datatype/SimpleType.java,
	  gnu/xml/validation/datatype/TimeType.java,
	  gnu/xml/validation/datatype/TypeBuilder.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: Provide value
	  objects for datatypes. Make maxExclusive,minExclusive,maxInclusive,
	  minInclusive facets use the value space of the base type, and
	  implement.

2006-02-15  Mark Wielaard  <mark@klomp.org>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create):
	gtk_plug_new() returns a GtkWindow.

2006-02-15  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerNumberModel.java
	(getNextValue): Check for null maximum,
	(getPreviousValue): Check for null minimum.
  
2006-02-15  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Paint vertical and horizontal lines one pixel shifted
	left/top.
  
2006-02-15  Jeroen Frijters  <jeroen@frijters.net>
  
	* java/util/zip/ZipFile.java
	(checkZipFile): Inlined readLeInt and rewritten for robustness.
	(readLeShort(DataInput,byte[]), readLeInt(DataInput,byte[],
	readLeShort(byte[],int), readLeInt(byte[],int)): Removed.
	(readEntries): Rewritten to use PartialInputStream.
	(locBuf, checkLocalHeader): Removed.
	(getInputStream): Rewritten to use new PartialInputStream.
	(PartialInputStream): Rewritten to do buffering.

2006-02-15  Michael Koch  <konqueror@gmx.de>

	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create):
	Make sure the embedded window gets no decorations.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
	(window_get_frame_extents): Return early of the window has no
	decorations.
  
2006-02-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* examples/gnu/classpath/examples/swing/TableDemo.java
	(TModel, createContent): Explain which value appears in the header.
	* javax/swing/JTable.java (setColumnModel): Only set the
	column header value if the getHeaderValue() returns null.

2006-02-14  Mark Wielaard  <mark@klomp.org>

	Fixes bug #23931
	* gnu/java/awt/peer/gtk/GtkImage.java (errorImage): New static field.
	(getErrorImage): New static method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (GtkErrorImage): Removed.
	(bufferedImageOrError): Renamed to ...
	(imageOrError): Renamed from bufferedImageOrError, takes Image.
	Returns GtkImage.getErrorImage() when argument null.
	(createImage(String)): Always use imageOrError.
	(createImage(URL)): Likewise.
	(createImage(ImageProducer)): Likewise.
	(createImage(byte[],int,int)): Likewise.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicCheckBoxMenuItemUI.java: Removed
	unneeded imports.
	* javax/swing/plaf/basic/BasicInternalFrameUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRadioButtonMenuItemUI.java: Likewise.
	* javax/swing/plaf/basic/BasicRootPaneUI.java: Likewise.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java: Likewise.
	* javax/swing/plaf/basic/BasicHTML.java: Fixed API comment.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AsyncBoxView.java
	(ChildState.locator): Removed wrong field.
	(ChildState): Removed initialization of removed field.
	(locator): Changed access modifier to be protected as specified.

2006-02-14  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ToolTipManager.java: Removed unneeded imports.
	* javax/swing/Timer.java: Some small reindention.
	(task): Made package private to avoid synthetic accessor method.
  
2006-02-14  Roman Kennke  <kennke@aicas.com>
  
  	* javax/swing/SwingUtilities.java
	(layoutCompoundLabel): Dont set textIconGap to 0 when there is
	no icon.
  
2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* examples/gnu/classpath/examples/swing/TableDemo.java:
	Making the columns variable width.
	* javax/swing/JTable.java (distributeSpill, doLayout):
	  Call getPreferredSize and not getSize().
  
2006-02-14  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/DefaultCellEditor.java
	(DefaultCellEditor): API doc fixlet.
  
2006-02-14  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JViewport.java
	(isPaintRoot): New field.
	(repaint): Only call super here. Also added a comment regarding
	the diversion from the JDK.
	(paintBlit): Implemented real blitting.
	(paintImmediately2): New method. Overrides the same package private
	method in JComponent.
  
2006-02-14  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Check for boundary cases when determining the painting
	area.
  
2006-02-14  Mark Wielaard  <mark@klomp.org>
  
	* java/awt/Menu.java (add): Always set parent of item to this. Call
	addNotify() on item when we have a MenuPeer already.
	(insert): Always adjust parent for item. Call addNotify() on item if
	we already have a peer.
	(remove(int)): Always clear item parent. Call removeNotify() on item
	if we had a peer.
  
2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java (rowAtPoint): Return -1 if the computed 
	row == getRowCount().
  
2006-02-14  Lillian Angel  <langel@redhat.com>
	
	* gnu/java/awt/peer/gtk/GtkDialogPeer.java
	(setVisible): New method to override super. Need to set the
	native bounds of the component, so it appears at the
	correct location.

2006-02-14  Mark Wielaard  <mark@klomp.org>

	* java/awt/Frame.java (setMenuBar): Update MenuBar parent.
	(remove): If menu component is the current MenuBar remove it,
	otherwise call super.remove().
	* java/awt/MenuBar.java (frame): Remove field.
	* java/awt/MenuComponent.java (postEvent): Use getParent() always.

2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/NameServicePersistent.java: Refer
	to NameServicePersistent.
	* tools/gnu/classpath/tools/giop/NameServicePersistent.txt: New file.
	* tools/gnu/classpath/tools/giop/NamingServicePersistent.txt: Deleted.

2006-02-14  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* NEWS: Updated tool status.
	* gnu/CORBA/NamingService/NamingMap.java (Map): Made protected.
	(constructor, bind, rebind): Rewritten.  
	* gnu/CORBA/NamingService/TransientContext.java: Rewritten.
	* tools/gnu/classpath/tools/giop/README: Updated.
	* tools/gnu/classpath/tools/giop/NameServicePersistent.java,
	tools/gnu/classpath/tools/giop/NamingServicePersistent.txt,
	tools/gnu/classpath/tools/giop/nameservice/PersistentContext.java,
	tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java,
	tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java: 
	New files.
  
2006-02-14  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/JComponent.java
	(getListeners): Check for PropertyChangeListener.class and delegate to 
	getPropertyChangeListeners() for that case.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTableUI.java
	(paint): Determine the cells that need painting based on the
	current clip. Use getCellRect() for calculating the cell
	bounds.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JTable.java
	(rectCache): New field.
	(getCellRect): Returns cached Rectangle instance.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JLayeredPane.java
	(removeAll): New method. Avoid potential memory leak.
	(isOptimizedDrawingEnabled): Replaced heuristic with accurate
	calculation.
  
2006-02-14  Stuart Ballard  <stuart.a.ballard@gmail.com>
  
	* javax/swing/undo/StateEdit.java (RCSID): Match Sun's value.
	* javax/swing/undo/StateEditable.java (RCSID): Likewise.
  
2006-02-13  Tom Tromey  <tromey@redhat.com>
  
	* vm/reference/java/lang/reflect/Method.java: Javadoc fix.
	* vm/reference/java/lang/reflect/Constructor.java: Javadoc fix.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/RepaintManager.java
	(offscreenBuffers): New field.
	(doubleBuffer): Removed field.
	(repaintUnderway): New field.
	(commitRequests): New field.
	(RepaintManager): Initialize new fields.
	(paintDirtyRegions): Handle repaintUnderway flag. Commit
	buffers when done.
	(getOffscreenBuffer): Returns the offscreen buffer for the
	corresponding root component.
	(commitBuffer): New method.
	(commitRemainingBuffers): New method.
	* javax/swing/JComponent.java
	(paint): Call paintDoubleBuffered with the current clip.
	(paintImmediately2): Don't paint on screen here.
	(paintDoubleBuffered): Rewritten for real double buffering.
	(paintSimple): Draw to screen in this method.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JRootPane.java
	(JRootPane): Set opaque property to true.
  
2006-02-13  Tom Tromey  <tromey@redhat.com>
  
	* .classpath: Updated for external/relaxngDatatype.
  
2006-02-13  Chris Burdess  <dog@gnu.org>
  
	* gnu/xml/stream/UnicodeReader.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,
	  resource/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory:
	  RELAX NG datatype library implementation for XML Schema Datatypes.

2006-02-13  Chris Burdess  <dog@gnu.org>

	* LICENCE,
	  NEWS,
	  configure.ac,
	  doc/README.jaxp,
	  external/Makefile.am,
	  external/relaxngDatatype/.cvsignore,
	  external/relaxngDatatype/Makefile.am,
	  external/relaxngDatatype/README.txt,
	  external/relaxngDatatype/copying.txt,
	  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,
	  lib/Makefile.am,
	  lib/gen-classlist.sh.in: Added external RELAX NG pluggable
	  datatypes library API.
  
2006-02-13  Mark Wielaard  <mark@klomp.org>
  
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java (awtWidget): Made field
	final.
	(gtkWidgetModifyFont(Font)): New protected helper method.
	(gtkWidgetModifyFont(String,int,int)): Made protected and document.
	* gnu/java/awt/peer/gtk/GtkButtonPeer.java (gtkWidgetModifyFont): Made
	protected and document.
	* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (gtkWidgetModifyFont):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkLabelPeer.java (gtkWidgetModifyFont):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkListPeer.java (gtkWidgetModifyFont):
	Likewise.
	* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (create): Made protected.
	(setFont): Removed method. Done in GtkMenuComponent.
	* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): Made
	abstract and protected.
	(setFont): Made private, add implementation.
	(setFont(Font)): Implemented.
	* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (gtkWidgetModifyFont):
	Made protected and document.
	(create): Made protected.
	(setFont): Removed method. Done in GtkMenuComponent.
	* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
	(gtkWidgetModifyFont): Made protected and document.
	* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (gtkWidgetModifyFont):
	Removed, similar to GtkGenericPeer super class implementation.
	* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Regenerated.
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetModifyFont):
	Removed.
  
2006-02-13  Mark Wielaard  <mark@klomp.org>
  
	* java/lang/Math.java (static): Explicitly call
	System.loadLibrary("javalang").
  
2006-02-13  Wolfgang Baer  <WBaer@gmx.de>
  
	* javax/print/StreamPrintServiceFactory.java: New file.
  
2006-02-13  Tom Tromey  <tromey@redhat.com>
  
	* tools/.cvsignore: Added Makefile.
  
2006-02-13  Wolfgang Baer  <WBaer@gmx.de>
  
	* java/awt/print/PrinterGraphics.java: Reformatted.
	* java/awt/print/Paper.java: Likewise.
	* java/awt/print/PageFormat.java: Likewise.
	* java/awt/print/Pageable.java: Likewise.
  
2006-02-13  Lillian Angel  <langel@redhat.com>
  
	* java/awt/BorderLayout.java
	(layoutContainer): Rewrote part of this function to 
	properly set the bounds of the components.
	(setBounds): Removed method, not needed.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.clone): Fixed replace call.
	(clone): Removed method.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* java/rmi/server/UnicastRemoteObject.java: Reformatted.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* java/rmi/server/UnicastRemoteObject.java
	(exportObject(Remote)): Forward method call to export(Remote,int).
  
2006-02-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
  
	* include/Makefile.am:
	Swapped Math.h for VMMath.h
	* include/java_lang_Math.h:
	Removed.
	* include/java_lang_VMMath.h:
	New autogenerated header for the new class.
	* java/lang/Math.java:
	(sin(double)): Changed to link to VMMath.
	(cos(double)): Changed to link to VMMath.
	(tan(double)): Changed to link to VMMath.
	(asin(double)): Changed to link to VMMath.
	(acos(double)): Changed to link to VMMath.
	(atan(double)): Changed to link to VMMath.
	(atan2(double)): Changed to link to VMMath.
	(exp(double)): Changed to link to VMMath.
	(log(double)): Changed to link to VMMath.
	(sqrt(double)): Changed to link to VMMath.
	(pow(double,double)): Changed to link to VMMath.
	(IEEEremainder(double,double)): Changed to link to VMMath.
	(ceil(double)): Changed to link to VMMath.
	(floor(double)): Changed to link to VMMath.
	(rint(double)): Changed to link to VMMath.
	* native/jni/java-lang/Makefile.am:
	Replaced java_lang_Math.c with java_lang_VMMath.c
	* native/jni/java-lang/java_lang_Math.c:
	Removed.
	* native/jni/java-lang/java_lang_VMMath.c:
	Renamed from java_lang_Math.c.
	* vm/reference/java/lang/VMMath.java:
	New class.
	(sin(double)): New native method.
	(cos(double)): New native method.
	(tan(double)): New native method.
	(asin(double)): New native method.
	(acos(double)): New native method.
	(atan(double)): New native method.
	(atan2(double)): New native method.
	(exp(double)): New native method.
	(log(double)): New native method.
	(sqrt(double)): New native method.
	(pow(double,double)): New native method.
	(IEEEremainder(double,double)): New native method.
	(ceil(double)): New native method.
	(floor(double)): New native method.
	(rint(double)): New native method.
	
2006-02-13  Lillian Angel  <langel@redhat.com>
  
	* java/awt/Component.java
	(repaint): No need to call isShowing, it is done in the other repaint call.
	(repaint): Likewise.
	(repaint): Likewise.
  
2006-02-13  Lillian Angel  <langel@redhat.com>
  
	* java/awt/Component.java
	(repaint): Reverted last change.
	(repaint): Likewise.
	(repaint): Likewise.

2006-02-13  Lillian Angel  <langel@redhat.com>

	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(handleEvent): Made more efficent by handling paint event and
	setting the clip for the graphics.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(handleEvent): Likewise.
	* java/awt/Component.java
	(repaint): No need to call isShowing, it is done in the other repaint call.
	(repaint): Likewise.
	(repaint): Likewise.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/AbstractDocument.java
	(setParent): Added API docs. Call setParent(null) on children before
	disconnecting this view from the View hierarchy.
  
2006-02-13  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/AbstractDocument.java
	(readUnlock): Don't attempt to unlock when the current threads also
	holds a write lock.
  
2006-02-13  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/plaf/metal/MetalBorders.java
	(ButtonBorder.getBorderInsets(Component)): Return insets directly,
	(ButtonBorder.getBorderInsets(Component, Insets)): Don't check for null
	insets argument,
	(Flush3DBorder.borderInsets): New field,
	(Flush3DBorder.getBorderInsets(Component)): Return insets directly,
	(Flush3DBorder.getBorderInsets(Component, Insets)): Don't check for 
	null insets argument, and populate result from borderInsets,
	(PaletteBorder.borderInsets): New field,
	(PaletteBorder.getBorderInsets(Component)): Return insets directly,
	(PaletteBorder.getBorderInsets(Component, Insets)): Don't check for 
	null insets argument, and populate result from borderInsets,
	(InternalFrameBorder.borderInsets): New field,
	(InternalFrameBorder.getBorderInsets(Component)): Return insets 
	directly,
	(InternalFrameBorder.getBorderInsets(Component, Insets)): Don't check 
	for null insets argument, and populate result from borderInsets,
	(MenuItemBorder.borderInsets): Initialise to correct value.

2006-02-13  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/AsyncBoxView.java: New file.

2006-02-13  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #26166
	* gnu/regexp/RE.java(initialize): Parsing of character class expression
	was moved to a new method parseCharClass.
	(parseCharClass): New method originally in initialize. Added parsing
	of nested character classes.
	(ParseCharClassResult): New inner class used as a return value of
	parseCharClass.
	(getCharExpression),(getNamedProperty): Made static.
	* gnu/regexp/RESyntax.java(RE_NESTED_CHARCLASS): New syntax flag.
	* gnu/regexp/RETokenOneOf.java(addition): New Vector for storing
	nested character classes.
	(RETokenOneOf): New constructor accepting the Vector addition.
	(getMinimumLength), (getMaximumLength): Returns 1 if the token
	stands for only one character.
	(match): Added the processing of the Vector addition.
	(matchN), (matchP): Do not check next token if addition is used.
  
2006-02-12  Olivier Jolly <olivier.jolly@pcedev.com>
  
	* AUTHORS: add self.
  
2006-02-12  Tom Tromey  <tromey@redhat.com>
  
	* gnu/classpath/ServiceProviderLoadingAction.java: Javadoc fix.
	* gnu/classpath/ServiceFactory.java (ServiceIterator): Javadoc fix.
	(securityContext): Likewise.
	(log): Likewise.
  
2006-02-12  Dalibor Topic  <robilad@kaffe.org>
  
	Fixes PR 26218.
  
	* gnu/java/net/protocol/file/Connection.java (unquote):
	Convert Unicode characters outside basic plane to UTF-8,
	rather than throwing an exception.
  
2006-02-12  Tom Tromey  <tromey@redhat.com>
  
	* javax/sound/sampled/LineEvent.java (readObject): New method.
	(writeObject): Likewise.
	(serialVersionUID): New field.
  
2006-02-12  Mark Wielaard  <mark@klomp.org>
  
	* java/beans/PropertyChangeSupport.java (addPropertyChangeListener):
	Silently ignores null listener.
	(addPropertyChangeListener(String, PropertyChangeListener): Likewise.
	(getPropertyChangeListeners): Returns empty PropertyChangeListener
	array for null propertyName.

2006-02-12  Wolfgang Baer  <WBaer@gmx.de>

	* java/rmi/MarshalledObject.java: Added api docs to the class.
	* java/rmi/Remote.java: Added interface api docs.
	* java/rmi/package.html: Added package description.
	* java/rmi/AccessException.java: Minor api doc fixes.
	* java/rmi/NoSuchObjectException.java: Likewise.
	* java/rmi/AlreadyBoundException.java: Likewise.
	* java/rmi/RemoteException.java: Likewise.
	* java/rmi/NotBoundException.java: Likewise.
	* java/rmi/RMISecurityException.java: Likewise.
	* java/rmi/StubNotFoundException.java: Likewise.	

2006-02-12  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (postKeyEvent): Call
	q() to get EventQueue.
	* gnu/java/awt/peer/gtk/GtkGenericPeer.java (q): Remove static field.
	(enableQueue): Remove static method.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (getSystemEventQueueImpl):
	Don't call GtkGenericPeer.enableQueue().

2006-02-12  Wolfgang Baer  <WBaer@gmx.de>

	* java/rmi/MarshalledObject.java: Reformatted.
	* java/rmi/Naming.java: Likewise.	

2006-02-12  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/InputStream.java
	(read(byte[],int,int)): Changed argument validation to prevent
	integer overflow. Remove redundant check.
  
2006-02-12  Jeroen Frijters  <jeroen@frijters.net>
  
	Fixes PR 26220
	* java/io/InputStreamReader.java
	(InputStreamReader(InputStream)): Use SystemProperties.
	(InputStreamReader(InputStream,Charset)): Corrected @since tag.
	Throw NullPointerException if in is null.
	Added maxBytesPerChar initialisation.
	(InputStreamReader(InputStream,CharsetDecoder)): Corrected @since tag.
	Throw NullPointerException if in is null.

2006-02-12  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/key/dh/GnuDHPublicKey.java
	(GnuDHPublicKey(4)): Call constructor with 5 arguments.
	(GnuDHPublicKey): New constructor.
	(getEncoded): Removed.
	(valueOf): Added support for ASN.1 encoding.
	(getEncoded(int)): Likewise.
	(equals): New method.
	* gnu/javax/crypto/key/dh/GnuDHPrivateKey.java
	(GnuDHPrivateKey(4)): Call constructor with 5 arguments.
	(GnuDHPrivateKey(5)): New constructor.
	(getEncoded): Removed.
	(valueOf): Added support for ASN.1 encoding.
	(getEncoded(int)): Likewise.
	(equals): New method.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java
	(PREFERRED_ENCODING_FORMAT): New constant.
	(DEFAULT_ENCODING_FORMAT): Likewise.
	(preferredFormat): New field.
	(setup): Handle preferred encoding format identifier.
	(generate): Call constructors with format identifier.
	* gnu/javax/crypto/key/dh/GnuDHKey.java (defaultFormat): New field.
	(GnuDHKey): Added an int argument.
	(getEncoded): New method.
	(getFormat): New implementation.
	(getEncoded(int)): New abstract method.
	* gnu/javax/crypto/key/dh/DHKeyPairX509Codec.java: New file.
	* gnu/javax/crypto/key/dh/DHKeyPairPKCS8Codec.java: Likewise.
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Added mappings for DH
	key-pair generator and key-factory.
	* gnu/javax/crypto/jce/sig/DHKeyPairGeneratorSpi.java: New file.
	* gnu/javax/crypto/jce/sig/DHKeyFactory.java: Likewise.
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java: Made it public.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java
	(invokeConstructor): New method.
	(getConcreteClass): Likewise.
	(getConcreteCtor): Likewise.
	(invokeValueOf): Likewise.
	(getValueOfMethod): Likewise.
	(engineGeneratePublic): Add support for DH keys.
	(engineGeneratePrivate): Likewise.
	(decodeDHPublicKey(DHPublicKeySpec)): New method.
	(decodeDHPublicKey(byte[])): Likewise.
	(decodeDHPrivateKey(DHPrivateKeySpec)): Likewise.
	(decodeDHPrivateKey(byte[])): Likewise.

2006-02-11  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer):
	Removed field.
	(repaint): Immediately post to queue when tm <= 0, otherwise call
	RepaintTimerTask.schedule().
	(RepaintTimerTask): Make static.
	(RepaintTimerTask.repaintTimer): New static final field.
	(RepaintTimerTask.awtComponent): New field.
	(schedule): New static method.

2006-02-11  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java
	* tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java
	* tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav:
	Rewritten.
	* tools/gnu/classpath/tools/giop/grmic/HashFinder.java: New file.
  
2006-02-11  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/java/security/jce/sig/EncodedKeyFactory.java
	(engineGeneratePublic): Added support for raw key-specifications.
	(engineGeneratePrivate): Likewise.
	(decodeDSSPublicKey): New method.
	(decodeRSAPublicKey): Likewise.
	(decodeDSSPrivateKey): Likewise.
	(decodeRSAPrivateKey): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java
	(encodePrivateKey): Throw InvalidParameterException.
	(decodePublicKey): Likewise.
	(decodePrivateKey): Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java
	(encodePublicKey): Likewise.
	(encodePrivateKey): Likewise.
	(decodePublicKey): Likewise.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java
	(encodePrivateKey): Likewise.
	(decodePublicKey): Likewise.
	(decodePrivateKey): Likewise.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
	(encodePublicKey): Likewise.
	(encodePrivateKey): Likewise.
	(decodePublicKey): Likewise.
  
2006-02-10  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/StyleContext.java
	(registerStaticAttributeKey): New static method.
  
2006-02-10  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.clone): New method.
  
2006-02-10  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/ParagraphView.java
	(findOffsetToCharactersInString): New method.
	(getClosestPositionTo): New method.
	(getPartialSize): New method.
	(getTabBase): New method.
	(adjustRow): New method.
	(breakView): New method.
	(getBreakWeight): New method.
  
2006-02-10  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/GapContent.java
	(updateUndoPositions): New method.
	* javax/swing/text/StringContent.java
	(updateUndoPositions): New method.
  
2006-02-10  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java (GnuRSAPrivateKey(9)):
	Made it public.
	* gnu/java/security/jce/sig/RSAKeyFactory.java: New file.
	* gnu/java/security/jce/sig/DSSKeyFactory.java (engineGeneratePublic):
	Added support for encoded key specifications.
	(engineGeneratePrivate): Likewise.
	(engineGetKeySpec): Likewise.
	(engineTranslateKey): Corrected order of MPIs and use ctors with 5 args.
  
2006-02-10  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/Utilities.java:
	(getTabbedTextOffset): Fixed usage of variable p0.
	(getPositionAbove): Rewritten.
	(getPositionBelow): Rewritten.
  
2006-02-09  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/BoxView.java
	(getAxis): Added @since tag.
	(setAxis): Added @since tag.
	(layoutChanged): Added @since tag.
	(isLayoutValid): Added @since tag.
	(paint): Don't call setSize here. This is done in RootView already.
	(getMaximumSpan): Reimplemented to return the requirements'
	maximum size. Added API docs.
	(getMinimumSpan): New method.
	(layout): Fixed layout order.
	(modelToView): Call layout instead of setSize here.
	(getResizeWeight): New method.
	(getChildAllocation): New method.
	(forwardUpdate): New method.
	(viewToModel): New method.
	(flipEastEndWestEnds): New method.
	* javax/swing/text/CompositeView.java
	(modelToView): Made this method more robust by returning a default
	location if it's not possible to calculate one via the children.
	This default location returns the left or right edge of this
	view.
	(createDefaultLocation): New helper method.
	* javax/swing/text/IconView.java
	(modelToView): Don't throw BadLocationException. This should
	really only be thrown if the position is outside the document
	model, not if it's outside the view's boundary.
  
2006-02-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* tools/Makefile.am: Handle rmi and giop folders separately.
  
2006-02-09  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/SpinnerDateModel.java: Updated API docs all over,
	* javax/swing/SpinnerNumberModel.java: Likewise.
  
2006-02-09  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/SpinnerDateModel.java: Removed tabs,
	* javax/swing/SpinnerNumberModel.java: Likewise.
  
2006-02-09  Anthony Balkissoon  <abalkiss@redhat.com>
  
	* doc/unicode/SpecialCasing-4.0.0.txt: New file.
	* doc/unicode/UnicodeData-4.0.0.txt: New file.
  
2006-02-09  Wolfgang Baer  <WBaer@gmx.de>
  
	Fixes bug #26081
	* gnu/java/net/protocol/http/HTTPURLConnection.java: 
	(isRedirect): Removed, moved to Response.java.
	(connect): If error condition redirect responseSink to errorSink.
	(getInputStream): If error condition throw IOException, for the error
	codes 404 and 410 throw a FileNotFoundException.	
	* gnu/java/net/protocol/http/Response.java (isError): New method.
	(isRedirect): New method, moved from HTTPURLConnection.java.
  
2006-02-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* tools/Makefile.am: Add tools/gnu/classpath/tools/rmi folder.
	* tools/gnu/classpath/tools/giop/GRMIC.txt: Explain it called from RMIC.
	* tools/gnu/classpath/tools/giop/grmic/Generator.java (getResource): 
	Better diagnostic.
	* tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java:
	Rewritten.
	* tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java: Implement
	AbstractMethodGenerator.
	* tools/gnu/classpath/tools/AbstractMethodGenerator.java,
	tools/gnu/classpath/tools/rmi/RMIC.java,
	tools/gnu/classpath/tools/rmi/RMIC.txt,
	tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java,
	tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java,
	tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java,
	tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12.jav,
	tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12Method.jav,
	tools/gnu/classpath/tools/rmi/rmic/templates/Stub_12MethodVoid.jav: 
	New files.
	* NEWS: Corrected entry about the tools.
  
2006-02-09  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Added more to check to prevent assertion errors.
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(handleEvent): Likewise.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(handleEvent): Likewise.
  
2006-02-09  Mark Wielaard  <mark@klomp.org>
  
	* javax/swing/JTable.java (tableChanged): Interpret null event as
	"everything changed".
  
2006-02-09  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/DefaultCaret.java
	(DocumentHandler.removeUpdate): When update policy is
	'on eventqueue', and the update doesn't come from the
	event queue, check if the current dot location is still
	valid.
	(moveDot): Make sure the new dot location is valid.
	(setDot): Set the mark the same as the dot.
  
2006-02-09  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/AbstractDocument.java
	(remove): Perform all operations within a write lock and in the
	correct order.
  
2006-02-09  Mark Wielaard  <mark@klomp.org>
  
	* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
	(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create): Make sure max is
	creater than min, adjusting page_size if necessary.
	(Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setValues): Likewise.
  
2006-02-09  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkPanelPeer.java
	(handleEvent): Added code to handle PaintEvent.UPDATE.
	Sun does not call update(Graphics g) on Panels.
	* gnu/java/awt/peer/gtk/GtkWindowPeer.java
	(handleEvent): New method. Added code to handle PaintEvent.UPDATE.
	Sun does not call update(Graphics g) on Panels.
  
2006-02-09  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/BoxView.java
	(myAxis): Made field private.
	(xLayoutValid): Replaced by layoutValid array.
	(yLayoutValid): Replaced by layoutValid array.
	(layoutValid): New field.
	(spansX): Replaced by spans array.
	(spansY): Replaced by spans array.
	(spans): New field.
	(offsetsX): Replaced by offsets array.
	(offsetsY): Replaced by offsets array.
	(offsets): New field.
	(requirements): New field.
	(BoxView): Initialize new fields.
	(layoutChanged): Rewritten to use the layoutValid array.
	(isLayoutValid): Rewritten to use the layoutValid array.
	(replace): Use the new arrays.
	(getPreferredSpan): Rewritten to call calculateXXXRequirements
	instead of baselineRequirements.
	(baselineRequirements): Rewritten to calculate baseline requirements.
	(baselineLayout): Rewritten to calculate baseline layout.
	(childAllocation): Use new arrays.
	(layout): Rewritten. Only update the layout if necessary.
	(layoutMajorAxis): Directly set layoutValid.
	(layoutMinorAxis): Directly set layoutValid. Use cached size
	requirements.
	(getWidth): Use new span array.
	(getHeight): Likewise.
	(setSize): Rewritten to simply call layout().
	(validateLayout): Removed unneeded method.
	(getSpan): Use new arrays.
	(getOffset): Use new arrays.
	(getAlignment): Use cached requirements if possible.
	(preferenceChanged): Use new arrays.
	* javax/swing/text/FlowView.java
	(FlowStrategy.insertUpdate): Do nothing here.
	(FlowStrategy.removeUpdate): Do nothing here.
	(FlowStrategy.changedUpdate): Do nothing here.
	(FlowStrategy.layoutRow): Rewritten.
	(FlowStrategy.createView): Rewritten.
	(FlowStrategy.adjustRow): New method.
	(LogicalView.getViewIndex): Fixed condition for finding child
	view.
	(layoutDirty): New field indicating the state of the layout.
	(FlowView): Initialize new field.
	(loadChildren): Set parent on logical view so that preferenceChanges
	get propagated upwards.
	(layout): Rewritten to match the specs.
	(insertUpdate): Set layout to dirty.
	(removeUpdate): Set layout to dirty.
	(changedUpdate): Set layout to dirty.
	* javax/swing/text/GlyphView.java
	(getBreakWeight): Rewritten to use the Utilities class. Commented
	out though because that is broken.
	(insertUpdate): Call preferenceChanged on this object instead of
	parent.
	* javax/swing/text/ParagraphView.java
	(Row.loadChildren): Overridden to be a noop to prevent initial
	creation of child views. This is carried out by the flow layout.
	* javax/swing/text/View.java
	(getPreferredSpan): Added API docs.
	(getResizeWeight): Added API docs.
	(getMaximumSpan): Added API docs. Rewritten to only have one exit
	point.
	(getMinimumSpan): Added API docs. Rewritten to return 0 when
	resizable instead of Integer.MAX_VALUE.
	(getAlignment): Added API docs.
	(replace): Added API docs.
	(forwardUpdate): Rewritten to only notify child views that need to
	be notified.
  
2006-02-09  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.paint): Call setSize() before painting the view.
  
2006-02-09  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	Fixes bug #26112
	* gnu/regexp/RE.java(REG_REPLACE_USE_BACKSLASHESCAPE): New execution
	flag which enables backslash escape in a replacement.
	(getReplacement): New public static method. 
	(substituteImpl),(substituteAllImpl): Use getReplacement.
	* gnu/regexp/REMatch.java(substituteInto): Replace $n even if n>=10.
	* java/util/regex/Matcher.java(appendReplacement)
	Use RE#getReplacement.
	(replaceFirst),(replaceAll): Use RE.REG_REPLACE_USE_BACKSLASHESCAPE.

2006-02-09  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: New file.
	* gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java
	(PREFERRED_ENCODING_FORMAT): New constant.
	(DEFAULT_ENCODING_FORMAT): Likewise.
	(preferredFormat): New field.
	(setup): Add support for preferred encoding format.
	(generate): Call key constructors with explicit format identifier.
	* gnu/java/security/key/rsa/GnuRSAPublicKey.java (GnuRSAPublicKey(2)): 
	Call constructor with 3 arguments..
	(GnuRSAPublicKey(3)): New constructor.
	(valueOf): Added support for ASN.1 format.
	(getEncoded): Likewise.
	* gnu/java/security/key/rsa/GnuRSAPrivateKey.java (GnuRSAPrivateKey(4)):
	Call constructor with 5 arguments.
	(GnuRSAPrivateKey(5)): New constructor.
	(GnuRSAPrivateKey(9)): New constructor.
	(valueOf): Added support for ASN.1 format.
	(getEncoded): Likewise.
	* gnu/java/security/key/rsa/GnuRSAKey.java (defaultFormat): New field.
	(GnuRSAKey): Modified constructor.
	(getFormat): Return preferred format identifier.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java
	(decodePrivateKey): Fixed documentation.
	Check Version field.
	* gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.java
	(initialize(int,SecureRandom)): Set ASN.1 as the preferred encoding
	format.
	(initialize(AlgorithmParameterSpec,SecureRandom)): Likewise.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java
	(engineGeneratePublic): Added support for RSA.
	(engineGeneratePrivate): Likewise.

2006-02-09  Wolfgang Baer  <WBaer@gmx.de>

	* java/net/URLConnection.java:
	(setAllowUserInteraction): Throw IllegalStateException if connected.
	(getRequestProperty): Document return value if key is null.
	* gnu/java/net/protocol/http/HTTPURLConnection.java:
	(getRequestProperty): Return null if key is null.
	(getRequestProperties): Throw IllegalStateException if connected.
	(setRequestProperty): Call super method for exception tests.
	(addRequestProperty): Likewise.
  
2006-02-09  Wolfgang Baer  <WBaer@gmx.de>
  
	* gnu/java/net/protocol/http/Request.java:
	(Request): Remove initialization of removed field.
	(requestBodyNegotiationThreshold): Removed now unused field.
	(setRequestBodyNegotiationThreshold): Remove now unused method.
	(dispatch): Do not use 'Expect 100-continue' header if content-length
	is over a treshold. If user specified 'Expect 100-continue' still
	initialize the expectingContinue variable.

2006-02-08  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/SpinnerNumberModel.java
	(SpinnerNumberModel(Number, Comparable, Comparable, Number): Allow 
	maximum and minimum to take null values,
	(setValue): Only fire ChangeEvent if new value is different to old 
	value,
	(setMinimum): Fixed test for updating value,
	(setMaximum): Likewise,
	(setStepSize): Likewise.
  
2006-02-08  Tom Tromey  <tromey@redhat.com>
  
	* tools/.cvsignore: Added Makefile.in.
  
2006-02-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* java/rmi/server/RemoteRef.java,
	java/rmi/server/RemoteStub.java: Commented.
  
2006-02-08  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/SpinnerDateModel.java
	(SpinnerDateModel(Date, Comparable, Comparable, int)): Added argument
	checks,
	(getPreviousValue): Check result against start, not end,
	(setValue): Check that value actually changes before firing 
	ChangeEvent.

2006-02-08  Lillian Angel  <langel@redhat.com>

	* java/awt/Choice.java
	(select): Fixed up code, added some checks to prevent errors.
	(dispatchEventImpl): Removed. This function is not needed. It 
	causes several assertion errors.
  
2006-02-08  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/PlainView.java
	(drawLine): Call drawUnselectedText() with end offset - 1 to avoid
	drawing unnecessary characters.
  
2006-02-08  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Fixed check to determine if height or
	width is less than 1.
  
2006-02-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	*tools/Makefile.am (ALL_TOOLS_FILES): Add $(TOOLS_HELPS).
  
2006-02-08  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* examples/gnu/classpath/examples/CORBA/swing/x5/_GameManagerImpl_Tie.java,
	examples/gnu/classpath/examples/CORBA/swing/x5/_PlayerImpl_Tie.java:
	Documenting the code generator.
	* gnu/CORBA/IOR.java (toStringFormatted, 
	CodeSet_component.toStringFormatted): New methods.
	* tools/Makefile.am (TOOLS_JAVA_FILES, READMES): Rewritten.
	* tools/gnu/classpath/tools/giop/README: Rewritten.
	* tools/gnu/classpath/tools/giop/GRMIC.java (main): Rewritten. 
	(printHelpAndExit): Removed.
	*tools/gnu/classpath/tools/giop/IorParser.java,
	tools/gnu/classpath/tools/giop/IorParser.txt,
	tools/gnu/classpath/tools/giop/NameService.java,
	tools/gnu/classpath/tools/giop/NamingService.txt,
	tools/gnu/classpath/tools/HelpPrinter.java: New files.
	NEWS: Added note about GIOP tools.

2006-02-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* .classpath: New source patch (tools).
	* Makefile.am (SUBDIRS, DIST_SUBDIRS): added "tools".
	* configure.ac (AC_CONFIG_FILES): added tools/Makefile
	* tools/gnu/classpath/tools/Makefile.am,
	tools/gnu/classpath/tools/giop/GRMIC.java
	tools/gnu/classpath/tools/giop/GRMIC.txt,
	tools/gnu/classpath/tools/giop/README,
	tools/gnu/classpath/tools/giop/grmic/CompilationError.java,
	tools/gnu/classpath/tools/giop/grmic/Generator.java,
	tools/gnu/classpath/tools/giop/grmic/GiopIo.java,
	tools/gnu/classpath/tools/giop/grmic/GiopRmicCompiler.java,
	tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java,
	tools/gnu/classpath/tools/giop/grmic/templates/ImplTie.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/Stub.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/StubMethod.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/StubMethodVoid.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/Tie.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethod.jav,
	tools/gnu/classpath/tools/giop/grmic/templates/TieMethodVoid.jav: New files.
  
2006-02-07  David Gilbert  <david.gilbert@object-refinery.com>
  
	* java/awt/BasicStroke.java: Updated API docs all over,
	* java/awt/doc-files/capjoin.png: New file.
  
2006-02-07  Lillian Angel  <langel@redhat.com>
  
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java
	(handleEvent): Added check. Should not paint or update the 
	component if it's width and height are both 0.	
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/AbstractDocument.java
	(insertString): Enclose locking/unlocking in try-finally block
	and also keep locked while notifying the listeners.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/GlyphView.java
	(GlyphView): Initialize startOffset and endOffset with -1 (indicating
	element boundary).
	(getStartOffset): Return element boundary if startOffset < 0.
	(getEndOffset): Return element boundary if endOffset < 0.
	(createFragment): Set startOffset and endOffset fields of fragment
	if one of p0 or p1 is not at the element boundary.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/CellRendererPane.java
	(paintComponent): Enclosed painting in try finally to properly
	clean up even when throwing an exception.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/UIManager.java
	(listeners): Made this an instance of
	java.beans.PropertyChangeSupport instead of the obsoleted
	SwingPropertyChangeSupport.

2006-02-07  Robert Schuster  <robertschuster@fsfe.org>

	* javax/swing/text/DefaultEditorToolkit.java: Changed behavior
	of actions "delete-next" and "delete-previous", added new TextAction
	implementations for "selection-begin", "selection-begin-line",
	"selection-end" and "selection-end-line".
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(paint): Acquire read lock on the document before calling
	paintSafely.
	(paintSafely): Added comment about what this method does.
	(paintBackground): Implemented to actually paint the background.
	(update): Overridden to _not_ paint the background. This is done
	in paintBackground in this UI.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/View.java
	(forwardUpdate): Don't notify newly added child views as specified.
  
2006-02-07  Robert Schuster  <robertschuster@fsfe.org>
  
	* gnu/java/beans/decoder/DefaultExceptionListener.java: Removed.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.insert): Only register change when the element
	actually changed.
  
2006-02-07  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/java/security/key/KeyPairCodecFactory.java (getEncodingName): New
	method.
	(getEncodingShortName): Likewise.
	* gnu/java/security/key/IKeyPairCodec.java (X509_FORMAT): New constant.
	(PKCS8_FORMAT): Likewise.
	(ASN1_FORMAT): Likewise.
	* gnu/java/security/key/dss/DSSPublicKey.java (DSSPublicKey(4)): Call
	constructor with 5 arguments.
	(DSSPublicKey(5)): New constructor.
	(valueOf): Handle ASN.1 encoding.
	(getEncoded): Likewise.
	* gnu/java/security/key/dss/DSSPrivateKey.java (DSSPrivateKey(4)): Call
	constructor with 5 arguments.
	(DSSPrivateKey(5)): New constructor.
	(valueOf): Handle ASN.1 encoding.
	(getEncoded): Likewise.
	* gnu/java/security/key/dss/DSSKeyPairX509Codec.java: New file.
	* gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java
	(PREFERRED_ENCODING_FORMAT): New constant.
	(DEFAULT_ENCODING_FORMAT): Likewise.
	(preferredFormat): New field.
	(setup): Handle preferred format ID.
	(generate): Use new ctors with 5 arguments.
	* gnu/java/security/key/dss/DSSKey.java (DSSKey): Now accepts a format
	ID as an additional argument.
	(defaultFormat): new field.
	(getFormat): Returns the preferred format as a short string.
	* gnu/java/security/jce/sig/DSSKeyFactory.java: New file.
	* gnu/java/security/jce/sig/EncodedKeyFactory.java (engineGetKeySpec):
	Likewise
	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java
	(initialize(AlgorithmParameterSpec)): Set ASN.1 as the preferred
	encoding format.
	(initialize(int,boolean,SecureRandom)): Likewise.
	* gnu/java/security/der/DERWriter.java (writeBitString): Use
	writeLength() instead of write().
	return buf.length + 1 instead of buf.length.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(RootView.preferenceChange): Changed view parameter to view so
	that it doesn't hide a field of that class.
	(RootView.getViewCount): Rewritten to clean up ECJ warning.
	(RootView.modelToView): Removed unnecessary cast from View to View.
	(PropertyChangeHandler): Made inner class private.
	(updateHandler): Made field private.
	(getVisibleEditorRect): Removed unneeded local variable that
	shadowed a field with the same name and purpose.
  
2006-02-07  Robert Schuster  <robertschuster@fsfe.org>
  
	* javax/swing/text/JTextComponent.java:
	(getSelectedText): Calculate offset and use that as
	second argument.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JTextPane.java
	(setCharacterAttributes): Replace input attributes when
	replace==true.
  
2006-02-07  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Component.java
	(firePropertyChange(String,byte,byte)): Made method public.
	(firePropertyChange(String,char,char)): Made method public.
	(firePropertyChange(String,short,short)): Made method public.
	(firePropertyChange(String,long,long)): Made method public.
	(firePropertyChange(String,float,float)): Made method public.
	(firePropertyChange(String,double,double)): Made method public.
  
2006-02-06  Tom Tromey  <tromey@redhat.com>
  
	* gnu/CORBA/NamingService/NamingServiceTransient.java (main): Use
	2006.
	* gnu/java/rmi/registry/RegistryImpl.java (version): Use 2006.
  
2006-02-06  Anthony Green  <green@redhat.com>
  
	* gnu/xml/aelfred2/XmlParser.java: Add missing break;.
  
2006-02-07  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* .settings/org.eclipse.jdt.core.prefs:
	Force a line split on extends and implements.
	Force a white-space after unary operators.
	Don't force a new-line after @params.
	Add new-line at end-of-file.
	* scripts/eclipse-gnu.xml: Export version of the above named GNU.
  
2006-02-07  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/java/security/provider/GnuDSAPublicKey.java (getEncoded): Use
	Registry constant.
	* gnu/java/security/provider/GnuDSAPrivateKey.java (getEncoded):
	Likewise.
	* gnu/java/security/provider/GnuRSAPrivateKey.java (getEncoded):
	Likewise.
	* gnu/java/security/provider/GnuRSAPublicKey.java (getEncoded):
	Likewise.
	* gnu/java/security/provider/EncodedKeyFactory.java
	(ID_DSA): Redefined in terms of Registry constant.
	(ID_DSA): Redefined in terms of Registry constant.
	(ID_DH): Redefined in terms of Registry constant.
	* gnu/java/security/Registry.java (X509_ENCODING): New constant.
	(PKCS8_ENCODING): Likewise.
	(ASN1_ENCODING): Likewise.
	(RAW_ENCODING_SHORT_NAME): Likewise.
	(X509_ENCODING_SORT_NAME): Likewise.
	(PKCS8_ENCODING_SHORT_NAME): Likewise.
	(ASN1_ENCODING_SHORT_NAME): Likewise.
	(X509_ENCODING_ID): Likewise.
	(PKCS8_ENCODING_ID): Likewise.
	(ASN1_ENCODING_ID): Likewise.
	(DSA_OID_STRING): Likewise.
	(RSA_OID_STRING): Likewise.
	(DH_OID_STRING): Likewise.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/GlyphView.java:
	(DefaultGlyphPainter.paint): Store/restore Graphics color setting.
	Only fill background if there is a background set on the view.
	Call Utilities.drawTabbedText with the baseline height, rather than
	the upper left corner of the view rectangle.
	(getBackground): Return null if no background is set.
	* javax/swing/text/GlyphView.java:
	(setPropertiesFromAttributes): Use null for background when no
	background is set. StyleConstants.getBackground() doesn't work
	for this, because it returns Color.BLACK in that case.
  
2006-02-06  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Container.java
	(changeSupport): Removed duplicate (from Component) field.
	(addPropertyChangeListener): Call super.
  
2006-02-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	* java/util/regex/Matcher.java(matches):
	set RE.REG_TRY_ENTIRE_MATCH as an execution flag of getMatch.
  
2006-02-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #25812
 	* gnu/regexp/CharIndexed.java(lookBehind),(length): New method.
	* gnu/regexp/CharIndexedCharArray.java
	(lookBehind),(length): Implemented.
	* gnu/regexp/CharIndexedInputStream.java: Likewise.
	* gnu/regexp/CharIndexedString.java: Likewise.
	* gnu/regexp/CharIndexedStringBuffer.java: Likewise.
	* gnu/regexp/REToken.java(getMaximumLength): New method.
	* gnu/regexp/RE.java(internal constructor RE): Added new argument
	maxLength.
	(initialize): Parse (?<=X), (?<!X), (?>X).
	(getMaximumLength): Implemented.
	* gnu/regexp/RETokenAny.java(getMaximumLength): Implemented.
	* gnu/regexp/RETokenChar.java: Likewise.
	* gnu/regexp/RETokenEnd.java: Likewise.
	* gnu/regexp/RETokenEndSub.java: Likewise.
	* gnu/regexp/RETokenLookAhead.java: Likewise.
	* gnu/regexp/RETokenNamedProperty.java: Likewise.
	* gnu/regexp/RETokenOneOf.java: Likewise.
	* gnu/regexp/RETokenPOSIX.java: Likewise.
	* gnu/regexp/RETokenRange.java: Likewise.
	* gnu/regexp/RETokenRepeated.java: Likewise.
	* gnu/regexp/RETokenStart.java: Likewise.
	* gnu/regexp/RETokenWordBoundary.java: Likewise.
	* gnu/regexp/RETokenIndependent.java: New file.
	* gnu/regexp/RETokenLookBehind.java: New file.
  
2006-02-06  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Component.java
	(firePropertyChange(String,byte,byte)): New method.
	(firePropertyChange(String,char,char)): New method.
	(firePropertyChange(String,short,short)): New method.
	(firePropertyChange(String,long,long)): New method.
	(firePropertyChange(String,float,float)): New method.
	(firePropertyChange(String,double,double)): New method.

2006-02-06  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JComponent.java
	(AccessibleJComponent.changeSupport): Changed to be a
	java.beans.PropertyChangeSupport rather than
	SwingPropertyChangeSupport.
	(AccessibleJComponent.AccessibleJComponent()): Change initialization
	of above field.
	(changeSupport): Removed unneeded field.
	(removePropertyChangeListener): Removed unneeded methods.
	(addPropertyChangeListener): Removed unneeded methods.
	(getPropertyChangeListeners): Removed unneeded methods.
	(firePropertyChange(String,boolean,boolean)): Changed to simply
	call super. Added specnote.
	(firePropertyChange(String,char,char)): Changed to simply
	call super. Added specnote.
	(firePropertyChange(String,int,int)): Changed to simply
	call super. Added specnote.
	(firePropertyChange(String,byte,byte)): Removed.
	(firePropertyChange(String,Object,Object)): Removed.
	(firePropertyChange(String,double,double)): Removed.
	(firePropertyChange(String,float,float)): Removed.
	(firePropertyChange(String,long,long)): Removed.
	(firePropertyChange(String,short,short)): Removed.
  
2006-02-06  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/event/SwingPropertyChangeSupport.java
	(listeners): Removed field.
	(propertyListeners): Removed field.
	(source): Removed field.
	(SwingPropertyChangeSupport()): Removed initialization of removed
	fields.
	(addPropertyChangeListener): Removed methods.
	(removePropertyChangeListener): Removed methods.
	(getPropertyChangeListeners): Removed methods.
	(firePropertyChange): Removed methods.
	(hasListeners): Removed methods.
  
2006-02-06  Jeroen Frijters  <jeroen@frijters.net>
  
	Fixes PR 25313
	* java/net/InetAddress.java
	(readResolve): Implemented.
  
2006-02-06  Jeroen Frijters  <jeroen@frijters.net>
  
	Fixes PR 26121
	* java/io/ObjectInputStream.java
	(readNextBlock()): Handle TC_RESET.
  
2006-02-06  Wolfgang Baer  <WBaer@gmx.de>
	
	* javax/print/attribute/standard/Compression.java,
	* javax/print/attribute/standard/Finishings.java, 
	* javax/print/attribute/standard/JobMediaSheets.java,
	* javax/print/attribute/standard/JobSheets.java,
	* javax/print/attribute/standard/JobState.java,
	* javax/print/attribute/standard/JobStateReason.java,
	* javax/print/attribute/standard/ReferenceUriSchemesSupported.java,
	* javax/print/attribute/standard/PrintQuality.java,
	* javax/print/attribute/standard/Media.java,
	* javax/print/attribute/standard/MultipleDocumentHandling.java,
	* javax/print/attribute/standard/PrinterStateReason.java,
	* javax/print/attribute/standard/PDLOverrideSupported.java: 
	(getName): Make method final.
	(getCategory): Likewise.
	* javax/print/attribute/standard/MediaSize.java: 
	(getName): Make method final.
	(getCategory): Likewise.
	(ISO): Added private default constructor.
	(NA): Likewise.
	(JIS): Likewise.
	(Other): Likewise.
	(Engineering): Likewise.

2006-02-06  Wolfgang Baer  <WBaer@gmx.de>
	
	* native/jni/java-net/javanet.c (_javanet_connect):
	Throw ConnectException instead of IOException if connection failed.
	* native/jni/java-net/javanet.h:
	Add a define for java.net.ConnectException
  
2006-02-05  Mark Wielaard  <mark@klomp.org>
  
	Fixes bug #26101
	reported by Egon Willighagen <egon.willighagen@gmail.com>
	* javax/swing/DefaultListCellRenderer.java
	(getListCellRendererComponent): Turn null value into empty string.
  
2006-02-04  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	* gnu/regexp/RETokenNamedProperty.java(getHandler): Check for
	a Unicode block if the name starts with "In".
	(UnicodeBlockHandler): New inner class.
  
2006-02-04  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Container.java
	(getComponentZOrder): New method.
	(setComponentZOrder): New method.
	* javax/swing/JLayeredPane.java
	(setPosition): Reimplemented to use setComponentZOrder().
	(getIndexOf): Reimplemented to use getComponentZOrder().
	(addImpl): Pass layerContraint to super call. Important for possibly
	installed layout managers.
	(swapComponents): Remove unneeded method.

2006-02-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/java/security/jce/sig/DSSKeyPairGeneratorSpi.java: Implement
	DSAKeyPairGenerator.
	(initialize(int,SecureRandom)): Call initialize(keysize, false, random).
	(initialize(AlgorithmParameterSpec,SecureRandom)): More explicit error
	message.
	Surround call to adaptee in a try/catch.
	(initialize((DSAParams,SecureRandom)): New method.
	(initialize(int,boolean,SecureRandom)): New method.
	* gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java: Extends
	KeyPairGenerator rather than KeyPairGeneratorSpi.
	(KeyPairGeneratorAdapter): Call super with algorithm name.

2006-02-04  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/sasl/srp/SRPServer.java (prng): New field.
	(getDefaultPRNG): New method.
	(parseO): Use method above.
	* gnu/javax/crypto/sasl/srp/SRPClient.java (prng): New field.
	(getDefaultPRNG): New method.
	(createO): Use method above.
	* gnu/javax/crypto/sasl/srp/KDF.java (prng): New class field.
	(nextByte): Use above field.
	* gnu/javax/crypto/pad/PKCS1_V1_5.java (selfTest): Use PRNG instance.
	* gnu/java/security/sig/rsa/RSA.java: New class field.
	(newR): Use above field
	* gnu/java/security/sig/rsa/EME_PKCS1_V1_5.java (prng): New field.
	(encode): Use field.above.
	* gnu/java/security/key/dss/FIPS186.java (prng): New field.
	(getDefaultPRNG): new method.
	(nextRandomBytes): Use above method.
	* gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise.
	* gnu/java/security/sig/BaseSignature.java: Likewise.
	* gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/dh/RFC2631.java: Likewise.
	* gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: Likewise.
	* gnu/javax/crypto/key/BaseKeyAgreementParty.java: Likewise.
	* gnu/java/security/key/dss/DSSKeyPairGenerator.java (prng): New field.
	(getDefaultPRNG): new method.
	(nextRandomBytes): Use above method.
	(STRICT_DEFAULTS): new class field.
	(USE_DEFAULTS): more documentation to clarify behavior.
	(setup): amended to handle new attribute.
	* gnu/java/security/util/PRNG.java: New file.
  
2006-02-03  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/plaf/basic/BasicColorChooserUI.java:
	chooser field should be protected, not package-private.	
  
2006-02-03  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/DefaultStyledDocument.java
	(changeUpdate): Cleaned up code.
	(split): Likewise.
	(insertUpdate): Set offset to be equal to pos after
	insertContentTag call.
	(insertContentTag): If paragraph has no children, should use
	replace instead of Edit.
	(insertFracture): Moved around code to prevent any exception. Also,
	left side of tree should not be recreated if it has already been 
	edited. In that case, we should only be creating a new right branch
	when fracturing.
	(getEditForParagraphAndIndex): No need to check index. We should
	use the same edit for each paragraph.
  
2006-02-03  Mark Wielaard  <mark@klomp.org>
  
	* javax/swing/event/SwingPropertyChangeSupport.java
	(propertyListeners): Change type to HashMap.
	(SwingPropertyChangeSupport): Allocate HashMap.
  
2006-02-03  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* java/security/KeyPairGenerator.java (getInstance): Test for
	instanceof KeyPairGenerator before KeyPairGeneratorSpi.
  
2006-02-02  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/RepaintManager.java
	Made fields private.
	(RepaintWorker.run): Enclosed work stuff in try finally block in
	order to clean up correctly if invalidation or painting fails,
	otherwise we would get no more RepaintWorkers onto the EventQueue.
	Also, now the RepaintWorker is marked 'dead' only after it has
	finished its work, avoid more than one RepaintWorker on the queue.
	(ComponentComparator.compareTo): Compare dirty rectangle sizes
	instead of hierarchy depths.
	(workDirtyComponents): Removed unused field.
	(repaintOrder): Removed unused field.
	(workRepaintOrder): Removed unused field.
	(workInvalidComponents): Removed unused field.
	(RepaintManager()): Removed initialization of removed fields.
	(addInvalidComponent): Fine tuned synchronization.
	(removeInvalidComponent): Fine tune synchronization.
	(addDirtyRegion): Short circuit invalid dirty regions. Fine tuned
	synchronization. Don't manager repaintOrder here.
	(insertRepaintOrder): Removed method.
	(markCompletelyClean): Fine tuned synchronization.
	(validateInvalidComponents): Dont use a working copy of the
	invalidComponents list, instead fine tuned synchronization on this
	list. Also, don't search validateRoot, this is already done in
	addInvalidComponent().
	(paintDirtyRegions): Compute repaint order here, based on size of
	damaged regions. Fine tuned synchronization. Avoid use of working
	copies of dirtyComponent.
  
2006-02-02  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): JoinNextDirection should push the 
	'next' paragraph on the stack.
  
2006-02-02  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Rewrote code for Originate. This prevents
	leaves being created multiple times. If it is on the last 
	ElementSpec, the leaves need to be created right then; 
	otherwise, only a branch is created.
	(insertContentTag): Rewrote to add new leaf directly if
	this is a branch with no children. Otherwise, it
	recreates the remainder of the tree as before.
  
2006-02-02  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	* gnu/regexp/REMatch.java(REMatchList): New inner utility class
	for making a list of REMatch instances.
	* gnu/regexp/RETokenOneOf.java(match): Rewritten using REMatchList.
	* gnu/regexp/RETokenRepeated.java(findDoables): New method.
	(match): Rewritten using REMatchList.
	(matchRest): Rewritten using REMatchList.
  
2006-02-02  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* examples/gnu/classpath/examples/CORBA/swing/x5/PlayingDesk.java 
	(friendsMove):	Call repaint() only after endOfGame is assigned.
  
2006-02-02  Mark Wielaard  <mark@klomp.org>
  
	Fixes bug #25769 reported by Artemus Harper <subanark@gmail.com>
	* java/util/AbstractCollection.java (toString): Only use Iterator,
	check whether collection contains itself.
  
2006-02-01  Casey Marshall  <csm@gnu.org>
  
	Partial fix for PR classpath/25143.
	* javax/crypto/EncryptedPrivateKeyInfo.java (algName): new field.
	(<init>): fill in `algName,' derive `algOid' from `algName.'
	(getOid): new method.
	(encode): embed NULL value for parameters if `params' is `null.'
  
2006-02-01  Casey Marshall  <csm@gnu.org>
  
	Tag check and OTHER_NAME fixes suggested by Rafael Teixeira
	<monoman@gmail.com>.	
	* gnu/java/security/x509/ext/GeneralNames.java (<init>): fix tag
	check; fix OTHER_NAME parsing; fix DIRECTORY_NAME parsing.
  
2006-02-01  Casey Marshall  <csm@gnu.org>
  
	toString fix suggested by Rafael Teixeira <monoman@gmail.com>.
	* gnu/java/security/der/DERValue.java
	(getLength, getEncoded, getEncodedLength): throw an exception,
	don't initialize `encoded' to a bogus value.
	(toString): return a more helpful string.

	Partial fix for PR classpath/25144.
	* gnu/java/security/der/DERWriter.java (write): if the value is
	the pseudo-value used for CONSTRUCTED, write the encoded value
	directly.
	
2006-02-01  Tom Tromey  <tromey@redhat.com>
  
	* java/security/Security.java (loadProviders): Use system class
	loader.
  
2006-02-01  Mark Wielaard  <mark@klomp.org>
  
	* gnu/regexp/RE.java (getRETokenNamedProperty): Chain exception.
	* gnu/regexp/RETokenNamedProperty.java (LETTER, MARK, SEPARATOR,
	SYMBOL, NUMBER, PUNCTUATION, OTHER): New final byte[] fields.
	(getHandler): Check for grouped properties L, M, Z, S, N, P or C.
	(UnicodeCategoriesHandler): New private static class.
  	
2006-02-01  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java:
	Removed unneeded fields.
	(insertUpdate): Removed field initialization.
	(insertContentTag): Rewrote part of function. Still
	not complete.
  
2006-02-01  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insertParagraph): Cleaned up code.
	(insertFirstContentTag): Fixed call to recreateLeaves.
	(insertContentTag): Added check to code to determine where
	content should be inserted with respect to next element.
	(createFracture): Removed check, recreateLeaves is called in 
	other places when needed.
	(recreateLeaves): Added new parameter for paragraph instead
	of checking the stack. Removed editing for newBranch, replaced
	with a replace call.

2006-02-01  Anthony Balkissoon  <abalkiss@redhat.com>

	* doc/unicode/Blocks-4.0.0.txt: New file.
	* java/lang/Character.java: Regenerated inner class UnicodeBlock from 
	scripts/unicode-blocks.pl and doc/unicode/Blocks-4.0.0.txt.
	* scripts/unicode-blocks.pl: Copied this over from the generics branch
	but replaced some 1.5-only features (such as enum).
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/PasswordView.java
	(drawSelectedText): Use drawEchoCharacter() method to draw echo
	character.
	(drawUnselectedText): Use drawEchoCharacter() method to draw echo
	character.
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JTextField.java
	(getPreferredSize): Also include textfield's insets in width
	calculation.
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(getPreferredSize): Include the textcomponent's insets in
	preferredSize.
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/table/DefaultTableCellRenderer.java
	(getTableCellRendererComponent): Moved setting of the value into
	setValue(). Removed (bogus) special handling of JTextField values.
	(setValue): Made ?: statement more clear by rewriting it
	with if .. else.
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JLayeredPane.java
	(insertIndexForLayer): Fixed algorithm to correctly determine
	inser index for positions >= 0.
	(addImpl): Fixed API docs for the index parameter.
  
2006-01-31  Mark Wielaard  <mark@klomp.org>
  
	* java/net/URI.java (getURIGroup): Check for null to see whether
	group actually exists.
  
2006-01-31  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(changeUpdate): Fixed calls to split to incorporate 
	new parameter.
	(insertParagraph): Likewise. Uses 0 as editIndex
	because inserting into a new paragraph.
	(insertContentTag): Fixed check to use 
	recreateLeaves. Added a FIXME comment.
	(split): Added a new parameter for edits.
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicRootPaneUI.java
	(installDefaults): Don't install a background color here.
  
2006-01-31  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insert): Removed comment.
	(insertUpdate): Added comment.
	(recreateLeaves): Removed call to push newBranch onto the
	stack. This does not need to be done here.
  
2006-01-31  Chris Burdess  <dog@gnu.org>
  
	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/UnicodeReader.java,
	  gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLParser.java: Fix case where resolved InputSource
	  only resolved the system ID not the stream. Make some utility methods
	  public and static for use by other private XML APIs.
	* java/lang/ClassNotFoundException.java: Ensure that initCause can be
	  called without throwing IllegalStateException.
	* java/util/logging/SimpleFormatter.java: Write thrown exception if
	  provided.

2006-01-31  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22873
	* gnu/regexp/REMatch(toString(int)): Throw IndexOutOfBoundsException
	for an invalid index and return null for a skipped group.

2006-01-31  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #26002
	* gnu/regexp/gnu/regexp/RE.java(initialize): Parse /\p{prop}/.
	(NamedProperty): New inner class.
	(getNamedProperty): New method.
	(getRETokenNamedProperty): New Method.
	* gnu/regexp/RESyntax.java(RE_NAMED_PROPERTY): New syntax falg.
	* gnu/regexp/RETokenNamedProperty.java: New file.

2006-01-31  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/PlainView.java
	(paint): Call drawLine with baseline coordinates.
	(drawLine): Documented and indented this method.
	(drawUnselecetedText): Documented and indented this method.
	* javax/swing/plaf/text/Utilites.java
	(drawTabbedText): The coordinates denote the baseline of the text
	not the upper left corner.
  
2006-01-31  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTextUI.java
	(createKeymap): Don't store KeyBindings[] as focusInputMap in
	UIManager. Added FIXME regarding the implementation of this method.
  
2006-01-30  David Gilbert  <david.gilbert@object-refinery.com>
  
	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(ButtonDemo): Move content initialisation to new method,
	(initFrameContent): New method,
	(main): Call initFrameContent(),
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/SliderDemo.java: Likewise,
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java: Likewise.
  
2006-01-30  David Gilbert  <david.gilbert@object-refinery.com>
  
	* examples/gnu/classpath/examples/swing/Demo.java
	(Demo): Set frame size,
	(mkButtonBar): Removed stacked sub-panels.
  
2006-01-30  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java:
	Added new fields.
	(insert): Initialized fields. Removed call to addEdit, 
	and created ElementEdit instead.
	(insertUpdate): Added check for fracturing. If the
	fracturing was not successful, we should push the
	last element back on the stack.
	(insertParagraph): Fixed call to getEditForParagraphAndIndex.
	Also, changed replace calls to use Edit.
	(insertFirstContentTag): Removed unneeded check and fixed call
	to recreateLeaves.
	(insertContent): Fixed check to use new fields. Added code in
	to check if leaves overlap.
	(createFracture): Fixed call to recreateLeaves.
	(recreateLeaves): Fixed code and cleaned it up a bit.
	(insertFracture): Set fracNotCreated field.
	(addEdit): Removed, this method is not needed.
  
2006-01-30  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JRootPane.java
	(RootLayout.prefSize): Removed caching for preferredSize.
	(RootLayout.invalidateLayout): Likewise.
	(RootLayout.preferredLayoutSize): Likewise.	
  
2006-01-30  Roman Kennke  <kennke@aicas.com>
  
	PR classpath/26035
	* javax/swing/JFrame.java
	(frameInit): Handle the defaultLookAndFeelDecorated flag.
	* javax/swing/plaf/metal/MetalRootPaneUI.java
	(MetalFrameBorder): New inner class, provides the border for
	top level containers with L&F decorations.
	(MetalTitlePane): New inner class, provides the title pane for
	top level containers with L&F decorations.
	(MetalRootLayout): New inner class. Used to layout the root pane
	when L&F window decorations are enabled.
	(installUI): New method. Handles window decorations.
	(uninstallUI): New method. Handles window decorations.
	(propertyChange): Handles window decorations.
	(installWindowDecorations): New method. Handles window
	decorations.
	(uninstallWindowDecorations): New method. Handles window
	decorations.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getSupportsWindowDecorations): Overridden to return true.

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JProgressBar.java (JProgressBar(int)): Document
	IllegalArgumentException when orientation is illegal.
	(JProgressBar(int, int, int)): Likewise and throw exception.
	(setOrientation): Likewise.
  
2006-01-30  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/ViewportLayout.java
	(minimumLayoutSize): Rewritten to unconditionally return (4,4).
  
2006-01-30  Mark Wielaard  <mark@klomp.org>
  
	* javax/swing/JProgressBar.java (orientation): Always set by
	constructor.
	(JProgressBar(int)): Document default on 'illegal' value.
	(JProgressBar(int, int, int)): Likewise and set orientation to
	HORIZONTAL when 'illegal'.
	(setOrientation): Likewise.
  
2006-01-30  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicListUI.java
	(ListDataHandler.contentsChanged): Update the
	updateLayoutStateNeeded flag.
	(ListDataHandler.intervalAdded): Update the
	updateLayoutStateNeeded flag.
	(ListDataHandler.intervalRemoved): Update the
	updateLayoutStateNeeded flag.
	(PropertyChangeHandler.propertyChange): Correctly update the
	listeners on new list model.
	(maybeUpdateLayoutState): Don't consider the validation state
	of the list.
  
2006-01-30  Mark Wielaard  <mark@klomp.org>
  
	* gnu/xml/transform/ApplyTemplatesNode.java (clone): Check whether
	sortKeys is null.
  
2006-01-30  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JLayeredPane.java
	(insertIndexForLayer): Fixed algorithm to correctly insert
	components within different layers and -1 position.
  
2006-01-30  Mark Wielaard  <mark@klomp.org>
  
	* doc/api/Makefile.am (create_html): Add -validhtml.
  
2006-01-30  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JLayeredPane.java
	(insertIndexForLayer): Fixed algorithm to correctly insert
	components within same layer and -1 position.
  
2006-01-30  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	Fixes bug #24876
	* gnu/regexp/gnu/regexp/RE.java(REG_TRY_ENTIRE_MATCH):
	New execution flag.
	(getMatchImpl): if REG_TRY_ENTIRE_MATCH is set, add an
	implicit RETokenEnd at the end of the regexp chain.
	Do not select the longest match, but select the first match.
	(match): Do not take care of REMatch.empty.
	* gnu/regexp/REMatch.java(empty): To be used only in RETokenRepeated.
	* gnu/regexp/RETokenOneOf.java: Corrected a typo in a comment.
	* gnu/regexp/RETokenBackRef.java: Do not take care of REMatch.empty.
	* gnu/regexp/RETokenRepeated.java (match): Rewrote stingy matching.
	Do not take care of REMatch.empty. Set and check REMatch.empty
	when trying to match the single token.

2006-01-30  Mark Wielaard  <mark@klomp.org>

	* java/awt/Cursor.java (toString): Include name and type.

2006-01-30  Raif S. Naffah  <raif@swiftdsl.com.au>

	* gnu/javax/crypto/mac/HMac.java (clone): Clone ipadHash, opadHash, and
	the ipad buffer.
	* gnu/javax/crypto/mac/BaseMac.java (clone): Clone underlyingHash.
  
2006-01-30  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
        
        PR 26027
	* javax/swing/plaf/basic/BasicListUI.java  (maybeUpdateLayoutState):
	Consider the validation state of the list. 

2006-01-29  Robert Schuster  <robertschuster@fsfe.org>

	* gnu/java/beans/DefaultExceptionListener.java: Constant public field
	INSTANCE added.
	* java/beans/XMLDecoder.java:
	(setExceptionListener): Use shared DefaultExceptionListener
	instance.
	* java/beans/Encoder.java:
	(setExceptionListener): Use shared DefaultExceptionListener
	instance.
  
2006-01-29  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/ScrollPaneLayout.java
	(minimumLayoutSize): Rewritten to match JDKs behaviour.
  
2006-01-29  Mark Wielaard  <mark@klomp.org>
  
	* java/net/SocketPermission.java (setActions): Trim and lower case
	action.
  
2006-01-29  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/java/security/util/Prime2.java (passEulerCriterion): Was
	incorrectly failing primality test for some known primes. Fixed.
	(passFermatLittleTheorem): Removed.
	(passMillerRabin): Removed.
	(isProbablePrime): Cache primes that pass the primality tests.
	Use BigInteger.isProbablePrime(int) for primality tests.
	(debugBI): New static debugging method.
  
2006-01-28  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicListUI.java
	(updateLayoutState): Removed unneeded special case for VERTICAL.
  
2006-01-28  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicListUI.java
	(getCellBounds): Determine correct list width when having a
	layoutOrientation of VERTICAL.
	(maybeUpdateLayoutState): Don't consider the validation state of
	the list.
  
2006-01-28  Mark Wielaard  <mark@klomp.org>
  
	Reported by Dimitri Fontaine <dimitri@dalibo.com>
	* java/awt/print/NoPrinterJob.java: New (fake) class.
	* java/awt/print/PrinterJob.java (getPrinterJob): Return NoPrinterJob.
  
2006-01-28  Mark Wielaard  <mark@klomp.org>
  
	* gnu/javax/crypto/mac/HMac.java (clone): Cast cloned ipad to byte[].
  
2006-01-28  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* gnu/classpath/examples/swing/Demo.java (mkTree): Make a larger tree.
	(addChildren): New method.
  
2006-01-28  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	* gnu/javax/crypto/jce/mac/MacAdapter.java (MacAdapter(IMac, Map)): New
	constructor for cloning purposes.
	(clone): New implementation that ensures cloning.
	* gnu/javax/crypto/mac/HMac.java (clone): Implement Cloneable.
	* gnu/java/security/Registry.java: Changed value of GNU_SECURITY to
	  "GNU".
  
2006-01-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/plaf/basic/BasicTreeUI.java (updateCachedPreferredSize):
	Call updateCurrentVisiblePath.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* examples/gnu/classpath/examples/swing/MiniDemo.java: New file.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* examples/gnu/classpath/examples/swing/ButtonDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/ComboBoxDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/FileChooserDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/ScrollBarDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/SliderDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/TableDemo.java
	(createContent): Only create new content if we don't have one
	already.
	* examples/gnu/classpath/examples/swing/TextFieldDemo.java
	(createContent): Only create new content if we don't have one
	already.
  
2006-01-27  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insertFirstContentTag): Removed check, not needed. This
	still needs to be fixed for some cases. Added call to
	recreateLeaves.
	(createFracture): Added call to recreateLeaves.
	(recreateLeaves): New method used to recreate all the
	leaves after the initial insertion. This still needs 
	more work.
	(handleInsertAfterNewline): Removed else, not needed.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JLayeredPane.java
	(inserIndexForLayer): Fixed direction of search.
  
2006-01-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTree.java (constructor): Put EXPANDED for the root 
	node into nodeStates.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JLayeredPane.java
	(FRAME_CONTENT_LAYER): Made field final.
	(componentToLayer): Made field private.
	(rectCache): Removed field.
	(layers): Removed field.
	(JLayeredPane()): Removed initialization of removed fields.
	(getLayer): Rewritten to make use of client properties in
	JComponents and to be more straighforward.
	(static getLayer): Rewritten to make use of client properties in
	JComponents.
	(layerToRange): Removed method.
	(incrLayer): Removed method.
	(decrLayer): Removed method.
	(highestLayer): Rewritten to be more straightforward.
	(lowestLayer): Rewritten to be more straightforward.
	(getPosition): Rewritten to be more straightforward.
	(getComponentsInLayer): Rewritten to be more straightforward.
	(getComponentCountInLayer): Rewritten to be more straightforward.
	(getIndexOf): Rewritten to be more straightforward.
	(inserIndexForLayer): Rewritten to be more straightforward.
	(remove): Rewritten to be more straightforward.
	(setLayer): Rewritten to be more straightforward.
	(addImpl): Rewritten to be more straightforward.
	(putLayer): Rewritten to be more straightforward.

2006-01-27  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Character.java:
	(offsetByCodePoints(CharSequence, int, int)): New API method.
	(offsetByCodePoints(char[], int, int, int, int)): Likewise.
	(toChars): Throw the Exception that the docs say we throw.
	(codePointAt): Fixed an off-by-one error in the bounds of the if 
	statement.
	* java/lang/String.java:
	(String(int[], int, int)): New API constructor.
  
2006-01-27  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insert): Moved this loop to insertUpdate.
	(insertUpdate): Likewise. Fixed variable
	names. Incremented pos if new paragraph
	is inserted.
	(split): Changed edits to use replace instead. Prevents
	assertion errors.
	(insertFirstContentTag): Removed else.
	(insertContentTag): Implemented else for JoinNextDirection.
	(createFracture): Fixed up code, still not fully complete.
	(insertFracture): Fixed to use return value from 
	recreateAfterFracture.
	(recreateAfterFracture): Changed to return an array of the
	elements to be added. This prevents an assertion error.
	(contains): New function checks if an element is already in 
	the Vector. Vector's contain function was not enough to use.
	(addAddedElement): Changed to use new contains function.
	(addAddedElements): Likewise.
	(addRemovedElement): Likewise.
	(addRemovedElements): Likewise.        
	
2006-01-27  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	PR 25520
	* vm/reference/java/io/VMObjectInputStream.java (loaderAction.run):
	If no user class loaders found on the stack, return the thread 
	context class loader. (currentClassLoader): Explained.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Container.java
	(swapComponents): Removed unspecified method.
	* javax/swing/JLayeredPane.java
	(setPosition): Reimplemented correctly.
	(swapComponents): New helper method.
  
2006-01-27  Mark Wielaard  <mark@klomp.org>
  
	* configure.ac: Set version to 0.21-pre.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	PR classpath/25968
	* javax/swing/JComponent.java
	(findOverlapFreeParent): Improved the algorithm to make better use
	of the optimizedDrawingEnabled flag.
	* javax/swing/JLayeredPane.java
	(isOptimizedDrawingEnabled): Reimplemented to match the specs.
	* javax/swing/JViewport.java
	(computeBlit): Fixed check to decide if blitting is possible or not,
	so that it doesn't blit if nothing was scrolled (in order to
	update the buffer when the view updates itself).
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(createList): Don't set scrollbar policy.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicPopupMenuUI.java
	(PopupMenuHandler.popupMenuWillBecomeInvisible):
	Fixed to also handle non-Swing toplevel containers.
	(PopupMenuHandler.popupMenuWillBecomeVisible):
	Fixed to also handle non-Swing toplevel containers.
	* javax/swing/Popup.java
	(JWindowPopup.JWindowPopup()): Correctly set parent window on
	popup.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicInternalFrameUI.java
	(InternalFramePropertyChangeListener): Don't implement
	VetoableChangeListener.
	(InternalFramePropertyChangeListener.vetoableChange): Removed.
	(internalFrameVetoableChangeListener): Removed unneeded field.
	(installListeners): Don't install vetoableChangeListener.
	* javax/swing/event/DocumentEvent.java
	(EventType): Made class final.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/SwingUtilities.java
	(calculateInsetArea): Removed unneeded method. The method
	calculateInnerArea has the same purpose and is actually specified.
	(calculateInnerArea): Rewritten to not use calculateInsetArea.
	* javax/swing/plaf/basic/BasicMenuItemUI.java
	(paintMenuItem): Use SwingUtilities.calculateInnerArea() instead
	of SwingUtilities.calculateInsetArea().
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/basic/BasicTreeUI.java
	(installDefaults): Removed requestFocusInWindow() call.
	* javax/swing/JComponent.java
	(requestFocusInWindow(boolean)): Made method protected.
	(printComponent): Made method protected.
	(printChildren): Made method protected.
	(printComponent): Made method protected.
	(printBorder): Made method protected.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/AbstractButton.java
	(ButtonChangeListener.ButtonChangeListener()): Made constructor
	package private.
	* javax/swing/ImageIcon.java
	(component): Made field final.
	(tracker): Made field final.
	* javax/swing/JApplet.java
	(AccessibleJApplet.AccessibleJApplet): Made constructor protected.
	* javax/swing/JCheckBox.java
	(AccessibleJCheckBox.AccessibleJCheckBox): Made constructor
	protected.
	* javax/swing/JDialog.java
	(AccessibleJDialog.AccessibleJDialog): Made constructor protected.
	* javax/swing/JFrame.java
	(AccessibleJFrame.AccessibleJFrame): Made constructor protected.
	* javax/swing/JLayeredPane.java
	(AccessibleJLayered.AccessibleJLayeredPane): Made constructor
	protected.
	(DEFAULT_LAYER): Made field final.
	(PALETTE_LAYER): Made field final.
	(MODAL_LAYER): Made field final.
	(POPUP_LAYER): Made field final.
	(DRAG_LAYER): Made field final.
	* javax/swing/JMenu.java
	(ActionChangeListener): Made class private.
	* javax/swing/JOptionPane.java
	(UNITITIALIZED_VALUE): Made field final.
	* javax/swing/JPanel.java
	(AccessibleJPanel.AccessibleJPanel): Made constructor protected.
	* javax/swing/JPopupMenu.java
	(ActionChangeListener): Made class private.
	* javax/swing/JTree.java
	(paramString): Made method protected.
	* javax/swing/JViewport.java
	(AccessibleJViewport.AccessibleJViewport): Made constructor protected.
	* javax/swing/JWindow.java
	(AccessibleJWindow.AccessibleJWindow): Made constructor protected.
	* javax/swing/RepaintManager.java
	(RepaintWorker): Made class private.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* gnu/java/awt/peer/swing/SwingComponentPeer.java
	(handleEvent): Removed debug statement.
  
2006-01-27  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Component.java
	(coalescePaintEvents): Don't try to optimize coalescing. This hurts
	more than it helps.
  
2006-01-26  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(createFracture): Commented out a known problem,
	added FIXME tag.
  
2006-01-26  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer): Added fields.
	(remove): Initialized pos.
	(change): Likewise.
	(insert): Likewise.
	(insertUpdate): Incremented pos. Fixed check, createFracture should
	be called on first tag if it is not ContentType.
	(insertFirstContentTag): Reworked to use proper offsets and
	set offset accordingly. This might need more work in the future.
	(insertContentTag): Likewise. Fixed to use pos, instead of 
	offset.
	(createFracture): Fixed to recreate other leaves. Still needs
	more work.
	(insertFracture): Reimplemented.
	(recreateAfterFracture): New method.
	(getParagraphElement): Reimplemented, more efficent.

2006-01-26  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits)
	(doubleToRawLongBits, longBitsToDouble): Swap the byte
	ordering for little-endian arms without VFP.

2006-01-26  Raif S. Naffah  <raif@swiftdsl.com.au>

	PR classpath/25981
	* gnu/javax/crypto/jce/GnuCrypto.java (run): Added KeyGenerator entries.

2006-01-26  Mark Wielaard  <mark@klomp.org>

	Fixes bug #25970 reported by Michael Kay <mike@saxonica.com>
	* java/math/BigDecimal.java (compareTo): Don't strip trailing zeros.
	Add trailing zeros to the fraction of the decimal with the smallest
	scale.

2006-01-26  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/html/ObjectView.java: New file.

2006-01-26  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/plaf/basic/BasicTreeUI.java (MouseHandler.mousePressed): 
	Call startEditing when appropriate.
	(WAIT_TILL_EDITING, EDIT, startEditTimer): New fields.
	(startEditing): Always edit if directly ordered from 
	MouseHandler.mousePressed.
	* javax/swing/tree/DefaultTreeCellEditor.java (CLICK_COUNT_TO_START): 
	New field. (createTreeCellEditor): Set click count to start.
	(getTreeCellEditorComponent): Assing realEditor directly.

2006-01-25  Casey Marshall  <csm@gnu.org>

	Merging GNU Crypto and Jessie.

	* NEWS: mention the merge in the 0.21 notes.
	* gnu/classpath/debug/Component.java (SSL_APPLICATION): removed.
	(SSL_RECORD_LAYER): new constants.
	* gnu/java/security/provider/Gnu.java (<init>): add new algorithms
	to provider.
	* resource/java/security/classpath.security: add new providers.
	* 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/GnuCrypto.java,
        gnu/javax/crypto/jce/GnuSasl.java,
        gnu/javax/crypto/jce/PBKDF2SecretKeyFactory.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/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/AnubisKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/AnubisSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/BlowfishKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/BlowfishSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/Cast5KeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/Cast5SecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/DESKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/DESSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/DESedeSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/KhazadKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/KhazadSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/RijndaelKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/RijndaelSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/SecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/SecretKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/SerpentKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/SerpentSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/SquareKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/SquareSecretKeyFactoryImpl.java,
        gnu/javax/crypto/jce/key/TripleDESKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/TwofishKeyGeneratorImpl.java,
        gnu/javax/crypto/jce/key/TwofishSecretKeyFactoryImpl.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/OMacAnubisImpl.java,
        gnu/javax/crypto/jce/mac/OMacBlowfishImpl.java,
        gnu/javax/crypto/jce/mac/OMacCast5Impl.java,
        gnu/javax/crypto/jce/mac/OMacDESImpl.java,
        gnu/javax/crypto/jce/mac/OMacImpl.java,
        gnu/javax/crypto/jce/mac/OMacKhazadImpl.java,
        gnu/javax/crypto/jce/mac/OMacRijndaelImpl.java,
        gnu/javax/crypto/jce/mac/OMacSerpentImpl.java,
        gnu/javax/crypto/jce/mac/OMacSquareImpl.java,
        gnu/javax/crypto/jce/mac/OMacTripleDESImpl.java,
        gnu/javax/crypto/jce/mac/OMacTwofishImpl.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/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/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/DHKeyPairRawCodec.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/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/SSL3.java,
        gnu/javax/crypto/pad/TBC.java,
        gnu/javax/crypto/pad/TLS1.java,
        gnu/javax/crypto/pad/WrongPaddingException.java,
        gnu/javax/crypto/prng/ARCFour.java,
        gnu/javax/crypto/prng/CSPRNG.java,
        gnu/javax/crypto/prng/Fortuna.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/net/ssl/Base64.java,
        gnu/javax/net/ssl/EntropySource.java,
        gnu/javax/net/ssl/NullManagerParameters.java,
        gnu/javax/net/ssl/PrivateCredentials.java,
        gnu/javax/net/ssl/SRPManagerParameters.java,
        gnu/javax/net/ssl/SRPTrustManager.java,
        gnu/javax/net/ssl/StaticTrustAnchors.java,
        gnu/javax/net/ssl/provider/Alert.java,
        gnu/javax/net/ssl/provider/AlertException.java,
        gnu/javax/net/ssl/provider/Certificate.java,
        gnu/javax/net/ssl/provider/CertificateRequest.java,
        gnu/javax/net/ssl/provider/CertificateType.java,
        gnu/javax/net/ssl/provider/CertificateVerify.java,
        gnu/javax/net/ssl/provider/CipherSuite.java,
        gnu/javax/net/ssl/provider/ClientHello.java,
        gnu/javax/net/ssl/provider/ClientKeyExchange.java,
        gnu/javax/net/ssl/provider/CompressionMethod.java,
        gnu/javax/net/ssl/provider/Constructed.java,
        gnu/javax/net/ssl/provider/ContentType.java,
        gnu/javax/net/ssl/provider/Context.java,
        gnu/javax/net/ssl/provider/DiffieHellman.java,
        gnu/javax/net/ssl/provider/DigestInputStream.java,
        gnu/javax/net/ssl/provider/DigestOutputStream.java,
        gnu/javax/net/ssl/provider/Enumerated.java,
        gnu/javax/net/ssl/provider/Extension.java,
        gnu/javax/net/ssl/provider/Extensions.java,
        gnu/javax/net/ssl/provider/Finished.java,
        gnu/javax/net/ssl/provider/GNUSecurityParameters.java,
        gnu/javax/net/ssl/provider/Handshake.java,
        gnu/javax/net/ssl/provider/JCESecurityParameters.java,
        gnu/javax/net/ssl/provider/JDBCSessionContext.java,
        gnu/javax/net/ssl/provider/Jessie.java,
        gnu/javax/net/ssl/provider/JessieDHPrivateKey.java,
        gnu/javax/net/ssl/provider/JessieDHPublicKey.java,
        gnu/javax/net/ssl/provider/JessieRSAPrivateKey.java,
        gnu/javax/net/ssl/provider/JessieRSAPublicKey.java,
        gnu/javax/net/ssl/provider/KeyPool.java,
        gnu/javax/net/ssl/provider/MacException.java,
        gnu/javax/net/ssl/provider/OverflowException.java,
        gnu/javax/net/ssl/provider/PRNG.java,
        gnu/javax/net/ssl/provider/ProtocolVersion.java,
        gnu/javax/net/ssl/provider/Random.java,
        gnu/javax/net/ssl/provider/RecordInput.java,
        gnu/javax/net/ssl/provider/RecordInputStream.java,
        gnu/javax/net/ssl/provider/RecordOutputStream.java,
        gnu/javax/net/ssl/provider/RecordingInputStream.java,
        gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java,
        gnu/javax/net/ssl/provider/SSLHMac.java,
        gnu/javax/net/ssl/provider/SSLRSASignature.java,
        gnu/javax/net/ssl/provider/SSLRandom.java,
        gnu/javax/net/ssl/provider/SSLServerSocket.java,
        gnu/javax/net/ssl/provider/SSLServerSocketFactory.java,
        gnu/javax/net/ssl/provider/SSLSocket.java,
        gnu/javax/net/ssl/provider/SSLSocketFactory.java,
        gnu/javax/net/ssl/provider/SSLSocketInputStream.java,
        gnu/javax/net/ssl/provider/SSLSocketOutputStream.java,
        gnu/javax/net/ssl/provider/SecurityParameters.java,
        gnu/javax/net/ssl/provider/ServerHello.java,
        gnu/javax/net/ssl/provider/ServerKeyExchange.java,
        gnu/javax/net/ssl/provider/Session.java,
        gnu/javax/net/ssl/provider/SessionContext.java,
        gnu/javax/net/ssl/provider/Signature.java,
        gnu/javax/net/ssl/provider/SynchronizedRandom.java,
        gnu/javax/net/ssl/provider/TLSHMac.java,
        gnu/javax/net/ssl/provider/TLSRandom.java,
        gnu/javax/net/ssl/provider/Util.java,
        gnu/javax/net/ssl/provider/X509KeyManagerFactory.java,
        gnu/javax/net/ssl/provider/X509TrustManagerFactory.java,
        gnu/javax/net/ssl/provider/XMLSessionContext.java,
        gnu/javax/security/auth/Password.java,
        gnu/javax/security/auth/callback/AWTCallbackHandler.java,
        gnu/javax/security/auth/callback/AbstractCallbackHandler.java,
        gnu/javax/security/auth/callback/ConsoleCallbackHandler.java,
        gnu/javax/security/auth/callback/DefaultCallbackHandler.java,
        gnu/javax/security/auth/callback/GnuCallbacks.java,
        gnu/javax/security/auth/callback/SwingCallbackHandler.java,
        gnu/java/security/Registry.java,
        gnu/java/security/Properties.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/DSSKeyPairGeneratorSpi.java,
        gnu/java/security/jce/sig/DSSRawSignatureSpi.java,
        gnu/java/security/jce/sig/KeyPairGeneratorAdapter.java,
        gnu/java/security/jce/sig/RSAKeyPairGeneratorSpi.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/DSSKeyPairRawCodec.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/RSAKeyPairRawCodec.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/RandomEvent.java,
        gnu/java/security/prng/RandomEventListener.java,
        gnu/java/security/sig/BaseSignature.java,
        gnu/java/security/sig/ISignature.java,
        gnu/java/security/sig/ISignatureCodec.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/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/RSAPSSSignature.java,
        gnu/java/security/sig/rsa/RSAPSSSignatureRawCodec.java,
        gnu/java/security/util/Base64.java,
        gnu/java/security/util/ExpirableObject.java,
        gnu/java/security/util/Prime2.java,
        gnu/java/security/util/Sequence.java,
        gnu/java/security/util/SimpleList.java,
        gnu/java/security/util/Util.java,
	resource/gnu/javax/security/auth/callback/MessagesBundle.properties:
	new files imported from GNU Crypto and Jessie.

2006-01-25  Tom Tromey  <tromey@redhat.com>

	* gnu/java/net/protocol/http/ChunkedInputStream.java (read):
	Fixed calculation of number of bytes to read.
	(size, count, meta, eof): Document.

2006-01-25  Anthony Balkissoon  <abalkiss@redhat.com>

	* java/lang/Character.java:
	(codePointCount(char[], int, int)): New API method.
	(codePointCount(CharSequence, int, int)): Likewise.
  
2006-01-25  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	PR 25205
	* javax/swing/DefaultCellEditor.java (getTreeCellEditorComponent): 
	Rewritten.
	* javax/swing/JTree.java (stopEditing, cancelEditing): Return without 
	action if not editing.
	* javax/swing/plaf/basic/BasicTreeUI.java 
	(CellEditorHandler.editingCancelled): Delegate to cancelEditing.
	(CellEditorHandler.editingStopped): Delegate to stopEditing.
	(EditorUpdateTimer): Removed.
	(TreeAction.actionPerformed): Stop and not cancel the current editing 
	when starting editing another node.
	(editorTimer, newVal): Removed.
	(cancelEditing): Do not send the cancel message.
	(completeEditing): Obtain the edited value from the editor.
	(finish): New method.
	(paintRow): Do not paint the editing component here.
	(startEditing, stopEditing): Rewritten.
	* javax/swing/tree/DefaultTreeCellEditor.java
	(DefaultTextField): Added SVUID.
	(EditorContainer): Rewritten.
	(RealEditorListener): New inner class.
	(ICON_TEXT_GAP, TREE_ICON_GAP: New constants).
	(constructor): Add cell editor listener. Do not instantiate timer.
	(actionPerformed): Return without action.
	(cancelCellEditing): Rewritten.
	(createTreeCellEditor): Add cell editor listener to the editor.
	(getCellEditorValue): Request the value from the realEditor.
	(isCellEditable): Removed timer management.
	(prepareForEditing): Remove all components befor adding the 
	editingComponent.
	(startEditingTimer): Start only if it is not null.
	(stopCellEditing): Rewritten.
	(stopEditingTimer): New method.
	(valueChanged): Do not configure editing component here.
  
2006-01-25  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/html/FormView.java: New file.
  
2006-01-25  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JSplitPane.java
	(addImpl): Call resetToPreferredSizes() when no dividerLocation
	has been set in order to set an initial layout.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.layoutContainer): Fixed error for
	layout of the right component.
	(BasicHorizontalLayoutManager.resetToPreferredSizes): Set the
	dividerLocation to the size of the left component.
	(createDefaultNonContinuousLayoutDivider): Fetch the color from
	the UIManager.
	(setDividerLocation): Don't validate the location here. Sometimes
	the divider needs to be set to an invalid location.
	(startDragging): Don't revalidate and repaint here.
	(finishDraggingTo): Don't repaint here. Also, don't call
	dragDividerTo() here.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added SplitPaneDivider.draggingColor
	default value.
  
2006-01-25  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JSplitPane.java
	(addImpl): Removed invalidate() and layout() call.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(PropertyHandler.propertyChange): Remove layoutContainer() and
	repaint() call.
  
2006-01-25  Roman Kennke  <kennke@aicas.com>
  
	* configure.ac
	* native/Makefile.am
	* native/jni/classpath/Makefile.am
	* native/jni/classpath/jcl.c
	* native/jni/classpath/jcl.h
	* native/jni/classpath/native_state.c
	* native/jni/gtk-peer/Makefile.am
	* native/jni/java-io/Makefile.am
	* native/jni/java-io/java_io_VMFile.c
	* native/jni/java-io/java_io_VMObjectStreamClass.c
	* native/jni/java-lang/Makefile.am
	* native/jni/java-net/Makefile.am
	* native/jni/java-net/java_net_VMInetAddress.c
	* native/jni/java-net/javanet.c
	* native/jni/java-net/javanet.h
	* native/jni/java-nio/Makefile.am
	* native/jni/java-nio/gnu_java_nio_VMPipe.c
	* native/jni/java-nio/gnu_java_nio_VMSelector.c
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	* native/jni/java-util/Makefile.am
	* native/jni/java-util/java_util_VMTimeZone.c
	* native/jni/midi-dssi/Makefile.am
	* native/jni/xmlj/Makefile.am
	* native/target/Makefile.am
	* native/target/Linux/target_native_math.h
	* native/target/Linux/target_native_memory.h
	* native/target/Linux/Makefile.am
	* native/target/Linux/target_native_io.h
	* native/target/Linux/target_native_math_float.h
	* native/target/Linux/target_native_math_int.h
	* native/target/generic/target_generic.c
	* native/target/generic/target_generic_io.c
	* native/target/generic/target_generic_math.h
	* native/target/generic/target_generic_memory.h
	* native/target/generic/target_generic_misc.c
	* native/target/generic/target_generic_network.c
	* native/target/generic/Makefile.am
	* native/target/generic/target_generic.h
	* native/target/generic/target_generic_file.h
	* native/target/generic/target_generic_io.h
	* native/target/generic/target_generic_math_float.h
	* native/target/generic/target_generic_math_int.h
	* native/target/generic/target_generic_misc.h
	* native/target/generic/target_generic_network.h:
	Reverted target native related changes back to the state of the
	0.20 release.
	* native/target/MinGW/.cvsignore
	* native/target/MinGW/Makefile.am
	* native/target/MinGW/target_native.h
	* native/target/MinGW/target_native_file.h
	* native/target/MinGW/target_native_io.h
	* native/target/MinGW/target_native_math.h
	* native/target/MinGW/target_native_memory.h
	* native/target/MinGW/target_native_misc.h
	* native/target/MinGW/target_native_network.h
	* native/target/RTEMS/.cvsignore
	* native/target/RTEMS/Makefile.am
	* native/target/RTEMS/target_native.h
	* native/target/RTEMS/target_native_file.h
	* native/target/RTEMS/target_native_io.h
	* native/target/RTEMS/target_native_math.h
	* native/target/RTEMS/target_native_memory.h
	* native/target/RTEMS/target_native_misc.h
	* native/target/RTEMS/target_native_network.h
	* native/target/SunOS/.cvsignore
	* native/target/SunOS/Makefile.am
	* native/target/SunOS/target_native.h
	* native/target/SunOS/target_native_file.h
	* native/target/SunOS/target_native_io.h
	* native/target/SunOS/target_native_math.h
	* native/target/SunOS/target_native_memory.h
	* native/target/SunOS/target_native_misc.h
	* native/target/SunOS/target_native_network.h
	* native/target/embOS/.cvsignore
	* native/target/embOS/Makefile.am
	* native/target/embOS/target_native.h
	* native/target/embOS/target_native_file.h
	* native/target/embOS/target_native_io.c
	* native/target/embOS/target_native_io.h
	* native/target/embOS/target_native_math.h
	* native/target/embOS/target_native_memory.h
	* native/target/embOS/target_native_misc.h
	* native/target/embOS/target_native_network.h
	* native/target/posix/.cvsignore
	* native/target/posix/Makefile.am
	* native/target/posix/target_posix.c
	* native/target/posix/target_posix.h
	* native/target/posix/target_posix_file.c
	* native/target/posix/target_posix_file.h
	* native/target/posix/target_posix_io.c
	* native/target/posix/target_posix_io.h
	* native/target/posix/target_posix_math.c
	* native/target/posix/target_posix_math.h
	* native/target/posix/target_posix_memory.c
	* native/target/posix/target_posix_memory.h
	* native/target/posix/target_posix_misc.c
	* native/target/posix/target_posix_misc.h
	* native/target/posix/target_posix_network.c
	* native/target/posix/target_posix_network.h:
	Removed.
  
2006-01-24  Wolfgang Baer  <WBaer@gmx.de>
  
	* javax/print/PrintService.java,
	* javax/print/DocPrintJob.java,
	* javax/print/CancelablePrintJob.java:
	Added and enhanced api documentation for class and methods.		

2006-01-24  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/SimpleDoc.java: Make class final.
	* javax/print/attribute/standard/PrinterIsAcceptingJobs.java: Likewise.
	* javax/print/attribute/DateTimeSyntax.java: 
	(toString): New overridden method.
	* javax/print/attribute/standard/JobStateReasons.java:
	(add): Use the super.add method to avoid recursion.
	* javax/print/attribute/standard/PrinterStateReasons.java: 
	(put): Use the super.put method to avoid recursion.

2006-01-24  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/XMLEncoder.java:
	(writeExpression): Added early return (fixes PR #25941).
	(setExceptionListener, anonymous Class): Removed printStackTrace
	call.
	* java/beans/Encoder: Removed unused imports.
	(setupDefaultPersistenceDelegates): Removed unneccessary
	PersistenceDelegates for subclasses.
	* java/beans/PersistenceDelegate:
	(initialize): Use local variable as first argument as it was
	intended once.
	* java/beans/DefaultPersistenceDelegate:
	(initialize): Added call to superclass' implementation, added
	early return.
  
2006-01-24  Tom Tromey  <tromey@redhat.com>
  
	* java/util/regex/PatternSyntaxException.java: Added @since.
	* java/util/regex/Matcher.java (Matcher): Implements MatchResult.
	* java/util/regex/MatchResult.java: New file.
  
2006-01-24  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/StringContent.java: Added API docs all over, plus 
	minor reformatting.
  
2006-01-24  Gary Benson  <gbenson@redhat.com>
  
	* java/net/SocketPermission.java: Implemented serialization.
  
2006-01-24  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/StringContent.java
	(remove): Modified argument check to prevent removal of last character,
	(getChars): Removed null argument check to allow NullPointerException,
	added API docs,
	(checkLocation): Added API docs and white space.
  
2006-01-23  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Should only call createFracture with 
	StartTagType. Added check.
	(insertContentTag): Should use the tags length for splitting.
	Also, added a check to determine if current's start and end offset are
	equal to the offset and endOffset. If so, only one leaf element
	should be added. 
	(createFracture): Removed FIXME. This function is complete.
	(split): Added calls to replace. Changed so the child is 
	added immediately to the paragraph. Prevents NPEs.

2006-01-23  Mark Wielaard  <mark@klomp.org>

	* examples/Makefile.am (EXAMPLE_ZIP): Group cd and commands.

2006-01-23  Tom Tromey  <tromey@redhat.com>

	* gnu/java/security/x509/X509Certificate.java (parse):
	Unconditionally read value; for version==1 case when reading
	algorithm ID.

2006-01-23  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/synth/ColorType.java,
	* javax/swing/plaf/synth/Region.java,
	* javax/swing/plaf/synth/SynthConstants.java,
	* javax/swing/plaf/synth/SynthContext.java
	* javax/swing/plaf/synth/SynthGraphicsUtils.java,
	* javax/swing/plaf/synth/SynthLookAndFeel.java,
	* javax/swing/plaf/synth/SynthPainter.java,
	* javax/swing/plaf/synth/SynthStyle.java,
	* javax/swing/plaf/synth/SynthStyleFactory.java,
	* javax/swing/plaf/synth/package.html:
	New files. Added the public API and framework classes for the
	Synth look and feel.
  
2006-01-23  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/Segment.java: API docs all over.
  
2006-01-23  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(split): Should not use createLeafElement and createBranchElement here.
	We should just instaniate the LeafElements and BranchElements instead 
	to avoid the case where create*Element is overridden.
  
2006-01-23  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insertFirstContentTag): Moved check outside of if-statement.
	This should be checked before creating the new leaf element.
	(insertFracture): Fixed check to prevent an NPE. The previous
	leaf should only be recreated if it has been created by
	insertFirstContentTag. Also, fixed up code: if the endOffset is
	greater than the offset, then we need to create a temp leaf
	as a place holder. Otherwise, the leaf elements should be
	created normally.
  
2006-01-23  Gary Benson  <gbenson@redhat.com>
  
	* java/net/SocketPermission.java: Almost completely rewritten.
  
2006-01-23  Lillian Angel  <langel@redhat.com>
  	
	* javax/swing/text/DefaultStyledDocument.java
	(insertFracture): Set temp leaf's attributes to prevent an NPE.
  
2006-01-23  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java:
	Formatted ElementBuffer and added new fields.
	(remove): Added check to determine if length is 0.
	(insertFirstContentTag): Initialized firstCreated to the element that is created 
	by the first tag encountered. Removed check in JoinPreviousDirection case, no
	longer needed. In OriginateDirection case, added a loop to remove all old leafs
	that have been recreated.
	(insertContentTag): Cleaned up code. Removed checks that did not do anything.
	(insertFracture): Fixed up code, removed unneeded objects and checks. Added
	FIXME tags to the lines that need to be rewritten.	

2006-01-23  Mark Wielaard  <mark@klomp.org>

	* examples/Makefile.am: Add support for fastjar.

2006-01-23  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	* gnu/regexp/REToken.java(empty): Made Cloneable.
	* gnu/regexp/RETokenOneOf.java(match): RE.java(match):
	Use separate methods matchN and matchP depending on the
	boolean negative.
	(matchN): New method used when negative. Done as before.
	(matchP): New method used when not negative. Each token is
	tried not by itself but by a clone of it.

2006-01-23  Chris Burdess  <dog@gnu.org>

	Fixes bug #25906
	* gnu/xml/dom/DomCharacterData.java: Use a separate empty node list
	  class to avoid getLength method contention.
	* gnu/xml/stream/SAXParser.java: Rethrow correct exception.

2006-01-23  Chris Burdess  <dog@gnu.org>

	* native/jni/java-util/Makefile.am: Include library required
	  explicitly by BSD systems.
	* native/target/generic/target_generic_misc.h: Remove old commented
	  out code.
	* native/target/generic/target_generic_network.h: Fallbacks (to
	  SO_NOSIGPIPE and then 0) for non-portable glibc MSG_NOSIGNAL.

2006-01-22  Tom Tromey  <tromey@redhat.com>

	* native/target/posix/.cvsignore: Added .deps.

2006-01-22  Mark Wielaard  <mark@klomp.org>

	Fixes bug #25832,
	reported by James Damour <James.Damour@corp.request.com>
	* java/awt/Container.java (addImpl): Use empty string as name when
	null constraints for LayoutManager.addLayoutComponent().

2006-01-22  Chris Burdess  <dog@gnu.org>

	Fixes bug #25903
	* gnu/xml/dom/DomDocumentBuilder.java: Default to using file URL
	  representing current directory as base for relative URLs.

2006-01-22  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #25837
	* gnu/regexp/REMatch.java(empty): New boolean indicating
	an empty string matched.
	* gnu/regexp/RE.java(match): Sets empty flag when an empty
	string matched.
	(initialize): Support back reference \10, \11, and so on.
	(parseInt): renamed from getEscapedChar and returns int.
	* gnu/regexp/RETokenRepeated.java(match): Sets empty flag
	when an empty string matched. Fixed a bug of the case where
	an empty string matched. Added special handling of {0}.
	* gnu/regexp/RETokenBackRef.java(match): Sets empty flag
	when an empty string matched. Fixed the case insensitive matching.
  
2006-01-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/plaf/metal/MetalSplitPaneDivider.java
	(paint): Added painting of border if one is installed.
  
2006-01-21  Roman Kennke  <kennke@aicas.com>
  
	PR classpath/25843:
	* javax/swing/plaf/basic/BasicBorders.java
	(getSplitPaneDividerBorder): Use new border constructor
	without arguments.
	(SplitPaneDividerBorder.highlight): Removed unneeded field.
	(SplitPaneDividerBorder.shadow): Removed unneeded field.
	(SplitPaneDividerBorder()): Changed constructor to do nothing. The
	colors are fetched dynamically in the paintBorder method.
	(SplitPaneDividerBorder.paintBorder): Fetch colors dynamically from
	the look and feel.
	(SplitPaneDividerBorder.isBorderOpaque): Returns true
	unconditionally.
	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Added default for SplitPaneDivider.border.
	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(tmpBorder): Removed unneeded inner class.
	(BasicSplitPaneDivider): Removed setting of border.
	(setSplitPaneUI): Don't add the mouse handler to the splitpane
	itself.
	* javax/swing/plaf/basic/BasicSplitPaneUI.java
	(BasicHorizontalLayoutManager.layoutContainer): Mostly rewritten
	to get behaviour right.
	(BasicHorizontalLayoutManager.distributeExtraSpace): Removed
	implementation. This must be rewritten since the layout now works
	slightly different (basically, it shouldn't modify the sizes[]
	here but instead the dividerLocation.
	(dividerLocation): New field.
	(installDefaults): Initialize border on divider.
	(uninstallDefaults): Only remove background color and border from
	splitPane if they are instances of UIDefaults (== not set by
	application).
	(setDividerLocation): Set the dividerLocation field instead of
	doing stunt acts here.
	(getDividerLocation): Return dividerLocation field.
	(getMinimumDividerLocation): Fixed calculation of minimum location.
	
2006-01-21  Guilhem Lavaux  <guilhem@kaffe.org>
  
	* m4/acinclude.m4
	(CLASSPATH_WITH_GLIBJ): Add support for fastjar.
  
	* lib/Makefile.am: Likewise. 
  
2006-01-21  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/PopupFactory.java
	(getPopup): If there is no Swing root found in any way, use a
	heavyweight popup. This is useful for mixed Swing/AWT GUIs, or
	for the Swing AWT peers.
  
2006-01-20  Tom Tromey  <tromey@redhat.com>
  
	* gnu/java/net/protocol/http/HTTPURLConnection.java (connect):
	Read response body for redirect.
  
2006-01-20  Chris Burdess  <dog@gnu.org>
  
	* gnu/java/net/protocol/http/HTTPURLConnection.java: Don't follow
	  redirects on 304.
  
2006-01-20  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(pad): Removed, not needed.
	(printElements): Likewise.
	(printEdit): Likewise.
  
2006-01-20  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/text/DefaultFormatter.java
	(DefaultFormatter): Don't set a value class.
  
2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/DefaultCellEditor.java: Commented.
  
2006-01-19  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JOptionPane.java
	Added cast to Frame for JDialog constructor.
  
2006-01-19  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JWindow.java
	(JWindow(Window)): Fixed to accept null owner argument.
	(JWindow(Window,GraphicsConfiguration)): Fixed to accept null
	owner argument.
	* javax/swing/SwingUtilities.java
	(getOwnerFrame): Owner parameter and return value are fixed to
	be of type Window for compatibity with the above JWindow
	constructor.
	* javax/swing/JDialog.java
	(JDialog): Added cast to Frame to make sure the correct constructor
	is called.
	* javax/swing/JFileChooser.java
	(createDialog): Added cast to Frame for JDialog constructor.
  
2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java (rowAtPoint): Rewritten.
  
2006-01-19  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JWindow.java: Added API docs to the constructors.
  
2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	* javax/swing/JTable.java: Commenting method headers.
	(EditorUpdateTimer): Removed.
  
2006-01-19  Roman Kennke  <kennke@aicas.com>
  
	* javax/swing/JDialog.java
	(JDialog()): Call SwingUtilities.getOwnerFrame() with null.
	(JDialog(Frame,String,boolean,GraphicsConfiguration)): Call
	SwingUtilities.getOwnerFrame() with the owner argument.
	* javax/swing/JFileChooser.java
	(showOpenDialog(Component)): Call pack() on the dialog instead of
	setting	a fixed height.
	(showSaveDialog()): Likewise.
	(showDialog()): Likewise.
	(createDialog): Call SwingUtilities.getOwnerFrame() with null.
	* javax/swing/JOptionPane.java: Call SwingUtilities.getOwnerFrame()
	with null.
	* javax/swing/JWindow.java
	(JWindow()): Call SwingUtilities.getOwnerFrame() with null.
	(JWindow(Frame)): Call SwingUtilities.getOwnerFrame() with owner
	argument.
	* javax/swing/SwingUtilities.java
	(getOwnerFrame): Changed to take a owner parameter that is returned
	as owner frame when not null.
  
2006-01-19  Roman Kennke  <kennke@aicas.com>
  
	* gnu/java/awt/peer/swing/SwingFramePeer.java
	(handleMouseEvent): Fixed handling of mouse events.
	(handleMouseMotionEvent): Fixed handling of mouse events.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_misc.c:
	(targetGenericMisc_formatString): Added missing method.

2006-01-19  Wolfgang Baer  <WBaer@gmx.de>

	* m4/acinclude.m4: Test also for ecj found before exiting configure
	with no javac found error message. 

2006-01-19  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #23212
	* gnu/regexp/RE.java(initialize): Support escaped characters such as
	\0123, \x1B, \u1234.
	(getEscapedChar): New method.
	(CharExpression): New inner class.
	(getCharExpression): New Method.
	* gnu/regexp/RESyntax.java(RE_OCTAL_CHAR, RE_HEX_CHAR,
	RE_UNICODE_CHAR): New syntax bits.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* native/target/Makefile.am: Fixed so that posix stuff is really
	only built when requested.

2006-01-19  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/JTable.java (editingStopped, editingCancelled):
	Repaint the edited cell.
	(setValueAt): Do not add the value object to this container.
	(editorTimer, rowBeingEdited, columnBeingEdited, oldCellValue): Removed.
	(editingStopped): Use editingRow, editingColumn and not
	rowBeingEdited, columnBeingEdited. (editValueAt): rewritten.
	(doLayout): Move the editor component, if present, into the new
	location and call repaint(). (moveToCellBeingEdited): new method.
	(TableTextField): new inner class.
	(getDefaultEditor): Instantiante TableTextField, not JTextField.
	(setValueAt): Repaint the changed segment.
	(createDefaultEditors): Implemented.
	(BooleanCellRenderer): Center the checkbox and use the default foreground
	and background colors.   
	* javax/swing/plaf/basic/BasicTableUI.java
	(paintCell): Do not paint the caret here. Do not accept unused parameters.
	(paint): No need to allocate rectangle for each cell.   
	* javax/swing/DefaultCellEditor.java: Rewritten.         
	* examples/gnu/classpath/examples/swing/Demo.java (mkTable):
	Use TableDemo.java table example.
	* examples/gnu/classpath/examples/swing/TableDemo.java: New file.

2006-01-19  Roman Kennke  <kennke@aicas.com>

	* configure.ac: Added/fixed --enable-posix-layer option to enable
	build of posix layer.
	* native/target/Makefile.am: Added build for posix layer.

2006-01-19  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* configure.ac: Set TARGET to Linux per default.
	* native/target/Makefile.am (libtarget_la_LIBADD): Removed
	libtargetos.la.
	* native/target/Linux/Makefile.am: Don't build a libtargetos.la.
	* native/target/generic/Makefile.am (INCLUDES): Renamed to
	AM_CPPFLAGS.
	
2006-01-19  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/interfaces/RSAMultiPrimePrivateCrtKey.java: Replaced
	  what looked like proprietary documentation with original or new one.
	* java/security/spec/PSSParameterSpec.java: Likewise.
	* java/security/spec/RSAMultiPrimePrivateCrtKeySpec.java: Likewise.
	* java/security/spec/RSAOtherPrimeInfo.java: Likewise.
	* java/security/AlgorithmParameterGenerator.java: Likewise.
	* java/security/AlgorithmParameters.java: Likewise.
	* java/security/Identity.java: Likewise.
	* java/security/IdentityScope.java: Likewise.
	* java/security/KeyFactory.java: Likewise.
	* java/security/KeyPairGenerator.java: Likewise.
	* java/security/MessageDigest.java: Likewise.
	* java/security/Policy.java: Likewise.
	* java/security/ProtectionDomain.java: Likewise.
	* java/security/Security.java: Likewise.
	* java/security/Signature.java: Likewise.
	* java/security/SignatureSpi.java: Likewise.
	* java/security/SignedObject.java: Likewise.
	* java/security/Signer.java: Likewise.
  
2006-01-18  Roman Kennke  <kennke@aicas.com>
  
	* configure.ac: Added --enable-posix-layer option to enable
	build of the posix target layer.
  
2006-01-18  Roman Kennke  <kennke@aicas.com>
  
	* native/jni/java-net/java_net_VMInetAddress.c
	(Java_java_net_VMInetAddress_lookupInaddrAny): Use target native macro
	for INADDR_ANY.
  
2006-01-18  Roman Kennke  <kennke@aicas.com>
  
	* native/jni/java-util/java_util_VMTimeZone.c:
	(Java_java_util_VMTimeZone_getSystemTimeZoneId): Rewritten
	to use target native layer.
	(jint_to_charbuf): Removed unneeded helper function.
  
2006-01-18  Roman Kennke  <kennke@aicas.com>
  
	* native/jni/java-nio/gnu_java_nio_VMPipe.c:
	Removed unnecessary include.
	* native/jni/java-nio/gnu_java_nio_VMSelector.c:
	Reorganized includes to only include sys/* headers when available.
	* native/jni/java-nio/java_nio_MappedByteBufferImpl.c:
	(get_pagesize): Return 0 when nothing else works.
	(Java_java_nio_MappedByteBufferImpl_unmapImpl):
	Replaced munmap() and strerror() with corresponding target macros.
	(Java_java_nio_MappedByteBufferImpl_isLoadedImpl):
	Replaced strerror() with corresponding target macro.
	(Java_java_nio_MappedByteBufferImpl_forceImpl):
	Replaced strerror() with corresponding target macro.
	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c:
	(Java_java_nio_VMDirectByteBuffer_allocate):
	Replaced malloc() with the corresponding target macro.
	(Java_java_nio_VMDirectByteBuffer_free):
	Replaced free() with the corresponding target macro.
	(Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_Pointer_2IB):
	Add index to pointer when assigning the value.
	(Java_java_nio_VMDirectByteBuffer_get__Lgnu_classpath_Pointer_2I_3BII):
	Replaced memcpy with corresponding target macro. Add index when
	doing the memcpy, not when fetching the pointer.
	(Java_java_nio_VMDirectByteBuffer_put__Lgnu_classpath_Pointer_2I_3BII):
	Replaced memcpy with corresponding target macro.
	(Java_java_nio_VMDirectByteBuffer_shiftDown):
	Replaced memmove with the corresponding target macro.

2006-01-17  Tom Tromey  <tromey@redhat.com>

	PR classpath/20198:
	* java/net/URLClassLoader.java (FileURLLoader): Added argument.
	(JarURLLoader): Likewise.
	(addURLImpl): Canonicalize file URLs.

2006-01-17  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* configure.ac: Set TARGET.
	* native/Makefile.am, native/jni/classpath/Makefile.am,
	native/jni/gtk-peer/Makefile.am, native/jni/java-io/Makefile.am,
	native/jni/java-lang/Makefile.am, native/jni/java-net/Makefile.am,
	native/jni/java-nio/Makefile.am, native/jni/midi-dssi/Makefile.am,
	native/jni/xmlj/Makefile.am, native/target/Makefile.am,
	native/target/Linux/Makefile.am,
	native/target/generic/Makefile.am,
	native/target/posix/Makefile.am: Build libclasspath.so with jcl
	and target stuff linked in and link it against lib*.so libraries.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/javanet.c:
	(_javanet_connect): Changed type of some local variables to jint.
	Fixed error handling to throw a SocketTimeoutException if the
	connection attempt times out.
	(_javanet_bind): Changed type of some local variables to jint.
	(_javanet_accept): Likewise.
	(_javanet_recvfrom): Likewise.
	(_javanet_sendto): Fixed error handling to throw a
	PortUnreachableException when connection is refused.
	(_javanet_get_option): Changed type of some local variables to jint.
	Implemented SOCKOPT_SO_BROADCAST.
	(_javanet_shutdownInput): Replaced shutdown call with corresponding
	target native macro.
	(_javanet_shutdownOutput): Replaced shutdown call with corresponding
	target native macro.
	* native/jni/java-net/javanet.h:
	Defined SOCKET_TIMEOUT_EXCEPTION, PORT_UNREACHABLE_EXCEPTION and
	SOCKOPT_SO_BROADCAST.
  
2006-01-17  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(insert): Cleaned up loop. No need to make so many calls
	to getAddedElements and getRemovedElements.
	(insertFracture): Removed unneeded array.
  
2006-01-17  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Implemented.
	(getCaretPosition): Implemented.
	(getSelectedText): Implemented.
	(getSelectionStart): Implemented.
	(getSelectionEnd): Implemented.
	(getSelectionEnd): Implemented.
	(getCharCount): Implemented.
	(insertTextAtIndex): Implemented.
	(getTextRange): Implemented.
	(delete): Implemented.
	(cut): Implemented.
	(paste): Implemented.
	(replaceText): Implemented.
	(selectText): Implemented.
  
2006-01-17  Anthony Balkissoon  <abalkiss@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java:
	(pad): New debugging method.
	(printElements): Likewise.
	(printPendingEdits): Likewise.
	(printElement): Likewise.
	(Edit): Improved docs, moved this class to be an inner class of
	ElementBuffer since it only applies within that scope.  Changed added 
	and removed to be Vectors instead of arrays because we need to be able 
	to add to them after construction.
	(ElementBuffer): Updated docs with link to article that helped in this
	classes implementation.
	(ElementBuffer.Edit.getRemovedElements): New method.
	(ElementBuffer.Edit.getAddedElements): Likewise.
	(ElementBuffer.Edit.addRemovedElement): Likewise.
	(ElementBuffer.Edit.addRemovedElements): Likewise.
	(ElementBuffer.Edit.addAddedElement): Likewise.
	(ElementBuffer.Edit.addAddedElements): Likewise.
	(ElementBuffer.Edit<init>): Improved docs, call addRemovedElements and 
	addAddedElements.
	(ElementBuffer.getEditForParagraphAndIndex): New method.
	(ElementBuffer.removeUpdate): Changed type of paragraph to 
	BranchElement.  Corrected style of adding the edit to use the new Edit
	facilities.
	(ElementBuffer.changeUpdate): Changed style of adding the edit to use
	the new Edit facilities.
	(ElementBuffer.split): Likewise.
	(ElementBuffer.insertParagraph): Likewise.
	(ElementBuffer.insertContentTag): Likewise.
	(ElementBuffer.insert): Push all BranchElements until the deepest one, 
	not just the root and the first one. Apply the structural changes to 
	the tree at the same time as updating the DocumentEvent.
	(ElementBuffer.insertUpdate): Fixed docs.  Removed the special case 
	handling of EndTags as the first ElementSpec.  Instead have to handle
	ContentTags as a special case if they are the first ElementSpec and if
	not have to fracture the tree.
	(ElementBuffer.createFracture): New method.  May not be complete yet.
	Added FIXME indicating what may remain to be done.
	(ElementBuffer.insertFirstContentTag): New method.
	(ElementBuffer.insertFracture): Added FIXME explaining what remains to
	be done.  Changed the adding of edits to use the new Edit facilities.
	Removed the adding of edits for Elements that weren't in the tree prior
	to the insertion.
	(insertUpdate): Removed incorrect condition for setting a StartTag's
	direction to JoinNextDirection.
	* javax/swing/text/StyleContent.java: 
	(SmallAttributeSet.toString): Fixed an off-by-one error in the loop 
	that was causing an ArrayOutOfBoundsException.
  
2006-01-17  Roman Kennke  <kennke@aicas.com>
  
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	(Java_gnu_java_nio_channels_FileChannelImpl_init): Improved
	exception messages a little.
	(Java_gnu_java_nio_channels_FileChannelImpl_open): Provided
	alternative implementation for systems without filesystems.
	Replaced snprintf with the corresponding target native macro.
	(Java_gnu_java_nio_channels_FileChannelImpl_implCloseChannel):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_available): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_size): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_implPosition): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_seek):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_implTruncate):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_mapImpl): Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_read__):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_read___3BII):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_write__I):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_force):
	Only do something when we have a filesystem.
	(Java_gnu_java_nio_channels_FileChannelImpl_write___3BII):
	Replaced ssize_t variables with jint. Provided
	alternative implementation for systems without filesystems.
	(Java_gnu_java_nio_channels_FileChannelImpl_lock): Reimplemented
	to use the corresponding target native macro.
	(Java_gnu_java_nio_channels_FileChannelImpl_unlock): Reimplemented
	to use the corresponding target native macro.
  
2006-01-17  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultTextUI.java:
	Added deprecated tag.
	* javax/swing/text/JTextComponent.java
	(AccessibleJTextComponent): Fixed API doc and
	partiall9 implemented.
	(getCaretPosition): Fixed API doc and implemented.
	(getSelectedText): Fixed API doc.
	(getSelectionStart): Likewise.
	(getSelectionEnd): Likewise.
	(caretUpdate): Fixed API doc and
	partially implemented.
	(getAccessibleStateSet): Likewise.
	(getAccessibleRole): Fixed API doc and implemented.
	(getAccessibleEditableText): Implemented.
	(getAccessibleText): Fixed API doc and implemented.
	(insertUpdate): Fixed API doc.
	(changedUpdate): Likewise.
	(getIndexAtPoint): Likewise.
	(getRootEditorRect): Removed.
	(getCharacterBounds): Fixed API doc.
	(getCharCount): Likewise.
	(getCharacterAttribute): Likewise.
	(getAtIndex): Likewise.
	(getAfterIndex): Likewise.
	(getBeforeIndex): Likewise.
	(getAccessibleActionCount): Added function stub.
	(getAccessibleActionDescription): Added function,
	partially implemented.
	(doAccessibleAction): Added function stub.
	(setTextContents): Likewise.
	(insertTextAtIndex): Likewise.
	(delete): Likewise.
	(cut): Likewise.
	(paste): Likewise.
	(replaceText): Likewise.
	(selectText): Likewise.
	(setAttributes): Likewise.
	(getAccessibleContext): Implemented.
  
2006-01-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	Fixes bug #25817
	* gnu/regexp/RETokenRange.java(constructor):
	Keep lo and hi as they are.
	(match): Changed the case insensitive comparison.
  
2006-01-17  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	* gnu/regexp/RETokenChar.java(chain):
	Do not concatenate tokens whose insens flags are diffent.
  
2006-01-17  Roman Kennke  <kennke@aicas.com>
  
	* native/target/generic/target_generic_network.c:
	(targetGenericNetwork_receive): Fixed signature to match the
	corresponding .h file.
	(targetGenericNetwork_receiveWithAddressPort): Fixed signature
	to match the corresponding .h file.
  
2006-01-17  Roman Kennke  <kennke@aicas.com>
  
	* native/jni/classpath/jcl.c:
	(JCL_malloc): Replaced calls to malloc with the corresponding
	target layer macro.
	(JCL_free): Replaced calls to free with the corresponding
	target layer macro.
	* native/jni/classpath/native_state.c:
	(cp_gtk_init_state_table_with_size): Replaced calls to malloc and
	calloc with the corresponding target layer macro.
	(remove_node): Replaced calls to free with the corresponding
	target layer macro.
	(add_node): Replaced calls to malloc with the corresponding
	target layer macro.

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-io/java_io_VMObjectStreamClass.c:
	(getFieldReference): Use MALLOC/FREE macros for portability instead
	of direct call to malloc() and free().

2006-01-17  Roman Kennke  <kennke@aicas.com>

	* native/jni/classpath/jcl.c: Added missing imports.
	(JCL_realloc): Fixed signature to include oldsize. This is needed
	for some targets. Make this function use the MEMORY_REALLOC macro
	for portability.
	* native/jni/classpath/jcl.h
	(JCL_realloc): Adjusted signature.
	* native/jni/java-io/java_io_VMFile.c:
	(Java_java_io_VMFile_create): Use target layer macro for handling
	errno, for portability.
	(Java_java_io_VMFile_length): Release filename string in error cases
	before returning.
	(Java_java_io_VMFile_list): Initialize filename variable. Use new
	version of JCL_realloc.
	* native/jni/java-net/java_net_VMInetAddress.c:
	(Java_java_net_VMInetAddress_getHostByName): Use renamed macro
	TARGET_NATIVE_NETWORK_GET_HOSTADDRESS_BY_NAME.
	* native/jni/java-net/javanet.c:
	(_javanet_bind): Make errorstr variable const to avoid compiler
	warning.
	(_javanet_set_option): Fixed typo.
	(_javanet_get_option): Fixed typo.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	(Java_gnu_java_nio_channels_FileChannelImpl_open): Made
	error_string variable const to avoid compiler warning.
	* native/target/generic/target_generic_file.h:
	Replaced // comments with /* */ comments to avoid compiler warnings.
	Added some spaces to make code better readable.
	* native/target/generic/target_generic_memory.h:
	Replaced // comments with /* */ comments to avoid compiler warnings.
	* native/target/generic/target_generic_misc.c:
	Removed unused TARGET_NATIVE_MISC_FORMAT_STRING macro. This caused
	compiler warnings due to use of varargs.
	* native/target/generic/target_generic_misc.h:
	Removed unused TARGET_NATIVE_MISC_FORMAT_STRING macro. This caused
	compiler warnings due to use of varargs.
	* native/target/generic/target_generic_network.h:
	Replaced // comments with /* */ comments to avoid compiler warnings.
	(targetGenericNetwork_receive): Fixed signature to use signed chars
	for buffer parameter to avoid warning when passing a jbyte to the
	function.
  
2006-01-17  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/StyleConstants.java
	(getAlignment): Removed isDefined() check, so that resolving parent is 
	used for lookup,
	(getBackground): Likewise, plus changed default value to Color.BLACK,
	(getBidiLevel): Removed isDefined() check,
	(getComponent): Likewise,
	(getFirstLineIndent): Likewise,
	(getFontFamily): Likewise,
	(getFontSize): Likewise,
	(getForeground): Likewise,
	(getIcon): Likewise,
	(getLeftIndent): Likewise,
	(getLineSpacing): Likewise,
	(getRightIndent): Likewise,
	(getSpaceAbove): Likewise,
	(getSpaceBelow): Likewise,
	(getTabSet): Likewise,
	(isBold): Likewise,
	(isItalic): Likewise,
	(isStrikeThrough): Likewise,
	(isSubscript): Likewise,
	(isSuperscript): Likewise,
	(isUnderline): Likewise.

2006-01-17  Gary Benson  <gbenson@redhat.com>

	* java/lang/System.java (setSecurityManager): Catch
	ClassNotFoundException not Throwable.

2006-01-16  Anthony Green  <green@redhat.com>

	PR classpath/25803
	* gnu/java/net/protocol/http/Request.java
	  (createResponseBodyStream): Remove Content-Encoding for
	  compressed streams.
  
2006-01-16  Chris Burdess  <dog@gnu.org>
  
	* gnu/xml/stream/XMLParser.java,
	  gnu/xml/stream/XMLStreamWriterImpl.java: Thoroughly check
	  XMLStreamWriter arguments for conformance to the XML specifications.
	* gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/Template.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/xpath/LangFunction.java,
	  gnu/xml/xpath/Selector.java: better handling of template priorities;
	  fix indents when pretty-printing; recursive tests for xml:lang.
	* gnu/xml/util/XHTMLWriter.java,
	  gnu/xml/util/XMLWriter.java: Deprecate old serializer classes.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/MinGW/.cvsignore: New file.
	* native/target/RTEMS/.cvsignore: New file.
	* native/target/SunOS/.cvsignore: New file.
	* native/target/embOS/.cvsignore: New file.
	* native/target/posix/.cvsignore: New file.

2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>

	* javax/swing/text/StyleConstants.java: Updated API docs all over.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* configure.ac: Include new target native directories in build.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_file.h: Added missing
	include.
	* native/target/generic/target_generic_network.c: Fixed several
	typos and includes.
	* native/target/generic/target_generic_network.h: Likewise.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/Makefile.am: Adjusted SUBDIRS and DIST_SUBDIRS
	to include the new targets.
	* native/target/posix/Makefile.am: Fixed filenames.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/Makefile.am: Include new targets.
	* native/target/Linux/Makefile.am: Include new memory layer.
	* native/target/MinGW/Makefile.am: New file. Includes MinGW in dist.
	* native/target/RTEMS/Makefile.am: New file. Includes RTEMS in dist.
	* native/target/SunOS/Makefile.am: New file. Includes SunOS in dist.
	* native/target/embOS/Makefile.am: New file. Includes embOS in dist.
	* native/target/generic/Makefile.am: Include new memory and math
	layer.
	* native/target/posix/Makefile.am: New file. Includes posix in dist.
  
2006-01-16  Ito Kazumitsu  <kaz@maczuka.gcd.org>
  
	Fixes bug #22884
	* gnu/regexp/RE.java(initialize): Parse embedded flags.
	* gnu/regexp/RESyntax.java(RE_EMBEDDED_FLAGS): New syntax bit.
  
2006-01-16  Roman Kennke  <kennke@aicas.com>
  
	* native/target/generic/target_generic_network.c: Fixed typo.
	* native/target/generic/target_generic_network.h: Fixed typo.
  
2006-01-16  Nicolas Geoffray  <nicolas.geoffray@menlina.com>
  
	* doc/vmintegration.texinfo: Updated subsection of the
	java.lang.InstrumentationImpl documentation.
  
2006-01-16  Roman Kennke  <kennke@aicas.com>
  
	* native/target/RTEMS/target_native.h,
	* native/target/RTEMS/target_native_file.h,
	* native/target/RTEMS/target_native_io.h,
	* native/target/RTEMS/target_native_math.h,
	* native/target/RTEMS/target_native_memory.h,
	* native/target/RTEMS/target_native_misc.h,
	* native/target/RTEMS/target_native_network.h:
	New files. Implement the target native layer for the RTEMS platform.
  
2006-01-16  Roman Kennke  <kennke@aicas.com>
  
	* native/target/SunOS/target_native.h,
	* native/target/SunOS/target_native_file.h,
	* native/target/SunOS/target_native_io.h,
	* native/target/SunOS/target_native_math.h,
	* native/target/SunOS/target_native_memory.h,
	* native/target/SunOS/target_native_misc.h,
	* native/target/SunOS/target_native_network.h:
	New files. Implement the target native layer for the SunOS platform.
  
2006-01-16  Roman Kennke  <kennke@aicas.com>
  
	* native/target/MinGW/target_native.h,
	* native/target/MinGW/target_native_file.h,
	* native/target/MinGW/target_native_io.h,
	* native/target/MinGW/target_native_math.h,
	* native/target/MinGW/target_native_memory.h,
	* native/target/MinGW/target_native_misc.h,
	* native/target/MinGW/target_native_network.h:
	New files. Implement the target native layer for the MinGW
	platform.
  
2006-01-16  Audrius Meskauskas  <AudriusA@Bioinformatics.org>
  
	PR 25770
	* javax/swing/DefaultCellEditor.java
	(delegate): Assign new instance immediately.
	(DefaultCellEditor(JTextField textfield)): Require 2 clicks.
	(getTableCellEditorComponent): Rewritten.
	(prepareAsJTextField):New method (add listener only once).
	* javax/swing/JTable.java
	(editingCanceled): Rewritten.
	(editingStopped ): Rewritten.
	(rowAtPoint): Mind row margin.
	(getCellRect): Mind row margin.
	(getDefaultEditor): Removing JTextComponent border.
	(editCellAt): Rewritten.
	* javax/swing/plaf/basic/BasicTableUI.java (MouseInputHandler):
	Activate editing mode by the mouse clicks.
	(getMaximumSize): Mind row margin.
	(getPreferredSize): Mind row margin.
	(TableAction): Added 'stop editing' command. 

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* jni/java-io/java_io_VMFile.c
	(Java_java_io_VMFile_list): Use new 4 argument version of
	TARGET_NATIVE_FILE_READ_DIR macro.
	* target/Linux/target_native_io.h: Fixed comment at #endif.
	* target/Linux/target_native_memory.h: New file. Contains
	portability macros for memory operations.
	* target/generic/target_generic.c: New file. Contains some functions
	for portability.
	* target/generic/target_generic.h: Use posix target and shorter macro
	names if CP_NEW is set. 
	* target/generic/target_generic_file.h: Use posix target and shorter
	macro names if CP_NEW is set.
	(TARGET_NATIVE_FILE_READ_DIR): New parameter for maxNameLength.
	* target/generic/target_generic_io.c: New file. Contains some
	functions for IO portability.
	* target/generic/target_generic_io.h: Use posix target and shorter
	macro names if CP_NEW is set.
	* target/generic/target_generic_misc.c: New file. Contains some
	functions for miscallaneaous portability issues.
	* target/generic/target_generic_misc.h: Use posix target and shorter
	macro names if CP_NEW is set.
	* target/generic/target_generic_network.c: New file. Contains some
	functions for networking portability.
	* target/generic/target_generic_network.h: Use posix target and
	shorter	macro names if CP_NEW is set.
	* target/posix/Makefile.am,
	* target/posix/target_posix.c,
	* target/posix/target_posix.h,
	* target/posix/target_posix_file.c,
	* target/posix/target_posix_file.h,
	* target/posix/target_posix_io.c,
	* target/posix/target_posix_io.h,
	* target/posix/target_posix_math.c,
	* target/posix/target_posix_math.h,
	* target/posix/target_posix_memory.c,
	* target/posix/target_posix_memory.h,
	* target/posix/target_posix_misc.c,
	* target/posix/target_posix_misc.h,
	* target/posix/target_posix_network.c,
	* target/posix/target_posix_network.h:
	New files. This implements the target native layer macros for
	Posix-like systems.

2006-01-16  Gary Benson  <gbenson@redhat.com>

	* java/net/SocketPermission.java (implies): Fix action checks.

2006-01-16  Roman Kennke  <kennke@aicas.com>

	* native/target/generic/target_generic_math_float.h: Removed. This
	file has been replaced by target_generic_math.h.
	* native/target/generic/target_generic_math_int.h: Removed. This
	file has been replaced by target_generic_math.h.
	* native/target/generic/target_generic_math.h: New file. Replaces
	the old _int and _float versions.
	* native/target/Linux/target_native_math_float.h: Removed. This
	file has been replaced by target_native_math.h.
	* native/target/Linux/target_native_math_int.h: Removed. This
	file has been replaced by target_native_math.h.
	* native/target/Linux/target_native_math.h: New file. Replaces
	the old _int and _float versions.
	* native/target/Linux/Makefile.am: Adjusted for the changed
	filenames.
	* native/jni/java-io/java_io_VMFile.c: Include target_native_math.h
	instead of target_native_math_int.h.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c:
	Likewise.
	* native/target/generic/target_generic_file.h: Likewise.
  
2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/MutableAttributeSet.java: Updated API docs all over.
  
2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/SimpleAttributeSet.java
	(SimpleAttributeSet()): Initialise storage directly,
	(SimpleAttributeSet(AttributeSet)): Removed null check and documented
	NullPointerException,
	(containsAttribute): If key is found locally, don't check resolving
	parent if the value doesn't match,
	(getAttribute): Removed redundant instanceof and cast.
  
2006-01-16  Gary Benson  <gbenson@redhat.com>
  
	* java/lang/System.java (setSecurityManager): Ensure policy
	files are loaded before a security manager is put in place.
  
2006-01-16  David Gilbert  <david.gilbert@object-refinery.com>
  
	* javax/swing/text/SimpleAttributeSet.java: Updated API docs all over.
  
2006-01-16  Wolfgang Baer  <WBaer@gmx.de>
  
	* javax/print/attribute/standard/MediaSize.java: 
	(static_initializer): Added comment.
	(MediaSize): Added javadoc to mention cache registration.
	(MediaSize): Likewise.
	(MediaSize): Likewise.
	(MediaSize): Likewise.
  
2006-01-16  Raif S. Naffah  <raif@swiftdsl.com.au>
  
	PR classpath/25202
	* gnu/javax/security/auth/login/ConfigFileTokenizer.java: New class.
	* gnu/javax/security/auth/login/ConfigFileParser.java: New class.
	* gnu/javax/security/auth/login/GnuConfiguration.java: New class.
	* javax/security/auth/login/AppConfigurationEntry.java: Updated
	  copyright year.
	  (toString): Added method implementation.
	  (LoginModuleControlFlag.toString): Removed class name from result.
	* javax/security/auth/login/Configuration.java: Updated copyright year.
	  (getConfig(): replaced calls to NullConfiguration with
	  GnuConfiguration.

2006-01-15  Tom Tromey  <tromey@redhat.com>

	* javax/swing/text/html/HTMLDocument.java (parseBuffer): Genericized.
	* javax/swing/text/StyleContext.java (removeAttributes): Genericized.
	* java/beans/PersistenceDelegate.java (initialize): Genericized.
	* java/beans/Encoder.java (getPersistenceDelegate): Genericized.
	(setPersistenceDelegate): Likewise.

2006-01-15  Wolfgang Baer  <WBaer@gmx.de>

	* javax/print/attribute/standard/PrinterStateReasons.java: 
	(printerStateReasonSet): Genericize the return type.

2006-01-15  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax/swing/table/DefaultTableCellRenderer.java 
	(getTableCellRendererComponent): Render null as the empty cell.

2006-01-14  Anthony Green  <green@redhat.com>

        * java/net/ServerSocket.java (accept): Remove bogus
        security check.
	(implAccept): Add FIXME comment.

2006-01-14  Wolfgang Baer  <WBaer@gmx.de>

	Fixes bug #25387
	* javax/print/Doc.java: Added and enhanced documentation.
	* javax/print/SimpleDoc.java: New file.	
  
2006-01-14  Wolfgang Baer  <WBaer@gmx.de>
  
	* javax/print/attribute/standard/MediaSize.java: 
	(Other.TABLOID): New MediaSize added in 1.5
  
2006-01-14  Chris Burdess  <dog@gnu.org>
  
	* gnu/xml/stream/SAXParser.java: Ensure that parser is reset
	  correctly when I/O and runtime exceptions occur during parsing.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* gnu/java/awt/peer/swing/SwingButtonPeer.java,
	* gnu/java/awt/peer/swing/SwingCanvasPeer.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/SwingFramePeer.java,
	* gnu/java/awt/peer/swing/SwingLabelPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuBarPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuItemPeer.java,
	* gnu/java/awt/peer/swing/SwingMenuPeer.java,
	* gnu/java/awt/peer/swing/SwingPanelPeer.java,
	* gnu/java/awt/peer/swing/SwingTextFieldPeer.java,
	* gnu/java/awt/peer/swing/SwingToolkit.java,
	* gnu/java/awt/peer/swing/SwingWindowPeer.java,
	* gnu/java/awt/peer/swing/package.html:
	New files. Implemented some basic AWT peers based on Swing.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/peer/ComponentPeer.java: Added API docs all over.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/MenuComponent.java: Reformatted to better match our
	coding style.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Frame.java: Reformatted to better match our
	coding style.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/MenuBar.java
	(accessibleContext): Removed unnecessary field. This is already
	defined in MenuComponent.
	(setHelpMenu): Renamed the peer variable to myPeer because it was
	hiding a field of MenuComponent.
	(addNotify): Removed unnecessary cast.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/MenuBar.java: Reformatted to better match our
	coding style.
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/MenuBar.java
	(frame): New field.
	(removeNotify): Clear frame field when beeing removed from the
	frame.
	* java/awt/Frame.java
	(setMenuBar): Store a reference of the frame in the MenuBar.
	* java/awt/MenuComponent.java
	(postEvent): Implemented to forward the call to the parent until
	a parent can handle the event.
	(dispatchEvent): Moved handling of old style events from
	dispatchEventImpl() to here.
	(dispatchEventImpl): Moved handling of old style events to
	dispatchEvent().
  
2006-01-13  Roman Kennke  <kennke@aicas.com>
  
	* java/awt/Component.java
	(dispatchEvent): Moved handling of old style events from
	dispatchEventImpl() to this method.
	(translateEvent): Removed unnecessary cast.
	(dispatchEventImpl): Moved handling of old style events to
	dispatchEvent().
	
2006-01-13  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(createDefaultRoot): Removed FIXME.
	(setLogicalStyle): Added fireUndoableEditUpdate call and 
	removed FIXME.
  
2006-01-13  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java
	(Edit): New inner class.
	(changeUpdate): Changed addEdit call to add a new
	instance of Edit to the edits Vector, so addEdits can
	be done later.
	(split): Likewise.
	(insertParagraph): Likewise.
	(insertFracture): Likewise.
	(insertContentTag): Likewise.
	(insert): Added loop to go through edits Vector and perform
	addEdit on each object.
  
2006-01-13  Chris Burdess  <dog@gnu.org>
  
	* gnu/xml/transform/AbstractNumberNode.java,
	  gnu/xml/transform/ApplyImportsNode.java,
	  gnu/xml/transform/ApplyTemplatesNode.java,
	  gnu/xml/transform/AttributeNode.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/DocumentFunction.java,
	  gnu/xml/transform/ElementNode.java,
	  gnu/xml/transform/ForEachNode.java,
	  gnu/xml/transform/IfNode.java,
	  gnu/xml/transform/LiteralNode.java,
	  gnu/xml/transform/MessageNode.java,
	  gnu/xml/transform/OtherwiseNode.java,
	  gnu/xml/transform/ParameterNode.java,
	  gnu/xml/transform/ProcessingInstructionNode.java,
	  gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/Template.java,
	  gnu/xml/transform/TemplateNode.java,
	  gnu/xml/transform/TextNode.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/transform/ValueOfNode.java,
	  gnu/xml/transform/WhenNode.java,
	  gnu/xml/xpath/NodeTypeTest.java,
	  gnu/xml/xpath/Selector.java: simplified debugging output; ignore
	  with-param parameters when template does not define parameters; apply
	  conflict resolution for templates; strip whitespace on documents
	  retrieved via document() function; allow node() to match document
	  nodes.

2006-01-13  Mark Wielaard  <mark@klomp.org>

	* doc/www.gnu.org/announce/20060113.wml: New file.
	* doc/www.gnu.org/newsitems.txt: Add 0.20 release announcement.
	* doc/www.gnu.org/downloads/downloads.wml: Add 0.20.
  
2006-01-13  Lillian Angel  <langel@redhat.com>
  
	* javax/swing/text/DefaultStyledDocument.java:
	Removed unused fields.
	(insert): Removed unused fields.
	(endEdit): Removed, not needed.
	(insertUpdate): Removed call to endEdit.
	(prepareContentInsertion): Removed, not needed.
	(insertContentTag): Removed call to prepareContentInsertion.
	(printElements): Removed, not needed.
	(attributeSetsAreSame): Removed, not needed.
  
2005-01-13  Mark Wielaard  <mark@klomp.org>

	* java/lang/reflect/Modifier.java (toString(int, StringBuffer)):
	Duplicate of toString(int, StringBuilder).

2005-01-13  Mark Wielaard  <mark@klomp.org>

	* configure.ac: Set version to 0.20.
	* NEWS: Add entries for all the new work done.

2005-01-13  Mark Wielaard  <mark@klomp.org>

	* javax/swing/text/DefaultCaret.java: Chain all AssertionErrors.

2005-01-13  Mark Wielaard  <mark@klomp.org>

	* java/util/regex/Pattern.java (Pattern): Chain REException.

2006-01-13  Chris Burdess  <dog@gnu.org>

	* gnu/xml/xpath/NameTest.java: Removed debugging output.

2005-01-13  Jeroen Frijters  <jeroen@frijters.net>

	* java/security/Security.java
	(getProperty): Added hack to skip security check when trusted
	code is direct caller.

2005-01-13  Jeroen Frijters  <jeroen@frijters.net>

	* java/io/PrintStream.java
	(line_separator, PrintStream(OutputStream,boolean)): Use
	SystemProperties.

2005-01-13  Jeroen Frijters  <jeroen@frijters.net>

	* gnu/java/nio/charset/Provider.java: Added comment about its
	special relation with CharsetProvider.
	(static): Removed.
	* gnu/java/nio/charset/iconv/IconvProvider.java: Added comment about
	its special relation with CharsetProvider.
	(static): Removed.
	* java/nio/charset/spi/CharsetProvider.java
	(CharsetProvider): Add special case to skip security check for
	built in providers.

2005-01-13  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JMenuItem.java (JMenuItem(Action)): Check whether
	name, accel, mnemonic and command are defined before setting.

2005-01-12  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(FileRenderer.getListCellRendererComponent): Set empty name and null
	icon when File is null.

2006-01-13  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/java/rmi/server/UnicastRef.java (newCall):
	Throw ConnectException after catching IOException.

2006-01-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Removed unneeded check.

2006-01-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertContentTag): If the direction is JoinNextDirection
	and we haven't come immediately after a fracture, adjust the Element
	offsets.  Added comment explaining the situation.
	(insert): Return early if no ElementSpecs passed in.  Removed redundant
	call to insertUpdate.  Fired the UndoableEditUpdate.

2006-01-12  Ito Kazumitsu  <kaz@maczuka.gcd.org>

	Fixes bug #22802
	* gnu/regexp/RE.java(initialize): Fixed the parsing of
	character classes within a subexpression.

2006-12-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertUpdate): Added check to check if attribute set is 
	empty.
	(insertUpdate): Added check to determine if last character
	is a newline. If it is, we should not be fracturing.
	(insert): Added check to determine if attribute set is empty.
	If it is, insertUpdate should not be called.

2006-12-12  Guilhem Lavaux  <guilhem@kaffe.org>

	* configure.ac: Check for isnan.

	* native/fdlibm/fdlibm.h: If we have a isnan function then do not
	define the macro.

2006-01-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/XMLParser.java: Corrected the handling of some XML
	  1.1 character ranges.

2006-01-12  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/TransferHandler.java:
	(TransferAction<init>): Call super constructor.  Fixes Mauve regression
	gnu/testlet/javax/swing/JTextField/CopyPaste.

2006-01-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>

	* resource/Makefile.am: Install 
	logging.properties into $(prefix)/lib.
	* resource/Makefile.am (securitydir): Changed to 
	$(prefix)/lib/security.

2006-01-12  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTextField.java
	(createDefaultModel): Moved installation of the filterNewlines
	property to setDocument().
	(setDocument): New method. Installs the filterNewlines property
	on the document.

2006-01-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomNode.java,
	  gnu/xml/transform/ElementAvailableFunction.java: Removed debugging
	  output.
	* gnu/xml/xpath/NameTest.java,
	  gnu/xml/xpath/NamespaceTest.java,
	  gnu/xml/xpath/Selector.java: Fix regression for namespace axis
	  navigation.
	* gnu/xml/transform/MessageNode.java: Use standard logging system
	  for outputting messages.

2006-01-12  Tom Tromey  <tromey@redhat.com>

	* java/net/InetAddress.java (DEFAULT_CACHE_SIZE): Removed.
	(DEFAULT_CACHE_PERIOD, DEFAULT_CACHE_PURGE_PCT): Likewise.
	(cache_size, cache_period, cache_purge_pct, cache): Likewise.
	(static initializer): Removed cache code.
	(checkCacheFor, addToCache): Removed.
	(getAllByName): Removed cache code.
	(lookup_time): Removed.
	(InetAddress): Updated.

2006-01-12  Chris Burdess  <dog@gnu.org>

	* gnu/xml/dom/DomDocument.java,
	  gnu/xml/dom/DomElement.java,
	  gnu/xml/dom/DomNode.java,
	  gnu/xml/stream/XMLParser.java,
	  gnu/xml/transform/Bindings.java,
	  gnu/xml/transform/ElementAvailableFunction.java,
	  gnu/xml/transform/ElementNode.java,
	  gnu/xml/transform/FunctionAvailableFunction.java,
	  gnu/xml/transform/NamespaceProxy.java,
	  gnu/xml/transform/StreamSerializer.java,
	  gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/xpath/Selector.java: Implement isEqualNode correctly for
	  document and element nodes; correct coalescing semantics when parsing;
	  attribute-sets can only refer to top-level variables and parameters;
	  fix namespace retrieval during element-available and
	  function-available functions; implement xsl:fallback for extension
	  elements; tokenize whitespace correctly during whitespace stripping;
	  correct following and previous node axes selectors.

2006-01-12  Roman Kennke  <kennke@aicas.com>

	* java/util/Hashtable.java
	(KeyEnumerator.nextElement): Added null check to avoid NPE.
	(ValueEnumerator.nextElement): Added null check to avoid NPE.

2006-01-12  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/GapContent.java
	(UndoInsertString): Changed name of class to InsertUndo to match the JDK.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* vm/reference/gnu/java/net/VMPlainSocketImpl.java (connect):
	Throw UnknowHostException when name could not be resolved.

2006-01-12  Jeroen Frijters  <jeroen@frijters.net>

	* java/net/URL.java
	(static, getURLStreamHandler): Use SystemProperties.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java (receive):
	Use packet.getLength().
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
	(nativeReceive): Check whether the receiver wants zero bytes.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/javanet.c (_javanet_recvfrom): Return -1 when
	other side orderly closed connection.
	* vm/reference/gnu/java/net/VMPlainSocketImpl.java
	(read(PlainSocketImpl)): Mask byte to return unsigned int. Return -1
	when end of stream reached.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	Remove asserts.
	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: Likewise.
	* native/jni/java-net/java_net_VMInetAddress.c: Likewise.
	* native/jni/java-net/java_net_VMNetworkInterface.c: Likewise.
	* native/jni/java-net/javanet.c: Likewise.

2006-01-12  Mark Wielaard  <mark@klomp.org>

	* native/fdlibm/mprec.c (Balloc): Disable assert to workaround
	PR classpath/23863.

2006-01-11  Chris Burdess  <dog@gnu.org>

	* gnu/xml/transform/AttributeNode.java,
	  gnu/xml/transform/ElementNode.java,
	  gnu/xml/transform/LiteralNode.java,
	  gnu/xml/transform/StreamSerializer.java,
	  gnu/xml/transform/StrippingInstruction.java,
	  gnu/xml/transform/Stylesheet.java,
	  gnu/xml/transform/TransformerImpl.java,
	  gnu/xml/transform/ValueOfNode.java,
	  gnu/xml/xpath/Expr.java,
	  gnu/xml/xpath/LocalNameFunction.java,
	  gnu/xml/xpath/NameFunction.java,
	  gnu/xml/xpath/NameTest.java,
	  gnu/xml/xpath/NamespaceUriFunction.java,
	  gnu/xml/xpath/NodeTypeTest.java,
	  gnu/xml/xpath/SubstringFunction.java,
	  javax/xml/namespace/QName.java: don't determine element namespace
	  from namespace aliases when specified; better namespace handling
	  when serializing elements; don't create HTML meta element unless
	  head element exists; correct encoding of CDATA sections containing
	  ']]>'; encode HTML character entity references; use ISO-Latin-1 as
	  default encoding for HTML output; rewrite of XSLT
	  strip-space/preserve-space handling; correct doctype-public and
	  doctype-system output attributes; insert generated doctype before
	  document element; fixed result tree whitespace stripping
	  algorithm; fixed semantics of XPath name, local-name, and
	  namespace-uri functions; name tests handle XML/XMLNS namespaces
	  correctly; fixed semantics of processing-instruction node test.
	* gnu/xml/transform/TransformerFactoryImpl.java: Add main method to
	  aid debugging.

2006-01-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(insertFracture): Added calls to addEdit for each time a structure 
	is changed. addEdit is called on the newBranch, previous, and parent
	structures.

2006-01-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertContentTag): Don't adjust the structure here.  
	This will have been taken care of in insertFracture.  Added a comment
	explaining that we need to add edits to the DocumentEvent and that
	this may be the place to do it.

2006-01-11  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertUpdate): Properly recreate Elements if the first
	tag is an end tag. Avoid NPE by pushing the proper Element on to the 
	elementStack when there is a start tag with JoinNextDirection.

2006-01-11  Roman Kennke  <kennke@aicas.com>

	Reported by: Fridjof Siebert <siebert@aicas.com>
	* java/util/Hashtable.java
	(KEYS): Removed unneeded field.
	(VALUES): Removed unneeded field.
	(ENTRIES): Removed unneeded field.
	(keys): Return a KeyEnumerator instance.
	(elements): Returns a ValueEnumerator instance.
	(toString): Use an EntryIterator instance.
	(keySet): Return a KeyIterator instance.
	(values): Return a ValueIterator instance.
	(entrySet): Return an EntryIterator instance.
	(hashCode): Use EntryIterator instance.
	(rehash): Changed this loop to avoid redundant reads and make
	it obvious that null checking is not needed.
	(writeObject): Use EntryIterator instance.
	(HashIterator): Removed class.
	(Enumerator): Removed class.
	(EntryIterator): New class.
	(KeyIterator): New class.
	(ValueIterator): New class.
	(EntryEnumerator): New class.
	(KeyEnumerator): New class.
	(ValueEnumerator): New class.

2006-01-11  Lillian Angel  <langel@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java
	(toString): Shouldn't append the '>' character here.
	(createDefaultRoot): Should not set the resolve parent. This
	causes problems when comparing attribute sets.

2006-01-10  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertUpdate): Rewritten to properly handle start and
	end tags.
	(ElementBuffer.insertFracture): New method.
	(ElementBuffer.insertContentTag): Removed unnecessary case for 
	JoinFractureDirection - this only applies to start tags, not content
	tags.
	(insertUpdate): Corrected conditions for setting direction to 
	JoinNextDirection.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* Makefile.am (EXTRA_DIST): Added ChangeLog-2004.
	* ChangeLog-2005: New File.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-nio/java_nio_VMDirectByteBuffer.c
	(get): Release the array with the correct pointer.
	(put): Release the array with the correct pointer. Copy the array
	around _before_ releasing it.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Fixed condition, to avoid ClasscastException.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicSplitPaneDivider.java
	(MouseHandler.mousePressed): Fixed indendation.
	(MouseHandler.mouseDragged): Fixed indendation.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(playSound): Added @since 1.4 to the API docs.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(maybeUpdateLayoutState): Also update the layout state, if the
	list has been invalidated since the last update.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/ComponentUI.java
	(update): Fixed indendation.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/ViewportLayout.java
	(layoutContainer): Fixed condition, so that Scrollable components
	are always forced to have to Viewport size, when they
	return true for getScrollableTracksViewportHeight() and ..Width().

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(validateInvalidComponents): Fixed condition to avoid NPE.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JViewport.java:
	(static_initializer): Removed unused variable myScrollMode.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JTabbedPane.java:
	Cleared API docs a little.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* java/util/StringTokenizer.java
	(StringTokenizer(String, String, boolean)):
	Don't trigger NPE here for conformance with the spec.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* java/util/ArrayList.java
	(DEFAULT_CAPACITY): Changed default capacity to 10, as specified.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java
	(GdkGraphics2D(GdkGraphics2D)): Added null check for the bg
	field to avoid NPE.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/javanet.c
	(_javanet_shutdownOutput): Replaced strerror() with
	TARGET_NATIVE_LAST_ERROR_STRING() for portability.
	(_javanet_shutdownInput): Replaced strerror() with
	TARGET_NATIVE_LAST_ERROR_STRING() for portability.

2006-01-10  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/EventSetDescriptor.java: Reformatted and
	fixed API docs.

2006-01-10  Roman Kennke  <kennke@aicas.com>

	* java/lang/SecurityManager.java
	Fully qualified AWT class references in API docs.

2006-01-10  Robert Schuster  <robertschuster@fsfe.org>

        * java/beans/EventSetDescriptor.java:
        (getGetListenerMethod): New method.

2006-01-10  Mark Wielaard  <mark@klomp.org>

	* lib/Makefile.am (GCJX): Add -g to get linenumber info.

2006-01-10  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/25727
	* java/util/Hashtable.java
	(contains): Call equals on existing value.
	(containsKey, get, put, remove): Call equals on existing key.
	(getEntry): Call equals on existing entry.

2006-01-10  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/24618
	* java/util/AbstractMap.java
	(equals(Object,Object)): Test for identity first.
	* java/util/WeakHashMap.java
	(WeakBucket.WeakEntry.equals): Use helper method to determine equality.
	(WeakBucket.WeakEntry.toString): Fixed string representation of
	null key.
	(internalGet): Use helper method to determine equality.

2006-01-09  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/EventSetDescriptor.java: Implemented the two 1.4
	constructors.

2006-01-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/PlainDocument.java:
	(insertUpdate): Handle special case of an insertion immediately 
	following a newline character.

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
	(connect): Added stream parameter to _connect() call.
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c
	(connect): Added stream parameter to _connect() call.
	* native/jni/java-net/javanet.c
	(_javanet_create_localfd): Added stream parameter. Look up
	fd field based on the stream parameter either in SocketImpl or
	in DatagramSocketImpl.
	(_javanet_connect): Added stream parameter. Call create_localfd
	using this stream parameter. Set localPort field either in
	SocketImpl or in DatagramSocketImpl, depending on the stream
	flag.
	* native/jni/java-net/javanet.c
	(_javanet_connect): Added stream parameter.

2006-01-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.management.Attribute.java: Grammar and 
	formatting fixes.

2006-01-09  Mark Wielaard  <mark@klomp.org>

	* gnu/java/nio/channels/FileChannelImpl.java (map): Throw correct
	exception when channel is not readable or writable.
	* native/jni/java-nio/gnu_java_nio_channels_FileChannelImpl.c
	(mapImpl): Add PROT_WRITE when mode == 'c' (MAP_PRIVATE). Make sure
	there is enough space to mmap().

2006-01-09  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/Introspector.java:
	(getBeanInfo(Class, int)): New method.
	(getBeanInfo(Class, Class): Moved common code in a new method.
	(merge): New method.

2006-01-09  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/XMLEncoder.java: Fix spelling mistakes.

2006-01-09  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultStyledDocument.java:
	(insertUpdate): Removed call to checkForInsertAfterNewline and instead
	inlined this method because it needs to change the value of the 
	finalStartTag and finalStartDirection variables.
	(checkForInsertAfterNewline): Removed this method.
	(handleInsertAfterNewline): Added case for making the start tag's 
	direction JoinNextDirection.

2006-01-09  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicTreeUI.java:
	Added new field.
	(setRowHeight): Row height is set to the max height of
	all the nodes, or 20 as a default value.
	(getPathBounds): Cleaned up code.
	(getMaxHeight): New helper function that gets the max 
	height of all the rows.
	(getClosestPathForLocation): Fixed to use getMaxHeight.
	(updateCachedPreferredSize): Likewise.
	(installUI): Shouldn't expand tree on startup.
	(getNodeDimensions): Fixed to use getMaxHeight.	

2006-01-09  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JList.java (setSelectedIndex): Clear selection when
	argument is negative.

2006-01-08  Mark Wielaard  <mark@klomp.org>

	* java/net/InetAddress.java (getInaddrAny): Explicitly set hostName.

2006-01-09  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* javax.management.Attribute.java: New file. 

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* java/net/DatagramSocketImpl.java
	(localPort): Renamed to localport for correct access from native
	code.

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* javax/swing/Popup.java
	(LightweightPopup.hide): Repaint the layered pane when popup is
	removed.

2006-01-09  Roman Kennke  <kennke@aicas.com>

	* java/awt/Container.java
	(remove): Don't repaint the container here.

2006-01-08  Tom Tromey  <tromey@redhat.com>

	* java/lang/InheritableThreadLocal.java: Organized imports.

2006-01-08  Ito Kazumitsu  <kaz@maczuka.gcd.org>  

	Fixes bug #25679
	* gnu/regexp/RETokenRepeated.java(match): Optimized the case
	when an empty string matched an empty token.

2006-01-08  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java: Check standalone status for mixed
	  content models from external entities.
	* gnu/xml/stream/UnicodeReader.java: Report error instead of
	  attempting to continue with unpaired surrogates.
	* gnu/xml/stream/XMLParser.java: Don't normalize LF equivalents when
	  resolving entities with character entity references; better
	  checking of valid character ranges; don't report an error for URI
	  fragments in notation declarations; check unbound namespace
	  prefixes for elements and attributes, including XML 1.1 unbinding
	  syntax; namespace-aware checking of attribute duplicates.

2006-01-08  Robert Schuster  <robertschuster@fsfe.org>

	* java/beans/Statement.java: Doc fixes.
	(doExecute): Workaround for Class.forName call.
	(toString): Made output look more like on the JDK.
	* java/beans/Expression.java: Doc fixes.
	(toString): Made output look more like on the JDK.
	* java/beans/PersistenceDelegate.java,
	java/beans/DefaultPersistenceDelegate.java,
	java/beans/Encoder.java,
	java/beans/XMLEncoder.java: New file.
	* 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: New file.
	* gnu/java/beans/encoder/elements/Array_Get.java,
	gnu/java/beans/encoder/elements/Element.java,
	gnu/java/beans/encoder/elements/List_Set.java,
	gnu/java/beans/encoder/elements/Array_Set.java,
	gnu/java/beans/encoder/elements/NullObject.java,
	gnu/java/beans/encoder/elements/StaticMethodInvocation.java,
	gnu/java/beans/encoder/elements/StaticFieldAccess.java,
	gnu/java/beans/encoder/elements/StringReference.java,
	gnu/java/beans/encoder/elements/ClassResolution.java,
	gnu/java/beans/encoder/elements/ArrayInstantiation.java,
	gnu/java/beans/encoder/elements/PrimitiveInstantiation.java,
	gnu/java/beans/encoder/elements/ObjectReference.java,
	gnu/java/beans/encoder/elements/ObjectInstantiation.java,
	gnu/java/beans/encoder/elements/List_Get.java,
	gnu/java/beans/encoder/elements/MethodInvocation.java: New file.

2006-01-08  Chris Burdess  <dog@gnu.org>

	* java/lang/Character.java (toChars,toCodePoint): Correct these
	  methods to use algorithms from Unicode specification.
 
2006-01-08  Mark Wielaard  <mark@klomp.org>

	* native/jni/xmlj/Makefile.am (libxmlj_la_LIBADD): Add jcl.o.

2006-01-07  Paul Jenner  <psj@harker.dyndns.org>

	Fixes bug #25711
	* examples/Makefile.am: Corrected DESTDIR install paths.

2006-01-07  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* org/omg/CORBA/INVALID_ACTIVITY.java: Removed non - 
	ASCII character (line 46).

2006-01-07  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/TableView.java: New file.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/BufferedReader.java: Removed commented out code.
	* gnu/xml/stream/XIncludeFilter.java: Correct XML Base behaviour.
	* gnu/xml/stream/XMLParser.java: Make additional StAX properties
	  available; correct handling of unparsed entity references;
	  absolutize all base URIs; remove commented out code.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XMLParser.java: Add SAX property to return base
	  URI of the current event.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java: Add SAX feature to set XML Base
	  aware processing.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* gnu/xml/stream/SAXParser.java,
	  gnu/xml/stream/XIncludeFilter.java,
	  gnu/xml/stream/XMLParser.java: Updated documentation.

2006-01-07  Chris Burdess  <dog@gnu.org>

	* AUTHORS: add self.

2006-01-06  Casey Marshall  <csm@gnu.org>

	* AUTHORS: add myself.

2006-01-06  Casey Marshall  <csm@gnu.org>

	PR classpath/25699
	* javax/crypto/CipherInputStream.java (logger): new constant.
	(cipher): make final.
	(outLength, inBuffer, inLength): removed.
	(isStream): make final.
	(VIRGIN, LIVING, DYING, DEAD, state): removed.
	(eof): new field.
	(<init>): call `super,' not `this;' remove `inBuffer' and
	`outBuffer' initialization; init `eof;' add debug logging.
	(<init>): call `this' with a new null cipher.
	(available): fix javadoc to reflect the real semantics; if we
	don't have a buffer, call `nextBlock.'
	(close): synchronize.
	(read): synchronize; fix testing for buffered data.
	(read): synchronize; add `skip' semantics if first argument is
	`null;' decrypt stream cipher data only if there is any; fix tests
	for buffered data.
	(skip): stop using `available' to see how many data are buffered.
	(nextBlock): simplify to use cipher-allocated output buffers
	instead of internally allocated ones.

2006-01-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (codePointCount): Fixed javadoc.

2006-01-06  Tom Tromey  <tromey@redhat.com>

	* java/lang/String.java (contains): Added @since.

2006-01-06  Ito Kazumitsu  <kaz@maczuka.gcd.org>  

	Fixes bug #25616
	* gnu/regexp/RE.java(initialize): Allow repeat.empty.token.
	* gnu/regexp/RETokenRepeated.java(match): Break the loop
	when an empty string matched an empty token.

2006-01-06  Jeroen Frijters  <jeroen@frijters.net>

	PR classpath/24858
	* gnu/java/util/WeakIdentityHashMap.java: New file.
	* java/lang/InheritableThreadLocal.java
	(newChildThread): Modified to remove key indirection.
	* java/lang/Thread.java
	(locals): Changed type to WeakIdentityHashMap.
	(getThreadLocals): Instantiate WeakIdentityHashMap instead of
	WeakHashMap.
	* java/lang/ThreadLocal.java
	(key, Key): Removed.
	(get, set): Changed to use "this" instead of "key".

2006-01-06  Dalibor Topic  <robilad@kaffe.org>

	* native/fdlibm/Makefile.am (libfdlibm_la_SOURCES): Removed java-assert.h.

	* native/fdlibm/java-assert.h: Removed file.

	* native/fdlibm/mprec.c: Include assert.h. Don't include java-assert.h.
	Replaced use of JvAssert by assert.

2006-01-05  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/text/DefaultCaret.java:
	(setDot): Fixed paramater to Math.max to be this.dot and not the 
	parameter dot.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getCellHeight): New helper method.
	(getCellBounds): Use new helper method for determining the cell
	height.
	(paint): Don't call list.indexToLocation() but instead call
	directly into the same UI method.
	(locationToIndex): Fixed calculation of # visible rows and handling
	of cell heights.
	(indexToLocation): Fixed calculation of # visible rows and handling
	of cell heights.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(createList): Set VERTICAL_SCROLLBAR_NEVER mode on the JScrollPane
	in the file chooser.

2006-01-05  Anthony Balkissoon  <abalkiss@redhat.com>

	* javax/swing/JTextPane.java:
	(replaceSelection): If the document is an AbstractDocument, use replace
	rather than remove and insert.
	* javax/swing/event/EventListenerList.java:
	(getListeners): Reversed the order of the listeners to match the 
	reference implementation.
	* javax/swing/text/AbstractDocument.java:
	(insertString): Add the UndoableEdit from the content.insertString call
	to the DocumentEvent.
	(DefaultDocumentEvent.toString): Implemented.
	* javax/swing/text/DefaultCaret.java:
	(setDot): Make sure dot is > 0 and less than the length of the 
	document.
	* javax/swing/text/DefaultStyledDocument.java:
	(ElementBuffer.insertUpdate): Set the modified tag of the document 
	event when we get start and end tags.  This ensures that we create the
	proper BranchElements in endEdit().
	(ElementBuffer.insertUpdate): Added FIXME to handle 
	JoinFractureDirection case.
	(insertUpdate): Added code to check if we're inserting immediately 
	after a newline and to handle this case (create start and end tags). 
	Only change the direction of the first and last tags if they are of 
	type ContentType.
	(checkForInsertAfterNewline): New helper method.
	(handleInsertAfterNewline): Likewise.
	* javax/swing/text/View.java:
	(updateLayout): Avoid NPE by checking if shape is null.  Repaint 
	container.

2006-01-05  Mark Wielaard  <mark@klomp.org>

	* newsitems.txt: Add fosdem meeting.
	* events/events.wml: Likewise.
	* events/fosdem06.wml: New file.
	
2006-01-05  Lillian Angel  <langel@redhat.com>
	
	* javax/swing/text/GapContent.java
	(createPosition): No positions should be created inside the
	gap. Fixed check to ensure this does not happen.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/RepaintManager.java
	(validateInvalidComponents): Search for the validate root
	and start validating there.

2006-01-05  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(ComponentHandler): Removed unneeded class.
	(ListDataHandler.contentsChanged): Revalidate instead of calling
	damageLayout().
	(ListDataHandler.intervalAdded): Revalidate instead of calling
	damageLayout().
	(ListDataHandler.intervalRemoved): Revalidate instead of calling
	damageLayout().
	(PropertyChangeHandler.propertyChange): Or flags together instead
	of adding them. Don't call damageLayout().
	(componentListener): Removed unnecessary field.
	(damageLayout): Removed unnecessary method.
	(installListeners): Don't install unnecessary listeners.
	(uninstallListeners): Dito.
	(getPreferredSize): Don't ask for the real list height and
	calculate with the previously calculated list height.
	(locationToIndex): Renamed list parameter to l so that it doesn't
	shadow the field with the same name.
	(indexToLocation): Renamed list parameter to l so that it doesn't
	shadow the field with the same name.

2006-01-04  Tom Tromey  <tromey@redhat.com>

	* include/.cvsignore: Ignore config-int.h.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getPreferredSize): Rewritten to match the specs.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/JFileChooser.java
	(showOpenDialog): Set fixed width on the dialog.
	(showSaveDialog): Set fixed width on the dialog.
	(showDialog): Set fixed width on the dialog.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(locationToIndex): Added FIXME about getVisibleRowCount() usage.
	Adjusted iteration to not use visibleRowCount and instead iterate
	over the real number of elements in cellHeights.
	(indexToLocation): Added FIXME about getVisibleRowCount() usage.
	Adjusted iteration to not use visibleRowCount and instead iterate
	over the real number of elements in cellHeights.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c,
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	Added __attribute__((__unused__)) macros to avoid gcc warnings.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* vm/reference/gnu/java/net/VMPlainSocketImpl.java: New VM class.
	* vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java:
	New VM class.
	* native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: New file.
	* native/jni/java-net/gnu_java_net_VMPlainDatagramSocketImpl.c:
	New file.
	* native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c:
	Removed.
	* native/jni/java-net/gnu_java_net_PlainSocketImpl.c: Removed.
	* native/jni/java-net/Makefile.am: Adjusted for new source files.
	* gnu/java/net/PlainDatagramSocketImpl.java: Use new VM interface.
	* gnu/java/net/PlainSocketImpl.java: Use new VM interface.
	* include/gnu_java_net_PlainDatagramSocketImpl.h: Removed.
	* include/gnu_java_net_PlainSocketImpl.h: Removed.
	* include/gnu_java_net_VMPlainDatagramSocketImpl.h: New header file.
	* include/gnu_java_net_VMPlainSocketImpl.h: New header file.

2006-01-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(propertyChange): Fixed to change the combo box label
	appropriately. Also, fixed to set the textfield's text
	correctly.
	(editFile): Fixed size of editing field.
	(installComponents): Correctly aligned all panels.
	(installStrings): Fixed to set the label's text
	appropriately depending on the dialog type.

2006-01-04  Lillian Angel  <langel@redhat.com>

	PR classpath/25473 
	PR classpath/25479
	* javax/swing/JTree.java
	(JTree): Because some L&F defaults have been updated,
	the selectionMode for the tree needed to be set to SINGLE.
	* javax/swing/plaf/basic/BasicFileChooserUI.java:
	Initialized accessoryPanel.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(installComponents): Added accessoryPanel to the filechooser.

2006-01-04  Dalibor Topic  <robilad@kaffe.org>

	* configure.ac: Added AX_CREATE_STDINT_H

	* include/Makefile.am (DISTCLEANFILES): Remove config-int.h.

	* m4/ax_create_stdint_h.m4: New file.

	* native/fdlibm/mprec.h: Include config-int.h. Removed C99
	typedefs. Removed stdint.h and inttypes.h includes.
 
2006-01-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JMenuItem.java (configurePropertiesFromAction): Only
	register keyboard action when accelerator is not null.
	* javax/swing/plaf/basic/BasicMenuItemUI.java (propertyChange): Only
	re-register accelerator if not null.
	(installKeyboardActions): Only put accelerator in map when not null.

2006-01-04  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Removed unneeded default.
	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(initComponentDefaults): Added and fixed several defaults.

2006-01-04  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicHTML.java: New class.

2006-01-03  Tom Tromey  <tromey@redhat.com>

	* java/io/OutputStreamWriter.java (OutputStreamWriter): Added @since.
	* java/io/InputStreamReader.java (InputStreamReader): Added @since.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* org/omg/CORBA/INVALID_ACTIVITY.java: Remove non-ascii characters.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/plaf/metal/MetalLookAndFeel.java (MetalLookAndFeel):
	Always call createDefaultTheme().
	(createDefaultTheme): Check whether theme is still null.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* gnu/java/awt/peer/gtk/GdkGraphics2D.java (setBackground): Set to
	Color.WHITE if null.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/metal/MetalLookAndFeel.java
	(getDescription): Fixed to return the correct string.
	(getID): Likewise.
	(getName): Likewise.
	(getDefaults): Added check to avoid NPE.
	(getAcceleratorForeground): Likewise.
	(getAcceleratorSelectedForeground): Likewise.
	(getBlack): Likewise.
	(getControl): Likewise.
	(getControlDarkShadow): Likewise.
	(getControlDisabled): Likewise.
	(getControlHighlight): Likewise.
	(getControlInfo): Likewise.
	(getControlShadow): Likewise.
	(getControlTextColor): Likewise.
	(getControlTextFont): Likewise.
	(getDesktopColor): Likewise.
	(getFocusColor): Likewise.
	(getHighlightedTextColor): Likewise.
	(getInactiveControlTextColor): Likewise.
	(getInactiveSystemTextColor): Likewise.
	(getMenuBackground): Likewise.
	(getMenuDisabledForeground): Likewise.
	(getMenuForeground): Likewise.
	(getMenuSelectedBackground): Likewise.
	(getMenuSelectedForeground): Likewise.
	(getMenuTextFont): Likewise.
	(getPrimaryControl): Likewise.
	(getPrimaryControlDarkShadow): Likewise.
	(getPrimaryControlHighlight): Likewise.
	(getPrimaryControlInfo): Likewise.
	(getPrimaryControlShadow): Likewise.
	(getSeparatorBackground): Likewise.
	(getSeparatorForeground): Likewise.
	(getSubTextFont): Likewise.
	(getSystemTextColor): Likewise.
	(getSystemTextFont): Likewise.
	(getTextHighlightColor): Likewise.
	(getUserTextColor): Likewise.
	(getUserTextFont): Likewise.
	(getWhite): Likewise.
	(getWindowBackground): Likewise.
	(getWindowTitleBackground): Likewise.
	(getWindowTitleFont): Likewise.
	(getWindowTitleForeground): Likewise.
	(getWindowTitleInactiveBackground): Likewise.
	(getWindowTitleInactiveForeground): Likewise.

2006-01-03  Mark Wielaard  <mark@klomp.org>

	* javax/swing/JTextArea.java
	(JTextArea(Document,text,int,int)): Only call setText() when text is
	not null.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicFileChooserUI.java
	(installStrings): Fixed installation of defaults that
	were changed in BasicLookAndFeel.
	* javax/swing/plaf/basic/BasicTabbedPaneUI.java
	(installDefaults): Fixed installation of defaults that
	were changed in BasicLookAndFeel.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicLookAndFeel.java
	(initComponentDefaults): Fixed several defaults that differed
	from the JDK.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/tree/DefaultTreeSelectionModel.java
	(DefaultTreeSelectionModel): Default should be DISCONTIGUOUS_TREE_SELECTION.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/AbstractAction.java
	(AbstractAction): Fixed to pass in null. Should not be 
	an empty string. Removed TODO comment.
	(AbstractAction): Removed TODO comment.
	* javax/swing/JList.java
	(init): Default selection mode should be MULTIPLE_INTERVAL_SELECTION.
	* javax/swing/JMenuItem.java
	(JMenuItem): Set all defaults if the action passed in is not null.
	* javax/swing/JProgressBar.java
	(JProgressBar): Added check to prevent NPE.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(getPreferredSize): The JDK adds some extra space to 
	the list, so we should as well.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(getPreferredSize): Should only take the fileListPanel's
	width into account when getting the size. Also, the buttonPanel's
	size should not be checked, since it is in the bottomPanel already.
	(getMinimumSize): Likewise.

2006-01-03  Lillian Angel  <langel@redhat.com>

	* javax/swing/JList.java
	(init): visibleRowCount should be 7, like the JDK.
	* javax/swing/plaf/metal/MetalFileChooserUI.java
	(installComponents): No need to add the fileFilterCombo
	to a panel. It can be added to the row directly.

2006-01-03  Lillian Angel  <langel@redhat.com>
	
	PR classpath/25480 PR classpath/25478
	* javax/swing/plaf/basic/BasicScrollPaneUI.java
	(updateViewport): Made changes suggested by
	Chris Lansdown.
	* javax/swing/plaf/metal/MetalFileChooserUI.java:
	Removed unneeded import.
	(createList): Removed comment, JList wrapping 
	now works.
	(getPreferredSize): Made changes suggested by
	Chris Lansdown. Uses fileListPanel, instead
	of fileList.
	(getMinimumSize): Uses fileListPanel, instead
	of fileList.
	* javax/swing/plaf/metal/MetalRadioButtonUI.java
	(paintFocus): Fixed height.

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(locationToIndex): Added check to avoid ArrayOutOfBoundsException.

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/plaf/basic/BasicListUI.java
	(locationToIndex): Special case for when variable cell heights
	are possible. (cellHeights is used instead of cellHeight).
	(indexToLocation): Special case for when variable cell heights
	are possible. (cellHeights is used instead of cellHeight).

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* javax/swing/text/DefaultStyledDocument.java
	(ElementBuffer.remove): New method.
	(ElementBuffer.removeUpdate): New method.
	(removeUpdate): New method.

2006-01-03  Roman Kennke  <kennke@aicas.com>

	* lib/Makefile.am:
	(dist-hook): Preserve attributes of Java sources when copying to
	dist dir.

2006-01-03  Raif S. Naffah  <raif@swiftdsl.com.au>

	* AUTHORS: Added self.
	* java/security/Security.java (getProvider): Ensures provider's name is
	  not null, not an empty string, and is trimmed before usage.

2006-01-01  Audrius Meskauskas  <AudriusA@Bioinformatics.org>

	* gnu/CORBA/Poa/AOM.java (add):
	Changed parameter Object into gnuServantObject.
	(Obj.object): Changed type to gnuServantObject.
	(findObject): Rewritten.

2006-01-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* native/jni/qt-peer/mainqtthread.cpp: Remove call to disable double
	buffering. Ability has gone in Qt-4.1.x.

	* configure.ac (QT_CFLAGS): Check for 4.1.0 version and for QtCore
	to have the right include flags.

2006-01-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/security/MessageDigest.java (getInstance(String,String)):
	Use trimmed copy of provider name.
	* gnu/java/security/Engine.java
	(getInstance(String,String,Provider,Object[])): Use trimmed copy of
	service and algorithm names.

2006-01-01  Raif S. Naffah  <raif@swiftdsl.com.au>

	* java/net/InetAddress.java (getAllByName): use LOCALHOST if
	localhost is null or is an empty string. Trim hostname before
	lookup.

