Commit Graph

3709 Commits

Author SHA1 Message Date
Andreas Jaeger
5f55701305 * defineclass.cc (handleClassBegin): Remove unused variable.
From-SVN: r102109
2005-07-17 07:41:33 +02:00
Andreas Schwab
8f59c51bb1 makemake.tcl (emit_package_rule): Emit command to create target directory.
* scripts/makemake.tcl (emit_package_rule): Emit command to create
	target directory.
	* Makefile.am (%.lo): Don't create it here.
	* sources.am, Makefile.in: Regenerated.

From-SVN: r102096
2005-07-16 17:40:00 +00:00
Tom Tromey
b0fa81eea9 Major merge with Classpath.
Removed many duplicate files.
	* HACKING: Updated.x
	* classpath: Imported new directory.
	* standard.omit: New file.
	* Makefile.in, aclocal.m4, configure: Rebuilt.
	* sources.am: New file.
	* configure.ac: Run Classpath configure script.  Moved code around
	to support.  Disable xlib AWT peers (temporarily).
	* Makefile.am (SUBDIRS): Added 'classpath'
	(JAVAC): Removed.
	(AM_CPPFLAGS): Added more -I options.
	(BOOTCLASSPATH): Simplified.
	Completely redid how sources are built.
	Include sources.am.
	* include/Makefile.am (tool_include__HEADERS): Removed jni.h.
	* include/jni.h: Removed (in Classpath).
	* scripts/classes.pl: Updated to look at built classes.
	* scripts/makemake.tcl: New file.
	* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Added
	-I options.
	(gcj_jni_invocation_compile_c_to_binary): Likewise.

From-SVN: r102082
2005-07-16 01:27:14 +00:00
Scott Gilbertson
e27d6202c0 XCanvasPeer.java (attributes): New field.
2005-07-15  Scott Gilbertson  <scottg@mantatest.com>

	* gnu/awt/xlib/XCanvasPeer.java (attributes): New field.
	(eventMask): New field.
	(XCanvasPeer(Component)): Use attributes field.
	(setBackground): Implemented.
	(setEventMask): Process mask only if changed.
	* gnu/awt/xlib/XEventLoop.java (class): Iplement Runnable.
	(eventLoopThread): New field.
	(XEventLoop(Display,EventQueue)): Start eventLoopThread.
	(interrupt): Removed.
	(run): New method.
	* gnu/awt/xlib/XEventQueue.java (getNextEvent): Process Container
	and Component events.
	* gnu/awt/xlib/XFramePeer.java (processingConfigureNotify): New
	field.
	(configureNotify): Set and clear processingConfigureNotify.
	(setBounds): Process only if processingConfigureNotify is false.
	(toBack): Implemented.
	(toFront): Implemented.
	* gnu/awt/xlib/XGraphics.java (setColor): Ignore null color.
	* gnu/awt/xlib/XGraphicsConfiguration.java (getPixel): Ignore null
	color.
	* gnu/awt/xlib/XToolkit.java (nativeQueueEmpty): Always return true.
	(wakeNativeQueue): Do nothing.
	(iterateNativeQueue): Do queue.wait if blocking.
	* gnu/gcj/xlib/Font.java (loadFont): New method.
	(loadFontImpl): Renamed native method, was loadFont.
	* gnu/gcj/xlib/Window.java (toFront): New method.
	(toBack): New method.
	* gnu/gcj/xlib/natFont.cc (loadFontImpl): Renamed method, was
	loadFont.
	* gnu/gcj/xlib/natWindow.cc (toBack): New method.
	(toFront): New method.
	* gnu/gcj/xlib/natXAnyEvent.cc (loadNext): Removed timeout.

From-SVN: r102057
2005-07-15 16:07:18 +00:00
Andrew Haley
3fefd0193c Connection.java (unquote): New method.
2005-07-13  Andrew Haley  <aph@redhat.com>

        * gnu/java/net/protocol/file/Connection.java (unquote): New
        method.
        (connect): Unquote filename.
        gnu/java/net/protocol/jar/Connection.java (getInputStream):
        Likewise.
        (getJarFile): Likewise.

        * java/net/URLConnection.java (getContentHandler): Guard cast with
        instaceof.

        * java/net/URL.java (URL): If the file part of a spec is absolute,
        ignore the file part of its context.

