gcc-4.1 (4.1.2-29) libjava-backport-updates3.dpatch

Summary

 ChangeLog                                            |   18 
 Makefile.in                                          |    1 
 classpath/ChangeLog                                  |    7 
 classpath/gnu/javax/management/Server.java           |   21 +
 classpath/javax/swing/text/html/HTMLEditorKit.java   |    2 
 classpath/javax/swing/text/html/default.css          |  378 -------------------
 classpath/resource/javax/swing/text/html/default.css |  378 +++++++++++++++++++
 java/lang/natClassLoader.cc                          |   11 
 scripts/makemake.tcl                                 |    3 
 sources.am                                           |    1 
 10 files changed, 440 insertions(+), 380 deletions(-)

    
download this patch

Patch contents

#! /bin/sh -e

# DP: SVN updates from the gcc-4_1-rh-branch branch upto 20070504.

last_updated()
{
	cat > ${dir}LAST_UPDATED <<EOF
Fri May  4 08:17:23 CEST 2007
Fri May  4 06:17:23 UTC 2007 (revision 124407)
EOF
}

dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
    dir="$3/"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch)
        patch ${pdir} -f --no-backup-if-mismatch -p0 < $0
	touch ${dir}libjava/testsuite/libjava.jni/PR28178.out
	find ${dir}libjava \( -name '*.java' -o -name '*.cc' \) -type f -size 0 | xargs -r rm -f
	#last_updated
        #cd ${dir}gcc && autoconf2.59
        ;;
    -unpatch)
        patch ${pdir} -f --no-backup-if-mismatch -R -p0 < $0
        #rm ${dir}gcc/configure
        ;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1
esac
exit 0

# diff -urN --exclude=.svn gcc_4_1_2_release gcc-4_1-branch
# svn diff -r124252 svn://gcc.gnu.org/svn/gcc/branches/redhat/gcc-4_1-branch gcc/java libjava boehm-gc libffi
# svn diff -r124252 gcc/java libjava boehm-gc libffi

Index: libjava/Makefile.in
===================================================================
--- libjava/Makefile.in	(revision 124253)
+++ libjava/Makefile.in	(working copy)
@@ -7708,6 +7708,7 @@
   classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \
   classpath/resource/java/util/iso4217.properties \
   classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
+  classpath/resource/javax/swing/text/html/default.css \
   classpath/resource/org/ietf/jgss/MessagesBundle.properties \
   classpath/resource/sun/rmi/rmic/messages.properties \
   classpath/resource/com/sun/tools/javac/messages.properties \
Index: libjava/scripts/makemake.tcl
===================================================================
--- libjava/scripts/makemake.tcl	(revision 124253)
+++ libjava/scripts/makemake.tcl	(working copy)
@@ -211,6 +211,9 @@
 	# We assume there aren't any overrides.
 	lappend properties_files $basedir/$subdir/$file
       }
+    } elseif {[string match *.css $file]} {
+	# Special case for default.css needed by javax.swing.text.html.
+	lappend properties_files $basedir/$subdir/$file
     } elseif {[file isdirectory $file]} {
       lappend subdirs $subdir/$file
     } elseif {$subdir == "META-INF/services"} {
Index: libjava/classpath/resource/javax/swing/text/html/default.css
===================================================================
--- libjava/classpath/resource/javax/swing/text/html/default.css	(revision 0)
+++ libjava/classpath/resource/javax/swing/text/html/default.css	(revision 124407)
@@ -0,0 +1,378 @@
+/* default.css --
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+nobr {
+  white-space: nowrap;
+}
+
+ol {
+  margin-right: 50px;
+  margin-top: 10px;
+  margin-left: 50px;
+  margin-bottom: 10px;
+  list-style-type: decimal;
+}
+
+u {
+  text-decoration: underline;
+}
+
+s {
+  text-decoration: line-through;
+}
+
+p {
+  margin-top: 15px;
+}
+
+dd p {
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ol li p {
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+
+address {
+  font-style: italic;
+  color: blue;
+}
+
+i {
+  font-style: italic;
+}
+
+h6 {
+  margin-top: 10px;
+  font-size: xx-small;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+h5 {  
+  margin-top: 10px;
+  font-size: x-small;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+h4 {  
+  margin-top: 10px;
+  font-size: small;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+h3 {  
+  margin-top: 10px;
+  font-size: medium;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+dir li p {  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+h2 {  
+  margin-top: 10px;
+  font-size: large;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+b { 
+  font-weight: bold;
+}
+
+h1 {  
+  margin-top: 10px;
+  font-size: x-large;
+  font-weight: bold;
+  margin-bottom: 10px;
+}
+
+caption {  
+  text-align: center;
+  caption-side: top;
+}
+
+a {  
+  text-decoration: underline;
+  color: blue;
+}
+
+ul li ul li ul li {  
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+menu {  
+  margin-right: 40px;
+  margin-top: 10px;
+  margin-left: 40px;
+  margin-bottom: 10px;
+}
+
+menu li p {  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+sup {  
+  vertical-align: super;
+}
+
+body {
+  margin-right: 0px;  
+  margin-left: 0px;
+  font-family: Serif;
+  font-size: 14pt;
+  font-weight: normal;
+  color: black;
+}
+
+ul li ul li ul {  
+  margin-right: 25px;
+  margin-left: 25px;
+  list-style-type: square;
+}
+
+blockquote {
+  margin-right: 35px;
+  margin-left: 35px; 
+  margin-top: 5px;
+  margin-bottom: 5px;
+}
+
+samp {  
+  font-family: Monospaced;
+  font-size: small;
+}
+
+cite {  
+  font-style: italic;
+}
+
+sub {  
+  vertical-align: sub;
+}
+
+em {  
+  font-style: italic;
+}
+
+ul li p { 
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ul li ul li {
+  margin-right: 0px;
+  margin-left: 0px;  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+var {
+  font-style: italic;
+  font-weight: bold;
+}
+
+table {  
+  border-color: Gray;
+  border-style: outset;
+}
+
+dfn {  
+  font-style: italic;
+}
+
+menu li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+strong { 
+  font-weight: bold;
+}
+
+ul {
+  margin-right: 50px;
+  margin-top: 10px;
+  margin-left: 50px;
+  margin-bottom: 10px;
+  list-style-type: disc;
+}
+
+center { 
+  text-align: center;
+}
+
+ul li ul {  
+  margin-right: 25px;
+  margin-left: 25px;
+  list-style-type: circle;
+}
+
+kbd {
+  font-family: Monospaced;
+  font-size: small;
+}
+
+dir li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ul li menu {
+  margin-right: 25px;
+  margin-left: 25px;
+  list-style-type: circle;
+}
+
+dt {
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+ol li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+li p {  
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+default {  
+}
+
+strike {  
+  text-decoration: line-through;
+}
+
+dl {
+  margin-left: 0px;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+
+tt {
+  font-family: Monospaced;
+}
+
+ul li {
+  margin-right: 0px;
+  margin-left: 0px;
+  margin-top: 0px;
+  margin-bottom: 0px;
+}
+
+dir { 
+  margin-right: 40px;
+  margin-top: 10px;
+  margin-left: 40px;
+  margin-bottom: 10px;
+}
+
+tr {  
+  text-align: left;
+}
+
+pre p { 
+  margin-top: 0px;
+}
+
+dd {  
+  margin-right: 40px;
+  margin-top: 0px;
+  margin-left: 40px;
+  margin-bottom: 0px;
+}
+
+th {
+  padding-bottom: 3px;
+  text-align: center;
+  padding-top: 3px;
+  padding-right: 3px;
+  padding-left: 3px;
+  font-weight: bold;
+  border-color: Gray;
+  border-style: inset;
+}
+
+pre {  
+  margin-top: 5px;
+  font-family: Monospaced;
+  margin-bottom: 5px;
+}
+
+td {
+  padding-bottom: 3px;
+  padding-top: 3px;
+  padding-right: 3px;
+  padding-left: 3px;
+  border-color: Gray;
+  border-style: inset;
+}
+
+code {
+  font-family: Monospaced;
+  font-size: small;
+}
+
+small {  
+  font-size: x-small;
+}
+
+big { 
+  font-size: x-large;
+}
Index: libjava/classpath/gnu/javax/management/Server.java
===================================================================
--- libjava/classpath/gnu/javax/management/Server.java	(revision 124253)
+++ libjava/classpath/gnu/javax/management/Server.java	(working copy)
@@ -53,6 +53,7 @@
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicLong;
 
 import javax.management.Attribute;
 import javax.management.AttributeList;
@@ -75,6 +76,7 @@
 import javax.management.MBeanRegistrationException;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerDelegate;
+import javax.management.MBeanServerNotification;
 import javax.management.MBeanTrustPermission;
 import javax.management.NotCompliantMBeanException;
 import javax.management.Notification;
@@ -137,6 +139,15 @@
   private Map listeners;
 
   /**
+   * An MBean that emits notifications when an MBean is registered and
+   * unregistered with this server.
+   *
+   */
+  private final MBeanServerDelegate delegate;
+
+  static private final AtomicLong sequenceNumber = new AtomicLong(1);
+
+  /**
    * Initialise the delegate name.
    */
   static
@@ -171,6 +182,7 @@
   {
     this.defaultDomain = defaultDomain;
     this.outer = outer;
+    this.delegate = delegate;
     try
       {
 	registerMBean(delegate, DELEGATE_NAME);
@@ -1703,6 +1715,7 @@
     beans.put(name, new ServerInfo(obji, obj));
     if (register != null)
       register.postRegister(Boolean.TRUE);
+    notify(name, MBeanServerNotification.REGISTRATION_NOTIFICATION);
     return obji;
   }
 
@@ -2088,10 +2101,18 @@
 	  }
       }
     beans.remove(name);