From-SVN: r102029
2005-07-14 18:20:10 +00:00
Aaron Luchko
b11e14262e VirtualMachineCommandSet.java: Implemented VirtualMachine Command Set.
* gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java:
        Implemented VirtualMachine Command Set.

From-SVN: r102026
2005-07-14 17:25:32 +00:00
Tom Tromey
9d5faaafe3 Class.java (getProtectionDomain): Merged javadoc from Classpath.
* java/lang/Class.java (getProtectionDomain): Merged javadoc from
	Classpath.

From-SVN: r102025
2005-07-14 17:22:18 +00:00
Aaron Luchko
d7f15b932b FieldCommandSet.java: Implemented the Field CommandSet.
* gnu/classpath/jdwp/processor/FieldCommandSet.java:
        Implemented the Field CommandSet.
        * gnu/classpath/jdwp/processor/InterfaceTypeCommandSet.java:
        Implemented the InterfaceType CommandSet.

From-SVN: r101951
2005-07-12 23:41:45 +00:00
Aaron Luchko
04be5ce5ec PacketProcessor.java (run): Send shutdown to jdwp instead of connection.
* gnu/classpath/jdwp/processor/PacketProcessor.java (run): Send
        shutdown to jdwp instead of connection.

From-SVN: r101936
2005-07-12 19:29:37 +00:00
Aaron Luchko
87bd8b7067 ObjectReferenceCommandSet.java: New file.
* gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java:
        New file.

From-SVN: r101935
2005-07-12 18:30:25 +00:00
Colin Walters
3ffa3729c0 verify.cc (class _Jv_BytecodeVerifier): Don't check for abstract classes or interfaces here...
2005-07-06  Colin Walters  <walters@verbum.org>

	* verify.cc (class _Jv_BytecodeVerifier) <op_new>: Don't
	check for abstract classes or interfaces here; JVM spec
	says it should throw an exception, so we'll do so later.
	* interpret.cc (run): Throw an InstantiationException for
	abstract classes and interfaces.

From-SVN: r101788
2005-07-08 19:13:30 +00:00
Andrew Haley
5e180a3f54 posix-threads.cc (_Jv_ThreadSetPriority): Use SCHED_OTHER (regular...
2005-07-08  Andrew Haley  <aph@redhat.com>

        * posix-threads.cc (_Jv_ThreadSetPriority): Use SCHED_OTHER
        (regular, non-realtime scheduling), not SCHED_RR (realtime,
        round-robin).

From-SVN: r101769
2005-07-08 14:04:22 +00:00
Aaron Luchko
caa54b82ca * gnu/classpath/jdwp/util/Signature.java
(computeFieldSignature): New Method.

From-SVN: r101745
2005-07-07 23:16:37 +00:00
Aaron Luchko
bde1427e3b * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java:New
file.

From-SVN: r101730
2005-07-07 20:54:04 +00:00
Bryce McKinlay
cb14ee6a76 re PR java/18119 (Private inner class is visible when it shouldn't be)
2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>

	PR java/18119
	* parse.y (inner_class_accessible): New function. Logic moved from
	check_inner_class_access.
	(check_inner_class_access): Use inner_class_accessible.
	(resolve_inner_class): Simplify arguments. Create circularity hash
	here. Keep looking for classes if we found one that was
	inaccessible. Return the inaccessible class only if there is no other
	match.
	(do_resolve_class): Update for new resolve_inner_class arguments.
	Don't create circularity_hash here.

From-SVN: r101715
2005-07-07 15:43:59 +01:00
Bryce McKinlay
ca12deb43e re PR java/21045 (Anonymous inner class constructor's exceptions can't be caught or thrown)
2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/21045
	* parse.y (add_exception_to_throws): New function.
	(purge_unchecked_exceptions): Removed.
	(get_constructor_super): Renamed from verify_constructor_super. Now
	returns the super constructor after verification.
	(java_complete_expand_method): Don't use purge_unchecked_exceptions
	or save/restore the exception list.
	(check_thrown_exceptions): Add uncaught exceptions in anonymous
	class initializers and constructors to the throws clause of the
	method.

2005-07-07  Bryce McKinlay  <mckinlay@redhat.com>

        * testsuite/libjava.compile/PR21045.java: New test.
        * testsuite/libjava.jacks/jacks.xfail: Remove 15.9.5.1-exception-1,
        15.9.5.1-exception-3, 8.3.2-abrupt-6, 8.3.2-abrupt-7.

From-SVN: r101713
2005-07-07 15:34:53 +01:00
Tom Tromey
6dfb90cf55 InputStreamReader.java (refill): Handle no-progress case correctly.
* java/io/InputStreamReader.java (refill): Handle no-progress
	case correctly.
	* gnu/gcj/convert/IOConverter.java: Add 'utf8' alias.

From-SVN: r101663
2005-07-06 20:10:41 +00:00
Tom Tromey
af72a49b30 * testsuite/libjava.jacks/jacks.xfail: Removed 9.1.3-body-5.
From-SVN: r101657
2005-07-06 15:07:46 +00:00
Bryce McKinlay
b226520a2d re PR java/19674 (Empty declaration through semicolon (;) causes compile failure)
2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>

        PR java/19674
        * parse.y (interface_member_declaration): Allow empty statements in
        interface declarations.

2005-07-05  Bryce McKinlay  <mckinlay@redhat.com>

	* testsuite/libjava.compile/PR19674.java: New test.

From-SVN: r101634
2005-07-05 22:09:57 +01:00
Aaron Luchko
2d95cce3c9 StringReferenceCommandSet.java: New file.
* gnu/classpath/jdwp/processor/StringReferenceCommandSet.java:
        New file.

From-SVN: r101628
2005-07-05 17:26:38 +00:00
Aaron Luchko
3bea4ad0e9 CommandSet.java: New file.
* gnu/classpath/jdwp/processor/CommandSet.java: New file.
        * gnu/classpath/jdwp/processor/PacketProcessor.java: Use
        CommandSets to handle JdwpCommandPackets.
        * gnu/classpath/jdwp/transport/JdwpReplyPacket.java: New
        Constructor.

From-SVN: r101601
2005-07-04 16:08:16 +00:00
Tom Tromey
85726b6e8b * libtool-version: Updated.
From-SVN: r101520
2005-07-01 23:43:39 +00:00
Aaron Luchko
5ed32b3871 * gnu/classpath/jdwp/util/JdwpString.java: New file.
From-SVN: r101482
2005-06-30 23:19:36 +00:00
Keith Seitz
afe8d701ba JdwpPacket.java (write): New method.
* gnu/classpath/jdwp/transport/JdwpPacket.java (write): New method.
        (myWrite): New abstract method.
        (toBytes): Remove.
        (myToBytes): Remove.
        * gnu/classpath/jdwp/transport/JdwpReplyPacket.java (myWrite): New
        method.
        * gnu/classpath/jdwp/transport/JdwpCommandPacket.java (myWrite): New
        method.
        * gnu/classpath/jdwp/transport/JdwpConnection.java (sendPacket): Use
        JdwpPacket.write instead of JdwpPacket.toBytes.

From-SVN: r101472
2005-06-30 18:05:10 +00:00
Keith Seitz
1b0618bfe6 JdwpConnection.java (sendEvent): New method.
* gnu/classpath/jdwp/transport/JdwpConnection.java (sendEvent): New
        method.
        (_bytes): New member.
        (_doStream): New member.
        (JdwpConnection): Initialize new members.

From-SVN: r101471
2005-06-30 18:00:25 +00:00
Kelley Cook
917b04f492 Update FSF address
From-SVN: r101453
2005-06-30 03:22:09 +00:00
Tom Tromey
3af9ac15a9 re PR libgcj/22211 ([4.0 only] Thread.interrupt sometimes causes abort if thread is already dead)
PR libgcj/22211:
	* testsuite/libjava.lang/pr22211.java: New file.
	* java/lang/natThread.cc (finish_): Synchronize when updating
	alive_flag.
	(_Jv_AttachCurrentThread): Likewise.
	(interrupt): Only call _Jv_ThreadInterrupt if thread is alive.
	* java/lang/Thread.java (isAlive): Now synchronized.

From-SVN: r101430
2005-06-29 17:36:16 +00:00
Tom Tromey
9cc2dc63bb interpret.cc (run): Use _Jv_CheckCast.
* interpret.cc (run) <insn_checkcast, checkcast_resolved>: Use
	_Jv_CheckCast.

From-SVN: r101427
2005-06-29 16:18:53 +00:00
Robin Green
832a0afe9c re PR libgcj/22189 (Table Full in gcj-dbtool if -m option used with smallest possible input)
2005-06-28  Robin Green  <greenrd@greenrd.org>

	PR java/22189
	* gnu/gcj/runtime/PersistentByteMap.java (init): Fix rounding
	error.

From-SVN: r101382
2005-06-28 14:31:22 +00:00
Tom Tromey
4ebe7d9317 PR java/21540, PR java/13788:
gcc/java/:
	PR java/21540, PR java/13788:
	* parse.y (java_complete_lhs) <CASE_EXPR>: Use
	fold_constant_for_init.
	(patch_binop): Added 'folding' argument.  Updated all callers.
	(patch_unaryop) <NOP_EXPR>: New case.
	(fold_constant_for_init) <NOP_EXPR>: Likewise.
	(fold_constant_for_init) <COND_EXPR>: Fix sense of test.
libjava/:
	PR java/21540, PR java/13788:
	* testsuite/libjava.compile/pr21540.java: New file.
	* testsuite/libjava.compile/pr13788.java: New file.
	* testsuite/libjava.jacks/jacks.xfail: Updated.

From-SVN: r101358
2005-06-27 18:40:16 +00:00
Andreas Tobler
d967c45e83 xfails: Updated to reflect current state of mauve and libjava.
2005-06-26  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libjava.mauve/xfails: Updated to reflect current state
	of mauve and libjava.

From-SVN: r101337
2005-06-26 22:41:31 +02:00
Tom Tromey
42c5169549 natClassLoader.cc (_Jv_UnregisterClass): Handle case where class' name is NULL.
* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Handle case
	where class' name is NULL.
	(_Jv_FindClass): Don't wait for class state.
	* java/lang/natVMClassLoader.cc (defineClass): Only unregister if
	name found.
	* include/java-interp.h (_Jv_DefineClass): Updated.
	* defineclass.cc (_Jv_DefineClass): Added 'name_result' argument.
	(struct _Jv_ClassReader): Likewise.
	(found_name): New field.
	(handleClassBegin): Set *found_name.
	(_Jv_VerifyMethodSignature): Handle case where ptr==NULL.
	(handleClassBegin): Throw error if super class not set.
	(read_methods): Correctly call check_tag and prepare_pool_entry.

From-SVN: r101301
2005-06-24 22:48:33 +00:00
Tom Tromey
b7938f087d * boehm.cc (_Jv_MarkObj): Handle case where field's type is NULL.
From-SVN: r101300
2005-06-24 22:14:03 +00:00
Tom Tromey
aca02b7e00 verify-impl.c (verify_instructions_0): Correctly handle situation where PC falls off end.
gcc/java/:
	* verify-impl.c (verify_instructions_0): Correctly handle
	situation where PC falls off end.
libjava/:
	* verify.cc (verify_instructions_0): Correctly handle situation
	where PC falls off end.

From-SVN: r101299
2005-06-24 22:09:15 +00:00
Tom Tromey
6a05987083 interpret.cc (compile): Handle case where table entry is outside of PC range.
* interpret.cc (compile): Handle case where table entry is
	outside of PC range.

From-SVN: r101298
2005-06-24 22:04:11 +00:00
Bryce McKinlay
c0f6dc941d re PR java/20697 (Invalid Can't find method error on call to super)
PR java/20697
	* parse.y (find_most_specific_methods_list): Remove special case for
	inner classes.

From-SVN: r101270
2005-06-23 16:00:50 +01:00
Kelley Cook
feffe3353f Makefile.am (SUBDIRS): Use append for conditional.
2005-06-22  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am (SUBDIRS): Use append for conditional.
	(toolexeclib_LTLIBRARIES): Likewise.
	(lib_gnu_java_awt_peer_gtk_la_SOURCES): Directly define with
	a conditional append.
	* Makefile.in: Regenerate.

From-SVN: r101246
2005-06-22 01:30:12 +00:00
Keith Seitz
6b9a1abdef VmDeadException.java: New file.
* gnu/classpath/jdwp/exception/VmDeadException.java: New file.
        * gnu/classpath/jdwp/exception/NotImplementedException.java: New file.
        * gnu/classpath/jdwp/exception/JdwpInternalErrorException.java: New
        file.
        * gnu/classpath/jdwp/exception/JdwpException.java: New file.
        * gnu/classpath/jdwp/exception/InvalidThreadGroupException.java: New
        file.
        * gnu/classpath/jdwp/exception/InvalidThreadException.java: New file.
        * gnu/classpath/jdwp/exception/InvalidStringException.java: New file
        * gnu/classpath/jdwp/exception/InvalidObjectException.java: New file.
        * gnu/classpath/jdwp/exception/InvalidEventTypeException.java: New
        file.
        * gnu/classpath/jdwp/exception/InvalidCountException.java: New file.
        * gnu/classpath/jdwp/exception/InvalidClassException.java: New file.

From-SVN: r101131
2005-06-17 18:14:42 +00:00
Kelley Cook
72095b64e2 Makefile.am (libgcj_la_SOURCES): Define without conditional sources.
2005-06-16  Kelley Cook  <kcook@gcc.gnu.org>

	* Makefile.am (libgcj_la_SOURCES): Define without conditional sources.
	(if USING_BOEHMGC): Directly append libgcj_la_SOURCES.
	(if USING_NOGC, SUPPLY_BACKTRACE, USING_POSIX_PLATFORM,
	USING_WIN32_PLATFORM, USING_DARWIN_CRT, USING_POSIX_THREADS,
	USING_WIN32_THREADS, USING_NO_THREADS): Likewise.
	* Makefile.in: Regenerate.

From-SVN: r101083
2005-06-16 12:13:34 +00:00
Kelley Cook
3d5a109a9c configure.ac (USING_ECOS_PLATFORM): Remove and merge into...
2005-06-15  Kelley Cook  <kcook@gcc.gnu.org>

	* configure.ac (USING_ECOS_PLATFORM): Remove and merge into...
	(USING_POSIX_PLATFORM): ... here.
	* Makefile.am: Delete USING_ECOS_PLATFORM.
	* configure, Makefile.in, include/Makefile.in, testsuite/Makefile.in,
	external/Makefile.in, external/sax/Makefile.in,
	external/w3c_dom/Makefile.in, gcj/Makefile.in: Regenerate.

From-SVN: r101005
2005-06-16 01:02:24 +00:00
Tom Tromey
f652253b03 re PR libgcj/17536 (wrong ClassLoader for int[])
PR libgcj/17536:
	* testsuite/libjava.lang/pr17536.java: New file.
	* testsuite/libjava.lang/pr17536.out: New file.

From-SVN: r100999
2005-06-15 22:36:01 +00:00
Goffredo Baroncelli
3eee5bf485 re PR libgcj/21074 (Trivial bug in the method getHeaderFieldKey() in the file java/net/protocol/http/HTTPURLConnection.java)
2005-06-15  Goffredo Baroncelli  <kreijack@inwind.it>

	PR libgcj/21074:
	* gnu/java/net/protocol/http/HTTPURLConnection.java
	(getHeaderFieldKey): Check index.

From-SVN: r100994
2005-06-15 20:08:27 +00:00
Tom Tromey
fbb4c46b2d re PR libgcj/21906 (hang when invoking abstract method)
gcc/java/:
	PR libgcj/21906:
	* class.c (make_method_value): Use soft_abstractmethod_node for
	abstract method.
	* java-tree.h (soft_abstractmethod_node): New define.
	(JTI_SOFT_ABSTRACTMETHOD_NODE): New enum constant.
	* decl.c (java_init_decl_processing): Initialize
	soft_abstractmethod_node.
libjava/:
	PR libgcj/21906:
	* defineclass.cc (handleMethodsEnd): Set ncode for abstract
	methods.
	* include/jvm.h (_Jv_ThrowAbstractMethodError): Declare.
	* link.cc (_Jv_ThrowAbstractMethodError): Renamed.  No longer
	static.
	(append_partial_itable): Use it.
	(set_vtable_entries): Likewise.

From-SVN: r100992
2005-06-15 19:11:43 +00:00
Tom Tromey
92b5fbc5ae SystemClassLoader.java (init): Clear last_was_sep in loop.
* gnu/gcj/runtime/SystemClassLoader.java (init): Clear
	last_was_sep in loop.

From-SVN: r100991
2005-06-15 19:05:43 +00:00
Keith Seitz
8813ac2634 JdwpIdFactory.java: New file.
* gnu/classpath/jdwp/id/JdwpIdFactory.java: New file.
        * gnu/classpath/jdwp/processor/PacketProcessor.java: New file.

From-SVN: r100970
2005-06-15 03:10:31 +00:00
Keith Seitz
b41f0c7b89 ArrayId.java: New file.
* gnu/classpath/jdwp/id/ArrayId.java: New file.
        * gnu/classpath/jdwp/id/ArrayReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/ClassLoaderId.java: New file.
        * gnu/classpath/jdwp/id/ClassObjectId.java: New file.
        * gnu/classpath/jdwp/id/ClassReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/JdwpId.java: New file.
        * gnu/classpath/jdwp/id/ObjectId.java: New file.
        * gnu/classpath/jdwp/id/ReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/StringId.java: New file.
        * gnu/classpath/jdwp/id/ThreadGroupId.java: New file.
        * gnu/classpath/jdwp/id/ThreadId.java: New file.

From-SVN: r100969
2005-06-15 03:07:49 +00:00
Rainer Orth
e9c002e5ee * configure.host: Handle Solaris 10/x86.
From-SVN: r100958
2005-06-14 23:33:08 +00:00
Tom Tromey
cd11181329 re PR libgcj/19877 (sometimes reconfiguring leads to incorrect config.h)
config/:
	PR libgcj/19877:
	* no-executables.m4: Call real AC_FUNC_MMAP when cache variable
	is set but not 'no'.
libstdc++-v3/:
	PR libgcj/19877:
	* configure, aclocal.m4: Rebuilt.
	* Makefile.in, include/Makefile.in, libmath/Makefile.in,
	libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in,
	testsuite/Makefile.in: Likewise.
libjava/:
	PR libgcj/19877:
	* configure, aclocal.m4, Makefile.in: Rebuilt.
libgfortran/:
	PR libgcj/19877:
	* configure, aclocal.m4, Makefile.in: Rebuilt.
zlib/:
	PR libgcj/19877:
	* configure, aclocal.m4, Makefile.in: Rebuilt.

From-SVN: r100953
2005-06-14 20:05:59 +00:00
Tom Tromey
7666af8941 Class.java (getClasses): New method.
* java/lang/Class.java (getClasses): New method.
	(internalGetClasses): Likewise.
	(getClassLoader): Updated documentation.
	(getDeclaredClasses): New overload; old overload no longer
	native.
	(_getConstructors): Removed.
	(resourcePath): Updated.
	* java/lang/natClass.cc (getClasses): Removed.
	* java/lang/Class.h (getDeclaredClasses, getDeclaredConstructors):
	Updated.
	(_getConstructors): Removed.

From-SVN: r100948
2005-06-14 18:51:54 +00:00
Jim Huang
a61d70b8b5 re PR libgcj/22036 (libjava/jni.cc compilation fix in cvs 2005-06-12)
2005-06-13  Jim Huang  <jserv@kaffe.org>

	PR libgcj/22036:
	* jni.cc (_Jv_JNI_NewObjectV): Use chars() method.
	(_Jv_JNI_NewObject): Likewise.

From-SVN: r100897
2005-06-13 20:23:11 +00:00