+    notify(name, MBeanServerNotification.UNREGISTRATION_NOTIFICATION);
     if (register != null)
       register.postDeregister();
   }
 
+   private void notify(ObjectName name, String type)
+   {
+      delegate.sendNotification
+	(new MBeanServerNotification
+	 (type, DELEGATE_NAME, sequenceNumber.getAndIncrement(), name));
+   }
+
   /**
    * Input stream which deserializes using the given classloader.
    */
Index: libjava/classpath/javax/swing/text/html/HTMLEditorKit.java
===================================================================
--- libjava/classpath/javax/swing/text/html/HTMLEditorKit.java	(revision 124253)
+++ libjava/classpath/javax/swing/text/html/HTMLEditorKit.java	(working copy)
@@ -1462,7 +1462,7 @@
           }
         catch (IOException ex)
           {
-            // No style available.
+            throw new RuntimeException("No style available.", ex);
           }
       }
     return styleSheet;
Index: libjava/classpath/javax/swing/text/html/default.css
===================================================================
--- libjava/classpath/javax/swing/text/html/default.css	(revision 124253)
+++ libjava/classpath/javax/swing/text/html/default.css	(working copy)
@@ -1,378 +0,0 @@
-/* default.css --
-   Copyright (C) 2005 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-nobr {
-  white-space: nowrap;
-}
-
-ol {
-  margin-right: 50px;
-  margin-top: 10px;
-  margin-left: 50px;
-  margin-bottom: 10px;
-  list-style-type: decimal;
-}
-
-u {
-  text-decoration: underline;
-}
-
-s {
-  text-decoration: line-through;
-}
-
-p {
-  margin-top: 15px;
-}
-
-dd p {
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-ol li p {
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-
-address {
-  font-style: italic;
-  color: blue;
-}
-
-i {
-  font-style: italic;
-}
-
-h6 {
-  margin-top: 10px;
-  font-size: xx-small;
-  font-weight: bold;
-  margin-bottom: 10px;
-}
-
-h5 {  
-  margin-top: 10px;
-  font-size: x-small;
-  font-weight: bold;
-  margin-bottom: 10px;
-}
-
-h4 {  
-  margin-top: 10px;
-  font-size: small;
-  font-weight: bold;
-  margin-bottom: 10px;
-}
-
-h3 {  
-  margin-top: 10px;
-  font-size: medium;
-  font-weight: bold;
-  margin-bottom: 10px;
-}
-
-dir li p {  
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-h2 {  
-  margin-top: 10px;
-  font-size: large;
-  font-weight: bold;
-  margin-bottom: 10px;
-}
-
-b { 
-  font-weight: bold;
-}
-
-h1 {  
-  margin-top: 10px;
-  font-size: x-large;
-  font-weight: bold;
-  margin-bottom: 10px;
-}
-
-caption {  
-  text-align: center;
-  caption-side: top;
-}
-
-a {  
-  text-decoration: underline;
-  color: blue;
-}
-
-ul li ul li ul li {  
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-menu {  
-  margin-right: 40px;
-  margin-top: 10px;
-  margin-left: 40px;
-  margin-bottom: 10px;
-}
-
-menu li p {  
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-sup {  
-  vertical-align: super;
-}
-
-body {
-  margin-right: 0px;  
-  margin-left: 0px;
-  font-family: Serif;
-  font-size: 14pt;
-  font-weight: normal;
-  color: black;
-}
-
-ul li ul li ul {  
-  margin-right: 25px;
-  margin-left: 25px;
-  list-style-type: square;
-}
-
-blockquote {
-  margin-right: 35px;
-  margin-left: 35px; 
-  margin-top: 5px;
-  margin-bottom: 5px;
-}
-
-samp {  
-  font-family: Monospaced;
-  font-size: small;
-}
-
-cite {  
-  font-style: italic;
-}
-
-sub {  
-  vertical-align: sub;
-}
-
-em {  
-  font-style: italic;
-}
-
-ul li p { 
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-ul li ul li {
-  margin-right: 0px;
-  margin-left: 0px;  
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-var {
-  font-style: italic;
-  font-weight: bold;
-}
-
-table {  
-  border-color: Gray;
-  border-style: outset;
-}
-
-dfn {  
-  font-style: italic;
-}
-
-menu li {
-  margin-right: 0px;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-strong { 
-  font-weight: bold;
-}
-
-ul {
-  margin-right: 50px;
-  margin-top: 10px;
-  margin-left: 50px;
-  margin-bottom: 10px;
-  list-style-type: disc;
-}
-
-center { 
-  text-align: center;
-}
-
-ul li ul {  
-  margin-right: 25px;
-  margin-left: 25px;
-  list-style-type: circle;
-}
-
-kbd {
-  font-family: Monospaced;
-  font-size: small;
-}
-
-dir li {
-  margin-right: 0px;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-ul li menu {
-  margin-right: 25px;
-  margin-left: 25px;
-  list-style-type: circle;
-}
-
-dt {
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-ol li {
-  margin-right: 0px;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-li p {  
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-default {  
-}
-
-strike {  
-  text-decoration: line-through;
-}
-
-dl {
-  margin-left: 0px;
-  margin-top: 10px;
-  margin-bottom: 10px;
-}
-
-tt {
-  font-family: Monospaced;
-}
-
-ul li {
-  margin-right: 0px;
-  margin-left: 0px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-
-dir { 
-  margin-right: 40px;
-  margin-top: 10px;
-  margin-left: 40px;
-  margin-bottom: 10px;
-}
-
-tr {  
-  text-align: left;
-}
-
-pre p { 
-  margin-top: 0px;
-}
-
-dd {  
-  margin-right: 40px;
-  margin-top: 0px;
-  margin-left: 40px;
-  margin-bottom: 0px;
-}
-
-th {
-  padding-bottom: 3px;
-  text-align: center;
-  padding-top: 3px;
-  padding-right: 3px;
-  padding-left: 3px;
-  font-weight: bold;
-  border-color: Gray;
-  border-style: inset;
-}
-
-pre {  
-  margin-top: 5px;
-  font-family: Monospaced;
-  margin-bottom: 5px;
-}
-
-td {
-  padding-bottom: 3px;
-  padding-top: 3px;
-  padding-right: 3px;
-  padding-left: 3px;
-  border-color: Gray;
-  border-style: inset;
-}
-
-code {
-  font-family: Monospaced;
-  font-size: small;
-}
-
-small {  
-  font-size: x-small;
-}
-
-big { 
-  font-size: x-large;
-}
Index: libjava/classpath/ChangeLog
===================================================================
--- libjava/classpath/ChangeLog	(revision 124253)
+++ libjava/classpath/ChangeLog	(working copy)
@@ -1,3 +1,10 @@
+2007-05-03  Andrew Haley  <aph@redhat.com>
+
+	* gnu/javax/management/Server.java (Server): Record the delegate.
+	(registerMBean): Notify the delegate.
+	(unregisterMBean): Likewise.
+	(notify): New method.
+
 2007-04-04  Francis Kung  <fkung@redhat.com>
 
 	* gnu/java/awt/peer/gtk/ComponentGraphics.java
Index: libjava/ChangeLog
===================================================================
--- libjava/ChangeLog	(revision 124253)
+++ libjava/ChangeLog	(working copy)
@@ -1,3 +1,21 @@
+2007-05-31  Andrew Haley  <aph@redhat.com>
+
+	* java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear
+	INTERPRETED access modifier.
+
+2007-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304
+	* Makefile.in: Regenerate.
+	* scripts/makemake.tcl (scan_directory): Treat default.css as a
+	property file.
+	* classpath/javax/swing/text/html/default.css: Move to...
+	* classpath/resource/javax/swing/text/html/default.css: New file.
+	* classpath/javax/swing/text/html/HTMLEditorKit.java
+	(getStyleSheet): Throw RuntimeException when style loading fails.
+	* sources.am (property_files): Add
+	classpath/resource/javax/swing/text/html/default.css.
+
 2007-04-23  Tom Tromey  <tromey@redhat.com>
 
 	http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236895
Index: libjava/sources.am
===================================================================
--- libjava/sources.am	(revision 124253)
+++ libjava/sources.am	(working copy)
@@ -8865,6 +8865,7 @@
   classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \
   classpath/resource/java/util/iso4217.properties \
   classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
+  classpath/resource/javax/swing/text/html/default.css \
   classpath/resource/org/ietf/jgss/MessagesBundle.properties \
   classpath/resource/sun/rmi/rmic/messages.properties \
   classpath/resource/com/sun/tools/javac/messages.properties \
Index: libjava/java/lang/natClassLoader.cc
===================================================================
--- libjava/java/lang/natClassLoader.cc	(revision 125218)
+++ libjava/java/lang/natClassLoader.cc	(working copy)
@@ -281,7 +281,16 @@
   memcpy (dst, src, len);
   
   new_class->engine = &_Jv_soleIndirectCompiledEngine;
-  
+
+  /* FIXME:  Way back before the dawn of time, we overloaded the
+     SYNTHETIC class access modifier to mean INTERPRETED.  This was a
+     Bad Thing, but it didn't matter then because classes were never
+     marked synthetic.  However, it is possible to redeem the
+     situation: _Jv_NewClassFromInitializer is only called from
+     compiled classes, so we clear the INTERPRETED flag.  This is a
+     kludge!  */
+  new_class->accflags &= ~java::lang::reflect::Modifier::INTERPRETED;
+
   (*_Jv_RegisterClassHook) (new_class);
   
   return new_class;