From 4b3a6a58b40ac5b71ef617fdc4180d6706e824d4 Mon Sep 17 00:00:00 2001 From: Peter Zhelezniakov Date: Thu, 22 May 2008 15:06:22 +0400 Subject: [PATCH 01/41] 6606443: Infinite loop in FlowView.layout when using HTML tables in JEditorPane FlowStrategy.damageStart now tracks position changes Reviewed-by: gsm --- .../classes/javax/swing/text/FlowView.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/text/FlowView.java b/jdk/src/share/classes/javax/swing/text/FlowView.java index 39f8a5d6035..e784b33c576 100644 --- a/jdk/src/share/classes/javax/swing/text/FlowView.java +++ b/jdk/src/share/classes/javax/swing/text/FlowView.java @@ -333,17 +333,24 @@ public abstract class FlowView extends BoxView { * @since 1.3 */ public static class FlowStrategy { - int damageStart = Integer.MAX_VALUE; + Position damageStart = null; Vector viewBuffer; void addDamage(FlowView fv, int offset) { if (offset >= fv.getStartOffset() && offset < fv.getEndOffset()) { - damageStart = Math.min(damageStart, offset); + if (damageStart == null || offset < damageStart.getOffset()) { + try { + damageStart = fv.getDocument().createPosition(offset); + } catch (BadLocationException e) { + // shouldn't happen since offset is inside view bounds + assert(false); + } + } } } void unsetDamage() { - damageStart = Integer.MAX_VALUE; + damageStart = null; } /** @@ -438,13 +445,14 @@ public abstract class FlowView extends BoxView { int p1 = fv.getEndOffset(); if (fv.majorAllocValid) { - if (damageStart == Integer.MAX_VALUE) { + if (damageStart == null) { return; } // In some cases there's no view at position damageStart, so // step back and search again. See 6452106 for details. - while ((rowIndex = fv.getViewIndexAtPosition(damageStart)) < 0) { - damageStart--; + int offset = damageStart.getOffset(); + while ((rowIndex = fv.getViewIndexAtPosition(offset)) < 0) { + offset--; } if (rowIndex > 0) { rowIndex--; From f0fd6aa12c20ebc844573b47383b7fd1a19d1b46 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 23 May 2008 20:14:20 +0400 Subject: [PATCH 02/41] 6668273: Example given in java.beans.EventHandler shows incorrect order of parameters Very simple misprint Reviewed-by: peterz, loneid --- jdk/src/share/classes/java/beans/EventHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/java/beans/EventHandler.java b/jdk/src/share/classes/java/beans/EventHandler.java index 0a15ed8d826..9d50dea91d1 100644 --- a/jdk/src/share/classes/java/beans/EventHandler.java +++ b/jdk/src/share/classes/java/beans/EventHandler.java @@ -636,7 +636,7 @@ public class EventHandler implements InvocationHandler { * time a mouse button is pressed, one would write: *
*
-     *EventHandler.create(MouseListener.class, "mousePressed", target, "origin", "point");
+     *EventHandler.create(MouseListener.class, target, "origin", "point", "mousePressed");
      *
*
* From 44b0d9abbe570c5cfad0fc3a0137faade4537af1 Mon Sep 17 00:00:00 2001 From: Mikhail Lapshin Date: Mon, 26 May 2008 17:58:09 +0400 Subject: [PATCH 03/41] 6694823: A popup menu can be partially hidden under the task bar in applets In applets popup menu is shifted above the task bar Reviewed-by: peterz --- .../share/classes/javax/swing/JPopupMenu.java | 117 +++++++++++------ .../classes/javax/swing/PopupFactory.java | 61 +++++---- .../swing/JPopupMenu/6694823/bug6694823.java | 122 ++++++++++++++++++ 3 files changed, 229 insertions(+), 71 deletions(-) create mode 100644 jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java diff --git a/jdk/src/share/classes/javax/swing/JPopupMenu.java b/jdk/src/share/classes/javax/swing/JPopupMenu.java index b1cdd7db6af..4edf073cd8c 100644 --- a/jdk/src/share/classes/javax/swing/JPopupMenu.java +++ b/jdk/src/share/classes/javax/swing/JPopupMenu.java @@ -41,6 +41,7 @@ import javax.swing.plaf.PopupMenuUI; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicComboPopup; import javax.swing.event.*; +import sun.security.util.SecurityConstants; import java.applet.Applet; @@ -320,17 +321,67 @@ public class JPopupMenu extends JComponent implements Accessible,MenuElement { * This adustment may be cancelled by invoking the application with * -Djavax.swing.adjustPopupLocationToFit=false */ - Point adjustPopupLocationToFitScreen(int xposition, int yposition) { - Point p = new Point(xposition, yposition); + Point adjustPopupLocationToFitScreen(int xPosition, int yPosition) { + Point popupLocation = new Point(xPosition, yPosition); - if(popupPostionFixDisabled == true || GraphicsEnvironment.isHeadless()) - return p; + if(popupPostionFixDisabled == true || GraphicsEnvironment.isHeadless()) { + return popupLocation; + } + // Get screen bounds + Rectangle scrBounds; + GraphicsConfiguration gc = getCurrentGraphicsConfiguration(popupLocation); Toolkit toolkit = Toolkit.getDefaultToolkit(); - Rectangle screenBounds; + if(gc != null) { + // If we have GraphicsConfiguration use it to get screen bounds + scrBounds = gc.getBounds(); + } else { + // If we don't have GraphicsConfiguration use primary screen + scrBounds = new Rectangle(toolkit.getScreenSize()); + } + + // Calculate the screen size that popup should fit + Dimension popupSize = JPopupMenu.this.getPreferredSize(); + int popupRightX = popupLocation.x + popupSize.width; + int popupBottomY = popupLocation.y + popupSize.height; + int scrWidth = scrBounds.width; + int scrHeight = scrBounds.height; + if (!canPopupOverlapTaskBar()) { + // Insets include the task bar. Take them into account. + Insets scrInsets = toolkit.getScreenInsets(gc); + scrBounds.x += scrInsets.left; + scrBounds.y += scrInsets.top; + scrWidth -= scrInsets.left + scrInsets.right; + scrHeight -= scrInsets.top + scrInsets.bottom; + } + int scrRightX = scrBounds.x + scrWidth; + int scrBottomY = scrBounds.y + scrHeight; + + // Ensure that popup menu fits the screen + if (popupRightX > scrRightX) { + popupLocation.x = scrRightX - popupSize.width; + if( popupLocation.x < scrBounds.x ) { + popupLocation.x = scrBounds.x ; + } + } + if (popupBottomY > scrBottomY) { + popupLocation.y = scrBottomY - popupSize.height; + if( popupLocation.y < scrBounds.y ) { + popupLocation.y = scrBounds.y; + } + } + + return popupLocation; + } + + /** + * Tries to find GraphicsConfiguration + * that contains the mouse cursor position. + * Can return null. + */ + private GraphicsConfiguration getCurrentGraphicsConfiguration( + Point popupLocation) { GraphicsConfiguration gc = null; - // Try to find GraphicsConfiguration, that includes mouse - // pointer position GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gd = ge.getScreenDevices(); @@ -338,50 +389,36 @@ public class JPopupMenu extends JComponent implements Accessible,MenuElement { if(gd[i].getType() == GraphicsDevice.TYPE_RASTER_SCREEN) { GraphicsConfiguration dgc = gd[i].getDefaultConfiguration(); - if(dgc.getBounds().contains(p)) { + if(dgc.getBounds().contains(popupLocation)) { gc = dgc; break; } } } - // If not found and we have invoker, ask invoker about his gc if(gc == null && getInvoker() != null) { gc = getInvoker().getGraphicsConfiguration(); } + return gc; + } - if(gc != null) { - // If we have GraphicsConfiguration use it to get - // screen bounds - screenBounds = gc.getBounds(); - } else { - // If we don't have GraphicsConfiguration use primary screen - screenBounds = new Rectangle(toolkit.getScreenSize()); + /** + * Checks that there are enough security permissions + * to make popup "always on top", which allows to show it above the task bar. + */ + static boolean canPopupOverlapTaskBar() { + boolean result = true; + try { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission( + SecurityConstants.SET_WINDOW_ALWAYS_ON_TOP_PERMISSION); + } + } catch (SecurityException se) { + // There is no permission to show popups over the task bar + result = false; } - - Dimension size; - - size = JPopupMenu.this.getPreferredSize(); - - // Use long variables to prevent overflow - long pw = (long) p.x + (long) size.width; - long ph = (long) p.y + (long) size.height; - - if( pw > screenBounds.x + screenBounds.width ) - p.x = screenBounds.x + screenBounds.width - size.width; - - if( ph > screenBounds.y + screenBounds.height) - p.y = screenBounds.y + screenBounds.height - size.height; - - /* Change is made to the desired (X,Y) values, when the - PopupMenu is too tall OR too wide for the screen - */ - if( p.x < screenBounds.x ) - p.x = screenBounds.x ; - if( p.y < screenBounds.y ) - p.y = screenBounds.y; - - return p; + return result; } diff --git a/jdk/src/share/classes/javax/swing/PopupFactory.java b/jdk/src/share/classes/javax/swing/PopupFactory.java index 86b737750dd..7a934150f4f 100644 --- a/jdk/src/share/classes/javax/swing/PopupFactory.java +++ b/jdk/src/share/classes/javax/swing/PopupFactory.java @@ -548,47 +548,46 @@ public class PopupFactory { } /** - * Returns true if the Popup can fit on the screen. + * Returns true if popup can fit the screen and the owner's top parent. + * It determines can popup be lightweight or mediumweight. */ boolean fitsOnScreen() { + boolean result = false; Component component = getComponent(); - if (owner != null && component != null) { - Container parent; - int width = component.getWidth(); - int height = component.getHeight(); - for(parent = owner.getParent(); parent != null ; - parent = parent.getParent()) { - if (parent instanceof JFrame || - parent instanceof JDialog || - parent instanceof JWindow) { + Container parent = (Container) SwingUtilities.getRoot(owner); + int popupWidth = component.getWidth(); + int popupHeight = component.getHeight(); + Rectangle parentBounds = parent.getBounds(); + if (parent instanceof JFrame || + parent instanceof JDialog || + parent instanceof JWindow) { - Rectangle r = parent.getBounds(); - Insets i = parent.getInsets(); - r.x += i.left; - r.y += i.top; - r.width -= (i.left + i.right); - r.height -= (i.top + i.bottom); + Insets i = parent.getInsets(); + parentBounds.x += i.left; + parentBounds.y += i.top; + parentBounds.width -= i.left + i.right; + parentBounds.height -= i.top + i.bottom; - GraphicsConfiguration gc = parent.getGraphicsConfiguration(); + if (JPopupMenu.canPopupOverlapTaskBar()) { + GraphicsConfiguration gc = + parent.getGraphicsConfiguration(); Rectangle popupArea = getContainerPopupArea(gc); - return r.intersection(popupArea).contains(x, y, width, height); - - } else if (parent instanceof JApplet) { - Rectangle r = parent.getBounds(); - Point p = parent.getLocationOnScreen(); - - r.x = p.x; - r.y = p.y; - return r.contains(x, y, width, height); - } else if (parent instanceof Window || - parent instanceof Applet) { - // No suitable swing component found - break; + result = parentBounds.intersection(popupArea) + .contains(x, y, popupWidth, popupHeight); + } else { + result = parentBounds + .contains(x, y, popupWidth, popupHeight); } + } else if (parent instanceof JApplet) { + Point p = parent.getLocationOnScreen(); + parentBounds.x = p.x; + parentBounds.y = p.y; + result = parentBounds + .contains(x, y, popupWidth, popupHeight); } } - return false; + return result; } Rectangle getContainerPopupArea(GraphicsConfiguration gc) { diff --git a/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java b/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java new file mode 100644 index 00000000000..2388137a3af --- /dev/null +++ b/jdk/test/javax/swing/JPopupMenu/6694823/bug6694823.java @@ -0,0 +1,122 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6694823 + * @summary Checks that popup menu cannot be partially hidden + * by the task bar in applets. + * @author Mikhail Lapshin + * @run main bug6694823 + */ + +import javax.swing.*; +import java.awt.*; +import sun.awt.SunToolkit; + +public class bug6694823 { + private static JFrame frame; + private static JPopupMenu popup; + private static SunToolkit toolkit; + private static Insets screenInsets; + + public static void main(String[] args) throws Exception { + toolkit = (SunToolkit) Toolkit.getDefaultToolkit(); + SwingUtilities.invokeAndWait(new Runnable() { + public void run() { + createGui(); + } + }); + + // Get screen insets + screenInsets = toolkit.getScreenInsets(frame.getGraphicsConfiguration()); + if (screenInsets.bottom == 0) { + // This test is only for configurations with taskbar on the bottom + return; + } + + // Show popup as if from a standalone application + // The popup should be able to overlap the task bar + showPopup(false); + + // Emulate applet security restrictions + toolkit.realSync(); + System.setSecurityManager(new SecurityManager()); + + // Show popup as if from an applet + // The popup shouldn't overlap the task bar. It should be shifted up. + showPopup(true); + + toolkit.realSync(); + System.out.println("Test passed!"); + frame.dispose(); + } + + private static void createGui() { + frame = new JFrame(); + frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame.setUndecorated(true); + + popup = new JPopupMenu("Menu"); + for (int i = 0; i < 7; i++) { + popup.add(new JMenuItem("MenuItem")); + } + JPanel panel = new JPanel(); + panel.setComponentPopupMenu(popup); + frame.add(panel); + + frame.setSize(200, 200); + } + + private static void showPopup(final boolean shouldBeShifted) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + // Place frame just above the task bar + Dimension screenSize = toolkit.getScreenSize(); + frame.setLocation(screenSize.width / 2, + screenSize.height - frame.getHeight() - screenInsets.bottom); + frame.setVisible(true); + + // Place popup over the task bar + Point frameLoc = frame.getLocationOnScreen(); + int x = 0; + int y = frame.getHeight() + - popup.getPreferredSize().height + screenInsets.bottom; + popup.show(frame, x, y); + + if (shouldBeShifted) { + if (popup.getLocationOnScreen() + .equals(new Point(frameLoc.x, frameLoc.y + y))) { + throw new RuntimeException("Popup is not shifted"); + } + } else { + if (!popup.getLocationOnScreen() + .equals(new Point(frameLoc.x, frameLoc.y + y))) { + throw new RuntimeException("Popup is unexpectedly shifted"); + } + } + popup.setVisible(false); + } + }); + } +} From 2ae586bafcdfc13b1aede1ce146aebcecd6f217c Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Mon, 2 Jun 2008 19:08:13 +0400 Subject: [PATCH 04/41] 6709530: There are unnecessary code in slider classes, such as in JSlider and SliderUIs Removed unnecessary code like unused variables, castings, imports etc Reviewed-by: peterz --- .../share/classes/javax/swing/JSlider.java | 43 ++++++++----------- .../javax/swing/plaf/basic/BasicSliderUI.java | 40 ++++++----------- .../javax/swing/plaf/synth/SynthSliderUI.java | 30 +++---------- 3 files changed, 39 insertions(+), 74 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/JSlider.java b/jdk/src/share/classes/javax/swing/JSlider.java index e1a7909b073..95b49164b9a 100644 --- a/jdk/src/share/classes/javax/swing/JSlider.java +++ b/jdk/src/share/classes/javax/swing/JSlider.java @@ -25,14 +25,12 @@ package javax.swing; -import javax.swing.border.*; import javax.swing.event.*; import javax.swing.plaf.*; import javax.accessibility.*; import java.io.Serializable; import java.io.ObjectOutputStream; -import java.io.ObjectInputStream; import java.io.IOException; import java.awt.Color; @@ -409,8 +407,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { * @since 1.4 */ public ChangeListener[] getChangeListeners() { - return (ChangeListener[])listenerList.getListeners( - ChangeListener.class); + return listenerList.getListeners(ChangeListener.class); } @@ -826,17 +823,16 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { * @see JComponent#updateUI */ protected void updateLabelUIs() { - if ( getLabelTable() == null ) { + Dictionary labelTable = getLabelTable(); + + if (labelTable == null) { return; } - Enumeration labels = getLabelTable().keys(); + Enumeration labels = labelTable.keys(); while ( labels.hasMoreElements() ) { - Object value = getLabelTable().get( labels.nextElement() ); - if ( value instanceof JComponent ) { - JComponent component = (JComponent)value; - component.updateUI(); - component.setSize( component.getPreferredSize() ); - } + JComponent component = (JComponent) labelTable.get(labels.nextElement()); + component.updateUI(); + component.setSize(component.getPreferredSize()); } } @@ -845,11 +841,8 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { if (labelTable != null) { Enumeration labels = labelTable.elements(); while (labels.hasMoreElements()) { - Object value = labels.nextElement(); - if (value instanceof JComponent) { - JComponent component = (JComponent)value; - component.setSize(component.getPreferredSize()); - } + JComponent component = (JComponent) labels.nextElement(); + component.setSize(component.getPreferredSize()); } } } @@ -960,14 +953,14 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { if ( e.getPropertyName().equals( "minimum" ) || e.getPropertyName().equals( "maximum" ) ) { - Enumeration keys = getLabelTable().keys(); - Object key = null; + Dictionary labelTable = getLabelTable(); + Enumeration keys = labelTable.keys(); Hashtable hashtable = new Hashtable(); // Save the labels that were added by the developer while ( keys.hasMoreElements() ) { - key = keys.nextElement(); - Object value = getLabelTable().get( key ); + Object key = keys.nextElement(); + Object value = labelTable.get(key); if ( !(value instanceof LabelUIResource) ) { hashtable.put( key, value ); } @@ -979,7 +972,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { // Add the saved labels keys = hashtable.keys(); while ( keys.hasMoreElements() ) { - key = keys.nextElement(); + Object key = keys.nextElement(); put( key, hashtable.get( key ) ); } @@ -996,8 +989,10 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { SmartHashtable table = new SmartHashtable( increment, start ); - if ( getLabelTable() != null && (getLabelTable() instanceof PropertyChangeListener) ) { - removePropertyChangeListener( (PropertyChangeListener)getLabelTable() ); + Dictionary labelTable = getLabelTable(); + + if (labelTable != null && (labelTable instanceof PropertyChangeListener)) { + removePropertyChangeListener((PropertyChangeListener) labelTable); } addPropertyChangeListener( table ); diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java index c1aada74441..2b604301761 100644 --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java @@ -26,14 +26,11 @@ package javax.swing.plaf.basic; import java.awt.Component; -import java.awt.Container; -import java.awt.Adjustable; import java.awt.event.*; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Dimension; import java.awt.Rectangle; -import java.awt.Point; import java.awt.Insets; import java.awt.Color; import java.awt.IllegalComponentStateException; @@ -42,8 +39,6 @@ import java.beans.*; import java.util.Dictionary; import java.util.Enumeration; -import javax.swing.border.AbstractBorder; - import javax.swing.*; import javax.swing.event.*; import javax.swing.plaf.*; @@ -409,7 +404,7 @@ public class BasicSliderUI extends SliderUI{ Enumeration elements = dictionary.elements(); int baseline = -1; while (elements.hasMoreElements()) { - Component label = (Component)elements.nextElement(); + JComponent label = (JComponent) elements.nextElement(); Dimension pref = label.getPreferredSize(); int labelBaseline = label.getBaseline(pref.width, pref.height); @@ -634,7 +629,7 @@ public class BasicSliderUI extends SliderUI{ protected void calculateTrackRect() { - int centerSpacing = 0; // used to center sliders added using BorderLayout.CENTER (bug 4275631) + int centerSpacing; // used to center sliders added using BorderLayout.CENTER (bug 4275631) if ( slider.getOrientation() == JSlider.HORIZONTAL ) { centerSpacing = thumbRect.height; if ( slider.getPaintTicks() ) centerSpacing += getTickLength(); @@ -764,7 +759,7 @@ public class BasicSliderUI extends SliderUI{ if ( dictionary != null ) { Enumeration keys = dictionary.keys(); while ( keys.hasMoreElements() ) { - Component label = (Component)dictionary.get( keys.nextElement() ); + JComponent label = (JComponent) dictionary.get(keys.nextElement()); widest = Math.max( label.getPreferredSize().width, widest ); } } @@ -777,7 +772,7 @@ public class BasicSliderUI extends SliderUI{ if ( dictionary != null ) { Enumeration keys = dictionary.keys(); while ( keys.hasMoreElements() ) { - Component label = (Component)dictionary.get( keys.nextElement() ); + JComponent label = (JComponent) dictionary.get(keys.nextElement()); tallest = Math.max( label.getPreferredSize().height, tallest ); } } @@ -1001,22 +996,14 @@ public class BasicSliderUI extends SliderUI{ public void paintTicks(Graphics g) { Rectangle tickBounds = tickRect; - int i; - int maj, min, max; - int w = tickBounds.width; - int h = tickBounds.height; - int centerEffect, tickHeight; g.setColor(DefaultLookup.getColor(slider, this, "Slider.tickColor", Color.black)); - maj = slider.getMajorTickSpacing(); - min = slider.getMinorTickSpacing(); - if ( slider.getOrientation() == JSlider.HORIZONTAL ) { g.translate( 0, tickBounds.y); int value = slider.getMinimum(); - int xPos = 0; + int xPos; if ( slider.getMinorTickSpacing() > 0 ) { while ( value <= slider.getMaximum() ) { @@ -1042,7 +1029,7 @@ public class BasicSliderUI extends SliderUI{ g.translate(tickBounds.x, 0); int value = slider.getMinimum(); - int yPos = 0; + int yPos; if ( slider.getMinorTickSpacing() > 0 ) { int offset = 0; @@ -1111,10 +1098,9 @@ public class BasicSliderUI extends SliderUI{ Integer key = (Integer)keys.nextElement(); int value = key.intValue(); if (value >= minValue && value <= maxValue) { - Component label = (Component)dictionary.get( key ); - if (label instanceof JComponent) { - ((JComponent)label).setEnabled(enabled); - } + JComponent label = (JComponent) dictionary.get(key); + label.setEnabled(enabled); + if ( slider.getOrientation() == JSlider.HORIZONTAL ) { g.translate( 0, labelBounds.y ); paintHorizontalLabel( g, value, label ); @@ -1364,7 +1350,7 @@ public class BasicSliderUI extends SliderUI{ int min = slider.getMinimum(); int max = slider.getMaximum(); double valueRange = (double)max - (double)min; - double pixelsPerValue = (double)trackHeight / (double)valueRange; + double pixelsPerValue = (double)trackHeight / valueRange; int trackBottom = trackY + (trackHeight - 1); int yPosition; @@ -1715,7 +1701,7 @@ public class BasicSliderUI extends SliderUI{ * of the thumb relative to the origin of the track. */ public void mouseDragged(MouseEvent e) { - int thumbMiddle = 0; + int thumbMiddle; if (!slider.isEnabled()) { return; @@ -1841,7 +1827,7 @@ public class BasicSliderUI extends SliderUI{ public void componentResized(ComponentEvent e) { getHandler().componentResized(e); } - }; + } /** * Focus-change listener. @@ -1903,7 +1889,7 @@ public class BasicSliderUI extends SliderUI{ return b; } - }; + } /** diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java index 0cf5ed22648..c8d5a0959ae 100644 --- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java @@ -25,26 +25,17 @@ package javax.swing.plaf.synth; -import java.awt.Component; -import java.awt.Container; -import java.awt.Adjustable; import java.awt.event.*; import java.awt.Graphics; import java.awt.Dimension; -import java.awt.Font; import java.awt.FontMetrics; import java.awt.Rectangle; import java.awt.Point; import java.awt.Insets; -import java.awt.Color; -import java.awt.IllegalComponentStateException; -import java.awt.Polygon; import java.beans.*; import java.util.Dictionary; import java.util.Enumeration; -import javax.swing.border.AbstractBorder; import javax.swing.*; -import javax.swing.event.*; import javax.swing.plaf.*; import javax.swing.plaf.basic.BasicSliderUI; import sun.swing.plaf.synth.SynthUI; @@ -203,8 +194,7 @@ class SynthSliderUI extends BasicSliderUI implements PropertyChangeListener, centerY += valueHeight + 2; centerY += trackHeight + trackInsets.top + trackInsets.bottom; centerY += tickHeight + 2; - Component label = (Component)slider.getLabelTable(). - elements().nextElement(); + JComponent label = (JComponent) slider.getLabelTable().elements().nextElement(); Dimension pref = label.getPreferredSize(); return centerY + label.getBaseline(pref.width, pref.height); } @@ -226,8 +216,7 @@ class SynthSliderUI extends BasicSliderUI implements PropertyChangeListener, int trackHeight = contentHeight - valueHeight; int yPosition = yPositionForValue(value.intValue(), trackY, trackHeight); - Component label = (Component)slider.getLabelTable(). - get(value); + JComponent label = (JComponent) slider.getLabelTable().get(value); Dimension pref = label.getPreferredSize(); return yPosition - pref.height / 2 + label.getBaseline(pref.width, pref.height); @@ -434,16 +423,14 @@ class SynthSliderUI extends BasicSliderUI implements PropertyChangeListener, /** * Calculates the pad for the label at the specified index. * - * @param index index of the label to calculate pad for. + * @param i index of the label to calculate pad for. * @return padding required to keep label visible. */ private int getPadForLabel(int i) { - Dictionary dictionary = slider.getLabelTable(); int pad = 0; - Object o = dictionary.get(i); - if (o != null) { - Component c = (Component)o; + JComponent c = (JComponent) slider.getLabelTable().get(i); + if (c != null) { int centerX = xPositionForValue(i); int cHalfWidth = c.getPreferredSize().width / 2; if (centerX - cHalfWidth < insetCache.left) { @@ -500,8 +487,6 @@ class SynthSliderUI extends BasicSliderUI implements PropertyChangeListener, } } - private static Rectangle unionRect = new Rectangle(); - public void setThumbLocation(int x, int y) { super.setThumbLocation(x, y); // Value rect is tied to the thumb location. We need to repaint when @@ -544,7 +529,7 @@ class SynthSliderUI extends BasicSliderUI implements PropertyChangeListener, trackBorder; int trackLength = trackBottom - trackTop; double valueRange = (double)max - (double)min; - double pixelsPerValue = (double)trackLength / (double)valueRange; + double pixelsPerValue = (double)trackLength / valueRange; int yPosition; if (!drawInverted()) { @@ -802,8 +787,7 @@ class SynthSliderUI extends BasicSliderUI implements PropertyChangeListener, } public void mouseDragged(MouseEvent e) { - SynthScrollBarUI ui; - int thumbMiddle = 0; + int thumbMiddle; if (!slider.isEnabled()) { return; From cda549c2c280ed548079f795ef0efbefa7546ccb Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Tue, 3 Jun 2008 18:00:04 +0400 Subject: [PATCH 05/41] 4987336: JSlider doesn't show label's animated icon JSlider registers as an image observer of label's icon Reviewed-by: alexp --- .../share/classes/javax/swing/JSlider.java | 30 ++++- .../javax/swing/plaf/basic/BasicSliderUI.java | 20 +-- jdk/test/javax/swing/JSlider/4987336/box.gif | Bin 0 -> 4241 bytes .../swing/JSlider/4987336/bug4987336.html | 9 ++ .../swing/JSlider/4987336/bug4987336.java | 120 ++++++++++++++++++ .../javax/swing/JSlider/4987336/cupanim.gif | Bin 0 -> 5856 bytes 6 files changed, 168 insertions(+), 11 deletions(-) create mode 100644 jdk/test/javax/swing/JSlider/4987336/box.gif create mode 100644 jdk/test/javax/swing/JSlider/4987336/bug4987336.html create mode 100644 jdk/test/javax/swing/JSlider/4987336/bug4987336.java create mode 100644 jdk/test/javax/swing/JSlider/4987336/cupanim.gif diff --git a/jdk/src/share/classes/javax/swing/JSlider.java b/jdk/src/share/classes/javax/swing/JSlider.java index 95b49164b9a..d436f32f1a6 100644 --- a/jdk/src/share/classes/javax/swing/JSlider.java +++ b/jdk/src/share/classes/javax/swing/JSlider.java @@ -33,8 +33,7 @@ import java.io.Serializable; import java.io.ObjectOutputStream; import java.io.IOException; -import java.awt.Color; -import java.awt.Font; +import java.awt.*; import java.util.*; import java.beans.*; @@ -761,6 +760,33 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { updateLabelSizes(); } + /** + * {@inheritDoc} + * @since 1.7 + */ + public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) { + if (!isShowing()) { + return false; + } + + // Check that there is a label with such image + Enumeration elements = labelTable.elements(); + + while (elements.hasMoreElements()) { + Component component = (Component) elements.nextElement(); + + if (component instanceof JLabel) { + JLabel label = (JLabel) component; + + if (SwingUtilities.doesIconReferenceImage(label.getIcon(), img) || + SwingUtilities.doesIconReferenceImage(label.getDisabledIcon(), img)) { + return super.imageUpdate(img, infoflags, x, y, w, h); + } + } + } + + return false; + } /** * Returns the dictionary of what labels to draw at which values. diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java index 2b604301761..635efb04433 100644 --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java @@ -25,16 +25,8 @@ package javax.swing.plaf.basic; -import java.awt.Component; import java.awt.event.*; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.awt.Insets; -import java.awt.Color; -import java.awt.IllegalComponentStateException; -import java.awt.Polygon; +import java.awt.*; import java.beans.*; import java.util.Dictionary; import java.util.Enumeration; @@ -1101,6 +1093,16 @@ public class BasicSliderUI extends SliderUI{ JComponent label = (JComponent) dictionary.get(key); label.setEnabled(enabled); + if (label instanceof JLabel) { + Icon icon = label.isEnabled() ? ((JLabel) label).getIcon() : ((JLabel) label).getDisabledIcon(); + + if (icon instanceof ImageIcon) { + // Register Slider as an image observer. It allows to catch notifications about + // image changes (e.g. gif animation) + Toolkit.getDefaultToolkit().checkImage(((ImageIcon) icon).getImage(), -1, -1, slider); + } + } + if ( slider.getOrientation() == JSlider.HORIZONTAL ) { g.translate( 0, labelBounds.y ); paintHorizontalLabel( g, value, label ); diff --git a/jdk/test/javax/swing/JSlider/4987336/box.gif b/jdk/test/javax/swing/JSlider/4987336/box.gif new file mode 100644 index 0000000000000000000000000000000000000000..69d8cdf9d423958daffe16554e41e68b08095bd2 GIT binary patch literal 4241 zcmX}rd0Y~C+`#eS5Jt|yBhl1ANb#tk)FiDCHI=lK4vj7pEsd=u*>>G2c$v!}!GHka2RTebTC*n4Fj~)IMP~OgP3q{kX%BBjdQ^zE3+e zF*L(*V;&kZ>xazRA)_PBP`lMSVVz+%Sj~E?S!*?FtVUJecwe8jZ-!Cd*RJVnSM?b* z=5e#xYW|PW+^#V@o)}=WUSrl6&9K2ZWHefh#y+FbXm%{4L1i?+M!h3NyV1}-!_aQf zw(H?`ts_OdNM*1Z41EU2p20y28?*|8#*y40fDL@P-l*3b94Yh;8iigZ*TYghSE}bo z^c<14PpdUM(rDYY|B-7oj-*?Z1mnh^Sg+!>}OBGa50S3x7@)=U0 zTq2Z1R5=(Z)kvi(sT7t-719|JkyIj-N(53cP@KxIzI}$mI$_ zx6mj`NK3~B950}s7%$(+PxHAH|oIuBgOQ&-|M^ui0!{G*U zIDC#nAe{q1f&9Q3bb26_PUleRfgHMHm_emeA;+2lK~%sI=$N4yAOwQ{zf2|*zy|;j zaG-xeBLH9u2$>mX{s|s94SaI;PH53}6oalon|fR7y7og1L0jd-sT&8WFA^U2o^OcX z*TpXP<}Q2`O%7ufY`T)FsX}0>y-_kTkmPo4?7{5#*5=CkB(|Nt+mLYJVF7BF zx`#AeN=Ojw@%OCyd;Vs?)Eg^f zG0Otay#{qTQwh|TN5xpN_zsn`jW&jf*=A9O?Lu#8RC_`<8>?56p7Agbr__EiAt{Vb zbjrd9jYq_#pT^Lx`H5LaQv7U~C0R=z%&lGJ*U}x7X8m4GsW0n?L6DZxbW~aX%)gqb zDO^n!?0ujF$1J(y4Qkvs#k6{DUILCtvj9h3RrXalKd3ssvGK3~qMz8%wwl;NVQkpt)5y59$KIvhE5?}m*DU>QN(TTQ5z*H4 zqaWAal2Xk69f7O9Ut7d|ba`Oj*8y!Y!iD!QzSxz%EbJ{W*F8$7ME*muMUxW0;tM$A zA2S8)sWGU8wj;vtU|^efLvqBhtuw)kOZ{W@yopy%!wAaDygssTnUxk-dIT(nI@DpWDT$v(Ztyw`~BFr$RsGM*yDRB*Y>Zt+LibA&*jAZ|WTc7uV|Z-Q(i1Q9U+0HDV9Tem z77s?7KK)`fnd&T$p zU9$?+F|@;b;sYOy9afvRLbsi@OrT7X@fhIKti|Le`$T!2!)PO2xp>; zmXvgQGR|Z`2}Knxx0ayvSxYM2;s>*pQo-)@gWKCDUj7+p>A;(=T4R<3wih*$vbpP#eh_8g6+LzcJ10ZV4G0L^~xxD9)K^pKVi&+4Ga1?^ElDZp;g5 zR8xt-4_T7G7TFNC$%;3t>FI5Btl-9~*#(t|y~}cPei{VbE+Rq$w+;BafF0D2w$e4d z^=`)#im>lcN^EHHtWX0Tvt@W$#cx&UuyhoM7F|klvKn4jnr26EN{QY)bQ`q;p=rLl zEN}sek;8Wnd4rcm#LTwZx?Q%|22t92*OO=6=jU6{%cnmMyA>X9-hhp*j`1!^8jva{ zY2&~8)g9RFm!FE7vaAs8j{YVi$OjqA#)xvdJiE(ETzF6sCAT&Hk*sSZ--FA@Ep|O9 zA9{OrOi65eD-ULw!CQ@6SUZ7a*OXl-CcyBOWuiv$8Z~4;_~6iLV+Nl`_T~&s)&MR+ z_IuU0(ze{J{LZ+$2*p+2j>K&jBVDLn3fFXKPUr}wtflDhr@^e}PPeYb1pTqB42b&M zIXCrs&WhqhZ;DG}hKG9aUitB~NWU->@#)6?`rg7dzDI6hH?MvQY-0mhLNbayzNoJDVpWn zo*)0+6r4+y&FNyaogKq=tqXj(mPsWL7UZ3bk2yoC_D%G{2#e;obhaTEm7IQMa`Lzg zfW9ql{HDs>s>^(&;l}fg;)P1GmI7;HArP z^>E&IQov8Pf!_t?`N(cU3~RU&Yl`FV zP`)eG0N&Oz#t>S!|D+B%F@ell{h<<7ebO!LeP+!B@3o>C|wwNlq!TnU=SfbQq}9{&R>A10oxs(E*2-g+GV|f4 z=sT#_5Gh8i92I2nrk8w}r)D&cI^FWEK+H-h-`!@y&w3V@=VrT^v}qCLw2E%h6w_pO+A&hqND_-jURK)Yn`FYCZ zPm@@=nlLMxSfKarnIv=B3oc|WxW@+{0!XBCF;I3ue>3i1GdHZmcyI0y1D%QD{ zw2&*sdp|S1Hs*x6^Kj(vC|}s5E$X6wE2+~!Dxk(nEDBV8>KJV&Wf)OJ!@oQqavdUb zr+L7Dhu7)5uy{bIPG7Y*=Ri~{0nNjCtcwVxZDq9%r-0Gw`7N9qE1lk1S% z`qn{r`z7)^^}ZZAa6zf?uEbt}kP{q$WXD*Qq!uMQLS5dooxEi6!Hg$}do)Z~Z(a~B z$NMhgn3y;_z#|++#HKj6vWa?|(>zmQUs+g!jbLKMg$@($%%yDBk(;4XWSZ-*bY!d@ z(=8(zEf{z8f$>_j)%0!1edh)iC525oir#lM&X1r(el1I@WIOpPOXkIa*LdoD36PXR z^r^!=;#IhO=XSjcA(0V=ZKP2XerHO-X9WHlt&AVzF~OodS0*v0oy(b-fQt?ltKQiN z;9)kY2LhN#k5CHy!+F4(g7is6Gyu468$r{8zTjWYP4q>n5zR6}>nM3ku5+vn+s4B; z^YGWQiH|JKhg(s9HE;BitgaE08Z%K1G@OEs9;&I~=Of!}ST^4uv_&Ay5p0)b`xYVt zep)hN!)K}ytvnLR2DbM*P15k|Xz1*cnipBXS{ZJ(nsw-HMBMsF7aHP+5%$Ip;Hhd% z!3f}LLhX|g`b^G-W(MKeO1#NAQCQosq4vePrJGupHKYUw`yqBA8OLjod)6H;)g4Lv zG%K+#b-0Grp(obpm^TI@%>x;x7(&>CpexgAq-g_Fa}Nl#V|sYRUwK501f%8Dd%gDTW~H z_6`3ho|`#KGC!km_buo;=i}Rjx{pU2-wyy@7XzOZZw*?~uxbTD#3N(?%Z_!mNj}H6#nZrZVkhig@o&|QV_~fL!&zIsj;Vy&GbHCD&Q z*R<<5FKOP^4~!SHGWr3=E*`1iVKXioafn7}gHS|EeJRerq^KDcjv25^)j^ba8m@we zwiW}m52HX6_OtG^^)2Rt%bAe7h?Ep?mp$T#%sRjyIblIz*@$bl>{daLdkSg~gje&> ZW6uKqw&9Cgn!0ubx$%}eyFozY{{a+l1oQv^ literal 0 HcmV?d00001 diff --git a/jdk/test/javax/swing/JSlider/4987336/bug4987336.html b/jdk/test/javax/swing/JSlider/4987336/bug4987336.html new file mode 100644 index 00000000000..b5c9a191f56 --- /dev/null +++ b/jdk/test/javax/swing/JSlider/4987336/bug4987336.html @@ -0,0 +1,9 @@ + + + +There are four Sliders. Each of them has a label with animated gif (a cup of coffee) +and a label with static image. + +Check that for every LAF animation works for all Sliders. + + diff --git a/jdk/test/javax/swing/JSlider/4987336/bug4987336.java b/jdk/test/javax/swing/JSlider/4987336/bug4987336.java new file mode 100644 index 00000000000..0e0e373034a --- /dev/null +++ b/jdk/test/javax/swing/JSlider/4987336/bug4987336.java @@ -0,0 +1,120 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* @test + @bug 4987336 + @summary JSlider doesn't show label's animated icon. + @author Pavel Porvatov + @run applet/manual=done bug4987336.html +*/ + +import javax.swing.*; +import javax.swing.border.TitledBorder; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.Hashtable; + +public class bug4987336 extends JApplet { + private static final String IMAGE_RES = "box.gif"; + + private static final String ANIM_IMAGE_RES = "cupanim.gif"; + + public void init() { + JPanel pnLafs = new JPanel(); + pnLafs.setLayout(new BoxLayout(pnLafs, BoxLayout.Y_AXIS)); + + ButtonGroup group = new ButtonGroup(); + + pnLafs.setBorder(new TitledBorder("Available Lafs")); + + for (UIManager.LookAndFeelInfo lafInfo : UIManager.getInstalledLookAndFeels()) { + LafRadioButton comp = new LafRadioButton(lafInfo); + + pnLafs.add(comp); + group.add(comp); + } + + JPanel pnContent = new JPanel(); + + pnContent.setLayout(new BoxLayout(pnContent, BoxLayout.Y_AXIS)); + + pnContent.add(pnLafs); + pnContent.add(createSlider(true, IMAGE_RES, IMAGE_RES, ANIM_IMAGE_RES, ANIM_IMAGE_RES)); + pnContent.add(createSlider(false, IMAGE_RES, IMAGE_RES, ANIM_IMAGE_RES, ANIM_IMAGE_RES)); + pnContent.add(createSlider(true, ANIM_IMAGE_RES, null, IMAGE_RES, IMAGE_RES)); + pnContent.add(createSlider(false, ANIM_IMAGE_RES, null, IMAGE_RES, IMAGE_RES)); + + getContentPane().add(new JScrollPane(pnContent)); + } + + private static JSlider createSlider(boolean enabled, + String firstEnabledImage, String firstDisabledImage, + String secondEnabledImage, String secondDisabledImage) { + Hashtable dictionary = new Hashtable(); + + dictionary.put(0, createLabel(firstEnabledImage, firstDisabledImage)); + dictionary.put(1, createLabel(secondEnabledImage, secondDisabledImage)); + + JSlider result = new JSlider(0, 1); + + result.setLabelTable(dictionary); + result.setPaintLabels(true); + result.setEnabled(enabled); + + return result; + } + + private static JLabel createLabel(String enabledImage, String disabledImage) { + ImageIcon enabledIcon = enabledImage == null ? null : + new ImageIcon(bug4987336.class.getResource(enabledImage)); + + ImageIcon disabledIcon = disabledImage == null ? null : + new ImageIcon(bug4987336.class.getResource(disabledImage)); + + JLabel result = new JLabel(enabledImage == null && disabledImage == null ? "No image" : "Image", + enabledIcon, SwingConstants.LEFT); + + result.setDisabledIcon(disabledIcon); + + return result; + } + + private class LafRadioButton extends JRadioButton { + public LafRadioButton(final UIManager.LookAndFeelInfo lafInfo) { + super(lafInfo.getName(), lafInfo.getName().equals(UIManager.getLookAndFeel().getName())); + + addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + try { + UIManager.setLookAndFeel(lafInfo.getClassName()); + + SwingUtilities.updateComponentTreeUI(bug4987336.this); + } catch (Exception ex) { + // Ignore such errors + System.out.println("Cannot set LAF " + lafInfo.getName()); + } + } + }); + } + } +} diff --git a/jdk/test/javax/swing/JSlider/4987336/cupanim.gif b/jdk/test/javax/swing/JSlider/4987336/cupanim.gif new file mode 100644 index 0000000000000000000000000000000000000000..934d093c580e5690a29612b5fc15ee46e5696058 GIT binary patch literal 5856 zcmZWtcT^K;`<*~YK_DRoLJvJOMNp(_ARtwwO2>ed(5r-QNC83-2whr0dJ_;71Xg+n zK`dZd0V~3~xa#h@?k+#v^A-Jl^ViHXbLQN0?|t6)d9S(UX^6M!9X9RchgTnh{P z<>mVU0sGq8`vCCm)4{v_{qp_&fc<^#{r#^W%kCetHFI(#8QYm@9oFOp0RSNT8O+BI zAOQ7)d*JJD0r20*8Oyd|-JQk3eKO&4DY3drldCR*46}i=LJ?h0A(O4wne=U{I3{|c zpc`qSdT1<*yS*^PB@qGhjuNhYnC4EOdO1qI)}s@g$5HF~Dg9M^8QSp&Xu&l*XnEc5n{{##cm>rYI!NKO0XXhrQheyY;kh%MFo3Q6EUaoH45q(H_H2Uf# zbbL+hNB9lVRjAg8`s%{bC0$Cz3E3LKkhvdo4~g2!T#EuWY6iksIr9r_MUVG=CHf>`IPDJ>lqjB+zRz6Zb=HUJQ&XO;sP49{IE*Szpv9)*M;n2oO=w*rH*f_Tj~XQs>tQfH zt^zUNx0&_aFF)*Dzde6Z*JyB)XUJ40=5F2SPK;=U|NU~kC4mn=DcJ@3^U>)3N={+G zSChDac%o2He=*^2;6Z^yfC^ypKMwZ`s;0Dds^f-C)aMz?;U-5bjV1lkK*ptS1uvV^ zIgx+1Bx=7tqnFRqag{FQ0T+Q0(jqODTp}p!O`2~1Gw66gu0`)l97*axo1ap!aE9VV zIB*G;kRBHm6Pli!85$>F8_(N49UGHF$OzKiH$%m)6ZxX=4=E zybDvl#CV1&dLPz0{iyU^+!KKYiK*?H(PS#*LCCAd)qcH}UuPJ6Ic1aCxTmfk@ZtA+ z^6uc31wd%j$P7p6HrLRN(@-YvsV=ZAw`pd>ubx3!=^>5Ta8S08wa+Y?;86!x6Jc&) zy{(EN2yEGNUD>u+BpRbD?%XOO;T7vn)+>Pl8VY?=P9ABy)*w*&$7KEuWxfidUh=GE zZ!5UN;KhS`>(pyjBbv9W|I+HEp{p$3c=KsrA8~HW?>>BEE>4TKq@suB8%*G#z$wG2 zX&&oueXpQZ_xHB?O&<2AEJFU;68}xK?p!bD?_`Da@D{N$)zL84uKBFYb5uWD>kRli ziLnO~>wcAZZ`SfWj&yHv@DiVJvY(qE81BgoC^41XlW4pz!dd*~;}pEW>>h5^Fmw^o8$4itc4me0a&gmT7X@)UlX%JZ z2rVs?>5n#&jz+Q3wyvfSxK|<8*3;BkKljL$3`@I4>2uAJ1^FG`dO&$I^BVP3?wJN9 zTZUBXNy@b{_()y5^(-`DAt7v9D%$#teje5926_Zx^k68g;28aEe>$*wZHsl^d2yZd z_MMNDX?u^r3f;5wnqmFMU8 zKw2^@H?|ljeBpIktk;1@xXdWJKnHf0{p@gcz09ME=a%SpqK26-Bo~-{^ zj%mrcW)(R8KEDceAs+w9c)I;CtD0aj%C}78hjJH{s#P- zi?BzMmifjCIeVJOSPg`R0I%UGA3E3SbpfAF^$3?3s$a9*{BiZUSf{hX%V6Dj1d7); zN7JsAJYn3nqlC&++X^djQr=b4m9CNBGrEW(Cn&&^5UDgbOe7ngntxf^H$OYakr9!J za64Bf;&L8aTp4Es^|!keRe=YR=$e@q8p|>5Q9X8pH-B(|7)jOLILneAxS4dmX;YYm4<8(rdN9*1q;mHtmmZ zF{=~0&VV8QcAx3m#DI7uttu_Lx0soHwnKY(+K8DrRX07KD_ctx%G9&KWX{y_qGV8} zafKW2p$NrO4h{v#m9g$@Q@_rBf4Qr0p=o{k?&makmKe4ywR!u+Yg&y_>>s|ImL@xX zr-pm=quA4zoBU4^HDvn~7Wt)=nGIXd+XO)8NgEpX>P8->lO8!>)a}#F;NLH9-#XtP zhJU8=2h5p}J^|!7*&!*`g1hoGXS{%!Y`@`e0>!Qox&yJ7rM8enM}5cA)tKNx!OoGE zIP0VMAD|=%nNWdvbL@}zRXNkeBspOb>tgDJf%f~mf)t1cJv4f6>N^JGyWFVw+s5@K}gs5rtx^*)*Ws)!w zFwOFx*GTTqtvY}2z8ut)7QA?yv}VX0UAjE+)O`Q}Z%;x$n|v4U4Foo0m@pL=H^l;L{Nc(%?9V-AZzK2CqBIZ& z+21t==3pJt|JORSBcQWmG>J1Iq~9H>qO=B7BLSia4BTBE$^AJd^J$ZGm~l)PkijT+ckJ zdu{IUl@aBpF=et^{bZycx<@UUJUxpT@XAt!!Qo58Pf(BGt7EfE>yKBrh`{oX2nhLc zOml8Ax=kW;@cx5J)Nj~*htRF!sq-TOeMKssGm(cz(-lLBmHiV?q=3E?q1=uJpbo_V zJf^kF@1LjhC@NSK#cwf~Jh;=40i33YHOgD?3@0 zPaTZC7@dF(i-5zZX$d*3R3E=gzd~PhU}{eA<xmCh>STI z+!mr7PVFWDaaRfC!odE@(ZFhNR35o%+O)%ic5B!w(saPg=Ux+Lw5iNHZ(=^Ee4%IX z!SYLVSTTCNtJkDvhB%FzateD_!MeSTM@`(ek>%y1QXfApaVR7s!xiR3rOgilQzH3Z0|DX z%TUgl8@fIuA&h(I8-==_2Sv&V_tT#uotRc~9tI=oS5{1yiXDH5UgIz1S;WXaid#Oa zLwka@zmjic|FN?GND@_&)pES*BWxpd+s;t-8$F-^1|a;mExb+X2lYH{Em{Q;)Yv$ULwdiA@Nl0E8p`&kIX1et|W z>KN-xlFNP%XtUvLNjh6F8-S z;r_D0Dk|k2TKN2#C}5jw8UxBy*?hs@WXPR+vfjYB$I*7~%i`t8O6InYG) zKRvP|u=aMb3CF-EIxkl_8FNubyIy~RfdCsFT8h#_RvCHk6@$;z;zc{`&?lWX<-#!r zyivSLvrIs^d!q|XCX~u#^d{y~ZVKA;Y$nYa2|!J^mb5bNm?glVF=@V(@NfhyTY`~+ z3JejaxyA<-i$l>Bj*uL)RB})(Au^X7px35DEe*=o)r;{z(a_x)P}kI5THY@bKh&5J z&t)gjx#;OYq&4CQNY-Z05JB}PN>ONwn2n9#7Q z{1*K@oVjACny1}zR2?mcgD`AmevYy5@#JO~WKiIfMX@rb znP#BuR8>ER=o|IDCg=lA{@Fgho|uX^-!4YrOq4I*C;Iulg@c7#eUUK6I-QWba$Fk2 zO0!iUAl1Pe_!IY%!3)H@zXwPA75gspR~#K6vwbSHB#}_YQnG~tvPwr^fH-tK?B2Sb9cg94kgNQ6eRfoe2#}%A?21$3f)-$Z?T!(Q+vz=n92|a85dtS?QbJ zSl`ikBZ5*=M7|I@Tt0Fp?7GOrxok>N0c$Gc=AG~^&Ct6*Kvrk^CH?5dGu5=V(Fd@J zwSjXf8B-5$vghX5>yJ@^dG9ms6c*F2KKFfyDYnLLBMq%Gdupv8?vRf}?8{mGDOX^E zlEtbi=y6u+3NHU3t>?=%CbOC1&W39QI1N&mi*g0Z-SFcWejUJ~w#Bq*Di1i!&s}k} z7AiZHY*PzcZ8Fa>QZ)7V#lY>_a20t|W5X&Dz5xF(yxzx>ET0KyPb-TJz7qku>8pB}<{y>BgQ?VXdo0 zDz(3snOwczV7WDE8$W+OK2%7Q>mTFdDfVh%d}rdYvc^D?HIRacb-M&G0w{JAK6Z)~ zFT2Q^FI2y%h{Tg0bBS1VF`_6u!u(1SxTS>JoOJ|ISHeW|7UuW%`Ozu|1J5Mhb~ryi zIX*KxH@~pBbZ2?x?&`h!4<4?qKYILx=f|baCtJpfUZAWW?Lf~0Z&o2d(C2x)Ppu@YR2VN7;JiBF~-f<07VQb7|T@asJFR!Sn4b&&9PUU>jJ#z zw-D-J%HpZVp8L_-b6u-cFRMB^E1yN6sDC-PE<}qYFxga6Y&t(w_i33L%cJr)MHdSj zEcjw_fca_aMT`;AQWnHeI|YRl$Y_xqu0XyfQr|+t9zYWQPu4No+|OAshD)7;$zpR} zDsWYZ$v?UEhIcoRMj^cH4js!S7f>qC5xGf1zKXJ*2QhARh~8JR?ap^Hgr$l@W0Sgy zN=5J<*0BL%>QbF=mN~^@3-qNA)bPVeE-7d*9v#ibGB2tqCrKF{%fWt&<0~~7K=Oc^ zk$QfWC%6UjYR*>oRHw73fXEm6-(xTKVV;v%d611Et&U8;&09 ze2)|~@t*1oZb6S6Io1T8|C_zEqJ9nLh9h6!{Z2&-zBiRv+#`v}RPFVT1~G-A4{mdZ zBR~DZjrVr<4D)sY8M9QaQI^SaI_8%CVjv9y4hj+HP0^D29uW9|A@Ku1u?K)uT67t8 z2C&Lf!BW>Wh9#eAb85#PkBR-v&*bOIQ}1w~gKP&2OUptI1WTRma9UNW!m&|-eH3fe zu*2b_9xD#PCvpn~Ttjj~HIw*?Xw6mbmORo_-*e<7F%563mozwulFD}0U|iCrsX7GV zz6FB$$Ho7S#~PY(*%e=KUgk6(EXGq$(2Q$qVmx$i9F#MNVU>b-mCudFRH2C&9<_qJ z*}GNdt|6%9N}J4- v#)*z&!PadtV#i)e2ZqW>d8KNF>1BpFW9_ARsG>Srj`~`MOSNcU4Q%j#O>kr* literal 0 HcmV?d00001 From 321a423512cc55fd78370c835865f249541187f5 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons Date: Tue, 3 Jun 2008 13:28:16 -0700 Subject: [PATCH 06/41] 6708729: update jdk Makefiles for new javap Reviewed-by: ohair --- jdk/make/common/Release.gmk | 4 ++++ jdk/make/common/internal/Defs-langtools.gmk | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index f3a6c626d3b..970d979d55a 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -369,6 +369,7 @@ TOOLS = \ com/sun/jarsigner \ com/sun/mirror \ com/sun/source \ + com/sun/tools/classfile \ com/sun/tools/doclets \ com/sun/tools/example/debug/expr \ com/sun/tools/example/debug/tty \ @@ -378,6 +379,7 @@ TOOLS = \ com/sun/tools/javadoc \ com/sun/tools/apt \ com/sun/tools/javah \ + com/sun/tools/javap \ com/sun/tools/corba \ com/sun/tools/internal/xjc \ com/sun/tools/internal/ws \ @@ -568,6 +570,8 @@ $(NOT_RT_JAR_LIST): FRC $(ECHO) "sun/tools/java/" >> $@ $(ECHO) "sun/tools/javac/" >> $@ $(ECHO) "sun/tools/javap/" >> $@ + $(ECHO) "com/sun/tools/classfile/" >> $@ + $(ECHO) "com/sun/tools/javap/" >> $@ $(ECHO) "sun/tools/jconsole/" >> $@ $(ECHO) "sun/tools/jps/" >> $@ $(ECHO) "sun/tools/jstat/" >> $@ diff --git a/jdk/make/common/internal/Defs-langtools.gmk b/jdk/make/common/internal/Defs-langtools.gmk index 4a1444bc932..5d53e415815 100644 --- a/jdk/make/common/internal/Defs-langtools.gmk +++ b/jdk/make/common/internal/Defs-langtools.gmk @@ -31,13 +31,15 @@ IMPORT_RT_PACKAGES += \ javax/tools IMPORT_TOOLS_PACKAGES += \ + com/sun/javadoc \ com/sun/mirror \ com/sun/source \ com/sun/tools/apt \ - com/sun/tools/javac \ - com/sun/tools/javah \ - com/sun/tools/javadoc \ + com/sun/tools/classfile \ com/sun/tools/doclets \ - com/sun/javadoc \ + com/sun/tools/javac \ + com/sun/tools/javadoc \ + com/sun/tools/javah \ + com/sun/tools/javap \ sun/tools/javap From 720109f8ec24ed524ef62530037824d5c0d37e52 Mon Sep 17 00:00:00 2001 From: Xue-Lei Andrew Fan Date: Wed, 4 Jun 2008 09:56:14 +0800 Subject: [PATCH 07/41] 6690018: RSAClientKeyExchange NullPointerException Checking certificate key length for RSA_EXPORT key exchange Reviewed-by: wetmore, mullan --- .../sun/security/ssl/ClientHandshaker.java | 64 +- .../ssl/ClientHandshaker/RSAExport.java | 561 ++++++++++++++++++ 2 files changed, 623 insertions(+), 2 deletions(-) create mode 100644 jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java diff --git a/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java b/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java index 2f7757c8cbd..8ad9e67b1d6 100644 --- a/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java +++ b/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java @@ -32,6 +32,7 @@ import java.security.*; import java.util.*; import java.security.interfaces.ECPublicKey; +import java.security.interfaces.RSAPublicKey; import java.security.spec.ECParameterSpec; import java.security.cert.X509Certificate; @@ -147,8 +148,33 @@ final class ClientHandshaker extends Handshaker { case HandshakeMessage.ht_server_key_exchange: serverKeyExchangeReceived = true; switch (keyExchange) { - case K_RSA: case K_RSA_EXPORT: + /** + * The server key exchange message is sent by the server only + * when the server certificate message does not contain the + * proper amount of data to allow the client to exchange a + * premaster secret, such as when RSA_EXPORT is used and the + * public key in the server certificate is longer than 512 bits. + */ + if (serverKey == null) { + throw new SSLProtocolException + ("Server did not send certificate message"); + } + + if (!(serverKey instanceof RSAPublicKey)) { + throw new SSLProtocolException("Protocol violation:" + + " the certificate type must be appropriate for the" + + " selected cipher suite's key exchange algorithm"); + } + + if (JsseJce.getRSAKeyLength(serverKey) <= 512) { + throw new SSLProtocolException("Protocol violation:" + + " server sent a server key exchange message for" + + " key exchange " + keyExchange + + " when the public key in the server certificate" + + " is less than or equal to 512 bits in length"); + } + try { this.serverKeyExchange(new RSA_ServerKeyExchange(input)); } catch (GeneralSecurityException e) { @@ -180,6 +206,9 @@ final class ClientHandshaker extends Handshaker { throwSSLException("Server key", e); } break; + case K_RSA: + case K_DH_RSA: + case K_DH_DSS: case K_ECDH_ECDSA: case K_ECDH_RSA: throw new SSLProtocolException("Protocol violation: server sent" @@ -580,6 +609,16 @@ final class ClientHandshaker extends Handshaker { case K_RSA: case K_RSA_EXPORT: + if (serverKey == null) { + throw new SSLProtocolException + ("Server did not send certificate message"); + } + + if (!(serverKey instanceof RSAPublicKey)) { + throw new SSLProtocolException + ("Server certificate does not include an RSA key"); + } + /* * For RSA key exchange, we randomly generate a new * pre-master secret and encrypt it with the server's @@ -588,8 +627,29 @@ final class ClientHandshaker extends Handshaker { * it's a performance speedup not to do that until * the client's waiting for the server response, but * more of a speedup for the D-H case. + * + * If the RSA_EXPORT scheme is active, when the public + * key in the server certificate is less than or equal + * to 512 bits in length, use the cert's public key, + * otherwise, the ephemeral one. */ - PublicKey key = (keyExchange == K_RSA) ? serverKey : ephemeralServerKey; + PublicKey key; + if (keyExchange == K_RSA) { + key = serverKey; + } else { // K_RSA_EXPORT + if (JsseJce.getRSAKeyLength(serverKey) <= 512) { + // extraneous ephemeralServerKey check done + // above in processMessage() + key = serverKey; + } else { + if (ephemeralServerKey == null) { + throw new SSLProtocolException("Server did not send" + + " a RSA_EXPORT Server Key Exchange message"); + } + key = ephemeralServerKey; + } + } + m2 = new RSAClientKeyExchange(protocolVersion, maxProtocolVersion, sslContext.getSecureRandom(), key); break; diff --git a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java new file mode 100644 index 00000000000..26b00867d0d --- /dev/null +++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/ClientHandshaker/RSAExport.java @@ -0,0 +1,561 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6690018 + * @summary RSAClientKeyExchange NullPointerException + */ + +/* + * Certificates and key used in the test. + * + * TLS server certificate: + * server private key: + * -----BEGIN RSA PRIVATE KEY----- + * Proc-Type: 4,ENCRYPTED + * DEK-Info: DES-EDE3-CBC,97EC03A2D031B7BC + * + * 22wrD+DPv3VF8xg9xoeBqHzFnOVbTLQgVulzaCECDF4zWdxElYKy4yYyY6dMDehi + * XT77NTsq1J14zjJHPp2/U6B5OpZxnf97ZSD0ZC9/DDe/2gjW4fY1Lv0TVP0PdXnm + * cj84RaDiiSk/cERlFzFJ5L8ULMwxdOtYwXwZ4upITw2lT+8zDlBD2i3zZ4TcWrzE + * /su5Kpu+Mp3wthfGX+ZGga2T/NS8ZCKZE+gJDPKQZ/x34VBw+YANQGyCJPv1iMaE + * RyagnpApH9OPSrRIp2iR6uWT6836CET2erbfPaC1odyd8IsbnLldVs9CklH7EgXL + * Nms+DqrQEbNmvMuQYEFyZEHN9D1fGONeacx+cjI85FyMSHSEO65JJmasAxgQe4nF + * /yVz3rNQ2qAGqBhjsjP/WaXuB2aLZiAli/HjN17EJws= + * -----END RSA PRIVATE KEY----- + * + * -----BEGIN RSA PRIVATE KEY----- + * MIIBOQIBAAJBALlfGg/5ZweJcW5zqLdnQ2uyircqDDlENKnv9FABOm/j0wnlPHqX + * CCqFBLoM7tG8ohci1SPy6fLJ5dqLf5FOH2sCAwEAAQJATO0/hpOMgx8xmJGc2Yeb + * /gyY7kwfyIAajs9Khw0LcDTYTo2EAI+vMmDpU+dvmOCLUqq/Z2tiKJhGyrmcBlxr + * kQIhAPYkbYovtvWHslxRb78x4eCrn2p1H7iolNKbyepjCI3zAiEAwMufJlLI9Q0O + * BIr7fPnUhbs9NyMHLIvIQAf/hXYubqkCIGJZR9NxIT+VyrSMbYQNoF0u9fGJfvU/ + * lsdYLCOVEnP1AiAsSFjUx50K1CXNG1MqYIPU963W1T/Xln+3XV7ue7esiQIgW2Lu + * xGvz2dAUsGId+Xr2GZXb7ZucY/cPt4o5qdP1m7c= + * -----END RSA PRIVATE KEY----- + * + * Private-Key: (512 bit) + * modulus: + * 00:b9:5f:1a:0f:f9:67:07:89:71:6e:73:a8:b7:67: + * 43:6b:b2:8a:b7:2a:0c:39:44:34:a9:ef:f4:50:01: + * 3a:6f:e3:d3:09:e5:3c:7a:97:08:2a:85:04:ba:0c: + * ee:d1:bc:a2:17:22:d5:23:f2:e9:f2:c9:e5:da:8b: + * 7f:91:4e:1f:6b + * publicExponent: 65537 (0x10001) + * privateExponent: + * 4c:ed:3f:86:93:8c:83:1f:31:98:91:9c:d9:87:9b: + * fe:0c:98:ee:4c:1f:c8:80:1a:8e:cf:4a:87:0d:0b: + * 70:34:d8:4e:8d:84:00:8f:af:32:60:e9:53:e7:6f: + * 98:e0:8b:52:aa:bf:67:6b:62:28:98:46:ca:b9:9c: + * 06:5c:6b:91 + * prime1: + * 00:f6:24:6d:8a:2f:b6:f5:87:b2:5c:51:6f:bf:31: + * e1:e0:ab:9f:6a:75:1f:b8:a8:94:d2:9b:c9:ea:63: + * 08:8d:f3 + * prime2: + * 00:c0:cb:9f:26:52:c8:f5:0d:0e:04:8a:fb:7c:f9: + * d4:85:bb:3d:37:23:07:2c:8b:c8:40:07:ff:85:76: + * 2e:6e:a9 + * exponent1: + * 62:59:47:d3:71:21:3f:95:ca:b4:8c:6d:84:0d:a0: + * 5d:2e:f5:f1:89:7e:f5:3f:96:c7:58:2c:23:95:12: + * 73:f5 + * exponent2: + * 2c:48:58:d4:c7:9d:0a:d4:25:cd:1b:53:2a:60:83: + * d4:f7:ad:d6:d5:3f:d7:96:7f:b7:5d:5e:ee:7b:b7: + * ac:89 + * coefficient: + * 5b:62:ee:c4:6b:f3:d9:d0:14:b0:62:1d:f9:7a:f6: + * 19:95:db:ed:9b:9c:63:f7:0f:b7:8a:39:a9:d3:f5: + * 9b:b7 + * + * + * server certificate: + * Data: + * Version: 3 (0x2) + * Serial Number: 11 (0xb) + * Signature Algorithm: sha1WithRSAEncryption + * Issuer: C=US, ST=Some-State, O=Some Org, CN=Someone + * Validity + * Not Before: Apr 18 15:07:30 2008 GMT + * Not After : Jan 4 15:07:30 2028 GMT + * Subject: C=US, ST=Some-State, O=Some Org, CN=SomeoneExport + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * RSA Public Key: (512 bit) + * Modulus (512 bit): + * 00:b9:5f:1a:0f:f9:67:07:89:71:6e:73:a8:b7:67: + * 43:6b:b2:8a:b7:2a:0c:39:44:34:a9:ef:f4:50:01: + * 3a:6f:e3:d3:09:e5:3c:7a:97:08:2a:85:04:ba:0c: + * ee:d1:bc:a2:17:22:d5:23:f2:e9:f2:c9:e5:da:8b: + * 7f:91:4e:1f:6b + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Basic Constraints: + * CA:FALSE + * X509v3 Key Usage: + * Digital Signature, Non Repudiation, Key Encipherment + * X509v3 Subject Key Identifier: + * F1:30:98:BE:7C:AA:F9:B1:91:38:60:AE:13:5F:67:9C:0A:32:9E:31 + * X509v3 Authority Key Identifier: + * keyid:B5:32:43:D7:00:24:92:BA:E9:95:E5:F9:A3:64:6C:84:EE:33:2E:15 + * + * -----BEGIN CERTIFICATE----- + * MIICIDCCAYmgAwIBAgIBCzANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzET + * MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcxEDAOBgNVBAMT + * B1NvbWVvbmUwHhcNMDgwNDE4MTUwNzMwWhcNMjgwMTA0MTUwNzMwWjBNMQswCQYD + * VQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcx + * FjAUBgNVBAMTDVNvbWVvbmVFeHBvcnQwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA + * uV8aD/lnB4lxbnOot2dDa7KKtyoMOUQ0qe/0UAE6b+PTCeU8epcIKoUEugzu0byi + * FyLVI/Lp8snl2ot/kU4fawIDAQABo1owWDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF + * 4DAdBgNVHQ4EFgQU8TCYvnyq+bGROGCuE19nnAoynjEwHwYDVR0jBBgwFoAUtTJD + * 1wAkkrrpleX5o2RshO4zLhUwDQYJKoZIhvcNAQEFBQADgYEAFU+fP9FSTQNVZOhv + * eJ+zq6wI/biwzTgPbAq3yu2gb5kT85z4nzqBhPd2LWWFXhUW/D8QyNZ54X30y0Ug + * 3NfUAvOANW7CgUbHBmm77KQiF4nWdh338qqq9HzLGrPqcxX0dmiq2RBVPy9wb2Ea + * FTZiU2v+9pkoLoSDnCOfPCg/4Q4= + * -----END CERTIFICATE----- + * + * + * Trusted CA certificate: + * Certificate: + * Data: + * Version: 3 (0x2) + * Serial Number: 0 (0x0) + * Signature Algorithm: md5WithRSAEncryption + * Issuer: C=US, ST=Some-State, O=Some Org, CN=Someone + * Validity + * Not Before: Mar 30 11:44:47 2001 GMT + * Not After : Apr 27 11:44:47 2028 GMT + * Subject: C=US, ST=Some-State, O=Some Org, CN=Someone + * Subject Public Key Info: + * Public Key Algorithm: rsaEncryption + * RSA Public Key: (1024 bit) + * Modulus (1024 bit): + * 00:c1:98:e4:7a:87:53:0f:94:87:dc:da:f3:59:39: + * 3e:36:95:e8:77:58:ff:46:8a:81:1b:5e:c5:4c:fa: + * b6:91:19:30:be:5b:ef:4c:aa:84:30:a4:9a:d4:68: + * af:ef:fa:b4:2c:76:8b:29:33:46:cf:38:74:7c:79: + * d5:07:a6:43:39:84:52:39:4f:8a:1c:f3:73:19:12: + * 40:cf:ee:a1:77:43:01:02:be:8d:32:11:28:70:f4: + * cf:ab:43:75:e4:fb:74:f1:8c:2e:43:24:ba:85:3f: + * 66:3a:05:ea:f7:ce:5b:97:e2:34:a3:f0:87:f4:f8: + * d1:59:12:5a:68:b7:78:64:a9 + * Exponent: 65537 (0x10001) + * X509v3 extensions: + * X509v3 Subject Key Identifier: + * B5:32:43:D7:00:24:92:BA:E9:95:E5:F9:A3:64:6C:84:EE:33:2E:15 + * X509v3 Authority Key Identifier: + * keyid:B5:32:43:D7:00:24:92:BA:E9:95:E5:F9:A3:64:6C:84:EE:33:2E:15 + * DirName:/C=US/ST=Some-State/O=Some Org/CN=Someone + * serial:00 + * + * X509v3 Basic Constraints: + * CA:TRUE + * + * -----BEGIN CERTIFICATE----- + * MIICpjCCAg+gAwIBAgIBADANBgkqhkiG9w0BAQQFADBHMQswCQYDVQQGEwJVUzET + * MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcxEDAOBgNVBAMT + * B1NvbWVvbmUwHhcNMDEwMzMwMTE0NDQ3WhcNMjgwNDI3MTE0NDQ3WjBHMQswCQYD + * VQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcx + * EDAOBgNVBAMTB1NvbWVvbmUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMGY + * 5HqHUw+Uh9za81k5PjaV6HdY/0aKgRtexUz6tpEZML5b70yqhDCkmtRor+/6tCx2 + * iykzRs84dHx51QemQzmEUjlPihzzcxkSQM/uoXdDAQK+jTIRKHD0z6tDdeT7dPGM + * LkMkuoU/ZjoF6vfOW5fiNKPwh/T40VkSWmi3eGSpAgMBAAGjgaEwgZ4wHQYDVR0O + * BBYEFLUyQ9cAJJK66ZXl+aNkbITuMy4VMG8GA1UdIwRoMGaAFLUyQ9cAJJK66ZXl + * +aNkbITuMy4VoUukSTBHMQswCQYDVQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0 + * ZTERMA8GA1UEChMIU29tZSBPcmcxEDAOBgNVBAMTB1NvbWVvbmWCAQAwDAYDVR0T + * BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBhf3PX0xWxtaUwZlWCO7GfPwCKgBWr + * CXqlqjtWHCshaaU7wUsDOwxFDWwKjFrMerQLsLuBlhdXEbNfSPjychkQtfezQHcS + * q0Atq7+KVSmRbDw6oKVRs5v1BBzLCupy+o16fNz3/hwreAWwQnSMtAh/osNS9w1b + * QeVWU+JV47H+vg== + * -----END CERTIFICATE----- + * + */ + +import java.io.*; +import java.net.*; +import java.security.KeyStore; +import java.security.KeyFactory; +import java.security.cert.Certificate; +import java.security.cert.CertificateFactory; +import java.security.spec.*; +import java.security.interfaces.*; +import javax.net.ssl.*; +import java.math.BigInteger; + +public class RSAExport { + + /* + * ============================================================= + * Set the various variables needed for the tests, then + * specify what tests to run on each side. + */ + + + /* + * Should we run the client or server in a separate thread? + * Both sides can throw exceptions, but do you have a preference + * as to which side should be the main thread. + */ + static boolean separateServerThread = true; + + /* + * Where do we find the keystores? + */ + static String trusedCertStr = + "-----BEGIN CERTIFICATE-----\n" + + "MIICpjCCAg+gAwIBAgIBADANBgkqhkiG9w0BAQQFADBHMQswCQYDVQQGEwJVUzET\n" + + "MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcxEDAOBgNVBAMT\n" + + "B1NvbWVvbmUwHhcNMDEwMzMwMTE0NDQ3WhcNMjgwNDI3MTE0NDQ3WjBHMQswCQYD\n" + + "VQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcx\n" + + "EDAOBgNVBAMTB1NvbWVvbmUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMGY\n" + + "5HqHUw+Uh9za81k5PjaV6HdY/0aKgRtexUz6tpEZML5b70yqhDCkmtRor+/6tCx2\n" + + "iykzRs84dHx51QemQzmEUjlPihzzcxkSQM/uoXdDAQK+jTIRKHD0z6tDdeT7dPGM\n" + + "LkMkuoU/ZjoF6vfOW5fiNKPwh/T40VkSWmi3eGSpAgMBAAGjgaEwgZ4wHQYDVR0O\n" + + "BBYEFLUyQ9cAJJK66ZXl+aNkbITuMy4VMG8GA1UdIwRoMGaAFLUyQ9cAJJK66ZXl\n" + + "+aNkbITuMy4VoUukSTBHMQswCQYDVQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0\n" + + "ZTERMA8GA1UEChMIU29tZSBPcmcxEDAOBgNVBAMTB1NvbWVvbmWCAQAwDAYDVR0T\n" + + "BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBhf3PX0xWxtaUwZlWCO7GfPwCKgBWr\n" + + "CXqlqjtWHCshaaU7wUsDOwxFDWwKjFrMerQLsLuBlhdXEbNfSPjychkQtfezQHcS\n" + + "q0Atq7+KVSmRbDw6oKVRs5v1BBzLCupy+o16fNz3/hwreAWwQnSMtAh/osNS9w1b\n" + + "QeVWU+JV47H+vg==\n" + + "-----END CERTIFICATE-----"; + + static String serverCertStr = + "-----BEGIN CERTIFICATE-----\n" + + "MIICIDCCAYmgAwIBAgIBCzANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzET\n" + + "MBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcxEDAOBgNVBAMT\n" + + "B1NvbWVvbmUwHhcNMDgwNDE4MTUwNzMwWhcNMjgwMTA0MTUwNzMwWjBNMQswCQYD\n" + + "VQQGEwJVUzETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEChMIU29tZSBPcmcx\n" + + "FjAUBgNVBAMTDVNvbWVvbmVFeHBvcnQwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA\n" + + "uV8aD/lnB4lxbnOot2dDa7KKtyoMOUQ0qe/0UAE6b+PTCeU8epcIKoUEugzu0byi\n" + + "FyLVI/Lp8snl2ot/kU4fawIDAQABo1owWDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF\n" + + "4DAdBgNVHQ4EFgQU8TCYvnyq+bGROGCuE19nnAoynjEwHwYDVR0jBBgwFoAUtTJD\n" + + "1wAkkrrpleX5o2RshO4zLhUwDQYJKoZIhvcNAQEFBQADgYEAFU+fP9FSTQNVZOhv\n" + + "eJ+zq6wI/biwzTgPbAq3yu2gb5kT85z4nzqBhPd2LWWFXhUW/D8QyNZ54X30y0Ug\n" + + "3NfUAvOANW7CgUbHBmm77KQiF4nWdh338qqq9HzLGrPqcxX0dmiq2RBVPy9wb2Ea\n" + + "FTZiU2v+9pkoLoSDnCOfPCg/4Q4=\n" + + "-----END CERTIFICATE-----"; + + static byte privateExponent[] = { + (byte)0x4c, (byte)0xed, (byte)0x3f, (byte)0x86, + (byte)0x93, (byte)0x8c, (byte)0x83, (byte)0x1f, + (byte)0x31, (byte)0x98, (byte)0x91, (byte)0x9c, + (byte)0xd9, (byte)0x87, (byte)0x9b, (byte)0xfe, + (byte)0x0c, (byte)0x98, (byte)0xee, (byte)0x4c, + (byte)0x1f, (byte)0xc8, (byte)0x80, (byte)0x1a, + (byte)0x8e, (byte)0xcf, (byte)0x4a, (byte)0x87, + (byte)0x0d, (byte)0x0b, (byte)0x70, (byte)0x34, + (byte)0xd8, (byte)0x4e, (byte)0x8d, (byte)0x84, + (byte)0x00, (byte)0x8f, (byte)0xaf, (byte)0x32, + (byte)0x60, (byte)0xe9, (byte)0x53, (byte)0xe7, + (byte)0x6f, (byte)0x98, (byte)0xe0, (byte)0x8b, + (byte)0x52, (byte)0xaa, (byte)0xbf, (byte)0x67, + (byte)0x6b, (byte)0x62, (byte)0x28, (byte)0x98, + (byte)0x46, (byte)0xca, (byte)0xb9, (byte)0x9c, + (byte)0x06, (byte)0x5c, (byte)0x6b, (byte)0x91 + }; + + static byte modulus[] = { + (byte)0x00, + (byte)0xb9, (byte)0x5f, (byte)0x1a, (byte)0x0f, + (byte)0xf9, (byte)0x67, (byte)0x07, (byte)0x89, + (byte)0x71, (byte)0x6e, (byte)0x73, (byte)0xa8, + (byte)0xb7, (byte)0x67, (byte)0x43, (byte)0x6b, + (byte)0xb2, (byte)0x8a, (byte)0xb7, (byte)0x2a, + (byte)0x0c, (byte)0x39, (byte)0x44, (byte)0x34, + (byte)0xa9, (byte)0xef, (byte)0xf4, (byte)0x50, + (byte)0x01, (byte)0x3a, (byte)0x6f, (byte)0xe3, + (byte)0xd3, (byte)0x09, (byte)0xe5, (byte)0x3c, + (byte)0x7a, (byte)0x97, (byte)0x08, (byte)0x2a, + (byte)0x85, (byte)0x04, (byte)0xba, (byte)0x0c, + (byte)0xee, (byte)0xd1, (byte)0xbc, (byte)0xa2, + (byte)0x17, (byte)0x22, (byte)0xd5, (byte)0x23, + (byte)0xf2, (byte)0xe9, (byte)0xf2, (byte)0xc9, + (byte)0xe5, (byte)0xda, (byte)0x8b, (byte)0x7f, + (byte)0x91, (byte)0x4e, (byte)0x1f, (byte)0x6b + }; + + static char passphrase[] = "passphrase".toCharArray(); + + /* + * Is the server ready to serve? + */ + volatile static boolean serverReady = false; + + /* + * Turn on SSL debugging? + */ + static boolean debug = false; + + /* + * If the client or server is doing some kind of object creation + * that the other side depends on, and that thread prematurely + * exits, you may experience a hang. The test harness will + * terminate all hung threads after its timeout has expired, + * currently 3 minutes by default, but you might try to be + * smart about it.... + */ + + /* + * Define the server side of the test. + * + * If the server prematurely exits, serverReady will be set to true + * to avoid infinite hangs. + */ + void doServerSide() throws Exception { + SSLServerSocketFactory sslssf = + getSSLContext(true).getServerSocketFactory(); + SSLServerSocket sslServerSocket = + (SSLServerSocket) sslssf.createServerSocket(serverPort); + + serverPort = sslServerSocket.getLocalPort(); + + /* + * Signal Client, we're ready for this connect. + */ + serverReady = true; + + // Enable RSA_EXPORT cipher suites only. + try { + String enabledSuites[] = { + "SSL_RSA_EXPORT_WITH_RC4_40_MD5", + "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA"}; + sslServerSocket.setEnabledCipherSuites(enabledSuites); + } catch (IllegalArgumentException iae) { + // ignore the exception a cipher suite is unsupported. + } + + SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept(); + InputStream sslIS = sslSocket.getInputStream(); + OutputStream sslOS = sslSocket.getOutputStream(); + + sslIS.read(); + sslOS.write(85); + sslOS.flush(); + + + sslSocket.close(); + } + + /* + * Define the client side of the test. + * + * If the server prematurely exits, serverReady will be set to true + * to avoid infinite hangs. + */ + void doClientSide() throws Exception { + + /* + * Wait for server to get started. + */ + while (!serverReady) { + Thread.sleep(50); + } + + SSLSocketFactory sslsf = + getSSLContext(false).getSocketFactory(); + SSLSocket sslSocket = (SSLSocket) + sslsf.createSocket("localhost", serverPort); + + // Enable RSA_EXPORT cipher suites only. + try { + String enabledSuites[] = { + "SSL_RSA_EXPORT_WITH_RC4_40_MD5", + "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA"}; + sslSocket.setEnabledCipherSuites(enabledSuites); + } catch (IllegalArgumentException iae) { + // ignore the exception a cipher suite is unsupported. + } + + InputStream sslIS = sslSocket.getInputStream(); + OutputStream sslOS = sslSocket.getOutputStream(); + + sslOS.write(280); + sslOS.flush(); + sslIS.read(); + + sslSocket.close(); + } + + /* + * ============================================================= + * The remainder is just support stuff + */ + + // use any free port by default + volatile int serverPort = 0; + + volatile Exception serverException = null; + volatile Exception clientException = null; + + public static void main(String[] args) throws Exception { + if (debug) + System.setProperty("javax.net.debug", "all"); + + /* + * Start the tests. + */ + new RSAExport(); + } + + Thread clientThread = null; + Thread serverThread = null; + + /* + * Primary constructor, used to drive remainder of the test. + * + * Fork off the other side, then do your work. + */ + RSAExport() throws Exception { + if (separateServerThread) { + startServer(true); + startClient(false); + } else { + startClient(true); + startServer(false); + } + + /* + * Wait for other side to close down. + */ + if (separateServerThread) { + serverThread.join(); + } else { + clientThread.join(); + } + + /* + * When we get here, the test is pretty much over. + * + * If the main thread excepted, that propagates back + * immediately. If the other thread threw an exception, we + * should report back. + */ + if (serverException != null) + throw serverException; + if (clientException != null) + throw clientException; + } + + void startServer(boolean newThread) throws Exception { + if (newThread) { + serverThread = new Thread() { + public void run() { + try { + doServerSide(); + } catch (Exception e) { + /* + * Our server thread just died. + * + * Release the client, if not active already... + */ + System.err.println("Server died..." + e); + serverReady = true; + serverException = e; + } + } + }; + serverThread.start(); + } else { + doServerSide(); + } + } + + void startClient(boolean newThread) throws Exception { + if (newThread) { + clientThread = new Thread() { + public void run() { + try { + doClientSide(); + } catch (Exception e) { + /* + * Our client thread just died. + */ + System.err.println("Client died..."); + clientException = e; + } + } + }; + clientThread.start(); + } else { + doClientSide(); + } + } + + // Get the SSL context + private SSLContext getSSLContext(boolean authnRequired) throws Exception { + // generate certificate from cert string + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + + ByteArrayInputStream is = + new ByteArrayInputStream(trusedCertStr.getBytes()); + Certificate trustedCert = cf.generateCertificate(is); + + // create a key store + KeyStore ks = KeyStore.getInstance("JKS"); + ks.load(null, null); + + // import the trusted cert + ks.setCertificateEntry("RSA Export Signer", trustedCert); + + if (authnRequired) { + // generate the private key. + RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec( + new BigInteger(modulus), + new BigInteger(privateExponent)); + KeyFactory kf = KeyFactory.getInstance("RSA"); + RSAPrivateKey priKey = + (RSAPrivateKey)kf.generatePrivate(priKeySpec); + + // generate certificate chain + is = new ByteArrayInputStream(serverCertStr.getBytes()); + Certificate serverCert = cf.generateCertificate(is); + + Certificate[] chain = new Certificate[2]; + chain[0] = serverCert; + chain[1] = trustedCert; + + // import the key entry. + ks.setKeyEntry("RSA Export", priKey, passphrase, chain); + } + + // create SSL context + TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX"); + tmf.init(ks); + + SSLContext ctx = SSLContext.getInstance("TLS"); + if (authnRequired) { + KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); + kmf.init(ks, passphrase); + + ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); + } else { + ctx.init(null, tmf.getTrustManagers(), null); + } + + return ctx; + } + +} From 86031542b2e73fbbef1359244e672811ca90f7fc Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Wed, 4 Jun 2008 18:48:42 +0400 Subject: [PATCH 08/41] 6571802: 'Shared Documents' listed in-between C,D drives in the JFileChooser, does not match with native Now sun.awt.shell.ShellFolder#sort uses system sorting instead of alphabetical Reviewed-by: loneid, peterz --- .../swing/plaf/basic/BasicDirectoryModel.java | 2 +- .../classes/sun/awt/shell/ShellFolder.java | 167 +++++++++++++++++- .../sun/awt/shell/ShellFolderManager.java | 144 --------------- .../sun/awt/shell/Win32ShellFolder2.java | 29 +-- .../awt/shell/Win32ShellFolderManager2.java | 53 +----- 5 files changed, 186 insertions(+), 209 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java index 06b4dc5b6e4..6bc400f9781 100644 --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java @@ -196,7 +196,7 @@ public class BasicDirectoryModel extends AbstractListModel implements PropertyCh } protected void sort(Vector v){ - ShellFolder.sortFiles(v); + ShellFolder.sort(v); } // Obsolete - not used diff --git a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java index fe891c6ca16..21c2d129d7d 100644 --- a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java +++ b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java @@ -25,6 +25,7 @@ package sun.awt.shell; +import javax.swing.*; import java.awt.Image; import java.awt.Toolkit; import java.io.*; @@ -37,6 +38,10 @@ import java.util.*; */ public abstract class ShellFolder extends File { + private static final String COLUMN_NAME = "FileChooser.fileNameHeaderText"; + private static final String COLUMN_SIZE = "FileChooser.fileSizeHeaderText"; + private static final String COLUMN_DATE = "FileChooser.fileDateHeaderText"; + protected ShellFolder parent; /** @@ -268,8 +273,45 @@ public abstract class ShellFolder extends File { // Override File methods - public static void sortFiles(List files) { - shellFolderManager.sortFiles(files); + public static void sort(List files) { + if (files == null || files.size() <= 1) { + return; + } + + // Check that we can use the ShellFolder.sortChildren() method: + // 1. All files have the same non-null parent + // 2. All files is ShellFolders + File commonParent = null; + + for (File file : files) { + File parent = file.getParentFile(); + + if (parent == null || !(file instanceof ShellFolder)) { + commonParent = null; + + break; + } + + if (commonParent == null) { + commonParent = parent; + } else { + if (commonParent != parent && !commonParent.equals(parent)) { + commonParent = null; + + break; + } + } + } + + if (commonParent instanceof ShellFolder) { + ((ShellFolder) commonParent).sortChildren(files); + } else { + Collections.sort(files, FILE_COMPARATOR); + } + } + + public void sortChildren(List files) { + Collections.sort(files, FILE_COMPARATOR); } public boolean isAbsolute() { @@ -356,18 +398,131 @@ public abstract class ShellFolder extends File { } public static ShellFolderColumnInfo[] getFolderColumns(File dir) { - return shellFolderManager.getFolderColumns(dir); - } + ShellFolderColumnInfo[] columns = null; - public static Object getFolderColumnValue(File file, int column) { - return shellFolderManager.getFolderColumnValue(file, column); + if (dir instanceof ShellFolder) { + columns = ((ShellFolder) dir).getFolderColumns(); + } + + if (columns == null) { + columns = new ShellFolderColumnInfo[]{ + new ShellFolderColumnInfo(COLUMN_NAME, 150, + SwingConstants.LEADING, true, null, + FILE_COMPARATOR), + new ShellFolderColumnInfo(COLUMN_SIZE, 75, + SwingConstants.RIGHT, true, null, + DEFAULT_COMPARATOR, true), + new ShellFolderColumnInfo(COLUMN_DATE, 130, + SwingConstants.LEADING, true, null, + DEFAULT_COMPARATOR, true) + }; + } + + return columns; } public ShellFolderColumnInfo[] getFolderColumns() { return null; } + public static Object getFolderColumnValue(File file, int column) { + if (file instanceof ShellFolder) { + Object value = ((ShellFolder)file).getFolderColumnValue(column); + if (value != null) { + return value; + } + } + + if (file == null || !file.exists()) { + return null; + } + + switch (column) { + case 0: + // By default, file name will be rendered using getSystemDisplayName() + return file; + + case 1: // size + return file.isDirectory() ? null : Long.valueOf(file.length()); + + case 2: // date + if (isFileSystemRoot(file)) { + return null; + } + long time = file.lastModified(); + return (time == 0L) ? null : new Date(time); + + default: + return null; + } + } + public Object getFolderColumnValue(int column) { return null; } + + /** + * Provides a default comparator for the default column set + */ + private static final Comparator DEFAULT_COMPARATOR = new Comparator() { + public int compare(Object o1, Object o2) { + int gt; + + if (o1 == null && o2 == null) { + gt = 0; + } else if (o1 != null && o2 == null) { + gt = 1; + } else if (o1 == null && o2 != null) { + gt = -1; + } else if (o1 instanceof Comparable) { + gt = ((Comparable) o1).compareTo(o2); + } else { + gt = 0; + } + + return gt; + } + }; + + private static final Comparator FILE_COMPARATOR = new Comparator() { + public int compare(File f1, File f2) { + ShellFolder sf1 = null; + ShellFolder sf2 = null; + + if (f1 instanceof ShellFolder) { + sf1 = (ShellFolder) f1; + if (sf1.isFileSystem()) { + sf1 = null; + } + } + if (f2 instanceof ShellFolder) { + sf2 = (ShellFolder) f2; + if (sf2.isFileSystem()) { + sf2 = null; + } + } + + if (sf1 != null && sf2 != null) { + return sf1.compareTo(sf2); + } else if (sf1 != null) { + // Non-file shellfolders sort before files + return -1; + } else if (sf2 != null) { + return 1; + } else { + String name1 = f1.getName(); + String name2 = f2.getName(); + + // First ignore case when comparing + int diff = name1.compareToIgnoreCase(name2); + if (diff != 0) { + return diff; + } else { + // May differ in case (e.g. "mail" vs. "Mail") + // We need this test for consistent sorting + return name1.compareTo(name2); + } + } + } + }; } diff --git a/jdk/src/share/classes/sun/awt/shell/ShellFolderManager.java b/jdk/src/share/classes/sun/awt/shell/ShellFolderManager.java index 592fa1b580f..aea1bae2273 100644 --- a/jdk/src/share/classes/sun/awt/shell/ShellFolderManager.java +++ b/jdk/src/share/classes/sun/awt/shell/ShellFolderManager.java @@ -27,8 +27,6 @@ package sun.awt.shell; import java.io.File; import java.io.FileNotFoundException; -import java.util.*; -import javax.swing.SwingConstants; /** * @author Michael Martak @@ -36,10 +34,6 @@ import javax.swing.SwingConstants; */ class ShellFolderManager { - private static final String COLUMN_NAME = "FileChooser.fileNameHeaderText"; - private static final String COLUMN_SIZE = "FileChooser.fileSizeHeaderText"; - private static final String COLUMN_DATE = "FileChooser.fileDateHeaderText"; - /** * Create a shell folder from a file. * Override to return machine-dependent behavior. @@ -107,142 +101,4 @@ class ShellFolderManager { } return (dir.getParentFile() == null); } - - public void sortFiles(List files) { - Collections.sort(files, fileComparator); - } - - private Comparator fileComparator = new Comparator() { - public int compare(Object a, Object b) { - return compare((File)a, (File)b); - } - - public int compare(File f1, File f2) { - ShellFolder sf1 = null; - ShellFolder sf2 = null; - - if (f1 instanceof ShellFolder) { - sf1 = (ShellFolder)f1; - if (sf1.isFileSystem()) { - sf1 = null; - } - } - if (f2 instanceof ShellFolder) { - sf2 = (ShellFolder)f2; - if (sf2.isFileSystem()) { - sf2 = null; - } - } - - if (sf1 != null && sf2 != null) { - return sf1.compareTo(sf2); - } else if (sf1 != null) { - return -1; // Non-file shellfolders sort before files - } else if (sf2 != null) { - return 1; - } else { - String name1 = f1.getName(); - String name2 = f2.getName(); - - // First ignore case when comparing - int diff = name1.toLowerCase().compareTo(name2.toLowerCase()); - if (diff != 0) { - return diff; - } else { - // May differ in case (e.g. "mail" vs. "Mail") - // We need this test for consistent sorting - return name1.compareTo(name2); - } - } - } - }; - - public ShellFolderColumnInfo[] getFolderColumns(File dir) { - ShellFolderColumnInfo[] columns = null; - - if (dir instanceof ShellFolder) { - columns = ((ShellFolder)dir).getFolderColumns(); - } - - if (columns == null) { - columns = new ShellFolderColumnInfo[]{ - new ShellFolderColumnInfo(COLUMN_NAME, 150, - SwingConstants.LEADING, true, null, - fileComparator), - new ShellFolderColumnInfo(COLUMN_SIZE, 75, - SwingConstants.RIGHT, true, null, - ComparableComparator.getInstance(), true), - new ShellFolderColumnInfo(COLUMN_DATE, 130, - SwingConstants.LEADING, true, null, - ComparableComparator.getInstance(), true) - }; - } - - return columns; - } - - public Object getFolderColumnValue(File file, int column) { - if (file instanceof ShellFolder) { - Object value = ((ShellFolder)file).getFolderColumnValue(column); - if (value != null) { - return value; - } - } - - if (file == null || !file.exists()) { - return null; - } - - switch (column) { - case 0: - // By default, file name will be rendered using getSystemDisplayName() - return file; - - case 1: // size - return file.isDirectory() ? null : new Long(file.length()); - - case 2: // date - if (isFileSystemRoot(file)) { - return null; - } - long time = file.lastModified(); - return (time == 0L) ? null : new Date(time); - - default: - return null; - } - } - - /** - * This class provides a default comparator for the default column set - */ - private static class ComparableComparator implements Comparator { - private static Comparator instance; - - public static Comparator getInstance() { - if (instance == null) { - instance = new ComparableComparator(); - } - return instance; - } - - public int compare(Object o1, Object o2) { - int gt; - - if (o1 == null && o2 == null) { - gt = 0; - } else if (o1 != null && o2 == null) { - gt = 1; - } else if (o1 == null && o2 != null) { - gt = -1; - } else if (o1 instanceof Comparable) { - gt = ((Comparable) o1).compareTo(o2); - } else { - gt = 0; - } - - return gt; - } - } - } diff --git a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java index 74aecd4437f..0ae33818b79 100644 --- a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java +++ b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java @@ -306,7 +306,7 @@ final class Win32ShellFolder2 extends ShellFolder { * java.io.File instead. If not, then the object depends * on native PIDL state and should not be serialized. * - * @returns a java.io.File replacement object. If the folder + * @return a java.io.File replacement object. If the folder * is a not a normal directory, then returns the first non-removable * drive (normally "C:\"). */ @@ -605,10 +605,10 @@ final class Win32ShellFolder2 extends ShellFolder { // parent so we have an IShellFolder to query. long pIShellFolder = getIShellFolder(); // Now we can enumerate the objects in this folder. - ArrayList list = new ArrayList(); + ArrayList list = new ArrayList(); long pEnumObjects = getEnumObjects(pIShellFolder, includeHiddenFiles); if (pEnumObjects != 0) { - long childPIDL = 0; + long childPIDL; int testedAttrs = ATTRIB_FILESYSTEM | ATTRIB_FILESYSANCESTOR; do { if (Thread.currentThread().isInterrupted()) { @@ -635,7 +635,7 @@ final class Win32ShellFolder2 extends ShellFolder { } while (childPIDL != 0); releaseEnumObjects(pEnumObjects); } - return (ShellFolder[])list.toArray(new ShellFolder[list.size()]); + return list.toArray(new ShellFolder[list.size()]); } @@ -648,7 +648,7 @@ final class Win32ShellFolder2 extends ShellFolder { long pIShellFolder = getIShellFolder(); long pEnumObjects = getEnumObjects(pIShellFolder, true); Win32ShellFolder2 child = null; - long childPIDL = 0; + long childPIDL; while ((childPIDL = getNextChild(pEnumObjects)) != 0) { if (getAttributes0(pIShellFolder, childPIDL, ATTRIB_FILESYSTEM) != 0) { @@ -983,7 +983,7 @@ final class Win32ShellFolder2 extends ShellFolder { ? SwingConstants.CENTER : SwingConstants.LEADING); - column.setComparator(new ColumnComparator(i)); + column.setComparator(new ColumnComparator(getIShellFolder(), i)); notNullColumns.add(column); } @@ -1002,22 +1002,29 @@ final class Win32ShellFolder2 extends ShellFolder { private native Object doGetColumnValue(long parentIShellFolder2, long childPIDL, int columnIdx); - private native int compareIDsByColumn(long pParentIShellFolder, long pidl1, long pidl2, int columnIdx); + private static native int compareIDsByColumn(long pParentIShellFolder, long pidl1, long pidl2, int columnIdx); - private class ColumnComparator implements Comparator { + public void sortChildren(List files) { + Collections.sort(files, new ColumnComparator(getIShellFolder(), 0)); + } + + private static class ColumnComparator implements Comparator { + private final long parentIShellFolder; + private final int columnIdx; - public ColumnComparator(int columnIdx) { + public ColumnComparator(long parentIShellFolder, int columnIdx) { + this.parentIShellFolder = parentIShellFolder; this.columnIdx = columnIdx; } // compares 2 objects within this folder by the specified column - public int compare(Object o, Object o1) { + public int compare(File o, File o1) { if (o instanceof Win32ShellFolder2 && o1 instanceof Win32ShellFolder2) { // delegates comparison to native method - return compareIDsByColumn(getIShellFolder(), + return compareIDsByColumn(parentIShellFolder, ((Win32ShellFolder2) o).getRelativePIDL(), ((Win32ShellFolder2) o1).getRelativePIDL(), columnIdx); diff --git a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java index ef3dfa6a46d..0c7acf32ffd 100644 --- a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java +++ b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java @@ -234,11 +234,11 @@ public class Win32ShellFolderManager2 extends ShellFolderManager { // Add third level for "My Computer" if (folder.equals(drives)) { File[] thirdLevelFolders = folder.listFiles(); - if (thirdLevelFolders != null) { - Arrays.sort(thirdLevelFolders, driveComparator); - for (File thirdLevelFolder : thirdLevelFolders) { - folders.add(thirdLevelFolder); - } + if (thirdLevelFolders != null && thirdLevelFolders.length > 0) { + List thirdLevelFoldersList = Arrays.asList(thirdLevelFolders); + + folder.sortChildren(thirdLevelFoldersList); + folders.addAll(thirdLevelFoldersList); } } } @@ -362,27 +362,6 @@ public class Win32ShellFolderManager2 extends ShellFolderManager { return false; } - private Comparator driveComparator = new Comparator() { - public int compare(Object o1, Object o2) { - Win32ShellFolder2 shellFolder1 = (Win32ShellFolder2) o1; - Win32ShellFolder2 shellFolder2 = (Win32ShellFolder2) o2; - - // Put drives at first - boolean isDrive1 = shellFolder1.getPath().endsWith(":\\"); - - if (isDrive1 ^ shellFolder2.getPath().endsWith(":\\")) { - return isDrive1 ? -1 : 1; - } else { - return shellFolder1.getPath().compareTo(shellFolder2.getPath()); - } - } - }; - - - public void sortFiles(List files) { - Collections.sort(files, fileComparator); - } - private static List topFolderList = null; static int compareShellFolders(Win32ShellFolder2 sf1, Win32ShellFolder2 sf2) { boolean special1 = sf1.isSpecial(); @@ -418,19 +397,9 @@ public class Win32ShellFolderManager2 extends ShellFolderManager { return compareNames(sf1.getAbsolutePath(), sf2.getAbsolutePath()); } - static int compareFiles(File f1, File f2) { - if (f1 instanceof Win32ShellFolder2) { - return f1.compareTo(f2); - } - if (f2 instanceof Win32ShellFolder2) { - return -1 * f2.compareTo(f1); - } - return compareNames(f1.getName(), f2.getName()); - } - static int compareNames(String name1, String name2) { // First ignore case when comparing - int diff = name1.toLowerCase().compareTo(name2.toLowerCase()); + int diff = name1.compareToIgnoreCase(name2); if (diff != 0) { return diff; } else { @@ -439,14 +408,4 @@ public class Win32ShellFolderManager2 extends ShellFolderManager { return name1.compareTo(name2); } } - - private Comparator fileComparator = new Comparator() { - public int compare(Object a, Object b) { - return compare((File)a, (File)b); - } - - public int compare(File f1, File f2) { - return compareFiles(f1, f2); - } - }; } From 9a2ae13639adf0dbc3b98c8bd011fd2d48a6d63d Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Thu, 5 Jun 2008 13:30:41 +0400 Subject: [PATCH 09/41] 6688110: JSlider has incorrect javadoc for the setValueIsAdjusting method The sentence about ChangeEvents generation was removed Reviewed-by: peterz --- jdk/src/share/classes/javax/swing/JSlider.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/JSlider.java b/jdk/src/share/classes/javax/swing/JSlider.java index d436f32f1a6..6432b9f59d6 100644 --- a/jdk/src/share/classes/javax/swing/JSlider.java +++ b/jdk/src/share/classes/javax/swing/JSlider.java @@ -638,9 +638,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible { /** * Sets the model's {@code valueIsAdjusting} property. Slider look and * feel implementations should set this property to {@code true} when - * a knob drag begins, and to {@code false} when the drag ends. The - * slider model will not generate {@code ChangeEvent}s while - * {@code valueIsAdjusting} is {@code true}. + * a knob drag begins, and to {@code false} when the drag ends. * * @param b the new value for the {@code valueIsAdjusting} property * @see #getValueIsAdjusting From 0ad6d3770b6146f092033398a871bd3dfb4f20f5 Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Thu, 5 Jun 2008 04:08:41 -0700 Subject: [PATCH 10/41] 6626677: Error: Unimplemented()/HPI sysMonitorExit is broken on linux Remove the definition of NEED_DL_LOCK on platforms with GLIBC Reviewed-by: dholmes, psoper --- jdk/src/solaris/hpi/src/linker_md.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/jdk/src/solaris/hpi/src/linker_md.c b/jdk/src/solaris/hpi/src/linker_md.c index a21a2a076bb..58b51145f44 100644 --- a/jdk/src/solaris/hpi/src/linker_md.c +++ b/jdk/src/solaris/hpi/src/linker_md.c @@ -50,15 +50,6 @@ */ sys_mon_t _dl_lock; -/* - * glibc-2.0 libdl is not MT safe. If you are building with any glibc, - * chances are you might want to run the generated bits against glibc-2.0 - * libdl.so, so always use locking for any version of glibc. - */ -#ifdef __GLIBC__ - #define NEED_DL_LOCK -#endif - /* * Solaris green threads needs to lock around libdl.so. */ From e01cfb7fa8c0432e0ed6389da3ee471f323c21f9 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Thu, 5 Jun 2008 13:40:09 +0200 Subject: [PATCH 11/41] 6701498: Change JMX query language to use * and ? as wildcards rather than % and _ Reviewed-by: dfuchs --- .../javax/management/MatchQueryExp.java | 31 +-------------- .../classes/javax/management/ObjectName.java | 2 +- .../share/classes/javax/management/Query.java | 19 +++------ .../management/QueryNotificationFilter.java | 6 --- .../classes/javax/management/QueryParser.java | 39 +------------------ .../management/query/QueryExpStringTest.java | 39 ++++--------------- .../management/query/QueryParseTest.java | 33 +++++++++------- 7 files changed, 35 insertions(+), 134 deletions(-) diff --git a/jdk/src/share/classes/javax/management/MatchQueryExp.java b/jdk/src/share/classes/javax/management/MatchQueryExp.java index 779fac1989f..e5fd45bea51 100644 --- a/jdk/src/share/classes/javax/management/MatchQueryExp.java +++ b/jdk/src/share/classes/javax/management/MatchQueryExp.java @@ -109,36 +109,7 @@ class MatchQueryExp extends QueryEval implements QueryExp { * Returns the string representing the object */ public String toString() { - return exp + " like " + new StringValueExp(likeTranslate(pattern)); - } - - private static String likeTranslate(String s) { - StringBuilder sb = new StringBuilder(); - int c; - for (int i = 0; i < s.length(); i += Character.charCount(c)) { - c = s.codePointAt(i); - switch (c) { - case '\\': - i += Character.charCount(c); - sb.append('\\'); - if (i < s.length()) { - c = s.codePointAt(i); - sb.appendCodePoint(c); - } - break; - case '*': - sb.append('%'); break; - case '?': - sb.append('_'); break; - case '%': - sb.append("\\%"); break; - case '_': - sb.append("\\_"); break; - default: - sb.appendCodePoint(c); break; - } - } - return sb.toString(); + return exp + " like " + new StringValueExp(pattern); } /* diff --git a/jdk/src/share/classes/javax/management/ObjectName.java b/jdk/src/share/classes/javax/management/ObjectName.java index 2844f70e695..dea45a3a09f 100644 --- a/jdk/src/share/classes/javax/management/ObjectName.java +++ b/jdk/src/share/classes/javax/management/ObjectName.java @@ -1781,7 +1781,7 @@ public class ObjectName implements Comparable, QueryExp { } String toQueryString() { - return "LIKE " + Query.value(toString()); + return "like " + Query.value(toString()); } /** diff --git a/jdk/src/share/classes/javax/management/Query.java b/jdk/src/share/classes/javax/management/Query.java index fbfae6c2015..a768fb8bd53 100644 --- a/jdk/src/share/classes/javax/management/Query.java +++ b/jdk/src/share/classes/javax/management/Query.java @@ -108,13 +108,13 @@ package javax.management; *
Selects MBeans that have a {@code Status} attribute whose value * is one of those three strings. * - *
{@code Message like 'OK: %'} + *
{@code Message like 'OK: *'} *
Selects MBeans that have a {@code Message} attribute whose value * is a string beginning with {@code "OK: "}. Notice that the - * wildcard characters are SQL's ones. In the query language, + * wildcard characters are not the ones that SQL uses. In SQL, * {@code %} means "any sequence of characters" and {@code _} - * means "any single character". In the rest of the JMX API, these - * correspond to {@code *} and {@code %} respectively. + * means "any single character". Here, as in the rest of the JMX API, + * those are represented by {@code *} and {@code ?} respectively. * *
{@code instanceof 'javax.management.NotificationBroadcaster'} *
Selects MBeans that are instances of @@ -319,11 +319,11 @@ package javax.management; * * value LIKE stringLiteral * {@link Query#match Query.match}(q(value), - * translateWildcards(q(stringLiteral))) + * q(stringLiteral)) * * value NOT LIKE stringLiteral * {@link Query#not Query.not}({@link Query#match Query.match}(q(value), - * translateWildcards(q(stringLiteral)))) + * q(stringLiteral))) * * value1 + value2 * {@link Query#plus Query.plus}(q(value1), q(value2)) @@ -360,13 +360,6 @@ package javax.management; * -->floatingPointLiteral)) * * - *

Here, translateWildcards is a function - * that translates from the SQL notation for wildcards, using {@code %} and - * {@code _}, to the JMX API notation, using {@code *} and {@code ?}. If the - * LIKE string already contains {@code *} or {@code ?}, these characters - * have their literal meanings, and will be quoted in the call to - * {@link Query#match Query.match}.

- * * @since 1.5 */ public class Query extends Object { diff --git a/jdk/src/share/classes/javax/management/QueryNotificationFilter.java b/jdk/src/share/classes/javax/management/QueryNotificationFilter.java index c6c10393902..08565220d9c 100644 --- a/jdk/src/share/classes/javax/management/QueryNotificationFilter.java +++ b/jdk/src/share/classes/javax/management/QueryNotificationFilter.java @@ -43,12 +43,6 @@ import java.util.Set; * on both the client and the server in the remote case, so using this class * instead is recommended where possible.

* - * - * *

This class uses the {@linkplain Query Query API} to specify the * filtering logic. For example, to select only notifications where the * {@linkplain Notification#getType() type} is {@code "com.example.mytype"}, diff --git a/jdk/src/share/classes/javax/management/QueryParser.java b/jdk/src/share/classes/javax/management/QueryParser.java index 5e24e3bfbd3..babf05c7a20 100644 --- a/jdk/src/share/classes/javax/management/QueryParser.java +++ b/jdk/src/share/classes/javax/management/QueryParser.java @@ -490,8 +490,7 @@ class QueryParser { } AttributeValueExp alhs = (AttributeValueExp) lhs; StringValueExp sve = stringvalue(); - String s = sve.getValue(); - q = Query.match(alhs, patternValueExp(s)); + q = Query.match(alhs, sve); break; } @@ -624,40 +623,4 @@ class QueryParser { throw new IllegalArgumentException("Expected string: " + t); return Query.value(t.string); } - - // Convert the SQL pattern syntax, using % and _, to the Query.match - // syntax, using * and ?. The tricky part is recognizing \% and - // \_ as literal values, and also not replacing them inside []. - // But Query.match does not recognize \ inside [], which makes our - // job a tad easier. - private StringValueExp patternValueExp(String s) { - int c; - for (int i = 0; i < s.length(); i += Character.charCount(c)) { - c = s.codePointAt(i); - switch (c) { - case '\\': - i++; // i += Character.charCount(c), but we know it's 1! - if (i >= s.length()) - throw new IllegalArgumentException("\\ at end of pattern"); - break; - case '[': - i = s.indexOf(']', i); - if (i < 0) - throw new IllegalArgumentException("[ without ]"); - break; - case '%': - s = s.substring(0, i) + "*" + s.substring(i + 1); - break; - case '_': - s = s.substring(0, i) + "?" + s.substring(i + 1); - break; - case '*': - case '?': - s = s.substring(0, i) + '\\' + (char) c + s.substring(i + 1); - i++; - break; - } - } - return Query.value(s); - } } diff --git a/jdk/test/javax/management/query/QueryExpStringTest.java b/jdk/test/javax/management/query/QueryExpStringTest.java index be6a515b8fb..07003fc357b 100644 --- a/jdk/test/javax/management/query/QueryExpStringTest.java +++ b/jdk/test/javax/management/query/QueryExpStringTest.java @@ -121,14 +121,14 @@ public class QueryExpStringTest { eq, "(12345678) = (2.5)", between, "(12345678) between (2.5) and (2.5)", match, "attr like 'simpleString'", - initial, "attr like 'simpleString%'", - initialStar, "attr like '\\*%'", - initialPercent, "attr like '\\%%'", - any, "attr like '%simpleString%'", - anyStar, "attr like '%\\*%'", - anyPercent, "attr like '%\\%%'", - ffinal, "attr like '%simpleString'", - finalMagic, "attr like '%\\?\\*\\[\\\\'", + initial, "attr like 'simpleString*'", + initialStar, "attr like '\\**'", + initialPercent, "attr like '%*'", + any, "attr like '*simpleString*'", + anyStar, "attr like '*\\**'", + anyPercent, "attr like '*%*'", + ffinal, "attr like '*simpleString'", + finalMagic, "attr like '*\\?\\*\\[\\\\'", in, "12345678 in (12345678, 2.5)", and, "((12345678) > (2.5)) and ((12345678) < (2.5))", or, "((12345678) > (2.5)) or ((12345678) < (2.5))", @@ -207,7 +207,6 @@ public class QueryExpStringTest { exp + " like " + pat); } StringValueExp spat = (StringValueExp) pat; - spat = Query.value(translateMatch(spat.getValue())); return Query.match((AttributeValueExp) exp, spat); } @@ -226,28 +225,6 @@ public class QueryExpStringTest { throw new Exception("Expected in or like after expression"); } - private static String translateMatch(String s) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < s.length(); i++) { // logic not correct for wide chars - char c = s.charAt(i); - switch (c) { - case '\\': - sb.append(c).append(s.charAt(++i)); break; - case '%': - sb.append('*'); break; - case '_': - sb.append('?'); break; - case '*': - sb.append("\\*"); break; - case '?': - sb.append("\\?"); break; - default: - sb.append(c); break; - } - } - return sb.toString(); - } - private static QueryExp parseQueryAfterParen(String[] ss) throws Exception { /* This is very ugly. We might have "(q1) and (q2)" here, or diff --git a/jdk/test/javax/management/query/QueryParseTest.java b/jdk/test/javax/management/query/QueryParseTest.java index a6004b5c150..62b64bf710e 100644 --- a/jdk/test/javax/management/query/QueryParseTest.java +++ b/jdk/test/javax/management/query/QueryParseTest.java @@ -347,30 +347,30 @@ public class QueryParseTest { // LIKE - "A like 'b%m'", + "A like 'b*m'", expectTrue("blim"), expectTrue("bm"), expectFalse(""), expectFalse("blimmo"), expectFalse("mmm"), - "A not like 'b%m'", + "A not like 'b*m'", expectFalse("blim"), expectFalse("bm"), expectTrue(""), expectTrue("blimmo"), expectTrue("mmm"), - "A like 'b_m'", + "A like 'b?m'", expectTrue("bim"), expectFalse("blim"), - "A like '%can''t%'", + "A like '*can''t*'", expectTrue("can't"), expectTrue("I'm sorry Dave, I'm afraid I can't do that"), expectFalse("cant"), expectFalse("can''t"), - "A like '\\%%\\%'", - expectTrue("%blim%"), expectTrue("%%"), - expectFalse("blim"), expectFalse("%asdf"), expectFalse("asdf%"), + "A like '\\**\\*'", + expectTrue("*blim*"), expectTrue("**"), + expectFalse("blim"), expectFalse("*asdf"), expectFalse("asdf*"), - "A LIKE '*%?_'", - expectTrue("*blim?!"), expectTrue("*?_"), - expectFalse("blim"), expectFalse("blim?"), - expectFalse("?*"), expectFalse("??"), expectFalse(""), expectFalse("?"), + "A LIKE '%*_?'", + expectTrue("%blim_?"), expectTrue("%_?"), expectTrue("%blim_!"), + expectFalse("blim"), expectFalse("blim_"), + expectFalse("_%"), expectFalse("??"), expectFalse(""), expectFalse("?"), Query.toString( Query.initialSubString(Query.attr("A"), Query.value("*?%_"))), @@ -483,7 +483,7 @@ public class QueryParseTest { // note the little {} at the end which means this is a subclass // and therefore QualifiedAttributeValue should return false. - MBeanServerDelegate.class.getName() + "#SpecificationName LIKE '%'", + MBeanServerDelegate.class.getName() + "#SpecificationName LIKE '*'", new Wrapped(new MBeanServerDelegate(), true), new Tester(new String[] {"SpecificationName"}, new Object[] {"JMX"}, false), @@ -497,7 +497,7 @@ public class QueryParseTest { "A.class.name = 'java.lang.String'", expectTrue("blim"), expectFalse(95), expectFalse((Object) null), - "A.canonicalName like 'JMImpl%:%'", + "A.canonicalName like 'JMImpl*:*'", expectTrue(MBeanServerDelegate.DELEGATE_NAME), expectFalse(ObjectName.WILDCARD), @@ -544,12 +544,15 @@ public class QueryParseTest { "a in b, c", "a in 23", "a in (2, 3", "a in (2, 3x)", "a like \"foo\"", "a like b", "a like 23", "like \"foo\"", "like b", "like 23", "like 'a:b'", - "5 like 'a'", "'a' like '%'", + "5 like 'a'", "'a' like '*'", "a not= b", "a not = b", "a not b", "a not b c", "a = +b", "a = +'b'", "a = +true", "a = -b", "a = -'b'", "a#5 = b", "a#'b' = c", "a instanceof b", "a instanceof 17", "a instanceof", - "a like 'oops\\'", "a like '[oops'", + // "a like 'oops\\'", "a like '[oops'", + // We don't check the above because Query.match doesn't. If LIKE + // rejected bad patterns then there would be some QueryExp values + // that could not be converted to a string and back. // Check that -Long.MIN_VALUE is an illegal constant. This is one more // than Long.MAX_VALUE and, like the Java language, we only allow it From dfe323d6407e8e6a4c6330ddab277fcbee1626d3 Mon Sep 17 00:00:00 2001 From: Eamonn McManus Date: Thu, 5 Jun 2008 13:42:47 +0200 Subject: [PATCH 12/41] 6562936: Support custom type mappings in MXBeans Reviewed-by: dfuchs --- .../sun/jmx/mbeanserver/ConvertingMethod.java | 76 +- ....java => DefaultMXBeanMappingFactory.java} | 720 ++++++++++-------- .../com/sun/jmx/mbeanserver/Introspector.java | 36 +- .../sun/jmx/mbeanserver/MBeanAnalyzer.java | 41 +- .../jmx/mbeanserver/MBeanIntrospector.java | 45 +- .../com/sun/jmx/mbeanserver/MBeanSupport.java | 22 +- .../jmx/mbeanserver/MXBeanIntrospector.java | 66 +- .../com/sun/jmx/mbeanserver/MXBeanLookup.java | 232 ++++-- .../com/sun/jmx/mbeanserver/MXBeanProxy.java | 38 +- .../sun/jmx/mbeanserver/MXBeanSupport.java | 44 +- .../mbeanserver/NotificationMBeanSupport.java | 3 +- .../com/sun/jmx/mbeanserver/PerInterface.java | 2 +- .../jmx/mbeanserver/StandardMBeanSupport.java | 7 +- .../share/classes/javax/management/JMX.java | 387 +++++++++- .../MBeanServerInvocationHandler.java | 65 +- .../classes/javax/management/MXBean.java | 96 ++- .../javax/management/StandardMBean.java | 168 +++- .../CompositeDataInvocationHandler.java | 23 +- .../management/openmbean/CompositeType.java | 4 +- .../management/openmbean/MXBeanMapping.java | 207 +++++ .../openmbean/MXBeanMappingClass.java | 61 ++ .../openmbean/MXBeanMappingFactory.java | 162 ++++ .../openmbean/MXBeanMappingFactoryClass.java | 72 ++ .../javax/management/openmbean/OpenType.java | 2 +- .../management/mxbean/CustomTypeTest.java | 590 ++++++++++++++ .../mxbean/customtypes/CustomLongMXBean.java | 31 + .../mxbean/customtypes/CustomMXBean.java} | 22 +- .../customtypes/IntegerIsLongFactory.java | 74 ++ .../customtypes/IntegerIsStringFactory.java | 76 ++ .../mxbean/customtypes/package-info.java | 27 + 30 files changed, 2793 insertions(+), 606 deletions(-) rename jdk/src/share/classes/com/sun/jmx/mbeanserver/{OpenConverter.java => DefaultMXBeanMappingFactory.java} (69%) create mode 100644 jdk/src/share/classes/javax/management/openmbean/MXBeanMapping.java create mode 100644 jdk/src/share/classes/javax/management/openmbean/MXBeanMappingClass.java create mode 100644 jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactory.java create mode 100644 jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactoryClass.java create mode 100644 jdk/test/javax/management/mxbean/CustomTypeTest.java create mode 100644 jdk/test/javax/management/mxbean/customtypes/CustomLongMXBean.java rename jdk/{src/share/classes/javax/management/ToQueryString.java => test/javax/management/mxbean/customtypes/CustomMXBean.java} (56%) create mode 100644 jdk/test/javax/management/mxbean/customtypes/IntegerIsLongFactory.java create mode 100644 jdk/test/javax/management/mxbean/customtypes/IntegerIsStringFactory.java create mode 100644 jdk/test/javax/management/mxbean/customtypes/package-info.java diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java index c0032fdce2d..42c52b979d1 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/ConvertingMethod.java @@ -31,13 +31,15 @@ import java.lang.reflect.Type; import javax.management.Descriptor; import javax.management.MBeanException; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingFactory; import javax.management.openmbean.OpenDataException; import javax.management.openmbean.OpenType; final class ConvertingMethod { - static ConvertingMethod from(Method m) { + static ConvertingMethod from(Method m, MXBeanMappingFactory mappingFactory) { try { - return new ConvertingMethod(m); + return new ConvertingMethod(m, mappingFactory); } catch (OpenDataException ode) { final String msg = "Method " + m.getDeclaringClass().getName() + "." + m.getName() + " has parameter or return type that " + @@ -67,13 +69,13 @@ final class ConvertingMethod { } OpenType getOpenReturnType() { - return returnConverter.getOpenType(); + return returnMapping.getOpenType(); } OpenType[] getOpenParameterTypes() { - final OpenType[] types = new OpenType[paramConverters.length]; - for (int i = 0; i < paramConverters.length; i++) - types[i] = paramConverters[i].getOpenType(); + final OpenType[] types = new OpenType[paramMappings.length]; + for (int i = 0; i < paramMappings.length; i++) + types[i] = paramMappings[i].getOpenType(); return types; } @@ -85,9 +87,9 @@ final class ConvertingMethod { * value will be converted to an Open Type, so if it is convertible * at all there is no further check needed. */ - void checkCallFromOpen() throws IllegalArgumentException { + void checkCallFromOpen() { try { - for (OpenConverter paramConverter : paramConverters) + for (MXBeanMapping paramConverter : paramMappings) paramConverter.checkReconstructible(); } catch (InvalidObjectException e) { throw new IllegalArgumentException(e); @@ -102,32 +104,32 @@ final class ConvertingMethod { * open types, so if it is convertible at all there is no further * check needed. */ - void checkCallToOpen() throws IllegalArgumentException { + void checkCallToOpen() { try { - returnConverter.checkReconstructible(); + returnMapping.checkReconstructible(); } catch (InvalidObjectException e) { throw new IllegalArgumentException(e); } } String[] getOpenSignature() { - if (paramConverters.length == 0) + if (paramMappings.length == 0) return noStrings; - String[] sig = new String[paramConverters.length]; - for (int i = 0; i < paramConverters.length; i++) - sig[i] = paramConverters[i].getOpenClass().getName(); + String[] sig = new String[paramMappings.length]; + for (int i = 0; i < paramMappings.length; i++) + sig[i] = paramMappings[i].getOpenClass().getName(); return sig; } final Object toOpenReturnValue(MXBeanLookup lookup, Object ret) throws OpenDataException { - return returnConverter.toOpenValue(lookup, ret); + return returnMapping.toOpenValue(ret); } final Object fromOpenReturnValue(MXBeanLookup lookup, Object ret) throws InvalidObjectException { - return returnConverter.fromOpenValue(lookup, ret); + return returnMapping.fromOpenValue(ret); } final Object[] toOpenParameters(MXBeanLookup lookup, Object[] params) @@ -136,17 +138,17 @@ final class ConvertingMethod { return params; final Object[] oparams = new Object[params.length]; for (int i = 0; i < params.length; i++) - oparams[i] = paramConverters[i].toOpenValue(lookup, params[i]); + oparams[i] = paramMappings[i].toOpenValue(params[i]); return oparams; } - final Object[] fromOpenParameters(MXBeanLookup lookup, Object[] params) + final Object[] fromOpenParameters(Object[] params) throws InvalidObjectException { if (paramConversionIsIdentity || params == null) return params; final Object[] jparams = new Object[params.length]; for (int i = 0; i < params.length; i++) - jparams[i] = paramConverters[i].fromOpenValue(lookup, params[i]); + jparams[i] = paramMappings[i].fromOpenValue(params[i]); return jparams; } @@ -154,23 +156,35 @@ final class ConvertingMethod { Object param, int paramNo) throws OpenDataException { - return paramConverters[paramNo].toOpenValue(lookup, param); + return paramMappings[paramNo].toOpenValue(param); } final Object fromOpenParameter(MXBeanLookup lookup, Object param, int paramNo) throws InvalidObjectException { - return paramConverters[paramNo].fromOpenValue(lookup, param); + return paramMappings[paramNo].fromOpenValue(param); } Object invokeWithOpenReturn(MXBeanLookup lookup, Object obj, Object[] params) throws MBeanException, IllegalAccessException, InvocationTargetException { + MXBeanLookup old = MXBeanLookup.getLookup(); + try { + MXBeanLookup.setLookup(lookup); + return invokeWithOpenReturn(obj, params); + } finally { + MXBeanLookup.setLookup(old); + } + } + + private Object invokeWithOpenReturn(Object obj, Object[] params) + throws MBeanException, IllegalAccessException, + InvocationTargetException { final Object[] javaParams; try { - javaParams = fromOpenParameters(lookup, params); + javaParams = fromOpenParameters(params); } catch (InvalidObjectException e) { // probably can't happen final String msg = methodName() + ": cannot convert parameters " + @@ -179,7 +193,7 @@ final class ConvertingMethod { } final Object javaReturn = method.invoke(obj, javaParams); try { - return returnConverter.toOpenValue(lookup, javaReturn); + return returnMapping.toOpenValue(javaReturn); } catch (OpenDataException e) { // probably can't happen final String msg = methodName() + ": cannot convert return " + @@ -192,15 +206,17 @@ final class ConvertingMethod { return method.getDeclaringClass() + "." + method.getName(); } - private ConvertingMethod(Method m) throws OpenDataException { + private ConvertingMethod(Method m, MXBeanMappingFactory mappingFactory) + throws OpenDataException { this.method = m; - returnConverter = OpenConverter.toConverter(m.getGenericReturnType()); + returnMapping = + mappingFactory.mappingForType(m.getGenericReturnType(), mappingFactory); Type[] params = m.getGenericParameterTypes(); - paramConverters = new OpenConverter[params.length]; + paramMappings = new MXBeanMapping[params.length]; boolean identity = true; for (int i = 0; i < params.length; i++) { - paramConverters[i] = OpenConverter.toConverter(params[i]); - identity &= paramConverters[i].isIdentity(); + paramMappings[i] = mappingFactory.mappingForType(params[i], mappingFactory); + identity &= DefaultMXBeanMappingFactory.isIdentity(paramMappings[i]); } paramConversionIsIdentity = identity; } @@ -208,7 +224,7 @@ final class ConvertingMethod { private static final String[] noStrings = new String[0]; private final Method method; - private final OpenConverter returnConverter; - private final OpenConverter[] paramConverters; + private final MXBeanMapping returnMapping; + private final MXBeanMapping[] paramMappings; private final boolean paramConversionIsIdentity; } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory.java similarity index 69% rename from jdk/src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java rename to jdk/src/share/classes/com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory.java index 25ac0a28e10..1a58621458a 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/OpenConverter.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory.java @@ -26,6 +26,8 @@ package com.sun.jmx.mbeanserver; import static com.sun.jmx.mbeanserver.Util.*; +import java.lang.annotation.ElementType; +import javax.management.openmbean.MXBeanMappingClass; import static javax.management.openmbean.SimpleType.*; @@ -66,6 +68,8 @@ import javax.management.openmbean.CompositeDataInvocationHandler; import javax.management.openmbean.CompositeDataSupport; import javax.management.openmbean.CompositeDataView; import javax.management.openmbean.CompositeType; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingFactory; import javax.management.openmbean.OpenDataException; import javax.management.openmbean.OpenType; import javax.management.openmbean.SimpleType; @@ -74,137 +78,118 @@ import javax.management.openmbean.TabularDataSupport; import javax.management.openmbean.TabularType; /** -

A converter between Java types and the limited set of classes - defined by Open MBeans.

- -

A Java type is an instance of java.lang.reflect.Type. For our - purposes, it is either a Class, such as String.class or int.class; - or a ParameterizedType, such as List or Map. On J2SE 1.4 and earlier, it can only be a Class.

- -

Each Type is associated with an OpenConverter. The - OpenConverter defines an OpenType corresponding to the Type, plus a - Java class corresponding to the OpenType. For example:

- -
-   Type                     Open class     OpenType
-   ----                     ----------     --------
-   Integer                  Integer        SimpleType.INTEGER
-   int                      int            SimpleType.INTEGER
-   Integer[]                Integer[]      ArrayType(1, SimpleType.INTEGER)
-   int[]                    Integer[]      ArrayType(SimpleType.INTEGER, true)
-   String[][]               String[][]     ArrayType(2, SimpleType.STRING)
-   List             String[]       ArrayType(1, SimpleType.STRING)
-   ThreadState (an Enum)    String         SimpleType.STRING
-   Map   TabularData    TabularType(
-                                             CompositeType(
-                                               {"key", SimpleType.INTEGER},
-                                               {"value",
-                                                 ArrayType(1,
-                                                  SimpleType.STRING)}),
-                                             indexNames={"key"})
-   
- -

Apart from simple types, arrays, and collections, Java types are - converted through introspection into CompositeType. The Java type - must have at least one getter (method such as "int getSize()" or - "boolean isBig()"), and we must be able to deduce how to - reconstruct an instance of the Java class from the values of the - getters using one of various heuristics.

- - @since 1.6 + *

A converter between Java types and the limited set of classes + * defined by Open MBeans.

+ * + *

A Java type is an instance of java.lang.reflect.Type. For our + * purposes, it is either a Class, such as String.class or int.class; + * or a ParameterizedType, such as List or Map. On J2SE 1.4 and earlier, it can only be a Class.

+ * + *

Each Type is associated with an DefaultMXBeanMappingFactory. The + * DefaultMXBeanMappingFactory defines an OpenType corresponding to the Type, plus a + * Java class corresponding to the OpenType. For example:

+ * + *
+ *   Type                     Open class     OpenType
+ *   ----                     ----------     --------
+ *   Integer                Integer        SimpleType.INTEGER
+ *   int                            int            SimpleType.INTEGER
+ *   Integer[]              Integer[]      ArrayType(1, SimpleType.INTEGER)
+ *   int[]                  Integer[]      ArrayType(SimpleType.INTEGER, true)
+ *   String[][]             String[][]     ArrayType(2, SimpleType.STRING)
+ *   List                   String[]       ArrayType(1, SimpleType.STRING)
+ *   ThreadState (an Enum)    String         SimpleType.STRING
+ *   Map   TabularData          TabularType(
+ *                                           CompositeType(
+ *                                             {"key", SimpleType.INTEGER},
+ *                                             {"value",
+ *                                               ArrayType(1,
+ *                                                SimpleType.STRING)}),
+ *                                           indexNames={"key"})
+ *   
+ * + *

Apart from simple types, arrays, and collections, Java types are + * converted through introspection into CompositeType. The Java type + * must have at least one getter (method such as "int getSize()" or + * "boolean isBig()"), and we must be able to deduce how to + * reconstruct an instance of the Java class from the values of the + * getters using one of various heuristics.

+ * + * @since 1.6 */ -public abstract class OpenConverter { - private OpenConverter(Type targetType, OpenType openType, - Class openClass) { - this.targetType = targetType; - this.openType = openType; - this.openClass = openClass; +public class DefaultMXBeanMappingFactory extends MXBeanMappingFactory { + static abstract class NonNullMXBeanMapping extends MXBeanMapping { + NonNullMXBeanMapping(Type javaType, OpenType openType) { + super(javaType, openType); + } + + @Override + public final Object fromOpenValue(Object openValue) + throws InvalidObjectException { + if (openValue == null) + return null; + else + return fromNonNullOpenValue(openValue); + } + + @Override + public final Object toOpenValue(Object javaValue) throws OpenDataException { + if (javaValue == null) + return null; + else + return toNonNullOpenValue(javaValue); + } + + abstract Object fromNonNullOpenValue(Object openValue) + throws InvalidObjectException; + + abstract Object toNonNullOpenValue(Object javaValue) + throws OpenDataException; + + /** + *

True if and only if this MXBeanMapping's toOpenValue and + * fromOpenValue methods are the identity function.

+ */ + boolean isIdentity() { + return false; + } } - /**

Convert an instance of openClass into an instance of targetType. */ - public final Object fromOpenValue(MXBeanLookup lookup, Object value) - throws InvalidObjectException { - if (value == null) - return null; - else - return fromNonNullOpenValue(lookup, value); + static boolean isIdentity(MXBeanMapping mapping) { + return (mapping instanceof NonNullMXBeanMapping && + ((NonNullMXBeanMapping) mapping).isIdentity()); } - abstract Object fromNonNullOpenValue(MXBeanLookup lookup, Object value) - throws InvalidObjectException; + private static final class Mappings + extends WeakHashMap> {} - /**

Throw an appropriate InvalidObjectException if we will not be able - to convert back from the open data to the original Java object.

*/ - void checkReconstructible() throws InvalidObjectException { - // subclasses override if action necessary - } + private static final Map factoryMappings = + new WeakHashMap(); - /**

Convert an instance of targetType into an instance of openClass. */ - final Object toOpenValue(MXBeanLookup lookup, Object value) - throws OpenDataException { - if (value == null) - return null; - else - return toNonNullOpenValue(lookup, value); - } + private static final Map permanentMappings = newMap(); - abstract Object toNonNullOpenValue(MXBeanLookup lookup, Object value) - throws OpenDataException; - - /**

True if and only if this OpenConverter's toOpenValue and fromOpenValue - methods are the identity function.

*/ - boolean isIdentity() { - return false; - } - - /**

True if and only if isIdentity() and even an array of the underlying type - is transformed as the identity. This is true for Integer and - ObjectName, for instance, but not for int.

*/ - final Type getTargetType() { - return targetType; - } - - final OpenType getOpenType() { - return openType; - } - - /* The Java class corresponding to getOpenType(). This is the class - named by getOpenType().getClassName(), except that it may be a - primitive type or an array of primitive type. */ - final Class getOpenClass() { - return openClass; - } - - private final Type targetType; - private final OpenType openType; - private final Class openClass; - - private static final class ConverterMap - extends WeakHashMap> {} - - private static final ConverterMap converterMap = new ConverterMap(); - - /** Following List simply serves to keep a reference to predefined - OpenConverters so they don't get garbage collected. */ - private static final List permanentConverters = newList(); - - private static synchronized OpenConverter getConverter(Type type) { - WeakReference wr = converterMap.get(type); + private static synchronized MXBeanMapping getMapping( + Type type, MXBeanMappingFactory factory) { + Mappings mappings = factoryMappings.get(factory); + if (mappings == null) { + mappings = new Mappings(); + factoryMappings.put(factory, mappings); + } + WeakReference wr = mappings.get(type); return (wr == null) ? null : wr.get(); } - private static synchronized void putConverter(Type type, - OpenConverter conv) { - WeakReference wr = - new WeakReference(conv); - converterMap.put(type, wr); - } - - private static synchronized void putPermanentConverter(Type type, - OpenConverter conv) { - putConverter(type, conv); - permanentConverters.add(conv); + private static synchronized void putMapping( + Type type, MXBeanMapping mapping, MXBeanMappingFactory factory) { + Mappings mappings = factoryMappings.get(factory); + if (mappings == null) { + mappings = new Mappings(); + factoryMappings.put(factory, mappings); + } + WeakReference wr = + new WeakReference(mapping); + mappings.put(type, wr); } static { @@ -226,28 +211,26 @@ public abstract class OpenConverter { // the classes that these predefined types declare must exist! throw new Error(e); } - final OpenConverter conv = new IdentityConverter(c, t, c); - putPermanentConverter(c, conv); + final MXBeanMapping mapping = new IdentityMapping(c, t); + permanentMappings.put(c, mapping); if (c.getName().startsWith("java.lang.")) { try { final Field typeField = c.getField("TYPE"); - final Class primitiveType = (Class) typeField.get(null); - final OpenConverter primitiveConv = - new IdentityConverter(primitiveType, t, primitiveType); - putPermanentConverter(primitiveType, - primitiveConv); + final Class primitiveType = (Class) typeField.get(null); + final MXBeanMapping primitiveMapping = + new IdentityMapping(primitiveType, t); + permanentMappings.put(primitiveType, primitiveMapping); if (primitiveType != void.class) { final Class primitiveArrayType = Array.newInstance(primitiveType, 0).getClass(); final OpenType primitiveArrayOpenType = ArrayType.getPrimitiveArrayType(primitiveArrayType); - final OpenConverter primitiveArrayConv = - new IdentityConverter(primitiveArrayType, - primitiveArrayOpenType, - primitiveArrayType); - putPermanentConverter(primitiveArrayType, - primitiveArrayConv); + final MXBeanMapping primitiveArrayMapping = + new IdentityMapping(primitiveArrayType, + primitiveArrayOpenType); + permanentMappings.put(primitiveArrayType, + primitiveArrayMapping); } } catch (NoSuchFieldException e) { // OK: must not be a primitive wrapper @@ -260,64 +243,119 @@ public abstract class OpenConverter { } /** Get the converter for the given Java type, creating it if necessary. */ - public static synchronized OpenConverter toConverter(Type objType) + @Override + public synchronized MXBeanMapping mappingForType(Type objType, + MXBeanMappingFactory factory) throws OpenDataException { - if (inProgress.containsKey(objType)) throw new OpenDataException("Recursive data structure"); - OpenConverter conv; + MXBeanMapping mapping; - conv = getConverter(objType); - if (conv != null) - return conv; + mapping = getMapping(objType, null); + if (mapping != null) + return mapping; inProgress.put(objType, objType); try { - conv = makeConverter(objType); + mapping = makeMapping(objType, factory); } finally { inProgress.remove(objType); } - putConverter(objType, conv); - return conv; + putMapping(objType, mapping, factory); + return mapping; } - private static OpenConverter makeConverter(Type objType) - throws OpenDataException { + private MXBeanMapping makeMapping(Type objType, MXBeanMappingFactory factory) + throws OpenDataException { /* It's not yet worth formalizing these tests by having for example an array of factory classes, each of which says whether it recognizes the Type (Chain of Responsibility pattern). */ + MXBeanMapping mapping = permanentMappings.get(objType); + if (mapping != null) + return mapping; + Class erasure = erasure(objType); + MXBeanMappingClass mappingClass = + erasure.getAnnotation(MXBeanMappingClass.class); + if (mappingClass != null) + return makeAnnotationMapping(mappingClass, objType, factory); if (objType instanceof GenericArrayType) { Type componentType = ((GenericArrayType) objType).getGenericComponentType(); - return makeArrayOrCollectionConverter(objType, componentType); + return makeArrayOrCollectionMapping(objType, componentType, factory); } else if (objType instanceof Class) { Class objClass = (Class) objType; if (objClass.isEnum()) { // Huge hack to avoid compiler warnings here. The ElementType // parameter is ignored but allows us to obtain a type variable // T that matches >. - return makeEnumConverter(objClass, ElementType.class); + return makeEnumMapping((Class) objClass, ElementType.class); } else if (objClass.isArray()) { Type componentType = objClass.getComponentType(); - return makeArrayOrCollectionConverter(objClass, componentType); + return makeArrayOrCollectionMapping(objClass, componentType, + factory); } else if (JMX.isMXBeanInterface(objClass)) { - return makeMXBeanConverter(objClass); + return makeMXBeanRefMapping(objClass); } else { - return makeCompositeConverter(objClass); + return makeCompositeMapping(objClass, factory); } } else if (objType instanceof ParameterizedType) { - return makeParameterizedConverter((ParameterizedType) objType); + return makeParameterizedTypeMapping((ParameterizedType) objType, + factory); } else throw new OpenDataException("Cannot map type: " + objType); } - private static > OpenConverter - makeEnumConverter(Class enumClass, Class fake) { - Class enumClassT = Util.cast(enumClass); - return new EnumConverter(enumClassT); + private static MXBeanMapping + makeAnnotationMapping(MXBeanMappingClass mappingClass, + Type objType, + MXBeanMappingFactory factory) + throws OpenDataException { + Class c = mappingClass.value(); + Constructor cons; + try { + cons = c.getConstructor(Type.class); + } catch (NoSuchMethodException e) { + final String msg = + "Annotation @" + MXBeanMappingClass.class.getName() + + " must name a class with a public constructor that has a " + + "single " + Type.class.getName() + " argument"; + OpenDataException ode = new OpenDataException(msg); + ode.initCause(e); + throw ode; + } + try { + return cons.newInstance(objType); + } catch (Exception e) { + final String msg = + "Could not construct a " + c.getName() + " for @" + + MXBeanMappingClass.class.getName(); + OpenDataException ode = new OpenDataException(msg); + ode.initCause(e); + throw ode; + } + } + + private static Class erasure(Type t) { + if (t instanceof Class) + return (Class) t; + if (t instanceof ParameterizedType) + return erasure(((ParameterizedType) t).getRawType()); + /* Other cases: GenericArrayType, TypeVariable, WildcardType. + * Returning the erasure of GenericArrayType is not necessary because + * anyway we will be recursing on the element type, and we'll erase + * then. Returning the erasure of the other two would mean returning + * the type bound (e.g. Foo in or ) + * and since we don't treat this as Foo elsewhere we shouldn't here. + */ + return Object.class; + } + + private static > MXBeanMapping + makeEnumMapping(Class enumClass, Class fake) { + return new EnumMapping(Util.>cast(enumClass)); } /* Make the converter for an array type, or a collection such as @@ -325,14 +363,15 @@ public abstract class OpenConverter { * primitive arrays (e.g. int[]) here because they use the identity * converter and are registered as such in the static initializer. */ - private static OpenConverter - makeArrayOrCollectionConverter(Type collectionType, Type elementType) + private MXBeanMapping + makeArrayOrCollectionMapping(Type collectionType, Type elementType, + MXBeanMappingFactory factory) throws OpenDataException { - final OpenConverter elementConverter = toConverter(elementType); - final OpenType elementOpenType = elementConverter.getOpenType(); + final MXBeanMapping elementMapping = factory.mappingForType(elementType, factory); + final OpenType elementOpenType = elementMapping.getOpenType(); final ArrayType openType = ArrayType.getArrayType(elementOpenType); - final Class elementOpenClass = elementConverter.getOpenClass(); + final Class elementOpenClass = elementMapping.getOpenClass(); final Class openArrayClass; final String openArrayClassName; @@ -347,19 +386,18 @@ public abstract class OpenConverter { } if (collectionType instanceof ParameterizedType) { - return new CollectionConverter(collectionType, - openType, openArrayClass, - elementConverter); + return new CollectionMapping(collectionType, + openType, openArrayClass, + elementMapping); } else { - if (elementConverter.isIdentity()) { - return new IdentityConverter(collectionType, - openType, - openArrayClass); + if (isIdentity(elementMapping)) { + return new IdentityMapping(collectionType, + openType); } else { - return new ArrayConverter(collectionType, + return new ArrayMapping(collectionType, openType, openArrayClass, - elementConverter); + elementMapping); } } } @@ -367,16 +405,17 @@ public abstract class OpenConverter { private static final String[] keyArray = {"key"}; private static final String[] keyValueArray = {"key", "value"}; - private static OpenConverter - makeTabularConverter(Type objType, boolean sortedMap, - Type keyType, Type valueType) + private MXBeanMapping + makeTabularMapping(Type objType, boolean sortedMap, + Type keyType, Type valueType, + MXBeanMappingFactory factory) throws OpenDataException { final String objTypeName = objType.toString(); - final OpenConverter keyConverter = toConverter(keyType); - final OpenConverter valueConverter = toConverter(valueType); - final OpenType keyOpenType = keyConverter.getOpenType(); - final OpenType valueOpenType = valueConverter.getOpenType(); + final MXBeanMapping keyMapping = factory.mappingForType(keyType, factory); + final MXBeanMapping valueMapping = factory.mappingForType(valueType, factory); + final OpenType keyOpenType = keyMapping.getOpenType(); + final OpenType valueOpenType = valueMapping.getOpenType(); final CompositeType rowType = new CompositeType(objTypeName, objTypeName, @@ -385,8 +424,8 @@ public abstract class OpenConverter { new OpenType[] {keyOpenType, valueOpenType}); final TabularType tabularType = new TabularType(objTypeName, objTypeName, rowType, keyArray); - return new TabularConverter(objType, sortedMap, tabularType, - keyConverter, valueConverter); + return new TabularMapping(objType, sortedMap, tabularType, + keyMapping, valueMapping); } /* We know how to translate List, Set, SortedSet, @@ -394,8 +433,10 @@ public abstract class OpenConverter { subtypes of those because we wouldn't know how to deserialize them. We don't accept Queue because it is unlikely people would use that as a parameter or return type in an MBean. */ - private static OpenConverter - makeParameterizedConverter(ParameterizedType objType) throws OpenDataException { + private MXBeanMapping + makeParameterizedTypeMapping(ParameterizedType objType, + MXBeanMappingFactory factory) + throws OpenDataException { final Type rawType = objType.getRawType(); @@ -406,7 +447,7 @@ public abstract class OpenConverter { assert(actuals.length == 1); if (c == SortedSet.class) mustBeComparable(c, actuals[0]); - return makeArrayOrCollectionConverter(objType, actuals[0]); + return makeArrayOrCollectionMapping(objType, actuals[0], factory); } else { boolean sortedMap = (c == SortedMap.class); if (c == Map.class || sortedMap) { @@ -414,20 +455,21 @@ public abstract class OpenConverter { assert(actuals.length == 2); if (sortedMap) mustBeComparable(c, actuals[0]); - return makeTabularConverter(objType, sortedMap, - actuals[0], actuals[1]); + return makeTabularMapping(objType, sortedMap, + actuals[0], actuals[1], factory); } } } throw new OpenDataException("Cannot convert type: " + objType); } - private static OpenConverter makeMXBeanConverter(Type t) + private static MXBeanMapping makeMXBeanRefMapping(Type t) throws OpenDataException { - return new MXBeanConverter(t); + return new MXBeanRefMapping(t); } - private static OpenConverter makeCompositeConverter(Class c) + private MXBeanMapping makeCompositeMapping(Class c, + MXBeanMappingFactory factory) throws OpenDataException { // For historical reasons GcInfo implements CompositeData but we @@ -479,7 +521,7 @@ public abstract class OpenConverter { final Method getter = entry.getValue(); getters[i] = getter; final Type retType = getter.getGenericReturnType(); - openTypes[i] = toConverter(retType).getOpenType(); + openTypes[i] = factory.mappingForType(retType, factory).getOpenType(); i++; } @@ -490,52 +532,55 @@ public abstract class OpenConverter { itemNames, // field descriptions openTypes); - return new CompositeConverter(c, - compositeType, - itemNames, - getters); + return new CompositeMapping(c, + compositeType, + itemNames, + getters, + factory); } /* Converter for classes where the open data is identical to the original data. This is true for any of the SimpleType types, and for an any-dimension array of those. It is also true for - primitive types as of JMX 1.3, since an int[] needs to + primitive types as of JMX 1.3, since an int[] can be directly represented by an ArrayType, and an int needs no mapping because reflection takes care of it. */ - private static final class IdentityConverter extends OpenConverter { - IdentityConverter(Type targetType, OpenType openType, - Class openClass) { - super(targetType, openType, openClass); + private static final class IdentityMapping extends NonNullMXBeanMapping { + IdentityMapping(Type targetType, OpenType openType) { + super(targetType, openType); } boolean isIdentity() { return true; } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) { - return value; + @Override + Object fromNonNullOpenValue(Object openValue) + throws InvalidObjectException { + return openValue; } - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object value) { - return value; + @Override + Object toNonNullOpenValue(Object javaValue) throws OpenDataException { + return javaValue; } } - private static final class EnumConverter> - extends OpenConverter { + private static final class EnumMapping> + extends NonNullMXBeanMapping { - EnumConverter(Class enumClass) { - super(enumClass, SimpleType.STRING, String.class); + EnumMapping(Class enumClass) { + super(enumClass, SimpleType.STRING); this.enumClass = enumClass; } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) { + @Override + final Object toNonNullOpenValue(Object value) { return ((Enum) value).name(); } - // return type could be T, but after erasure that would be - // java.lang.Enum, which doesn't exist on J2SE 1.4 - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final T fromNonNullOpenValue(Object value) throws InvalidObjectException { try { return Enum.valueOf(enumClass, (String) value); @@ -548,69 +593,69 @@ public abstract class OpenConverter { private final Class enumClass; } - private static final class ArrayConverter extends OpenConverter { - ArrayConverter(Type targetType, - ArrayType openArrayType, Class openArrayClass, - OpenConverter elementConverter) { - super(targetType, openArrayType, openArrayClass); - this.elementConverter = elementConverter; + private static final class ArrayMapping extends NonNullMXBeanMapping { + ArrayMapping(Type targetType, + ArrayType openArrayType, Class openArrayClass, + MXBeanMapping elementMapping) { + super(targetType, openArrayType); + this.elementMapping = elementMapping; } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final Object toNonNullOpenValue(Object value) throws OpenDataException { Object[] valueArray = (Object[]) value; final int len = valueArray.length; final Object[] openArray = (Object[]) Array.newInstance(getOpenClass().getComponentType(), len); - for (int i = 0; i < len; i++) { - openArray[i] = - elementConverter.toOpenValue(lookup, valueArray[i]); - } + for (int i = 0; i < len; i++) + openArray[i] = elementMapping.toOpenValue(valueArray[i]); return openArray; } - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object openValue) + @Override + final Object fromNonNullOpenValue(Object openValue) throws InvalidObjectException { final Object[] openArray = (Object[]) openValue; - final Type targetType = getTargetType(); + final Type javaType = getJavaType(); final Object[] valueArray; final Type componentType; - if (targetType instanceof GenericArrayType) { + if (javaType instanceof GenericArrayType) { componentType = - ((GenericArrayType) targetType).getGenericComponentType(); - } else if (targetType instanceof Class && - ((Class) targetType).isArray()) { - componentType = ((Class) targetType).getComponentType(); + ((GenericArrayType) javaType).getGenericComponentType(); + } else if (javaType instanceof Class && + ((Class) javaType).isArray()) { + componentType = ((Class) javaType).getComponentType(); } else { throw new IllegalArgumentException("Not an array: " + - targetType); + javaType); } valueArray = (Object[]) Array.newInstance((Class) componentType, openArray.length); - for (int i = 0; i < openArray.length; i++) { - valueArray[i] = - elementConverter.fromOpenValue(lookup, openArray[i]); - } + for (int i = 0; i < openArray.length; i++) + valueArray[i] = elementMapping.fromOpenValue(openArray[i]); return valueArray; } - void checkReconstructible() throws InvalidObjectException { - elementConverter.checkReconstructible(); + public void checkReconstructible() throws InvalidObjectException { + elementMapping.checkReconstructible(); } - /** OpenConverter for the elements of this array. If this is an - array of arrays, the converter converts the second-level arrays, - not the deepest elements. */ - private final OpenConverter elementConverter; + /** + * DefaultMXBeanMappingFactory for the elements of this array. If this is an + * array of arrays, the converter converts the second-level arrays, + * not the deepest elements. + */ + private final MXBeanMapping elementMapping; } - private static final class CollectionConverter extends OpenConverter { - CollectionConverter(Type targetType, - ArrayType openArrayType, - Class openArrayClass, - OpenConverter elementConverter) { - super(targetType, openArrayType, openArrayClass); - this.elementConverter = elementConverter; + private static final class CollectionMapping extends NonNullMXBeanMapping { + CollectionMapping(Type targetType, + ArrayType openArrayType, + Class openArrayClass, + MXBeanMapping elementMapping) { + super(targetType, openArrayType); + this.elementMapping = elementMapping; /* Determine the concrete class to be used when converting back to this Java type. We convert all Lists to ArrayList @@ -630,7 +675,8 @@ public abstract class OpenConverter { } } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final Object toNonNullOpenValue(Object value) throws OpenDataException { final Collection valueCollection = (Collection) value; if (valueCollection instanceof SortedSet) { @@ -648,21 +694,22 @@ public abstract class OpenConverter { valueCollection.size()); int i = 0; for (Object o : valueCollection) - openArray[i++] = elementConverter.toOpenValue(lookup, o); + openArray[i++] = elementMapping.toOpenValue(o); return openArray; } - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object openValue) + @Override + final Object fromNonNullOpenValue(Object openValue) throws InvalidObjectException { final Object[] openArray = (Object[]) openValue; final Collection valueCollection; try { - valueCollection = Util.cast(collectionClass.newInstance()); + valueCollection = cast(collectionClass.newInstance()); } catch (Exception e) { throw invalidObjectException("Cannot create collection", e); } for (Object o : openArray) { - Object value = elementConverter.fromOpenValue(lookup, o); + Object value = elementMapping.fromOpenValue(o); if (!valueCollection.add(value)) { final String msg = "Could not add " + o + " to " + @@ -674,34 +721,36 @@ public abstract class OpenConverter { return valueCollection; } - void checkReconstructible() throws InvalidObjectException { - elementConverter.checkReconstructible(); + public void checkReconstructible() throws InvalidObjectException { + elementMapping.checkReconstructible(); } private final Class collectionClass; - private final OpenConverter elementConverter; + private final MXBeanMapping elementMapping; } - private static final class MXBeanConverter extends OpenConverter { - MXBeanConverter(Type intf) { - super(intf, SimpleType.OBJECTNAME, ObjectName.class); + private static final class MXBeanRefMapping extends NonNullMXBeanMapping { + MXBeanRefMapping(Type intf) { + super(intf, SimpleType.OBJECTNAME); } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final Object toNonNullOpenValue(Object javaValue) throws OpenDataException { - lookupNotNull(lookup, OpenDataException.class); - ObjectName name = lookup.mxbeanToObjectName(value); + MXBeanLookup lookup = lookupNotNull(OpenDataException.class); + ObjectName name = lookup.mxbeanToObjectName(javaValue); if (name == null) - throw new OpenDataException("No name for object: " + value); + throw new OpenDataException("No name for object: " + javaValue); return name; } - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final Object fromNonNullOpenValue(Object openValue) throws InvalidObjectException { - lookupNotNull(lookup, InvalidObjectException.class); - ObjectName name = (ObjectName) value; + MXBeanLookup lookup = lookupNotNull(InvalidObjectException.class); + ObjectName name = (ObjectName) openValue; Object mxbean = - lookup.objectNameToMXBean(name, (Class) getTargetType()); + lookup.objectNameToMXBean(name, (Class) getJavaType()); if (mxbean == null) { final String msg = "No MXBean for name: " + name; @@ -710,9 +759,10 @@ public abstract class OpenConverter { return mxbean; } - private void - lookupNotNull(MXBeanLookup lookup, Class excClass) + private MXBeanLookup + lookupNotNull(Class excClass) throws T { + MXBeanLookup lookup = MXBeanLookup.getLookup(); if (lookup == null) { final String msg = "Cannot convert MXBean interface in this context"; @@ -725,24 +775,25 @@ public abstract class OpenConverter { } throw exc; } + return lookup; } } - private static final class TabularConverter extends OpenConverter { - TabularConverter(Type targetType, - boolean sortedMap, - TabularType tabularType, - OpenConverter keyConverter, - OpenConverter valueConverter) { - super(targetType, tabularType, TabularData.class); + private static final class TabularMapping extends NonNullMXBeanMapping { + TabularMapping(Type targetType, + boolean sortedMap, + TabularType tabularType, + MXBeanMapping keyConverter, + MXBeanMapping valueConverter) { + super(targetType, tabularType); this.sortedMap = sortedMap; - this.keyConverter = keyConverter; - this.valueConverter = valueConverter; + this.keyMapping = keyConverter; + this.valueMapping = valueConverter; } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) - throws OpenDataException { - final Map valueMap = Util.cast(value); + @Override + final Object toNonNullOpenValue(Object value) throws OpenDataException { + final Map valueMap = cast(value); if (valueMap instanceof SortedMap) { Comparator comparator = ((SortedMap) valueMap).comparator(); if (comparator != null) { @@ -756,10 +807,8 @@ public abstract class OpenConverter { final TabularData table = new TabularDataSupport(tabularType); final CompositeType rowType = tabularType.getRowType(); for (Map.Entry entry : valueMap.entrySet()) { - final Object openKey = - keyConverter.toOpenValue(lookup, entry.getKey()); - final Object openValue = - valueConverter.toOpenValue(lookup, entry.getValue()); + final Object openKey = keyMapping.toOpenValue(entry.getKey()); + final Object openValue = valueMapping.toOpenValue(entry.getValue()); final CompositeData row; row = new CompositeDataSupport(rowType, keyValueArray, @@ -770,17 +819,18 @@ public abstract class OpenConverter { return table; } - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object openValue) + @Override + final Object fromNonNullOpenValue(Object openValue) throws InvalidObjectException { final TabularData table = (TabularData) openValue; - final Collection rows = Util.cast(table.values()); + final Collection rows = cast(table.values()); final Map valueMap = sortedMap ? newSortedMap() : newMap(); for (CompositeData row : rows) { final Object key = - keyConverter.fromOpenValue(lookup, row.get("key")); + keyMapping.fromOpenValue(row.get("key")); final Object value = - valueConverter.fromOpenValue(lookup, row.get("value")); + valueMapping.fromOpenValue(row.get("value")); if (valueMap.put(key, value) != null) { final String msg = "Duplicate entry in TabularData: key=" + key; @@ -790,35 +840,38 @@ public abstract class OpenConverter { return valueMap; } - void checkReconstructible() throws InvalidObjectException { - keyConverter.checkReconstructible(); - valueConverter.checkReconstructible(); + @Override + public void checkReconstructible() throws InvalidObjectException { + keyMapping.checkReconstructible(); + valueMapping.checkReconstructible(); } private final boolean sortedMap; - private final OpenConverter keyConverter; - private final OpenConverter valueConverter; + private final MXBeanMapping keyMapping; + private final MXBeanMapping valueMapping; } - private static final class CompositeConverter extends OpenConverter { - CompositeConverter(Class targetClass, - CompositeType compositeType, - String[] itemNames, - Method[] getters) throws OpenDataException { - super(targetClass, compositeType, CompositeData.class); + private final class CompositeMapping extends NonNullMXBeanMapping { + CompositeMapping(Class targetClass, + CompositeType compositeType, + String[] itemNames, + Method[] getters, + MXBeanMappingFactory factory) throws OpenDataException { + super(targetClass, compositeType); assert(itemNames.length == getters.length); this.itemNames = itemNames; this.getters = getters; - this.getterConverters = new OpenConverter[getters.length]; + this.getterMappings = new MXBeanMapping[getters.length]; for (int i = 0; i < getters.length; i++) { Type retType = getters[i].getGenericReturnType(); - getterConverters[i] = OpenConverter.toConverter(retType); + getterMappings[i] = factory.mappingForType(retType, factory); } } - final Object toNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final Object toNonNullOpenValue(Object value) throws OpenDataException { CompositeType ct = (CompositeType) getOpenType(); if (value instanceof CompositeDataView) @@ -830,7 +883,7 @@ public abstract class OpenConverter { for (int i = 0; i < getters.length; i++) { try { Object got = getters[i].invoke(value, (Object[]) null); - values[i] = getterConverters[i].toOpenValue(lookup, got); + values[i] = getterMappings[i].toOpenValue(got); } catch (Exception e) { throw openDataException("Error calling getter for " + itemNames[i] + ": " + e, e); @@ -848,7 +901,7 @@ public abstract class OpenConverter { if (compositeBuilder != null) return; - Class targetClass = (Class) getTargetType(); + Class targetClass = (Class) getJavaType(); /* In this 2D array, each subarray is a set of builders where there is no point in consulting the ones after the first if the first refuses. */ @@ -861,7 +914,7 @@ public abstract class OpenConverter { }, { new CompositeBuilderCheckGetters(targetClass, itemNames, - getterConverters), + getterMappings), new CompositeBuilderViaSetters(targetClass, itemNames), new CompositeBuilderViaProxy(targetClass, itemNames), }, @@ -898,22 +951,23 @@ public abstract class OpenConverter { compositeBuilder = foundBuilder; } - void checkReconstructible() throws InvalidObjectException { + @Override + public void checkReconstructible() throws InvalidObjectException { makeCompositeBuilder(); } - public final Object fromNonNullOpenValue(MXBeanLookup lookup, Object value) + @Override + final Object fromNonNullOpenValue(Object value) throws InvalidObjectException { makeCompositeBuilder(); - return compositeBuilder.fromCompositeData(lookup, - (CompositeData) value, + return compositeBuilder.fromCompositeData((CompositeData) value, itemNames, - getterConverters); + getterMappings); } private final String[] itemNames; private final Method[] getters; - private final OpenConverter[] getterConverters; + private final MXBeanMapping[] getterMappings; private CompositeBuilder compositeBuilder; } @@ -940,9 +994,9 @@ public abstract class OpenConverter { abstract String applicable(Method[] getters) throws InvalidObjectException; - abstract Object fromCompositeData(MXBeanLookup lookup, CompositeData cd, + abstract Object fromCompositeData(CompositeData cd, String[] itemNames, - OpenConverter[] converters) + MXBeanMapping[] converters) throws InvalidObjectException; private final Class targetClass; @@ -991,9 +1045,9 @@ public abstract class OpenConverter { } } - final Object fromCompositeData(MXBeanLookup lookup, CompositeData cd, - String[] itemNames, - OpenConverter[] converters) + final Object fromCompositeData(CompositeData cd, + String[] itemNames, + MXBeanMapping[] converters) throws InvalidObjectException { try { return fromMethod.invoke(null, cd); @@ -1018,7 +1072,7 @@ public abstract class OpenConverter { an empty string and the other builders will be tried. */ private static class CompositeBuilderCheckGetters extends CompositeBuilder { CompositeBuilderCheckGetters(Class targetClass, String[] itemNames, - OpenConverter[] getterConverters) { + MXBeanMapping[] getterConverters) { super(targetClass, itemNames); this.getterConverters = getterConverters; } @@ -1035,25 +1089,25 @@ public abstract class OpenConverter { return ""; } - final Object fromCompositeData(MXBeanLookup lookup, CompositeData cd, + final Object fromCompositeData(CompositeData cd, String[] itemNames, - OpenConverter[] converters) { + MXBeanMapping[] converters) { throw new Error(); } - private final OpenConverter[] getterConverters; + private final MXBeanMapping[] getterConverters; } /** Builder for when the target class has a setter for every getter. */ private static class CompositeBuilderViaSetters extends CompositeBuilder { - CompositeBuilderViaSetters(Class targetClass, String[] itemNames) { + CompositeBuilderViaSetters(Class targetClass, String[] itemNames) { super(targetClass, itemNames); } String applicable(Method[] getters) { try { - Constructor c = getTargetClass().getConstructor((Class[]) null); + Constructor c = getTargetClass().getConstructor(); } catch (Exception e) { return "does not have a public no-arg constructor"; } @@ -1079,9 +1133,9 @@ public abstract class OpenConverter { return null; } - Object fromCompositeData(MXBeanLookup lookup, CompositeData cd, + Object fromCompositeData(CompositeData cd, String[] itemNames, - OpenConverter[] converters) + MXBeanMapping[] converters) throws InvalidObjectException { Object o; try { @@ -1090,7 +1144,7 @@ public abstract class OpenConverter { if (cd.containsKey(itemNames[i])) { Object openItem = cd.get(itemNames[i]); Object javaItem = - converters[i].fromOpenValue(lookup, openItem); + converters[i].fromOpenValue(openItem); setters[i].invoke(o, javaItem); } } @@ -1118,10 +1172,10 @@ public abstract class OpenConverter { final Class propertyNamesClass = ConstructorProperties.class; Class targetClass = getTargetClass(); - Constructor[] constrs = targetClass.getConstructors(); + Constructor[] constrs = targetClass.getConstructors(); // Applicable if and only if there are any annotated constructors - List> annotatedConstrList = newList(); + List annotatedConstrList = newList(); for (Constructor constr : constrs) { if (Modifier.isPublic(constr.getModifiers()) && constr.getAnnotation(propertyNamesClass) != null) @@ -1152,7 +1206,7 @@ public abstract class OpenConverter { // Also remember the set of properties in that constructor // so we can test unambiguity. Set getterIndexSets = newSet(); - for (Constructor constr : annotatedConstrList) { + for (Constructor constr : annotatedConstrList) { String[] propertyNames = constr.getAnnotation(propertyNamesClass).value(); @@ -1251,9 +1305,9 @@ public abstract class OpenConverter { return null; // success! } - Object fromCompositeData(MXBeanLookup lookup, CompositeData cd, - String[] itemNames, - OpenConverter[] converters) + final Object fromCompositeData(CompositeData cd, + String[] itemNames, + MXBeanMapping[] mappings) throws InvalidObjectException { // The CompositeData might come from an earlier version where // not all the items were present. We look for a constructor @@ -1287,7 +1341,7 @@ public abstract class OpenConverter { if (!max.presentParams.get(i)) continue; Object openItem = cd.get(itemNames[i]); - Object javaItem = converters[i].fromOpenValue(lookup, openItem); + Object javaItem = mappings[i].fromOpenValue(openItem); int index = max.paramIndexes[i]; if (index >= 0) params[index] = javaItem; @@ -1309,10 +1363,10 @@ public abstract class OpenConverter { } private static class Constr { - final Constructor constructor; + final Constructor constructor; final int[] paramIndexes; final BitSet presentParams; - Constr(Constructor constructor, int[] paramIndexes, + Constr(Constructor constructor, int[] paramIndexes, BitSet presentParams) { this.constructor = constructor; this.paramIndexes = paramIndexes; @@ -1365,9 +1419,9 @@ public abstract class OpenConverter { return null; // success! } - final Object fromCompositeData(MXBeanLookup lookup, CompositeData cd, - String[] itemNames, - OpenConverter[] converters) { + final Object fromCompositeData(CompositeData cd, + String[] itemNames, + MXBeanMapping[] converters) { final Class targetClass = getTargetClass(); return Proxy.newProxyInstance(targetClass.getClassLoader(), diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java index 2a72f3d222f..10826cc36f1 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java @@ -42,7 +42,6 @@ import javax.management.ImmutableDescriptor; import javax.management.MBeanInfo; import javax.management.NotCompliantMBeanException; -import com.sun.jmx.mbeanserver.Util; import com.sun.jmx.remote.util.EnvHelp; import java.beans.BeanInfo; import java.beans.PropertyDescriptor; @@ -50,6 +49,7 @@ import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import javax.management.AttributeNotFoundException; import javax.management.openmbean.CompositeData; +import javax.management.openmbean.MXBeanMappingFactory; /** * This class contains the methods for performing all the tests needed to verify @@ -165,30 +165,34 @@ public class Introspector { throw new NotCompliantMBeanException(msg); } - public static DynamicMBean makeDynamicMBean(Object mbean) - throws NotCompliantMBeanException { + public static DynamicMBean makeDynamicMBean(T mbean) + throws NotCompliantMBeanException { + if (mbean == null) + throw new NotCompliantMBeanException("Null MBean object"); if (mbean instanceof DynamicMBean) return (DynamicMBean) mbean; final Class mbeanClass = mbean.getClass(); - Class c = null; + Class c = null; try { - c = getStandardMBeanInterface(mbeanClass); + c = Util.cast(getStandardMBeanInterface(mbeanClass)); } catch (NotCompliantMBeanException e) { // Ignore exception - we need to check whether // mbean is an MXBean first. } if (c != null) - return new StandardMBeanSupport(mbean, Util.>cast(c)); + return new StandardMBeanSupport(mbean, c); try { - c = getMXBeanInterface(mbeanClass); + c = Util.cast(getMXBeanInterface(mbeanClass)); } catch (NotCompliantMBeanException e) { // Ignore exception - we cannot decide whether mbean was supposed // to be an MBean or an MXBean. We will call checkCompliance() // to generate the appropriate exception. } - if (c != null) - return new MXBeanSupport(mbean, Util.>cast(c)); + if (c != null) { + MXBeanMappingFactory factory = MXBeanMappingFactory.forInterface(c); + return new MXBeanSupport(mbean, c, factory); + } checkCompliance(mbeanClass); throw new NotCompliantMBeanException("Not compliant"); // not reached } @@ -217,9 +221,10 @@ public class Introspector { return testCompliance(baseClass, null); } - public static void testComplianceMXBeanInterface(Class interfaceClass) + public static void testComplianceMXBeanInterface(Class interfaceClass, + MXBeanMappingFactory factory) throws NotCompliantMBeanException { - MXBeanIntrospector.getInstance().getAnalyzer(interfaceClass); + MXBeanIntrospector.getInstance(factory).getAnalyzer(interfaceClass); } /** @@ -325,6 +330,15 @@ public class Introspector { } } + public static Class getStandardOrMXBeanInterface( + Class baseClass, boolean mxbean) + throws NotCompliantMBeanException { + if (mxbean) + return getMXBeanInterface(baseClass); + else + return getStandardMBeanInterface(baseClass); + } + /* * ------------------------------------------ * PRIVATE METHODS diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java index 5975f1a391b..58328e1ce8a 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanAnalyzer.java @@ -29,13 +29,10 @@ import static com.sun.jmx.mbeanserver.Util.*; import java.lang.reflect.Method; import java.util.Arrays; -import java.util.Collection; import java.util.Comparator; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; - import javax.management.NotCompliantMBeanException; /** @@ -54,15 +51,15 @@ import javax.management.NotCompliantMBeanException; */ class MBeanAnalyzer { - static interface MBeanVisitor { + static interface MBeanVisitor { public void visitAttribute(String attributeName, M getter, - M setter); + M setter) throws X; public void visitOperation(String operationName, - M operation); + M operation) throws X; } - void visit(MBeanVisitor visitor) { + void visit(MBeanVisitor visitor) throws X { // visit attributes for (Map.Entry> entry : attrMap.entrySet()) { String name = entry.getKey(); @@ -98,21 +95,21 @@ class MBeanAnalyzer { // cached PerInterface object for an MBean interface means that // an analyzer will not be recreated for a second MBean using the // same interface. - static MBeanAnalyzer analyzer(Class mbeanInterface, + static MBeanAnalyzer analyzer(Class mbeanType, MBeanIntrospector introspector) throws NotCompliantMBeanException { - return new MBeanAnalyzer(mbeanInterface, introspector); + return new MBeanAnalyzer(mbeanType, introspector); } - private MBeanAnalyzer(Class mbeanInterface, + private MBeanAnalyzer(Class mbeanType, MBeanIntrospector introspector) throws NotCompliantMBeanException { - introspector.checkCompliance(mbeanInterface); + introspector.checkCompliance(mbeanType); try { - initMaps(mbeanInterface, introspector); + initMaps(mbeanType, introspector); } catch (Exception x) { - throw Introspector.throwException(mbeanInterface,x); + throw Introspector.throwException(mbeanType,x); } } @@ -126,7 +123,8 @@ class MBeanAnalyzer { /* Run through the methods to detect inconsistencies and to enable us to give getter and setter together to visitAttribute. */ for (Method m : methods) { - String name = m.getName(); + final String name = m.getName(); + final int nParams = m.getParameterTypes().length; final M cm = introspector.mFrom(m); @@ -137,7 +135,7 @@ class MBeanAnalyzer { && m.getReturnType() == boolean.class) attrName = name.substring(2); - if (attrName.length() != 0 && m.getParameterTypes().length == 0 + if (attrName.length() != 0 && nParams == 0 && m.getReturnType() != void.class) { // It's a getter // Check we don't have both isX and getX @@ -154,7 +152,7 @@ class MBeanAnalyzer { am.getter = cm; attrMap.put(attrName, am); } else if (name.startsWith("set") && name.length() > 3 - && m.getParameterTypes().length == 1 && + && nParams == 1 && m.getReturnType() == void.class) { // It's a setter attrName = name.substring(3); @@ -228,7 +226,11 @@ class MBeanAnalyzer { but only the overriding one is of interest. We return the methods in the same order they arrived in. This isn't required by the spec but existing code may depend on it and users may be used to seeing - operations or attributes appear in a particular order. */ + operations or attributes appear in a particular order. + + Because of the way this method works, if the same Method appears + more than once in the given List then it will be completely deleted! + So don't do that. */ static List eliminateCovariantMethods(List startMethods) { // We are assuming that you never have very many methods with the @@ -243,7 +245,7 @@ class MBeanAnalyzer { final Method m0 = sorted[i-1]; final Method m1 = sorted[i]; - // Methods that don't have the same name can't override each others + // Methods that don't have the same name can't override each other if (!m0.getName().equals(m1.getName())) continue; // Methods that have the same name and same signature override @@ -251,7 +253,8 @@ class MBeanAnalyzer { // due to the way we have sorted them in MethodOrder. if (Arrays.equals(m0.getParameterTypes(), m1.getParameterTypes())) { - overridden.add(m0); + if (!overridden.add(m0)) + throw new RuntimeException("Internal error: duplicate Method"); } } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java index ea7dbdade33..ab14aad19f4 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java @@ -40,6 +40,7 @@ import java.util.WeakHashMap; import javax.management.Descriptor; import javax.management.ImmutableDescriptor; +import javax.management.IntrospectionException; import javax.management.InvalidAttributeValueException; import javax.management.MBeanAttributeInfo; import javax.management.MBeanConstructorInfo; @@ -53,8 +54,9 @@ import javax.management.ReflectionException; /** * An introspector for MBeans of a certain type. There is one instance - * of this class for Standard MBeans and one for MXBeans, characterized - * by the two concrete subclasses of this abstract class. + * of this class for Standard MBeans, and one for every MXBeanMappingFactory; + * these two cases correspond to the two concrete subclasses of this abstract + * class. * * @param the representation of methods for this kind of MBean: * Method for Standard MBeans, ConvertingMethod for MXBeans. @@ -119,7 +121,7 @@ abstract class MBeanIntrospector { * MXBean interface is not valid if one of its parameters cannot be * mapped to an Open Type. */ - abstract void checkMethod(M m) throws IllegalArgumentException; + abstract void checkMethod(M m); /** * Invoke the method with the given target and arguments. @@ -149,7 +151,8 @@ abstract class MBeanIntrospector { * may be null. */ abstract MBeanAttributeInfo getMBeanAttributeInfo(String attributeName, - M getter, M setter); + M getter, M setter) throws IntrospectionException; + /** * Construct an MBeanOperationInfo for the given operation based on * the M it was derived from. @@ -170,6 +173,16 @@ abstract class MBeanIntrospector { */ abstract Descriptor getMBeanDescriptor(Class resourceClass); + /** + * Get any additional Descriptor entries for this introspector instance. + * If there is a non-default MXBeanMappingFactory, it will appear in + * this Descriptor. + * @return Additional Descriptor entries, or an empty Descriptor if none. + */ + Descriptor getSpecificMBeanDescriptor() { + return ImmutableDescriptor.EMPTY_DESCRIPTOR; + } + void checkCompliance(Class mbeanType) throws NotCompliantMBeanException { if (!mbeanType.isInterface()) { throw new NotCompliantMBeanException("Not an interface: " + @@ -216,7 +229,7 @@ abstract class MBeanIntrospector { * the MBeanInfo's Descriptor. */ private MBeanInfo makeInterfaceMBeanInfo(Class mbeanInterface, - MBeanAnalyzer analyzer) { + MBeanAnalyzer analyzer) throws IntrospectionException { final MBeanInfoMaker maker = new MBeanInfoMaker(); analyzer.visit(maker); final String description = @@ -317,11 +330,12 @@ abstract class MBeanIntrospector { } /** A visitor that constructs the per-interface MBeanInfo. */ - private class MBeanInfoMaker implements MBeanAnalyzer.MBeanVisitor { + private class MBeanInfoMaker + implements MBeanAnalyzer.MBeanVisitor { public void visitAttribute(String attributeName, M getter, - M setter) { + M setter) throws IntrospectionException { MBeanAttributeInfo mbai = getMBeanAttributeInfo(attributeName, getter, setter); @@ -346,13 +360,14 @@ abstract class MBeanIntrospector { ops.toArray(new MBeanOperationInfo[0]); final String interfaceClassName = "interfaceClassName=" + mbeanInterface.getName(); - final Descriptor interfDescriptor = + final Descriptor classNameDescriptor = new ImmutableDescriptor(interfaceClassName); final Descriptor mbeanDescriptor = getBasicMBeanDescriptor(); final Descriptor annotatedDescriptor = Introspector.descriptorForElement(mbeanInterface); final Descriptor descriptor = - DescriptorCache.getInstance().union(interfDescriptor, + DescriptorCache.getInstance().union( + classNameDescriptor, mbeanDescriptor, annotatedDescriptor); @@ -388,20 +403,24 @@ abstract class MBeanIntrospector { * Return the MBeanInfo for the given resource, based on the given * per-interface data. */ - final MBeanInfo getMBeanInfo(Object resource, PerInterface perInterface) { + final MBeanInfo getMBeanInfo(Object resource, PerInterface perInterface) + throws NotCompliantMBeanException { MBeanInfo mbi = getClassMBeanInfo(resource.getClass(), perInterface); MBeanNotificationInfo[] notifs = findNotifications(resource); - if (notifs == null || notifs.length == 0) + Descriptor d = getSpecificMBeanDescriptor(); + boolean anyNotifs = (notifs != null && notifs.length > 0); + if (!anyNotifs && ImmutableDescriptor.EMPTY_DESCRIPTOR.equals(d)) return mbi; else { + d = ImmutableDescriptor.union(d, mbi.getDescriptor()); return new MBeanInfo(mbi.getClassName(), mbi.getDescription(), mbi.getAttributes(), mbi.getConstructors(), mbi.getOperations(), notifs, - mbi.getDescriptor()); + d); } } @@ -446,7 +465,7 @@ abstract class MBeanIntrospector { return null; MBeanNotificationInfo[] mbn = ((NotificationBroadcaster) moi).getNotificationInfo(); - if (mbn == null) + if (mbn == null || mbn.length == 0) return null; MBeanNotificationInfo[] result = new MBeanNotificationInfo[mbn.length]; diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanSupport.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanSupport.java index 187ca503d5e..d69f6e77161 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanSupport.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanSupport.java @@ -38,6 +38,7 @@ import javax.management.MBeanServer; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; import javax.management.ReflectionException; +import javax.management.openmbean.MXBeanMappingFactory; /** * Base class for MBeans. There is one instance of this class for @@ -121,24 +122,26 @@ import javax.management.ReflectionException; public abstract class MBeanSupport implements DynamicMBean2, MBeanRegistration { - MBeanSupport(T resource, Class mbeanInterface) + MBeanSupport(T resource, Class mbeanInterfaceType, + MXBeanMappingFactory mappingFactory) throws NotCompliantMBeanException { - if (mbeanInterface == null) + if (mbeanInterfaceType == null) throw new NotCompliantMBeanException("Null MBean interface"); - if (!mbeanInterface.isInstance(resource)) { + if (!mbeanInterfaceType.isInstance(resource)) { final String msg = "Resource class " + resource.getClass().getName() + - " is not an instance of " + mbeanInterface.getName(); + " is not an instance of " + mbeanInterfaceType.getName(); throw new NotCompliantMBeanException(msg); } this.resource = resource; - MBeanIntrospector introspector = getMBeanIntrospector(); - this.perInterface = introspector.getPerInterface(mbeanInterface); + MBeanIntrospector introspector = getMBeanIntrospector(mappingFactory); + this.perInterface = introspector.getPerInterface(mbeanInterfaceType); this.mbeanInfo = introspector.getMBeanInfo(resource, perInterface); } /** Return the appropriate introspector for this type of MBean. */ - abstract MBeanIntrospector getMBeanIntrospector(); + abstract MBeanIntrospector + getMBeanIntrospector(MXBeanMappingFactory mappingFactory); /** * Return a cookie for this MBean. This cookie will be passed to @@ -162,9 +165,8 @@ public abstract class MBeanSupport public final ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception { if (resource instanceof MBeanRegistration) - return ((MBeanRegistration) resource).preRegister(server, name); - else - return name; + name = ((MBeanRegistration) resource).preRegister(server, name); + return name; } public final void preRegister2(MBeanServer server, ObjectName name) diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java index e93961a4ae9..e3b037d29d8 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanIntrospector.java @@ -25,18 +25,26 @@ package com.sun.jmx.mbeanserver; +import com.sun.jmx.mbeanserver.MBeanIntrospector.MBeanInfoMap; +import com.sun.jmx.mbeanserver.MBeanIntrospector.PerInterfaceMap; import java.lang.annotation.Annotation; +import java.lang.ref.WeakReference; import java.lang.reflect.GenericArrayType; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Type; +import java.util.Map; +import java.util.WeakHashMap; import javax.management.Descriptor; import javax.management.ImmutableDescriptor; +import javax.management.IntrospectionException; +import javax.management.JMX; import javax.management.MBeanAttributeInfo; import javax.management.MBeanException; import javax.management.MBeanOperationInfo; import javax.management.MBeanParameterInfo; import javax.management.NotCompliantMBeanException; +import javax.management.openmbean.MXBeanMappingFactory; import javax.management.openmbean.OpenMBeanAttributeInfoSupport; import javax.management.openmbean.OpenMBeanOperationInfoSupport; import javax.management.openmbean.OpenMBeanParameterInfo; @@ -49,10 +57,36 @@ import javax.management.openmbean.OpenType; * @since 1.6 */ class MXBeanIntrospector extends MBeanIntrospector { - private static final MXBeanIntrospector instance = new MXBeanIntrospector(); + /* We keep one MXBeanIntrospector per MXBeanMappingFactory, since the results + * of the introspection depend on the factory. The MXBeanIntrospector + * has a reference back to the factory, so we wrap it in a WeakReference. + * It will be strongly referenced by any MXBeanSupport instances using it; + * if there are none then it is OK to gc it. + */ + private static final + Map> map = + new WeakHashMap>(); - static MXBeanIntrospector getInstance() { - return instance; + static MXBeanIntrospector getInstance(MXBeanMappingFactory factory) { + if (factory == null) + factory = MXBeanMappingFactory.DEFAULT; + synchronized (map) { + MXBeanIntrospector intro; + WeakReference wr = map.get(factory); + if (wr != null) { + intro = wr.get(); + if (intro != null) + return intro; + } + intro = new MXBeanIntrospector(factory); + wr = new WeakReference(intro); + map.put(factory, wr); + return intro; + } + } + + private MXBeanIntrospector(MXBeanMappingFactory factory) { + this.mappingFactory = factory; } @Override @@ -78,7 +112,7 @@ class MXBeanIntrospector extends MBeanIntrospector { @Override ConvertingMethod mFrom(Method m) { - return ConvertingMethod.from(m); + return ConvertingMethod.from(m, mappingFactory); } @Override @@ -139,7 +173,8 @@ class MXBeanIntrospector extends MBeanIntrospector { @Override MBeanAttributeInfo getMBeanAttributeInfo(String attributeName, - ConvertingMethod getter, ConvertingMethod setter) { + ConvertingMethod getter, ConvertingMethod setter) + throws IntrospectionException { final boolean isReadable = (getter != null); final boolean isWritable = (setter != null); @@ -222,14 +257,14 @@ class MXBeanIntrospector extends MBeanIntrospector { Introspector.descriptorForAnnotations(annots[i])); final MBeanParameterInfo pi; if (canUseOpenInfo(originalType)) { - pi = new OpenMBeanParameterInfoSupport("p" + i, + pi = new OpenMBeanParameterInfoSupport(paramName, paramDescription, openType, descriptor); } else { openParameterTypes = false; pi = new MBeanParameterInfo( - "p" + i, + paramName, originalTypeString(originalType), paramDescription, descriptor); @@ -291,6 +326,17 @@ class MXBeanIntrospector extends MBeanIntrospector { return ImmutableDescriptor.EMPTY_DESCRIPTOR; } + @Override + Descriptor getSpecificMBeanDescriptor() { + if (mappingFactory == MXBeanMappingFactory.DEFAULT) + return ImmutableDescriptor.EMPTY_DESCRIPTOR; + else { + return new ImmutableDescriptor( + JMX.MXBEAN_MAPPING_FACTORY_CLASS_FIELD + "=" + + mappingFactory.getClass().getName()); + } + } + private static Descriptor typeDescriptor(OpenType openType, Type originalType) { return new ImmutableDescriptor( @@ -331,8 +377,10 @@ class MXBeanIntrospector extends MBeanIntrospector { return type.toString(); } - private static final PerInterfaceMap + private final PerInterfaceMap perInterfaceMap = new PerInterfaceMap(); - private static final MBeanInfoMap mbeanInfoMap = new MBeanInfoMap(); + private final MBeanInfoMap mbeanInfoMap = new MBeanInfoMap(); + + private final MXBeanMappingFactory mappingFactory; } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java index ef712eaafd8..e4c5e8958f0 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanLookup.java @@ -25,15 +25,21 @@ package com.sun.jmx.mbeanserver; +import com.sun.jmx.remote.util.EnvHelp; +import java.io.InvalidObjectException; import static com.sun.jmx.mbeanserver.Util.*; import java.util.Map; import java.lang.ref.WeakReference; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; +import java.security.AccessController; +import javax.management.InstanceAlreadyExistsException; import javax.management.JMX; import javax.management.MBeanServerConnection; import javax.management.MBeanServerInvocationHandler; +import javax.management.MalformedObjectNameException; import javax.management.ObjectName; +import javax.management.openmbean.OpenDataException; /** * @since 1.6 @@ -80,71 +86,199 @@ import javax.management.ObjectName; * * From the above, it is clear that the logic for getX on an MXBean is * the same as for setX on a proxy, and vice versa. + * + * The above describes the logic for "plain" MXBeanLookup, represented + * by MXBeanLookup.Plain. When namespaces enter the picture, we see + * MXBeanLookup.Prefix. Here, the idea is that the name of the ModuleMXBean + * might be a//m:m=m. In this case, we don't accept a reference to + * an MXBean object, since that would require different namespaces to know + * each others' objects. We only accept proxies. Suppose you have a proxy + * for a//m:m=m, call it moduleProxy, and you call + * moduleProxy.setProduct(productProxy). Then if productProxy is for + * a//p:p=p we should convert this to just p:p=p. If productProxy is for + * a//b//p:p=p we should convert it to b//p:p=p. Conversely, if getProduct + * returns an ObjectName like b//p:p=p then we should convert it into a proxy + * for a//b//p:p=p. */ -public class MXBeanLookup { +public abstract class MXBeanLookup { private MXBeanLookup(MBeanServerConnection mbsc) { this.mbsc = mbsc; } - static MXBeanLookup lookupFor(MBeanServerConnection mbsc) { - synchronized (mbscToLookup) { - WeakReference weakLookup = mbscToLookup.get(mbsc); - MXBeanLookup lookup = (weakLookup == null) ? null : weakLookup.get(); - if (lookup == null) { - lookup = new MXBeanLookup(mbsc); - mbscToLookup.put(mbsc, new WeakReference(lookup)); + static MXBeanLookup lookupFor(MBeanServerConnection mbsc, String prefix) { + if (prefix == null) + return Plain.lookupFor(mbsc); + else + return new Prefix(mbsc, prefix); + } + + abstract T objectNameToMXBean(ObjectName name, Class type) + throws InvalidObjectException; + + abstract ObjectName mxbeanToObjectName(Object mxbean) + throws OpenDataException; + + static class Plain extends MXBeanLookup { + Plain(MBeanServerConnection mbsc) { + super(mbsc); + } + + static Plain lookupFor(MBeanServerConnection mbsc) { + synchronized (mbscToLookup) { + WeakReference weakLookup = mbscToLookup.get(mbsc); + Plain lookup = (weakLookup == null) ? null : weakLookup.get(); + if (lookup == null) { + lookup = new Plain(mbsc); + mbscToLookup.put(mbsc, new WeakReference(lookup)); + } + return lookup; } - return lookup; + } + + @Override + synchronized T objectNameToMXBean(ObjectName name, Class type) { + WeakReference wr = objectNameToProxy.get(name); + if (wr != null) { + Object proxy = wr.get(); + if (type.isInstance(proxy)) + return type.cast(proxy); + } + T proxy = JMX.newMXBeanProxy(mbsc, name, type); + objectNameToProxy.put(name, new WeakReference(proxy)); + return proxy; + } + + @Override + synchronized ObjectName mxbeanToObjectName(Object mxbean) + throws OpenDataException { + String wrong; + if (mxbean instanceof Proxy) { + InvocationHandler ih = Proxy.getInvocationHandler(mxbean); + if (ih instanceof MBeanServerInvocationHandler) { + MBeanServerInvocationHandler mbsih = + (MBeanServerInvocationHandler) ih; + if (mbsih.getMBeanServerConnection().equals(mbsc)) + return mbsih.getObjectName(); + else + wrong = "proxy for a different MBeanServer"; + } else + wrong = "not a JMX proxy"; + } else { + ObjectName name = mxbeanToObjectName.get(mxbean); + if (name != null) + return name; + wrong = "not an MXBean registered in this MBeanServer"; + } + String s = (mxbean == null) ? + "null" : "object of type " + mxbean.getClass().getName(); + throw new OpenDataException( + "Could not convert " + s + " to an ObjectName: " + wrong); + // Message will be strange if mxbean is null but it is not + // supposed to be. + } + + synchronized void addReference(ObjectName name, Object mxbean) + throws InstanceAlreadyExistsException { + ObjectName existing = mxbeanToObjectName.get(mxbean); + if (existing != null) { + String multiname = AccessController.doPrivileged( + new GetPropertyAction("jmx.mxbean.multiname")); + if (!"true".equalsIgnoreCase(multiname)) { + throw new InstanceAlreadyExistsException( + "MXBean already registered with name " + existing); + } + } + mxbeanToObjectName.put(mxbean, name); + } + + synchronized boolean removeReference(ObjectName name, Object mxbean) { + if (name.equals(mxbeanToObjectName.get(mxbean))) { + mxbeanToObjectName.remove(mxbean); + return true; + } else + return false; + /* removeReference can be called when the above condition fails, + * notably if you try to register the same MXBean twice. + */ + } + + private final WeakIdentityHashMap + mxbeanToObjectName = WeakIdentityHashMap.make(); + private final Map> + objectNameToProxy = newMap(); + private static WeakIdentityHashMap> + mbscToLookup = WeakIdentityHashMap.make(); + } + + private static class Prefix extends MXBeanLookup { + private final String prefix; + + Prefix(MBeanServerConnection mbsc, String prefix) { + super(mbsc); + this.prefix = prefix; + } + + @Override + T objectNameToMXBean(ObjectName name, Class type) + throws InvalidObjectException { + String domain = prefix + name.getDomain(); + try { + name = switchDomain(domain, name); + } catch (MalformedObjectNameException e) { + throw EnvHelp.initCause( + new InvalidObjectException(e.getMessage()), e); + } + return JMX.newMXBeanProxy(mbsc, name, type); + } + + @Override + ObjectName mxbeanToObjectName(Object mxbean) + throws OpenDataException { + ObjectName name = proxyToObjectName(mxbean); + String domain = name.getDomain(); + if (!domain.startsWith(prefix)) { + throw new OpenDataException( + "Proxy's name does not start with " + prefix + ": " + name); + } + try { + name = switchDomain(domain.substring(prefix.length()), name); + } catch (MalformedObjectNameException e) { + throw EnvHelp.initCause(new OpenDataException(e.getMessage()), e); + } + return name; } } - synchronized T objectNameToMXBean(ObjectName name, Class type) { - WeakReference wr = objectNameToProxy.get(name); - if (wr != null) { - Object proxy = wr.get(); - if (type.isInstance(proxy)) - return type.cast(proxy); + ObjectName proxyToObjectName(Object proxy) { + InvocationHandler ih = Proxy.getInvocationHandler(proxy); + if (ih instanceof MBeanServerInvocationHandler) { + MBeanServerInvocationHandler mbsih = + (MBeanServerInvocationHandler) ih; + if (mbsih.getMBeanServerConnection().equals(mbsc)) + return mbsih.getObjectName(); } - T proxy = JMX.newMXBeanProxy(mbsc, name, type); - objectNameToProxy.put(name, new WeakReference(proxy)); - return proxy; + return null; } - synchronized ObjectName mxbeanToObjectName(Object mxbean) { - if (mxbean instanceof Proxy) { - InvocationHandler ih = Proxy.getInvocationHandler(mxbean); - if (ih instanceof MBeanServerInvocationHandler) { - MBeanServerInvocationHandler mbsih = - (MBeanServerInvocationHandler) ih; - if (mbsih.getMBeanServerConnection().equals(mbsc)) - return mbsih.getObjectName(); - } - return null; - } else - return mxbeanToObjectName.get(mxbean); + static MXBeanLookup getLookup() { + return currentLookup.get(); } - synchronized void addReference(ObjectName name, Object mxbean) { - mxbeanToObjectName.put(mxbean, name); + static void setLookup(MXBeanLookup lookup) { + currentLookup.set(lookup); } - synchronized boolean removeReference(ObjectName name, Object mxbean) { - if (name.equals(mxbeanToObjectName.get(mxbean))) { - mxbeanToObjectName.remove(mxbean); - return true; - } else - return false; - /* removeReference can be called when the above condition fails, - * notably if you try to register the same MXBean twice. - */ + // Method temporarily added until we have ObjectName.switchDomain in the + // public API. Note that this method DOES NOT PRESERVE the order of + // keys in the ObjectName so it must not be used in the final release. + static ObjectName switchDomain(String domain, ObjectName name) + throws MalformedObjectNameException { + return new ObjectName(domain, name.getKeyPropertyList()); } - private final MBeanServerConnection mbsc; - private final WeakIdentityHashMap - mxbeanToObjectName = WeakIdentityHashMap.make(); - private final Map> - objectNameToProxy = newMap(); - private static WeakIdentityHashMap> - mbscToLookup = WeakIdentityHashMap.make(); + private static final ThreadLocal currentLookup = + new ThreadLocal(); + + final MBeanServerConnection mbsc; } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanProxy.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanProxy.java index 6ecca2ce1d5..16aab47c215 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanProxy.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanProxy.java @@ -27,14 +27,15 @@ package com.sun.jmx.mbeanserver; import static com.sun.jmx.mbeanserver.Util.*; -import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.util.Map; import javax.management.Attribute; import javax.management.MBeanServerConnection; +import javax.management.MalformedObjectNameException; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; +import javax.management.openmbean.MXBeanMappingFactory; /**

Helper class for an {@link InvocationHandler} that forwards methods from an @@ -46,8 +47,7 @@ import javax.management.ObjectName; @since 1.6 */ public class MXBeanProxy { - public MXBeanProxy(Class mxbeanInterface) - throws IllegalArgumentException { + public MXBeanProxy(Class mxbeanInterface, MXBeanMappingFactory factory) { if (mxbeanInterface == null) throw new IllegalArgumentException("Null parameter"); @@ -55,14 +55,15 @@ public class MXBeanProxy { final MBeanAnalyzer analyzer; try { analyzer = - MXBeanIntrospector.getInstance().getAnalyzer(mxbeanInterface); + MXBeanIntrospector.getInstance(factory).getAnalyzer(mxbeanInterface); } catch (NotCompliantMBeanException e) { throw new IllegalArgumentException(e); } analyzer.visit(new Visitor()); } - private class Visitor implements MBeanAnalyzer.MBeanVisitor { + private class Visitor + implements MBeanAnalyzer.MBeanVisitor { public void visitAttribute(String attributeName, ConvertingMethod getter, ConvertingMethod setter) { @@ -160,10 +161,29 @@ public class MXBeanProxy { Handler handler = handlerMap.get(method); ConvertingMethod cm = handler.getConvertingMethod(); - MXBeanLookup lookup = MXBeanLookup.lookupFor(mbsc); - Object[] openArgs = cm.toOpenParameters(lookup, args); - Object result = handler.invoke(mbsc, name, openArgs); - return cm.fromOpenReturnValue(lookup, result); + String prefix = extractPrefix(name); + MXBeanLookup lookup = MXBeanLookup.lookupFor(mbsc, prefix); + MXBeanLookup oldLookup = MXBeanLookup.getLookup(); + try { + MXBeanLookup.setLookup(lookup); + Object[] openArgs = cm.toOpenParameters(lookup, args); + Object result = handler.invoke(mbsc, name, openArgs); + return cm.fromOpenReturnValue(lookup, result); + } finally { + MXBeanLookup.setLookup(oldLookup); + } + } + + private static String extractPrefix(ObjectName name) + throws MalformedObjectNameException { + String domain = name.getDomain(); + int slashslash = domain.lastIndexOf("//"); + if (slashslash > 0 && domain.charAt(slashslash - 1) == '/') + slashslash--; + if (slashslash >= 0) + return domain.substring(0, slashslash + 2); + else + return null; } private final Map handlerMap = newMap(); diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java index 977c74a3230..cb8587450b8 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MXBeanSupport.java @@ -35,6 +35,8 @@ import javax.management.JMX; import javax.management.MBeanServer; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; +import javax.management.openmbean.MXBeanMappingFactory; +import javax.management.openmbean.MXBeanMappingFactoryClass; /** * Base class for MXBeans. @@ -61,14 +63,16 @@ public class MXBeanSupport extends MBeanSupport { if it does not implement the class {@code mxbeanInterface} or if that class is not a valid MXBean interface. */ - public MXBeanSupport(T resource, Class mxbeanInterface) + public MXBeanSupport(T resource, Class mxbeanInterface, + MXBeanMappingFactory mappingFactory) throws NotCompliantMBeanException { - super(resource, mxbeanInterface); + super(resource, mxbeanInterface, mappingFactory); } @Override - MBeanIntrospector getMBeanIntrospector() { - return MXBeanIntrospector.getInstance(); + MBeanIntrospector + getMBeanIntrospector(MXBeanMappingFactory mappingFactory) { + return MXBeanIntrospector.getInstance(mappingFactory); } @Override @@ -76,8 +80,7 @@ public class MXBeanSupport extends MBeanSupport { return mxbeanLookup; } - static Class findMXBeanInterface(Class resourceClass) - throws IllegalArgumentException { + static Class findMXBeanInterface(Class resourceClass) { if (resourceClass == null) throw new IllegalArgumentException("Null resource class"); final Set> intfs = transitiveInterfaces(resourceClass); @@ -104,7 +107,7 @@ public class MXBeanSupport extends MBeanSupport { throw new IllegalArgumentException(msg); } if (candidates.iterator().hasNext()) { - return candidates.iterator().next(); + return Util.cast(candidates.iterator().next()); } else { final String msg = "Class " + resourceClass.getName() + @@ -116,7 +119,7 @@ public class MXBeanSupport extends MBeanSupport { /* Return all interfaces inherited by this class, directly or * indirectly through the parent class and interfaces. */ - private static Set> transitiveInterfaces(Class c) { + private static Set> transitiveInterfaces(Class c) { Set> set = newSet(); transitiveInterfaces(c, set); return set; @@ -127,7 +130,7 @@ public class MXBeanSupport extends MBeanSupport { if (c.isInterface()) intfs.add(c); transitiveInterfaces(c.getSuperclass(), intfs); - for (Class sup : c.getInterfaces()) + for (Class sup : c.getInterfaces()) transitiveInterfaces(sup, intfs); } @@ -157,12 +160,7 @@ public class MXBeanSupport extends MBeanSupport { // eventually we could have some logic to supply a default name synchronized (lock) { - if (this.objectName != null) { - final String msg = - "MXBean already registered with name " + this.objectName; - throw new InstanceAlreadyExistsException(msg); - } - this.mxbeanLookup = MXBeanLookup.lookupFor(server); + this.mxbeanLookup = MXBeanLookup.Plain.lookupFor(server); this.mxbeanLookup.addReference(name, getResource()); this.objectName = name; } @@ -171,12 +169,20 @@ public class MXBeanSupport extends MBeanSupport { @Override public void unregister() { synchronized (lock) { - if (mxbeanLookup.removeReference(objectName, getResource())) - objectName = null; + if (mxbeanLookup != null) { + if (mxbeanLookup.removeReference(objectName, getResource())) + objectName = null; + } + // XXX: need to revisit the whole register/unregister logic in + // the face of wrapping. The mxbeanLookup!=null test is a hack. + // If you wrap an MXBean in a MyWrapperMBean and register it, + // the lookup table should contain the wrapped object. But that + // implies that MyWrapperMBean calls register, which today it + // can't within the public API. } } + private final Object lock = new Object(); // for mxbeanLookup and objectName - private Object lock = new Object(); // for mxbeanLookup and objectName - private MXBeanLookup mxbeanLookup; + private MXBeanLookup.Plain mxbeanLookup; private ObjectName objectName; } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java index f1e3a13c891..c412207dcfd 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/NotificationMBeanSupport.java @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.List; import javax.management.NotCompliantMBeanException; import javax.management.Notification; +import javax.management.openmbean.MXBeanMappingFactory; /** *

A variant of {@code StandardMBeanSupport} where the only @@ -48,7 +49,7 @@ public class NotificationMBeanSupport extends StandardMBeanSupport { } @Override - MBeanIntrospector getMBeanIntrospector() { + MBeanIntrospector getMBeanIntrospector(MXBeanMappingFactory ignored) { return introspector; } diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/PerInterface.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/PerInterface.java index d20fe5f5239..ef34a8f2991 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/PerInterface.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/PerInterface.java @@ -231,7 +231,7 @@ final class PerInterface { /** * Visitor that sets up the method maps (operations, getters, setters). */ - private class InitMaps implements MBeanAnalyzer.MBeanVisitor { + private class InitMaps implements MBeanAnalyzer.MBeanVisitor { public void visitAttribute(String attributeName, M getter, M setter) { diff --git a/jdk/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanSupport.java b/jdk/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanSupport.java index fd99162f384..131c5341b16 100644 --- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanSupport.java +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/StandardMBeanSupport.java @@ -25,14 +25,13 @@ package com.sun.jmx.mbeanserver; -import static com.sun.jmx.mbeanserver.Util.*; - import java.lang.reflect.Method; import javax.management.MBeanInfo; import javax.management.MBeanServer; import javax.management.NotCompliantMBeanException; import javax.management.ObjectName; +import javax.management.openmbean.MXBeanMappingFactory; /** * Base class for Standard MBeans. @@ -61,11 +60,11 @@ public class StandardMBeanSupport extends MBeanSupport { */ public StandardMBeanSupport(T resource, Class mbeanInterface) throws NotCompliantMBeanException { - super(resource, mbeanInterface); + super(resource, mbeanInterface, (MXBeanMappingFactory) null); } @Override - MBeanIntrospector getMBeanIntrospector() { + MBeanIntrospector getMBeanIntrospector(MXBeanMappingFactory ignored) { return StandardMBeanIntrospector.getInstance(); } diff --git a/jdk/src/share/classes/javax/management/JMX.java b/jdk/src/share/classes/javax/management/JMX.java index d2bc522afa1..91e9f455f60 100644 --- a/jdk/src/share/classes/javax/management/JMX.java +++ b/jdk/src/share/classes/javax/management/JMX.java @@ -26,8 +26,17 @@ package javax.management; import com.sun.jmx.mbeanserver.Introspector; +import com.sun.jmx.remote.util.ClassLogger; +import java.beans.BeanInfo; +import java.beans.PropertyDescriptor; +import java.io.Serializable; import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.lang.reflect.Proxy; +import java.util.Map; +import java.util.TreeMap; +import javax.management.openmbean.MXBeanMappingFactory; /** * Static methods from the JMX API. There are no instances of this class. @@ -39,6 +48,8 @@ public class JMX { * this class. */ static final JMX proof = new JMX(); + private static final ClassLogger logger = + new ClassLogger("javax.management.misc", "JMX"); private JMX() {} @@ -84,6 +95,14 @@ public class JMX { */ public static final String MXBEAN_FIELD = "mxbean"; + /** + * The name of the + * {@code + * mxbeanMappingFactoryClass} field. + */ + public static final String MXBEAN_MAPPING_FACTORY_CLASS_FIELD = + "mxbeanMappingFactoryClass"; + /** * The name of the {@code * openType} field. @@ -96,6 +115,264 @@ public class JMX { */ public static final String ORIGINAL_TYPE_FIELD = "originalType"; + /** + *

Options to apply to an MBean proxy or to an instance of {@link + * StandardMBean}.

+ * + *

For example, to specify a custom {@link MXBeanMappingFactory} + * for a {@code StandardMBean}, you might write this:

+ * + *
+     * MXBeanMappingFactory factory = new MyMXBeanMappingFactory();
+     * JMX.MBeanOptions opts = new JMX.MBeanOptions();
+     * opts.setMXBeanMappingFactory(factory);
+     * StandardMBean mbean = new StandardMBean(impl, intf, opts);
+     * 
+ * + * @see javax.management.JMX.ProxyOptions + */ + public static class MBeanOptions implements Serializable, Cloneable { + private static final long serialVersionUID = -6380842449318177843L; + + static final MBeanOptions MXBEAN = new MBeanOptions(); + static { + MXBEAN.setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); + } + + private MXBeanMappingFactory mappingFactory; + + /** + *

Construct an {@code MBeanOptions} object where all options have + * their default values.

+ */ + public MBeanOptions() {} + + @Override + public MBeanOptions clone() { + try { + return (MBeanOptions) super.clone(); + } catch (CloneNotSupportedException e) { + throw new AssertionError(e); + } + } + + /** + *

True if this is an MXBean proxy or a StandardMBean instance + * that is an MXBean. The default value is false.

+ * + *

This method is equivalent to {@link #getMXBeanMappingFactory() + * this.getMXBeanMappingFactory()}{@code != null}.

+ * + * @return true if this is an MXBean proxy or a StandardMBean instance + * that is an MXBean. + */ + public boolean isMXBean() { + return (this.mappingFactory != null); + } + + /** + *

The mappings between Java types and Open Types to be used in + * an MXBean proxy or a StandardMBean instance that is an MXBean, + * or null if this instance is not for an MXBean. + * The default value is null.

+ * + * @return the mappings to be used in this proxy or StandardMBean, + * or null if this instance is not for an MXBean. + */ + public MXBeanMappingFactory getMXBeanMappingFactory() { + return mappingFactory; + } + + /** + *

Set the {@link #getMXBeanMappingFactory() MXBeanMappingFactory} to + * the given value. The value should be null if this instance is not + * for an MXBean. If this instance is for an MXBean, the value should + * usually be either a custom mapping factory, or + * {@link MXBeanMappingFactory#forInterface + * MXBeanMappingFactory.forInterface}{@code (mxbeanInterface)} + * which signifies + * that the {@linkplain MXBeanMappingFactory#DEFAULT default} mapping + * factory should be used unless an {@code @}{@link + * javax.management.openmbean.MXBeanMappingFactoryClass + * MXBeanMappingFactoryClass} annotation on {@code mxbeanInterface} + * specifies otherwise.

+ * + *

Examples:

+ *
+         * MBeanOptions opts = new MBeanOptions();
+         * opts.setMXBeanMappingFactory(myMappingFactory);
+         * MyMXBean proxy = JMX.newMBeanProxy(
+         *         mbeanServerConnection, objectName, MyMXBean.class, opts);
+         *
+         * // ...or...
+         *
+         * MBeanOptions opts = new MBeanOptions();
+         * MXBeanMappingFactory defaultFactoryForMyMXBean =
+         *         MXBeanMappingFactory.forInterface(MyMXBean.class);
+         * opts.setMXBeanMappingFactory(defaultFactoryForMyMXBean);
+         * MyMXBean proxy = JMX.newMBeanProxy(
+         *         mbeanServerConnection, objectName, MyMXBean.class, opts);
+         * 
+ * + * @param f the new value. If null, this instance is not for an + * MXBean. + */ + public void setMXBeanMappingFactory(MXBeanMappingFactory f) { + this.mappingFactory = f; + } + + /* To maximise object sharing, classes in this package can replace + * a private MBeanOptions with no MXBeanMappingFactory with one + * of these shared instances. But they must be EXTREMELY careful + * never to give out the shared instances to user code, which could + * modify them. + */ + private static final MBeanOptions[] CANONICALS = { + new MBeanOptions(), MXBEAN, + }; + // Overridden in local subclasses: + MBeanOptions[] canonicals() { + return CANONICALS; + } + + // This is only used by the logic for canonical instances. + // Overridden in local subclasses: + boolean same(MBeanOptions opt) { + return (opt.mappingFactory == mappingFactory); + } + + final MBeanOptions canonical() { + for (MBeanOptions opt : canonicals()) { + if (opt.getClass() == this.getClass() && same(opt)) + return opt; + } + return this; + } + + final MBeanOptions uncanonical() { + for (MBeanOptions opt : canonicals()) { + if (this == opt) + return clone(); + } + return this; + } + + private Map toMap() { + Map map = new TreeMap(); + try { + BeanInfo bi = java.beans.Introspector.getBeanInfo(getClass()); + PropertyDescriptor[] pds = bi.getPropertyDescriptors(); + for (PropertyDescriptor pd : pds) { + String name = pd.getName(); + if (name.equals("class")) + continue; + Method get = pd.getReadMethod(); + if (get != null) + map.put(name, get.invoke(this)); + } + } catch (Exception e) { + Throwable t = e; + if (t instanceof InvocationTargetException) + t = t.getCause(); + map.put("Exception", t); + } + return map; + } + + @Override + public String toString() { + return getClass().getSimpleName() + toMap(); + // For example "MBeanOptions{MXBean=true, }". + } + + /** + *

Indicates whether some other object is "equal to" this one. The + * result is true if and only if the other object is also an instance + * of MBeanOptions or a subclass, and has the same properties with + * the same values.

+ * @return {@inheritDoc} + */ + @Override + public boolean equals(Object obj) { + if (obj == this) + return true; + if (obj == null || obj.getClass() != this.getClass()) + return false; + return toMap().equals(((MBeanOptions) obj).toMap()); + } + + @Override + public int hashCode() { + return toMap().hashCode(); + } + } + + /** + *

Options to apply to an MBean proxy.

+ * + * @see #newMBeanProxy + */ + public static class ProxyOptions extends MBeanOptions { + private static final long serialVersionUID = 7238804866098386559L; + + private boolean notificationEmitter; + + /** + *

Construct a {@code ProxyOptions} object where all options have + * their default values.

+ */ + public ProxyOptions() {} + + @Override + public ProxyOptions clone() { + return (ProxyOptions) super.clone(); + } + + /** + *

Defines whether the returned proxy should + * implement {@link NotificationEmitter}. The default value is false.

+ * + * @return true if this proxy will be a NotificationEmitter. + * + * @see JMX#newMBeanProxy(MBeanServerConnection, ObjectName, Class, + * MBeanOptions) + */ + public boolean isNotificationEmitter() { + return this.notificationEmitter; + } + + /** + *

Set the {@link #isNotificationEmitter NotificationEmitter} option to + * the given value.

+ * @param emitter the new value. + */ + public void setNotificationEmitter(boolean emitter) { + this.notificationEmitter = emitter; + } + + // Canonical objects for each of (MXBean,!MXBean) x (Emitter,!Emitter) + private static final ProxyOptions[] CANONICALS = { + new ProxyOptions(), new ProxyOptions(), + new ProxyOptions(), new ProxyOptions(), + }; + static { + CANONICALS[1].setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); + CANONICALS[2].setNotificationEmitter(true); + CANONICALS[3].setMXBeanMappingFactory(MXBeanMappingFactory.DEFAULT); + CANONICALS[3].setNotificationEmitter(true); + } + @Override + MBeanOptions[] canonicals() { + return CANONICALS; + } + + @Override + boolean same(MBeanOptions opt) { + return (super.same(opt) && opt instanceof ProxyOptions && + ((ProxyOptions) opt).notificationEmitter == notificationEmitter); + } + } + /** *

Make a proxy for a Standard MBean in a local or remote * MBean Server.

@@ -172,7 +449,7 @@ public class JMX { * *

This method behaves the same as {@link * #newMBeanProxy(MBeanServerConnection, ObjectName, Class)}, but - * additionally, if {@code notificationBroadcaster} is {@code + * additionally, if {@code notificationEmitter} is {@code * true}, then the MBean is assumed to be a {@link * NotificationBroadcaster} or {@link NotificationEmitter} and the * returned proxy will implement {@link NotificationEmitter} as @@ -189,25 +466,21 @@ public class JMX { * {@code connection} to forward to. * @param interfaceClass the management interface that the MBean * exports, which will also be implemented by the returned proxy. - * @param notificationBroadcaster make the returned proxy + * @param notificationEmitter make the returned proxy * implement {@link NotificationEmitter} by forwarding its methods * via {@code connection}. - * * @param allows the compiler to know that if the {@code * interfaceClass} parameter is {@code MyMBean.class}, for * example, then the return type is {@code MyMBean}. - * * @return the new proxy instance. */ public static T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class interfaceClass, - boolean notificationBroadcaster) { - return MBeanServerInvocationHandler.newProxyInstance( - connection, - objectName, - interfaceClass, - notificationBroadcaster); + boolean notificationEmitter) { + ProxyOptions opts = new ProxyOptions(); + opts.setNotificationEmitter(notificationEmitter); + return newMBeanProxy(connection, objectName, interfaceClass, opts); } /** @@ -314,7 +587,7 @@ public class JMX { * *

This method behaves the same as {@link * #newMXBeanProxy(MBeanServerConnection, ObjectName, Class)}, but - * additionally, if {@code notificationBroadcaster} is {@code + * additionally, if {@code notificationEmitter} is {@code * true}, then the MXBean is assumed to be a {@link * NotificationBroadcaster} or {@link NotificationEmitter} and the * returned proxy will implement {@link NotificationEmitter} as @@ -331,31 +604,105 @@ public class JMX { * {@code connection} to forward to. * @param interfaceClass the MXBean interface, * which will also be implemented by the returned proxy. - * @param notificationBroadcaster make the returned proxy + * @param notificationEmitter make the returned proxy * implement {@link NotificationEmitter} by forwarding its methods * via {@code connection}. - * * @param allows the compiler to know that if the {@code * interfaceClass} parameter is {@code MyMXBean.class}, for * example, then the return type is {@code MyMXBean}. - * * @return the new proxy instance. */ public static T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class interfaceClass, - boolean notificationBroadcaster) { - // Check interface for MXBean compliance - // + boolean notificationEmitter) { + ProxyOptions opts = new ProxyOptions(); + MXBeanMappingFactory f = MXBeanMappingFactory.forInterface(interfaceClass); + opts.setMXBeanMappingFactory(f); + opts.setNotificationEmitter(notificationEmitter); + return newMBeanProxy(connection, objectName, interfaceClass, opts); + } + + /** + *

Make a proxy for a Standard MBean or MXBean in a local or remote MBean + * Server that may also support the methods of {@link + * NotificationEmitter} and (for an MXBean) that may define custom MXBean + * type mappings.

+ * + *

This method behaves the same as + * {@link #newMBeanProxy(MBeanServerConnection, ObjectName, Class)} or + * {@link #newMXBeanProxy(MBeanServerConnection, ObjectName, Class)}, + * according as {@code opts.isMXBean()} is respectively false or true; but + * with the following changes based on {@code opts}.

+ * + *
    + *
  • If {@code opts.isNotificationEmitter()} is {@code + * true}, then the MBean is assumed to be a {@link + * NotificationBroadcaster} or {@link NotificationEmitter} and the + * returned proxy will implement {@link NotificationEmitter} as + * well as {@code interfaceClass}. A call to {@link + * NotificationBroadcaster#addNotificationListener} on the proxy + * will result in a call to {@link + * MBeanServerConnection#addNotificationListener(ObjectName, + * NotificationListener, NotificationFilter, Object)}, and + * likewise for the other methods of {@link + * NotificationBroadcaster} and {@link NotificationEmitter}.
  • + * + *
  • If {@code opts.getMXBeanMappingFactory()} is not null, + * then the mappings it defines will be applied to convert between + * arbitrary Java types and Open Types.
  • + *
+ * + * @param connection the MBean server to forward to. + * @param objectName the name of the MBean within + * {@code connection} to forward to. + * @param interfaceClass the Standard MBean or MXBean interface, + * which will also be implemented by the returned proxy. + * @param opts the options to apply for this proxy. Can be null, + * in which case default options are applied. + * @param allows the compiler to know that if the {@code + * interfaceClass} parameter is {@code MyMXBean.class}, for + * example, then the return type is {@code MyMXBean}. + * @return the new proxy instance. + * + * @throws IllegalArgumentException if {@code interfaceClass} is not a + * valid MXBean interface. + */ + public static T newMBeanProxy(MBeanServerConnection connection, + ObjectName objectName, + Class interfaceClass, + MBeanOptions opts) { try { - Introspector.testComplianceMXBeanInterface(interfaceClass); + return newMBeanProxy2(connection, objectName, interfaceClass, opts); } catch (NotCompliantMBeanException e) { throw new IllegalArgumentException(e); } + } + + private static T newMBeanProxy2(MBeanServerConnection connection, + ObjectName objectName, + Class interfaceClass, + MBeanOptions opts) + throws NotCompliantMBeanException { + + if (opts == null) + opts = new MBeanOptions(); + + boolean notificationEmitter = opts instanceof ProxyOptions && + ((ProxyOptions) opts).isNotificationEmitter(); + + MXBeanMappingFactory mappingFactory = opts.getMXBeanMappingFactory(); + + if (mappingFactory != null) { + // Check interface for MXBean compliance + Introspector.testComplianceMXBeanInterface(interfaceClass, + mappingFactory); + } + InvocationHandler handler = new MBeanServerInvocationHandler( - connection, objectName, true); + connection, objectName, opts); final Class[] interfaces; - if (notificationBroadcaster) { + if (notificationEmitter) { interfaces = new Class[] {interfaceClass, NotificationEmitter.class}; } else diff --git a/jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java b/jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java index fb5d4bd25e0..d35c4ae6def 100644 --- a/jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java +++ b/jdk/src/share/classes/javax/management/MBeanServerInvocationHandler.java @@ -33,6 +33,9 @@ import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.Arrays; import java.util.WeakHashMap; +import javax.management.openmbean.MXBeanMappingFactory; + +import static javax.management.JMX.MBeanOptions; /** *

{@link InvocationHandler} that forwards methods in an MBean's @@ -111,7 +114,7 @@ public class MBeanServerInvocationHandler implements InvocationHandler { public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName) { - this(connection, objectName, false); + this(connection, objectName, null); } /** @@ -138,6 +141,14 @@ public class MBeanServerInvocationHandler implements InvocationHandler { public MBeanServerInvocationHandler(MBeanServerConnection connection, ObjectName objectName, boolean isMXBean) { + this(connection, objectName, isMXBean ? MBeanOptions.MXBEAN : null); + } + + public MBeanServerInvocationHandler(MBeanServerConnection connection, + ObjectName objectName, + MBeanOptions options) { + if (options == null) + options = new MBeanOptions(); if (connection == null) { throw new IllegalArgumentException("Null connection"); } @@ -146,7 +157,7 @@ public class MBeanServerInvocationHandler implements InvocationHandler { } this.connection = connection; this.objectName = objectName; - this.isMXBean = isMXBean; + this.options = options.canonical(); } /** @@ -182,7 +193,16 @@ public class MBeanServerInvocationHandler implements InvocationHandler { * @since 1.6 */ public boolean isMXBean() { - return isMXBean; + return options.isMXBean(); + } + + /** + *

Return the {@link MBeanOptions} used for this proxy.

+ * + * @return the MBeanOptions. + */ + public MBeanOptions getMBeanOptions() { + return options.uncanonical(); } /** @@ -260,7 +280,7 @@ public class MBeanServerInvocationHandler implements InvocationHandler { return doLocally(proxy, method, args); try { - if (isMXBean) { + if (isMXBean()) { MXBeanProxy p = findMXBeanProxy(methodClass); return p.invoke(connection, objectName, method, args); } else { @@ -326,21 +346,34 @@ public class MBeanServerInvocationHandler implements InvocationHandler { */ } - private static MXBeanProxy findMXBeanProxy(Class mxbeanInterface) { + private MXBeanProxy findMXBeanProxy(Class mxbeanInterface) { + MXBeanMappingFactory mappingFactory = options.getMXBeanMappingFactory(); synchronized (mxbeanProxies) { - WeakReference proxyRef = - mxbeanProxies.get(mxbeanInterface); - MXBeanProxy p = (proxyRef == null) ? null : proxyRef.get(); - if (p == null) { - p = new MXBeanProxy(mxbeanInterface); - mxbeanProxies.put(mxbeanInterface, - new WeakReference(p)); + ClassToProxy classToProxy = mxbeanProxies.get(mappingFactory); + if (classToProxy == null) { + classToProxy = new ClassToProxy(); + mxbeanProxies.put(mappingFactory, classToProxy); } + WeakReference wr = classToProxy.get(mxbeanInterface); + MXBeanProxy p; + if (wr != null) { + p = wr.get(); + if (p != null) + return p; + } + p = new MXBeanProxy(mxbeanInterface, mappingFactory); + classToProxy.put(mxbeanInterface, new WeakReference(p)); return p; } } - private static final WeakHashMap, WeakReference> - mxbeanProxies = new WeakHashMap, WeakReference>(); + private static final WeakHashMap + mxbeanProxies = newWeakHashMap(); + private static class ClassToProxy + extends WeakHashMap, WeakReference> {} + + private static WeakHashMap newWeakHashMap() { + return new WeakHashMap(); + } private Object invokeBroadcasterMethod(Object proxy, Method method, Object[] args) throws Exception { @@ -453,7 +486,7 @@ public class MBeanServerInvocationHandler implements InvocationHandler { objectName.equals(handler.objectName) && proxy.getClass().equals(args[0].getClass()); } else if (methodName.equals("toString")) { - return (isMXBean ? "MX" : "M") + "BeanProxy(" + + return (isMXBean() ? "MX" : "M") + "BeanProxy(" + connection + "[" + objectName + "])"; } else if (methodName.equals("hashCode")) { return objectName.hashCode()+connection.hashCode(); @@ -484,5 +517,5 @@ public class MBeanServerInvocationHandler implements InvocationHandler { private final MBeanServerConnection connection; private final ObjectName objectName; - private final boolean isMXBean; + private final MBeanOptions options; } diff --git a/jdk/src/share/classes/javax/management/MXBean.java b/jdk/src/share/classes/javax/management/MXBean.java index 166ea57a3d4..d707bd33058 100644 --- a/jdk/src/share/classes/javax/management/MXBean.java +++ b/jdk/src/share/classes/javax/management/MXBean.java @@ -44,6 +44,10 @@ import javax.management.openmbean.CompositeDataInvocationHandler; import javax.management.openmbean.CompositeDataSupport; import javax.management.openmbean.CompositeDataView; import javax.management.openmbean.CompositeType; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingClass; +import javax.management.openmbean.MXBeanMappingFactory; +import javax.management.openmbean.MXBeanMappingFactoryClass; import javax.management.openmbean.OpenDataException; import javax.management.openmbean.OpenMBeanInfo; import javax.management.openmbean.OpenType; @@ -78,7 +82,7 @@ import javax.management.openmbean.TabularType; public interface MisleadingMXBean {} -

MXBean specification

+

MXBean specification

The MXBean concept provides a simple way to code an MBean that only references a predefined set of types, the ones defined @@ -314,7 +318,7 @@ public class MemoryPool -

Definition of an MXBean

+

Definition of an MXBean

An MXBean is a kind of MBean. An MXBean object can be registered directly in the MBean Server, or it can be used as an @@ -367,7 +371,7 @@ public class MemoryPool above rules will produce an exception.

-

Naming conventions

+

Naming conventions

The same naming conventions are applied to the methods in an MXBean as in a Standard MBean:

@@ -413,7 +417,7 @@ public class MemoryPool read-only or write-only respectively.

-

Type mapping rules

+

Type mapping rules

An MXBean is a kind of Open MBean, as defined by the {@link javax.management.openmbean} package. This means that the types of @@ -475,7 +479,11 @@ public class MemoryPool from type opendata(J) to type J, a null value is mapped to a null value.

-

The following table summarizes the type mapping rules.

+

In addition to the default type mapping rules, you can specify + custom type mappings, as described below.

+ +

The following table summarizes the default type mapping rules.

@@ -658,7 +666,7 @@ TabularType tabularType = TabularData} that serializes as {@code TabularDataSupport}.

-

Mappings for MXBean interfaces

+

Mappings for MXBean interfaces

An MXBean interface, or a type referenced within an MXBean interface, can reference another MXBean interface, J. @@ -747,7 +755,7 @@ public interface ModuleMXBean { general, notably because it does not work well for MBeans that are {@link NotificationBroadcaster}s.

-

Mappings for other types

+

Mappings for other types

Given a Java class or interface J that does not match the other rules in the table above, the MXBean framework will attempt to map @@ -1035,6 +1043,76 @@ public interface Node { } +

Alternatively, you can define a custom mapping for your recursive + type; see the next section.

+ +

Custom MXBean type mappings

+ +

You can augment or replace the default type mappings described + above with custom mappings. An example appears in the + documentation for {@link MXBeanMapping}.

+ +

If an MXBean uses custom mappings, then an MXBean proxy for + that MXBean must use the same mappings for correct behavior. + This requires more careful synchronization between client and + server than is necessary with the default mappings. For example + it typically requires the client to have the same implementation + of any {@link MXBeanMapping} subclasses as the server. For this + reason, custom mappings should be avoided if possible.

+ +

Every MXBean has an associated {@link MXBeanMappingFactory}. + Call this f. Then every type that appears + in that MXBean has an associated {@link MXBeanMapping} + determined by f. If the type is + J, say, then the mapping is {@link + MXBeanMappingFactory#mappingForType + f.mappingForType}(J, + f).

+ +

The {@code MXBeanMappingFactory} f for an + MXBean is determined as follows.

+ +
    +
  • If an {@link JMX.MBeanOptions} argument is supplied to + the {@link StandardMBean} constructor that makes an MXBean, + or to the {@link JMX#newMXBeanProxy JMX.newMXBeanProxy} + method, and the {@code MBeanOptions} object defines a non-null + {@code MXBeanMappingFactory}, then that is the value of + f.

  • + +
  • Otherwise, if the MXBean interface has an {@link + MXBeanMappingFactoryClass} annotation, then that annotation + must identify a subclass of {@code MXBeanMappingFactory} + with a no-argument constructor. Then + f is the result of calling this + constructor. If the class does not have a no-argument + constructor, or if calling the constructor produces an + exception, then the MXBean is invalid and an attempt to + register it in the MBean Server will produce a {@link + NotCompliantMBeanException}.

    + +

    This annotation is not inherited from any parent + interfaces. If an MXBean interface has this annotation, + then usually any MXBean subinterfaces must repeat the same + annotation for correct behavior.

  • + +
  • Otherwise, if the package in which the MXBean interface + appears has an {@code MXBeanMappingFactoryClass} annotation, + then f is determined as if that + annotation appeared on the MXBean interface.

  • + +
  • Otherwise, f is the default mapping + factory, {@link MXBeanMappingFactory#DEFAULT}.

  • +
+ +

The default mapping factory recognizes the {@link + MXBeanMappingClass} annotation on a class or interface. If + J is a class or interface that has such an + annotation, then the {@code MXBeanMapping} for + J produced by the default mapping factory + will be determined by the value of the annotation as described + in its {@linkplain MXBeanMappingClass documentation}.

+

MBeanInfo contents for an MXBean

An MXBean is a type of Open MBean. However, for compatibility @@ -1091,7 +1169,7 @@ public interface Node { {@code mxbean} whose value is the string "{@code true}".

-

Type Names

+

Type Names

Sometimes the unmapped type T of a method parameter or return value in an MXBean must be represented as a string. If @@ -1163,6 +1241,8 @@ public interface Node { appropriate), or C is true of e.{@link Throwable#getCause() getCause()}".

+ @see MXBeanMapping + @since 1.6 */ diff --git a/jdk/src/share/classes/javax/management/StandardMBean.java b/jdk/src/share/classes/javax/management/StandardMBean.java index fa722cb8d34..828a2a87bb1 100644 --- a/jdk/src/share/classes/javax/management/StandardMBean.java +++ b/jdk/src/share/classes/javax/management/StandardMBean.java @@ -25,22 +25,19 @@ package javax.management; -import static com.sun.jmx.defaults.JmxProperties.MISC_LOGGER; import com.sun.jmx.mbeanserver.DescriptorCache; import com.sun.jmx.mbeanserver.Introspector; import com.sun.jmx.mbeanserver.MBeanSupport; import com.sun.jmx.mbeanserver.MXBeanSupport; import com.sun.jmx.mbeanserver.StandardMBeanSupport; import com.sun.jmx.mbeanserver.Util; - -import java.io.PrintWriter; -import java.io.StringWriter; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.HashMap; import java.util.Map; import java.util.WeakHashMap; import java.util.logging.Level; +import javax.management.openmbean.MXBeanMappingFactory; import javax.management.openmbean.OpenMBeanAttributeInfo; import javax.management.openmbean.OpenMBeanAttributeInfoSupport; import javax.management.openmbean.OpenMBeanConstructorInfo; @@ -50,6 +47,9 @@ import javax.management.openmbean.OpenMBeanOperationInfoSupport; import javax.management.openmbean.OpenMBeanParameterInfo; import javax.management.openmbean.OpenMBeanParameterInfoSupport; +import static com.sun.jmx.defaults.JmxProperties.MISC_LOGGER; +import static javax.management.JMX.MBeanOptions; + /** *

An MBean whose management interface is determined by reflection * on a Java interface.

@@ -140,6 +140,11 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { **/ private volatile MBeanInfo cachedMBeanInfo; + /** + * The MBeanOptions for this StandardMBean. + **/ + private MBeanOptions options; + /** * Make a DynamicMBean out of implementation, using the * specified mbeanInterface class. @@ -155,12 +160,14 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { * implementation is allowed. If null implementation is allowed, * and a null implementation is passed, then the implementation * is assumed to be this. + * @param options MBeanOptions to apply to this instance. * @exception IllegalArgumentException if the given * implementation is null, and null is not allowed. **/ + @SuppressWarnings("unchecked") // cast to T private void construct(T implementation, Class mbeanInterface, boolean nullImplementationAllowed, - boolean isMXBean) + MBeanOptions options) throws NotCompliantMBeanException { if (implementation == null) { // Have to use (T)this rather than mbeanInterface.cast(this) @@ -169,20 +176,23 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { implementation = Util.cast(this); else throw new IllegalArgumentException("implementation is null"); } - if (isMXBean) { - if (mbeanInterface == null) { - mbeanInterface = Util.cast(Introspector.getMXBeanInterface( - implementation.getClass())); - } - this.mbean = new MXBeanSupport(implementation, mbeanInterface); + if (options == null) + options = new MBeanOptions(); + MXBeanMappingFactory mappingFactory = options.getMXBeanMappingFactory(); + boolean mx = (mappingFactory != null); + if (mbeanInterface == null) { + mbeanInterface = Util.cast(Introspector.getStandardOrMXBeanInterface( + implementation.getClass(), mx)); + } + if (mx) { + this.mbean = + new MXBeanSupport(implementation, mbeanInterface, + mappingFactory); } else { - if (mbeanInterface == null) { - mbeanInterface = Util.cast(Introspector.getStandardMBeanInterface( - implementation.getClass())); - } this.mbean = new StandardMBeanSupport(implementation, mbeanInterface); } + this.options = options.canonical(); } /** @@ -211,14 +221,14 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { **/ public StandardMBean(T implementation, Class mbeanInterface) throws NotCompliantMBeanException { - construct(implementation, mbeanInterface, false, false); + construct(implementation, mbeanInterface, false, null); } /** *

Make a DynamicMBean out of this, using the specified * mbeanInterface class.

* - *

Call {@link #StandardMBean(java.lang.Object, java.lang.Class) + *

Calls {@link #StandardMBean(java.lang.Object, java.lang.Class) * this(this,mbeanInterface)}. * This constructor is reserved to subclasses.

* @@ -231,13 +241,14 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { **/ protected StandardMBean(Class mbeanInterface) throws NotCompliantMBeanException { - construct(null, mbeanInterface, true, false); + construct(null, mbeanInterface, true, null); } /** *

Make a DynamicMBean out of the object * implementation, using the specified - * mbeanInterface class. This constructor can be used + * mbeanInterface class, and choosing whether the + * resultant MBean is an MXBean. This constructor can be used * to make either Standard MBeans or MXBeans. Unlike the * constructor {@link #StandardMBean(Object, Class)}, it * does not throw NotCompliantMBeanException.

@@ -267,7 +278,17 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { public StandardMBean(T implementation, Class mbeanInterface, boolean isMXBean) { try { - construct(implementation, mbeanInterface, false, isMXBean); + MBeanOptions opts = new MBeanOptions(); + if (mbeanInterface == null) { + mbeanInterface = Util.cast(Introspector.getStandardOrMXBeanInterface( + implementation.getClass(), isMXBean)); + } + if (isMXBean) { + MXBeanMappingFactory f = MXBeanMappingFactory.forInterface( + mbeanInterface); + opts.setMXBeanMappingFactory(f); + } + construct(implementation, mbeanInterface, false, opts); } catch (NotCompliantMBeanException e) { throw new IllegalArgumentException(e); } @@ -275,12 +296,13 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { /** *

Make a DynamicMBean out of this, using the specified - * mbeanInterface class. This constructor can be used + * mbeanInterface class, and choosing whether the resulting + * MBean is an MXBean. This constructor can be used * to make either Standard MBeans or MXBeans. Unlike the * constructor {@link #StandardMBean(Object, Class)}, it * does not throw NotCompliantMBeanException.

* - *

Call {@link #StandardMBean(java.lang.Object, java.lang.Class, boolean) + *

Calls {@link #StandardMBean(java.lang.Object, java.lang.Class, boolean) * this(this, mbeanInterface, isMXBean)}. * This constructor is reserved to subclasses.

* @@ -297,7 +319,77 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { **/ protected StandardMBean(Class mbeanInterface, boolean isMXBean) { try { - construct(null, mbeanInterface, true, isMXBean); + MBeanOptions opts = new MBeanOptions(); + if (mbeanInterface == null) { + mbeanInterface = Introspector.getStandardOrMXBeanInterface( + getClass(), isMXBean); + } + if (isMXBean) { + MXBeanMappingFactory f = MXBeanMappingFactory.forInterface( + mbeanInterface); + opts.setMXBeanMappingFactory(f); + } + construct(null, mbeanInterface, true, opts); + } catch (NotCompliantMBeanException e) { + throw new IllegalArgumentException(e); + } + } + + /** + *

Make a DynamicMBean out of the object + * implementation, using the specified + * mbeanInterface class and the specified options.

+ * + * @param implementation The implementation of this MBean. + * @param mbeanInterface The Management Interface exported by this + * MBean's implementation. If null, then this + * object will use standard JMX design pattern to determine + * the management interface associated with the given + * implementation. + * @param options MBeanOptions that control the operation of the resulting + * MBean, as documented in the {@link MBeanOptions} class. + * @param Allows the compiler to check + * that {@code implementation} does indeed implement the class + * described by {@code mbeanInterface}. The compiler can only + * check this if {@code mbeanInterface} is a class literal such + * as {@code MyMBean.class}. + * + * @exception IllegalArgumentException if the given + * implementation is null, or if the mbeanInterface + * does not follow JMX design patterns for Management Interfaces, or + * if the given implementation does not implement the + * specified interface. + **/ + public StandardMBean(T implementation, + Class mbeanInterface, + MBeanOptions options) { + try { + construct(implementation, mbeanInterface, false, options); + } catch (NotCompliantMBeanException e) { + throw new IllegalArgumentException(e); + } + } + + /** + *

Make a DynamicMBean out of this, using the specified + * mbeanInterface class and the specified options.

+ * + *

Calls {@link #StandardMBean(Object, Class, JMX.MBeanOptions) + * this(this,mbeanInterface,options)}. + * This constructor is reserved to subclasses.

+ * + * @param mbeanInterface The Management Interface exported by this + * MBean. + * @param options MBeanOptions that control the operation of the resulting + * MBean, as documented in the {@link MBeanOptions} class. + * + * @exception IllegalArgumentException if the mbeanInterface + * does not follow JMX design patterns for Management Interfaces, or + * if this does not implement the specified interface. + **/ + protected StandardMBean(Class mbeanInterface, MBeanOptions options) { + try { + construct(null, mbeanInterface, true, options); } catch (NotCompliantMBeanException e) { throw new IllegalArgumentException(e); } @@ -326,13 +418,19 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { if (implementation == null) throw new IllegalArgumentException("implementation is null"); + setImplementation2(implementation); + } - if (isMXBean()) { + private void setImplementation2(T implementation) + throws NotCompliantMBeanException { + Class intf = Util.cast(getMBeanInterface()); + + if (this.mbean.isMXBean()) { this.mbean = new MXBeanSupport(implementation, - Util.>cast(getMBeanInterface())); + intf, + options.getMXBeanMappingFactory()); } else { - this.mbean = new StandardMBeanSupport(implementation, - Util.>cast(getMBeanInterface())); + this.mbean = new StandardMBeanSupport(implementation, intf); } } @@ -362,6 +460,19 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { return mbean.getResource().getClass(); } + /** + * Return the MBeanOptions that were specified or implied for this StandardMBean + * instance. If an MBeanOptions object was supplied when this StandardMBean + * instance was constructed, and if that object has not been modified in the + * meantime, then the returned object will be equal to that object, although + * it might not be the same object. + * @return The MBeanOptions that were specified or implied for this StandardMBean + * instance. + */ + public MBeanOptions getOptions() { + return options.uncanonical(); + } + // ------------------------------------------------------------------ // From the DynamicMBean interface. // ------------------------------------------------------------------ @@ -726,7 +837,7 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { * @return the MBeanNotificationInfo[] for the new MBeanInfo. **/ MBeanNotificationInfo[] getNotifications(MBeanInfo info) { - return null; + return info.getNotifications(); } /** @@ -1234,5 +1345,4 @@ public class StandardMBean implements DynamicMBean, MBeanRegistration { return true; } } - } diff --git a/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java b/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java index e0d95dfdccd..c09c39009a3 100644 --- a/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java +++ b/jdk/src/share/classes/javax/management/openmbean/CompositeDataInvocationHandler.java @@ -26,7 +26,7 @@ package javax.management.openmbean; import com.sun.jmx.mbeanserver.MXBeanLookup; -import com.sun.jmx.mbeanserver.OpenConverter; +import com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; @@ -115,7 +115,12 @@ public class CompositeDataInvocationHandler implements InvocationHandler { is null. */ public CompositeDataInvocationHandler(CompositeData compositeData) { - this(compositeData, null); + this(compositeData, MXBeanMappingFactory.DEFAULT); + } + + public CompositeDataInvocationHandler(CompositeData compositeData, + MXBeanMappingFactory mappingFactory) { + this(compositeData, mappingFactory, null); } /** @@ -134,11 +139,13 @@ public class CompositeDataInvocationHandler implements InvocationHandler { is null. */ CompositeDataInvocationHandler(CompositeData compositeData, + MXBeanMappingFactory mappingFactory, MXBeanLookup lookup) { if (compositeData == null) throw new IllegalArgumentException("compositeData"); this.compositeData = compositeData; this.lookup = lookup; + this.mappingFactory = mappingFactory; } /** @@ -176,7 +183,7 @@ public class CompositeDataInvocationHandler implements InvocationHandler { } } - String propertyName = OpenConverter.propertyName(method); + String propertyName = DefaultMXBeanMappingFactory.propertyName(method); if (propertyName == null) { throw new IllegalArgumentException("Method is not getter: " + method.getName()); @@ -185,7 +192,7 @@ public class CompositeDataInvocationHandler implements InvocationHandler { if (compositeData.containsKey(propertyName)) openValue = compositeData.get(propertyName); else { - String decap = OpenConverter.decapitalize(propertyName); + String decap = DefaultMXBeanMappingFactory.decapitalize(propertyName); if (compositeData.containsKey(decap)) openValue = compositeData.get(decap); else { @@ -196,9 +203,10 @@ public class CompositeDataInvocationHandler implements InvocationHandler { throw new IllegalArgumentException(msg); } } - OpenConverter converter = - OpenConverter.toConverter(method.getGenericReturnType()); - return converter.fromOpenValue(lookup, openValue); + MXBeanMapping mapping = + mappingFactory.mappingForType(method.getGenericReturnType(), + MXBeanMappingFactory.DEFAULT); + return mapping.fromOpenValue(openValue); } /* This method is called when equals(Object) is @@ -242,4 +250,5 @@ public class CompositeDataInvocationHandler implements InvocationHandler { private final CompositeData compositeData; private final MXBeanLookup lookup; + private final MXBeanMappingFactory mappingFactory; } diff --git a/jdk/src/share/classes/javax/management/openmbean/CompositeType.java b/jdk/src/share/classes/javax/management/openmbean/CompositeType.java index 25f7b1dbb20..dae46ba29fd 100644 --- a/jdk/src/share/classes/javax/management/openmbean/CompositeType.java +++ b/jdk/src/share/classes/javax/management/openmbean/CompositeType.java @@ -159,8 +159,8 @@ public class CompositeType extends OpenType { } private static void checkForNullElement(Object[] arg, String argName) { - if ( (arg == null) || (arg.length == 0) ) { - throw new IllegalArgumentException("Argument "+ argName +"[] cannot be null or empty."); + if (arg == null) { + throw new IllegalArgumentException("Argument "+ argName +"[] cannot be null."); } for (int i=0; iA custom mapping between Java types and Open types for use in MXBeans. + * To define such a mapping, subclass this class and define at least the + * {@link #fromOpenValue fromOpenValue} and {@link #toOpenValue toOpenValue} + * methods, and optionally the {@link #checkReconstructible} method. + * Then either use an {@link MXBeanMappingClass} annotation on your custom + * Java types, or include this MXBeanMapping in an + * {@link MXBeanMappingFactory}.

+ * + *

For example, suppose we have a class {@code MyLinkedList}, which looks + * like this:

+ * + *
+ * public class MyLinkedList {
+ *     public MyLinkedList(String name, MyLinkedList next) {...}
+ *     public String getName() {...}
+ *     public MyLinkedList getNext() {...}
+ * }
+ * 
+ * + *

This is not a valid type for MXBeans, because it contains a + * self-referential property "next" defined by the {@code getNext()} + * method. MXBeans do not support recursive types. So we would like + * to specify a mapping for {@code MyLinkedList} explicitly. When an + * MXBean interface contains {@code MyLinkedList}, that will be mapped + * into a {@code String[]}, which is a valid Open Type.

+ * + *

To define this mapping, we first subclass {@code MXBeanMapping}:

+ * + *
+ * public class MyLinkedListMapping extends MXBeanMapping {
+ *     public MyLinkedListMapping(Type type) throws OpenDataException {
+ *         super(MyLinkedList.class, ArrayType.getArrayType(SimpleType.STRING));
+ *         if (type != MyLinkedList.class)
+ *             throw new OpenDataException("Mapping only valid for MyLinkedList");
+ *     }
+ *
+ *     {@literal @Override}
+ *     public Object fromOpenValue(Object openValue) throws InvalidObjectException {
+ *         String[] array = (String[]) openValue;
+ *         MyLinkedList list = null;
+ *         for (int i = array.length - 1; i >= 0; i--)
+ *             list = new MyLinkedList(array[i], list);
+ *         return list;
+ *     }
+ *
+ *     {@literal @Override}
+ *     public Object toOpenValue(Object javaValue) throws OpenDataException {
+ *         ArrayList<String> array = new ArrayList<String>();
+ *         for (MyLinkedList list = (MyLinkedList) javaValue; list != null;
+ *              list = list.getNext())
+ *             array.add(list.getName());
+ *         return array.toArray(new String[0]);
+ *     }
+ * }
+ * 
+ * + *

The call to the superclass constructor specifies what the + * original Java type is ({@code MyLinkedList.class}) and what Open + * Type it is mapped to ({@code + * ArrayType.getArrayType(SimpleType.STRING)}). The {@code + * fromOpenValue} method says how we go from the Open Type ({@code + * String[]}) to the Java type ({@code MyLinkedList}), and the {@code + * toOpenValue} method says how we go from the Java type to the Open + * Type.

+ * + *

With this mapping defined, we can annotate the {@code MyLinkedList} + * class appropriately:

+ * + *
+ * {@literal @MXBeanMappingClass}(MyLinkedListMapping.class)
+ * public class MyLinkedList {...}
+ * 
+ * + *

Now we can use {@code MyLinkedList} in an MXBean interface and it + * will work.

+ * + *

If we are unable to modify the {@code MyLinkedList} class, + * we can define an {@link MXBeanMappingFactory}. See the documentation + * of that class for further details.

+ */ +public abstract class MXBeanMapping { + private final Type javaType; + private final OpenType openType; + private final Class openClass; + + /** + *

Construct a mapping between the given Java type and the given + * Open Type.

+ * + * @param javaType the Java type (for example, {@code MyLinkedList}). + * @param openType the Open Type (for example, {@code + * ArrayType.getArrayType(SimpleType.STRING)}) + * + * @throws NullPointerException if either argument is null. + */ + protected MXBeanMapping(Type javaType, OpenType openType) { + if (javaType == null || openType == null) + throw new NullPointerException("Null argument"); + this.javaType = javaType; + this.openType = openType; + this.openClass = makeOpenClass(javaType, openType); + } + + /** + *

The Java type that was supplied to the constructor.

+ * @return the Java type that was supplied to the constructor. + */ + public final Type getJavaType() { + return javaType; + } + + /** + *

The Open Type that was supplied to the constructor.

+ * @return the Open Type that was supplied to the constructor. + */ + public final OpenType getOpenType() { + return openType; + } + + /** + *

The Java class that corresponds to instances of the + * {@linkplain #getOpenType() Open Type} for this mapping.

+ * @return the Java class that corresponds to instances of the + * Open Type for this mapping. + * @see OpenType#getClassName + */ + public final Class getOpenClass() { + return openClass; + } + + private static Class makeOpenClass(Type javaType, OpenType openType) { + if (javaType instanceof Class && ((Class) javaType).isPrimitive()) + return (Class) javaType; + try { + String className = OpenType.validClassName(openType.getClassName()); + return Class.forName(className, false, null); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); // should not happen + } catch (OpenDataException e) { + throw new IllegalArgumentException("Bad OpenType: " + openType, e); + } + } + + /** + *

Convert an instance of the Open Type into the Java type. + * @param openValue the value to be converted. + * @return the converted value. + * @throws InvalidObjectException if the value cannot be converted. + */ + public abstract Object fromOpenValue(Object openValue) + throws InvalidObjectException; + + /** + *

Convert an instance of the Java type into the Open Type. + * @param javaValue the value to be converted. + * @return the converted value. + * @throws OpenDataException if the value cannot be converted. + */ + public abstract Object toOpenValue(Object javaValue) + throws OpenDataException; + + + /** + *

Throw an appropriate InvalidObjectException if we will not + * be able to convert back from the open data to the original Java + * object. The {@link #fromOpenValue fromOpenValue} throws an + * exception if a given open data value cannot be converted. This + * method throws an exception if no open data values can + * be converted. The default implementation of this method never + * throws an exception. Subclasses can override it as + * appropriate.

+ * @throws InvalidObjectException if {@code fromOpenValue} will throw + * an exception no matter what its argument is. + */ + public void checkReconstructible() throws InvalidObjectException {} +} diff --git a/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingClass.java b/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingClass.java new file mode 100644 index 00000000000..3337d77d02b --- /dev/null +++ b/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingClass.java @@ -0,0 +1,61 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package javax.management.openmbean; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import javax.management.NotCompliantMBeanException; + +/** + * Specifies the MXBean mapping to be used for this Java type. + * @see MXBeanMapping + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Documented @Inherited +public @interface MXBeanMappingClass { + /** + *

The {@link MXBeanMapping} class to be used to map the + * annotated type. This class must have a public constructor with + * a single argument of type {@link java.lang.reflect.Type}. The + * constructor will be called with the annotated type as an + * argument. See the {@code MXBeanMapping} documentation + * for an example.

+ * + *

If the {@code MXBeanMapping} cannot in fact handle that + * type, the constructor should throw an {@link + * OpenDataException}. If the constructor throws this or any other + * exception then an MXBean in which the annotated type appears is + * invalid, and registering it in the MBean Server will produce a + * {@link NotCompliantMBeanException}. + */ + public Class value(); +} diff --git a/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactory.java b/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactory.java new file mode 100644 index 00000000000..69dc6b10303 --- /dev/null +++ b/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactory.java @@ -0,0 +1,162 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package javax.management.openmbean; + +import com.sun.jmx.mbeanserver.DefaultMXBeanMappingFactory; +import java.lang.reflect.Type; + +/** + *

Defines how types are mapped for a given MXBean or set of MXBeans. + * An {@code MXBeanMappingFactory} can be specified either through the + * {@link MXBeanMappingFactoryClass} annotation, or through the + * {@link javax.management.JMX.MBeanOptions JMX.MBeanOptions} argument to a + * {@link javax.management.StandardMBean StandardMBean} constructor or MXBean + * proxy.

+ * + *

An {@code MXBeanMappingFactory} must return an {@code MXBeanMapping} + * for any Java type that appears in the MXBeans that the factory is being + * used for. Usually it does that by handling any custom types, and + * forwarding everything else to the {@linkplain #DEFAULT default mapping + * factory}.

+ * + *

Consider the {@code MyLinkedList} example from the {@link MXBeanMapping} + * documentation. If we are unable to change the {@code MyLinkedList} class + * to add an {@link MXBeanMappingClass} annotation, we could achieve the same + * effect by defining {@code MyLinkedListMappingFactory} as follows:

+ * + *
+ * public class MyLinkedListMappingFactory implements MXBeanMappingFactory {
+ *     public MyLinkedListMappingFactory() {}
+ *
+ *     public MXBeanMapping mappingForType(Type t, MXBeanMappingFactory f)
+ *     throws OpenDataException {
+ *         if (t == MyLinkedList.class)
+ *             return new MyLinkedListMapping(t);
+ *         else
+ *             return MXBeanMappingFactory.DEFAULT.mappingForType(t, f);
+ *     }
+ * }
+ * 
+ * + *

The mapping factory handles only the {@code MyLinkedList} class. + * Every other type is forwarded to the default mapping factory. + * This includes types such as {@code MyLinkedList[]} and + * {@code List}; the default mapping factory will recursively + * invoke {@code MyLinkedListMappingFactory} to map the contained + * {@code MyLinkedList} type.

+ * + *

Once we have defined {@code MyLinkedListMappingFactory}, we can use + * it in an MXBean interface like this:

+ * + *
+ * {@literal @MXBeanMappingFactoryClass}(MyLinkedListMappingFactory.class)
+ * public interface SomethingMXBean {
+ *     public MyLinkedList getSomething();
+ * }
+ * 
+ * + *

Alternatively we can annotate the package that {@code SomethingMXBean} + * appears in, or we can supply the factory to a {@link + * javax.management.StandardMBean StandardMBean} constructor or MXBean + * proxy.

+ */ +public abstract class MXBeanMappingFactory { + /** + *

Construct an instance of this class.

+ */ + protected MXBeanMappingFactory() {} + + /** + *

Mapping factory that applies the default rules for MXBean + * mappings, as described in the MXBean specification.

+ */ + public static final MXBeanMappingFactory DEFAULT = + new DefaultMXBeanMappingFactory(); + + /** + *

Determine the appropriate MXBeanMappingFactory to use for the given + * MXBean interface, based on its annotations. If the interface has an + * {@link MXBeanMappingFactoryClass @MXBeanMappingFactoryClass} annotation, + * that is used to determine the MXBeanMappingFactory. Otherwise, if the + * package containing the interface has such an annotation, that is used. + * Otherwise the MXBeanMappingFactory is the {@linkplain #DEFAULT default} + * one.

+ * + * @param intf the MXBean interface for which to determine the + * MXBeanMappingFactory. + * + * @return the MXBeanMappingFactory for the given MXBean interface. + * + * @throws IllegalArgumentException if {@code intf} is null, or if an + * exception occurs while trying constructing an MXBeanMappingFactory + * based on an annotation. In the second case, the exception will appear + * in the {@linkplain Throwable#getCause() cause chain} of the + * {@code IllegalArgumentException}. + */ + public static MXBeanMappingFactory forInterface(Class intf) { + if (intf == null) + throw new IllegalArgumentException("Null interface"); + MXBeanMappingFactoryClass annot = + intf.getAnnotation(MXBeanMappingFactoryClass.class); + if (annot == null) { + Package p = intf.getPackage(); + if (p != null) + annot = p.getAnnotation(MXBeanMappingFactoryClass.class); + } + if (annot == null) + return MXBeanMappingFactory.DEFAULT; + Class factoryClass = annot.value(); + try { + return annot.value().newInstance(); + } catch (Exception e) { + throw new IllegalArgumentException( + "Could not instantiate MXBeanMappingFactory " + + factoryClass.getName() + + " from @MXBeanMappingFactoryClass", e); + } + } + + /** + *

Return the mapping for the given Java type. Typically, a + * mapping factory will return mappings for types it handles, and + * forward other types to another mapping factory, most often + * the {@linkplain #DEFAULT default one}.

+ * @param t the Java type to be mapped. + * @param f the original mapping factory that was consulted to do + * the mapping. A mapping factory should pass this parameter intact + * if it forwards a type to another mapping factory. In the example, + * this is how {@code MyLinkedListMappingFactory} works for types + * like {@code MyLinkedList[]} and {@code List}. + * @return the mapping for the given type. + * @throws OpenDataException if this type cannot be mapped. This + * exception is appropriate if the factory is supposed to handle + * all types of this sort (for example, all linked lists), but + * cannot handle this particular type. + */ + public abstract MXBeanMapping mappingForType(Type t, MXBeanMappingFactory f) + throws OpenDataException; +} diff --git a/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactoryClass.java b/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactoryClass.java new file mode 100644 index 00000000000..b852ee7a0d3 --- /dev/null +++ b/jdk/src/share/classes/javax/management/openmbean/MXBeanMappingFactoryClass.java @@ -0,0 +1,72 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package javax.management.openmbean; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + *

Specifies the MXBean mapping factory to be used for Java types + * in an MXBean interface, or in all MXBean interfaces in a package.

+ * + *

Applying a mapping factory to all Java types in an MXBean interface + * looks like this:

+ * + *
+ * {@literal @MXBeanMappingFactoryClass}(MyLinkedListMappingFactory.class)
+ * public interface SomethingMXBean {
+ *     public MyLinkedList getSomething();
+ * }
+ * 
+ * + *

Applying a mapping factory to all Java types in all MXBean interfaces + * in a package, say {@code com.example.mxbeans}, looks like this. In the + * package source directory, create a file called {@code package-info.java} + * with these contents:

+ * + *
+ * {@literal @MXBeanMappingFactoryClass}(MyLinkedListMappingFactory.class)
+ * package com.example.mxbeans;
+ * 
+ * + * @see MXBeanMappingFactory + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.TYPE, ElementType.PACKAGE}) +@Documented @Inherited +public @interface MXBeanMappingFactoryClass { + /** + *

The {@link MXBeanMappingFactory} class to be used to map + * types in the annotated interface or package. This class must + * have a public constructor with no arguments. See the {@code + * MXBeanMappingFactory} documentation for an example.

+ */ + public Class value(); +} diff --git a/jdk/src/share/classes/javax/management/openmbean/OpenType.java b/jdk/src/share/classes/javax/management/openmbean/OpenType.java index 34d8e925c8c..5de8607a7e0 100644 --- a/jdk/src/share/classes/javax/management/openmbean/OpenType.java +++ b/jdk/src/share/classes/javax/management/openmbean/OpenType.java @@ -219,7 +219,7 @@ public abstract class OpenType implements Serializable { }); } - private static String validClassName(String className) throws OpenDataException { + static String validClassName(String className) throws OpenDataException { className = valid("className", className); // Check if className describes an array class, and determines its elements' class name. diff --git a/jdk/test/javax/management/mxbean/CustomTypeTest.java b/jdk/test/javax/management/mxbean/CustomTypeTest.java new file mode 100644 index 00000000000..ffcb11a3394 --- /dev/null +++ b/jdk/test/javax/management/mxbean/CustomTypeTest.java @@ -0,0 +1,590 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* @test %M% %I% + * @bug 6562936 + * @run compile customtypes/package-info.java + * @run main CustomTypeTest + */ + +import java.io.InvalidObjectException; +import java.lang.management.ManagementFactory; +import java.lang.reflect.Array; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.Iterator; +import java.util.List; +import javax.management.JMX; +import javax.management.MBeanServer; +import javax.management.ObjectName; +import javax.management.StandardMBean; +import javax.management.Descriptor; +import javax.management.MBeanServerInvocationHandler; +import javax.management.NotCompliantMBeanException; +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.CompositeData; +import javax.management.openmbean.CompositeDataSupport; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingClass; +import javax.management.openmbean.MXBeanMappingFactory; +import javax.management.openmbean.MXBeanMappingFactoryClass; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.OpenType; +import javax.management.openmbean.SimpleType; +import javax.management.openmbean.TabularData; + +import static javax.management.JMX.MBeanOptions; + +import customtypes.*; + +public class CustomTypeTest { + @MXBeanMappingClass(LinkedListMapping.class) + public static class LinkedList { + private final String name; + private final LinkedList next; + + public LinkedList(String name, LinkedList next) { + this.name = name; + this.next = next; + } + + public String getName() { + return name; + } + + public LinkedList getNext() { + return next; + } + + public String toString() { + if (next == null) + return "(" + name + ")"; + else + return "(" + name + " " + next + ")"; + } + + public boolean equals(Object x) { + if (!(x instanceof LinkedList)) + return false; + LinkedList other = (LinkedList) x; + return (this.name.equals(other.name) && + (this.next == null ? other.next == null : + this.next.equals(other.next))); + } + } + + public static class LinkedListMapping extends MXBeanMapping { + public LinkedListMapping(Type type) throws OpenDataException { + super(LinkedList.class, ArrayType.getArrayType(SimpleType.STRING)); + if (type != LinkedList.class) { + throw new OpenDataException("Mapping only valid for " + + LinkedList.class); + } + } + + public Object fromOpenValue(Object openValue) throws InvalidObjectException { + String[] array = (String[]) openValue; + LinkedList list = null; + for (int i = array.length - 1; i >= 0; i--) + list = new LinkedList(array[i], list); + return list; + } + + public Object toOpenValue(Object javaValue) throws OpenDataException { + ArrayList array = new ArrayList(); + for (LinkedList list = (LinkedList) javaValue; list != null; + list = list.getNext()) + array.add(list.getName()); + return array.toArray(new String[0]); + } + } + + public static interface LinkedListMXBean { + public LinkedList getLinkedList(); + } + + public static class LinkedListImpl implements LinkedListMXBean { + public LinkedList getLinkedList() { + return new LinkedList("car", new LinkedList("cdr", null)); + } + } + + public static class ObjectMXBeanMapping extends MXBeanMapping { + private static final CompositeType wildcardType; + + static { + try { + wildcardType = + new CompositeType(Object.class.getName(), + "Wildcard type for Object", + new String[0], // itemNames + new String[0], // itemDescriptions + new OpenType[0]); // itemTypes + } catch (OpenDataException e) { + throw new RuntimeException(e); + } + } + + public ObjectMXBeanMapping() { + super(Object.class, wildcardType); + } + + public Object fromOpenValue(Object openValue) throws InvalidObjectException { + if (!(openValue instanceof CompositeData)) { + throw new InvalidObjectException("Not a CompositeData: " + + openValue.getClass()); + } + CompositeData cd = (CompositeData) openValue; + if (!cd.containsKey("value")) { + throw new InvalidObjectException("CompositeData does not " + + "contain a \"value\" item: " + cd); + } + Object x = cd.get("value"); + if (!(x instanceof CompositeData || x instanceof TabularData || + x instanceof Object[])) + return x; + + String typeName = (String) cd.get("type"); + if (typeName == null) { + throw new InvalidObjectException("CompositeData does not " + + "contain a \"type\" item: " + cd); + } + Class c; + try { + c = Class.forName(typeName); + } catch (ClassNotFoundException e) { + InvalidObjectException ioe = + new InvalidObjectException("Could not find type"); + ioe.initCause(e); + throw ioe; + } + MXBeanMapping mapping; + try { + mapping = objectMappingFactory.mappingForType(c, objectMappingFactory); + } catch (OpenDataException e) { + InvalidObjectException ioe = + new InvalidObjectException("Could not map object's " + + "type " + c.getName()); + ioe.initCause(e); + throw ioe; + } + return mapping.fromOpenValue(x); + } + + public Object toOpenValue(Object javaValue) throws OpenDataException { + OpenType openType; + Object openValue; + String typeName; + if (javaValue == null) { + openType = SimpleType.VOID; + openValue = null; + typeName = null; + } else { + Class c = javaValue.getClass(); + if (c.equals(Object.class)) + throw new OpenDataException("Cannot map Object to an open value"); + MXBeanMapping mapping = + objectMappingFactory.mappingForType(c, objectMappingFactory); + openType = mapping.getOpenType(); + openValue = mapping.toOpenValue(javaValue); + typeName = c.getName(); + } + CompositeType ct = new CompositeType( + (javaValue == null) ? "null" : openType.getClassName(), + "Open Mapping for Object", + new String[] {"type", "value"}, + new String[] {"type", "value"}, + new OpenType[] {SimpleType.STRING, openType}); + return new CompositeDataSupport( + ct, + new String[] {"type", "value"}, + new Object[] {typeName, openValue}); + } + } + + public static class ObjectMappingFactory extends MXBeanMappingFactory { + private static MXBeanMapping objectMapping = + new ObjectMXBeanMapping(); + + @Override + public MXBeanMapping mappingForType(Type t, MXBeanMappingFactory f) + throws OpenDataException { + if (t.equals(Object.class)) + return objectMapping; + else + return MXBeanMappingFactory.DEFAULT.mappingForType(t, f); + } + } + + private static MXBeanMappingFactory objectMappingFactory = + new ObjectMappingFactory(); + + public static interface ObjectMXBean { + public Object getObject(); + public Object[] getObjects(); + public List getObjectList(); + public Object[][] getMoreObjects(); + } + + public static class ObjectImpl implements ObjectMXBean { + public Object getObject() { + return 123; + } + + private static Object[] objects = { + "foo", 3, 3.14f, 3.14, 3L, new Date(), ObjectName.WILDCARD, + new byte[3], new char[3], new int[3][3], + new LinkedListImpl().getLinkedList(), + }; + + public Object[] getObjects() { + return objects; + } + + public List getObjectList() { + return Arrays.asList(getObjects()); + } + + public Object[][] getMoreObjects() { + return new Object[][] {{getObjects()}}; + } + } + + @MXBeanMappingFactoryClass(ObjectMappingFactory.class) + public static interface AnnotatedObjectMXBean extends ObjectMXBean {} + + public static class AnnotatedObjectImpl extends ObjectImpl + implements AnnotatedObjectMXBean {} + + public static class BrokenMappingFactory extends MXBeanMappingFactory { + public MXBeanMapping mappingForType(Type t, MXBeanMappingFactory f) + throws OpenDataException { + throw new OpenDataException(t.toString()); + } + } + + public static class ReallyBrokenMappingFactory extends BrokenMappingFactory { + public ReallyBrokenMappingFactory() { + throw new RuntimeException("Oops"); + } + } + + @MXBeanMappingFactoryClass(BrokenMappingFactory.class) + public static interface BrokenMXBean { + public int getX(); + } + + public static class BrokenImpl implements BrokenMXBean { + public int getX() {return 0;} + } + + @MXBeanMappingFactoryClass(ReallyBrokenMappingFactory.class) + public static interface ReallyBrokenMXBean { + public int getX(); + } + + public static class ReallyBrokenImpl implements ReallyBrokenMXBean { + public int getX() {return 0;} + } + + public static class BrokenMapping extends MXBeanMapping { + public BrokenMapping(Type t) { + super(t, SimpleType.STRING); + throw new RuntimeException("Oops"); + } + + public Object fromOpenValue(Object openValue) throws InvalidObjectException { + throw new AssertionError(); + } + + public Object toOpenValue(Object javaValue) throws OpenDataException { + throw new AssertionError(); + } + } + + @MXBeanMappingClass(BrokenMapping.class) + public static class BrokenType {} + + public static interface BrokenTypeMXBean { + BrokenType getBroken(); + } + + public static class BrokenTypeImpl implements BrokenTypeMXBean { + public BrokenType getBroken() { + throw new AssertionError(); + } + } + + public static void main(String[] args) throws Exception { + MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + + System.out.println("Test @MXBeanMappingClass"); + ObjectName linkedName = new ObjectName("d:type=LinkedList"); + LinkedListMXBean linkedListMXBean = new LinkedListImpl(); + LinkedList list1 = linkedListMXBean.getLinkedList(); + mbs.registerMBean(linkedListMXBean, linkedName); + LinkedListMXBean linkedProxy = + JMX.newMXBeanProxy(mbs, linkedName, LinkedListMXBean.class); + MBeanServerInvocationHandler mbsih = (MBeanServerInvocationHandler) + Proxy.getInvocationHandler(linkedProxy); + if (!mbsih.isMXBean()) + fail("not MXBean proxy"); + LinkedList list2 = linkedProxy.getLinkedList(); + if (list1 == list2) + fail("lists identical!"); + // They should have gone through the mapping and back, + // and the mapping doesn't do anything that would allow it + // to restore the identical object. + if (!list1.equals(list2)) + fail("lists different: " + list1 + " vs " + list2); + System.out.println("...success"); + + System.out.println("Test StandardMBean with MXBeanMappingFactory"); + ObjectMXBean wildcardMBean = new ObjectImpl(); + MBeanOptions options = new MBeanOptions(); + options.setMXBeanMappingFactory(objectMappingFactory); + if (!options.isMXBean()) + fail("Setting MXBeanMappingFactory should imply MXBean"); + StandardMBean wildcardStandardMBean = + new StandardMBean(wildcardMBean, ObjectMXBean.class, options); + testWildcardMBean(mbs, wildcardMBean, wildcardStandardMBean, + options, ObjectMXBean.class); + + System.out.println("Test @MXBeanMappingFactoryClass on interface"); + ObjectMXBean annotatedWildcardMBean = new AnnotatedObjectImpl(); + testWildcardMBean(mbs, annotatedWildcardMBean, annotatedWildcardMBean, + null, AnnotatedObjectMXBean.class); + + System.out.println("Test @MXBeanMappingFactoryClass on package"); + CustomMXBean custom = zeroProxy(CustomMXBean.class); + ObjectName customName = new ObjectName("d:type=Custom"); + mbs.registerMBean(custom, customName); + Object x = mbs.getAttribute(customName, "X"); + if (!(x instanceof String)) + fail("Should be String: " + x + " (a " + x.getClass().getName() + ")"); + CustomMXBean customProxy = + JMX.newMXBeanProxy(mbs, customName, CustomMXBean.class); + x = customProxy.getX(); + if (!(x instanceof Integer) || (Integer) x != 0) + fail("Wrong return from proxy: " + x + " (a " + x.getClass().getName() + ")"); + + System.out.println("Test MXBeanMappingFactory exception"); + try { + mbs.registerMBean(new BrokenImpl(), new ObjectName("d:type=Broken")); + fail("Register did not throw exception"); + } catch (NotCompliantMBeanException e) { + System.out.println("...OK: threw: " + e); + } + + System.out.println("Test MXBeanMappingFactory constructor exception"); + try { + mbs.registerMBean(new ReallyBrokenImpl(), new ObjectName("d:type=Broken")); + fail("Register did not throw exception"); + } catch (IllegalArgumentException e) { + System.out.println("...OK: threw: " + e); + } + + System.out.println("Test MXBeanMappingFactory exception with StandardMBean"); + MXBeanMappingFactory brokenF = new BrokenMappingFactory(); + MBeanOptions brokenO = new MBeanOptions(); + brokenO.setMXBeanMappingFactory(brokenF); + try { + new StandardMBean(wildcardMBean, ObjectMXBean.class, brokenO); + fail("StandardMBean with broken factory did not throw exception"); + } catch (IllegalArgumentException e) { + if (!(e.getCause() instanceof NotCompliantMBeanException)) { + fail("StandardMBean with broken factory threw wrong exception: " + + e.getCause()); + } + } + + System.out.println("Test MXBeanMappingClass exception"); + try { + mbs.registerMBean(new BrokenTypeImpl(), new ObjectName("d:type=Broken")); + fail("Broken MXBeanMappingClass did not throw exception"); + } catch (NotCompliantMBeanException e) { + System.out.println("...OK: threw: " + e); + } + + if (failure == null) + System.out.println("TEST PASSED"); + else + throw new Exception("TEST FAILED: " + failure); + } + + private static void testWildcardMBean(MBeanServer mbs, ObjectMXBean impl, + Object mbean, + MBeanOptions proxyOptions, + Class intf) + throws Exception { + ObjectName wildcardName = new ObjectName("d:type=Object"); + mbs.registerMBean(mbean, wildcardName); + try { + testWildcardMBean2(mbs, impl, wildcardName, proxyOptions, intf); + } finally { + mbs.unregisterMBean(wildcardName); + } + } + + private static void testWildcardMBean2(MBeanServer mbs, ObjectMXBean impl, + ObjectName wildcardName, + MBeanOptions proxyOptions, + Class intf) + throws Exception { + if (proxyOptions == null) { + proxyOptions = new MBeanOptions(); + MXBeanMappingFactory f = MXBeanMappingFactory.forInterface(intf); + proxyOptions.setMXBeanMappingFactory(f); + } + Descriptor d = mbs.getMBeanInfo(wildcardName).getDescriptor(); + String factoryName = (String) + d.getFieldValue(JMX.MXBEAN_MAPPING_FACTORY_CLASS_FIELD); + if (!ObjectMappingFactory.class.getName().equals(factoryName)) { + fail("Descriptor has wrong MXBeanMappingFactory: " + factoryName + + " should be " + ObjectMappingFactory.class.getName()); + } + ObjectMXBean wildcardProxy = + JMX.newMBeanProxy(mbs, wildcardName, intf, proxyOptions); + MBeanServerInvocationHandler mbsih = (MBeanServerInvocationHandler) + Proxy.getInvocationHandler(wildcardProxy); + MBeanOptions opts = mbsih.getMBeanOptions(); + if (!opts.equals(proxyOptions)) { + fail("Proxy options differ from request: " + opts + " vs " + + proxyOptions); + } + Method[] wildcardMethods = ObjectMXBean.class.getMethods(); + for (Method m : wildcardMethods) { + System.out.println("..." + m.getName()); + Object orig = m.invoke(impl); + Object copy = m.invoke(wildcardProxy); + if (!deepEquals(orig, copy)) { + fail("objects differ: " + deepToString(orig) + " vs " + + deepToString(copy)); + } + } + } + + private static T zeroProxy(Class intf) { + return intf.cast(Proxy.newProxyInstance(intf.getClassLoader(), + new Class[] {intf}, + new ZeroInvocationHandler())); + } + + private static class ZeroInvocationHandler implements InvocationHandler { + public Object invoke(Object proxy, Method method, Object[] args) + throws Throwable { + return 0; + } + } + + private static boolean deepEquals(Object x, Object y) { + if (x == y) + return true; + if (x == null || y == null) + return false; + + if (x instanceof Collection) { + if (!(y instanceof Collection)) + return false; + Collection xcoll = (Collection) x; + Collection ycoll = (Collection) y; + if (xcoll.size() != ycoll.size()) + return false; + Iterator xit = xcoll.iterator(); + Iterator yit = ycoll.iterator(); + while (xit.hasNext()) { + if (!deepEquals(xit.next(), yit.next())) + return false; + } + return true; + } + + Class xclass = x.getClass(); + Class yclass = y.getClass(); + if (xclass.isArray()) { + if (!yclass.isArray()) + return false; + if (!xclass.getComponentType().equals(yclass.getComponentType())) + return false; + int len = Array.getLength(x); + if (Array.getLength(y) != len) + return false; + for (int i = 0; i < len; i++) { + if (!deepEquals(Array.get(x, i), Array.get(y, i))) + return false; + } + return true; + } + +// return x.equals(y); + if (x.equals(y)) + return true; + System.out.println("Not equal: <" + x + "> and <" + y + ">"); + return false; + } + + private static String deepToString(Object x) { + if (x == null) + return "null"; + + if (x instanceof Collection) { + Collection xcoll = (Collection) x; + StringBuilder sb = new StringBuilder("["); + for (Object e : xcoll) { + if (sb.length() > 1) + sb.append(", "); + sb.append(deepToString(e)); + } + sb.append("]"); + return sb.toString(); + } + + if (x instanceof Object[]) { + Object[] xarr = (Object[]) x; + return deepToString(Arrays.asList(xarr)); + } + + if (x.getClass().isArray()) { // primitive array + String s = Arrays.deepToString(new Object[] {x}); + return s.substring(1, s.length() - 1); + } + + return x.toString(); + } + + private static void fail(String msg) { + System.out.println("TEST FAILED: " + msg); + if (msg.length() > 100) + msg = msg.substring(0, 100) + "..."; + failure = msg; + } + + private static String failure; +} diff --git a/jdk/test/javax/management/mxbean/customtypes/CustomLongMXBean.java b/jdk/test/javax/management/mxbean/customtypes/CustomLongMXBean.java new file mode 100644 index 00000000000..5605967b761 --- /dev/null +++ b/jdk/test/javax/management/mxbean/customtypes/CustomLongMXBean.java @@ -0,0 +1,31 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +// CustomLongMXBean.java - see CustomTypeTest + +package customtypes; + +import javax.management.openmbean.MXBeanMappingFactoryClass; + +@MXBeanMappingFactoryClass(IntegerIsLongFactory.class) +public interface CustomLongMXBean extends CustomMXBean {} diff --git a/jdk/src/share/classes/javax/management/ToQueryString.java b/jdk/test/javax/management/mxbean/customtypes/CustomMXBean.java similarity index 56% rename from jdk/src/share/classes/javax/management/ToQueryString.java rename to jdk/test/javax/management/mxbean/customtypes/CustomMXBean.java index be73bc5f377..6cc17de9e6c 100644 --- a/jdk/src/share/classes/javax/management/ToQueryString.java +++ b/jdk/test/javax/management/mxbean/customtypes/CustomMXBean.java @@ -1,12 +1,10 @@ /* - * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Sun designates this - * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. + * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or @@ -23,16 +21,10 @@ * have any questions. */ -package javax.management; +// CustomMXBean.java - see CustomTypeTest -/* QueryExp classes can extend this to get non-default treatment for - * Query.toString(q). We're reluctant to change the public toString() - * methods of the classes because people might be parsing them, even - * though that's rather fragile. But Query.toString(q) has no such - * constraint so it can use the new toQueryString() method defined here. - */ -class ToQueryString { - String toQueryString() { - return toString(); - } +package customtypes; + +public interface CustomMXBean { + public Integer getX(); } diff --git a/jdk/test/javax/management/mxbean/customtypes/IntegerIsLongFactory.java b/jdk/test/javax/management/mxbean/customtypes/IntegerIsLongFactory.java new file mode 100644 index 00000000000..d5f3ac5b975 --- /dev/null +++ b/jdk/test/javax/management/mxbean/customtypes/IntegerIsLongFactory.java @@ -0,0 +1,74 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +// IntegerIsLongFactory.java - see CustomTypeTest + +package customtypes; + +import java.io.InvalidObjectException; +import java.lang.reflect.Type; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingFactory; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.SimpleType; + +public class IntegerIsLongFactory implements MXBeanMappingFactory { + public MXBeanMapping forType(Type t, MXBeanMappingFactory f) + throws OpenDataException { + if (t == Integer.class) + return IntegerIsLongMapping; + else + return MXBeanMappingFactory.DEFAULT.forType(t, f); + } + + private static final MXBeanMapping IntegerIsLongMapping = + new IntegerIsLongMapping(); + + private static class IntegerIsLongMapping extends MXBeanMapping { + IntegerIsLongMapping() { + super(Integer.class, SimpleType.STRING); + } + + public Object fromOpenValue(Object openValue) + throws InvalidObjectException { + try { + return (Long) openValue; + } catch (Exception e) { + InvalidObjectException ioe = new InvalidObjectException("oops"); + ioe.initCause(e); + throw ioe; + } + } + + public Object toOpenValue(Object javaValue) throws OpenDataException { + try { + Integer i = (Integer) javaValue; + return new Long((int) i); + } catch (Exception e) { + OpenDataException ode = new OpenDataException("oops"); + ode.initCause(e); + throw ode; + } + } + } +} diff --git a/jdk/test/javax/management/mxbean/customtypes/IntegerIsStringFactory.java b/jdk/test/javax/management/mxbean/customtypes/IntegerIsStringFactory.java new file mode 100644 index 00000000000..6863da68066 --- /dev/null +++ b/jdk/test/javax/management/mxbean/customtypes/IntegerIsStringFactory.java @@ -0,0 +1,76 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +// IntegerIsStringFactory.java - see CustomTypeTest + +package customtypes; + +import java.io.InvalidObjectException; +import java.lang.reflect.Type; +import javax.management.openmbean.MXBeanMapping; +import javax.management.openmbean.MXBeanMappingFactory; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.SimpleType; + +public class IntegerIsStringFactory extends MXBeanMappingFactory { + @Override + public MXBeanMapping mappingForType(Type t, MXBeanMappingFactory f) + throws OpenDataException { + if (t == Integer.class) + return integerIsStringMapping; + else + return MXBeanMappingFactory.DEFAULT.mappingForType(t, f); + } + + private static final MXBeanMapping integerIsStringMapping = + new IntegerIsStringMapping(); + + private static class IntegerIsStringMapping extends MXBeanMapping { + IntegerIsStringMapping() { + super(Integer.class, SimpleType.STRING); + } + + public Object fromOpenValue(Object openValue) + throws InvalidObjectException { + try { + String s = (String) openValue; + return Integer.parseInt(s); + } catch (Exception e) { + InvalidObjectException ioe = new InvalidObjectException("oops"); + ioe.initCause(e); + throw ioe; + } + } + + public Object toOpenValue(Object javaValue) throws OpenDataException { + try { + Integer i = (Integer) javaValue; + return i.toString(); + } catch (Exception e) { + OpenDataException ode = new OpenDataException("oops"); + ode.initCause(e); + throw ode; + } + } + } +} diff --git a/jdk/test/javax/management/mxbean/customtypes/package-info.java b/jdk/test/javax/management/mxbean/customtypes/package-info.java new file mode 100644 index 00000000000..97d2aa57fb1 --- /dev/null +++ b/jdk/test/javax/management/mxbean/customtypes/package-info.java @@ -0,0 +1,27 @@ +/* + * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +// package-info.java - test package annotations for custom types + +@javax.management.openmbean.MXBeanMappingFactoryClass(IntegerIsStringFactory.class) +package customtypes; From 252f292cc2274cf9214c7d2d937a945ec9a74a19 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Thu, 5 Jun 2008 14:44:30 +0100 Subject: [PATCH 13/41] 4939819: File.canWrite() returns false for the "My Documents" directory (win) Reviewed-by: iris --- .../native/java/io/WinNTFileSystem_md.c | 27 ++++++++++--------- jdk/test/java/io/File/SetReadOnly.java | 13 ++++++--- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c index bfc55cd4d90..33e9ae5f4b2 100644 --- a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c +++ b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c @@ -229,26 +229,29 @@ JNIEXPORT jboolean JNICALL Java_java_io_WinNTFileSystem_checkAccess(JNIEnv *env, jobject this, jobject file, jint access) { - jboolean rv = JNI_FALSE; - int mode; + DWORD attr; WCHAR *pathbuf = fileToNTPath(env, file, ids.path); if (pathbuf == NULL) return JNI_FALSE; + attr = GetFileAttributesW(pathbuf); + free(pathbuf); + if (attr == INVALID_FILE_ATTRIBUTES) + return JNI_FALSE; switch (access) { case java_io_FileSystem_ACCESS_READ: case java_io_FileSystem_ACCESS_EXECUTE: - mode = 4; - break; + return JNI_TRUE; case java_io_FileSystem_ACCESS_WRITE: - mode = 2; - break; - default: assert(0); + /* Read-only attribute ignored on directories */ + if ((attr & FILE_ATTRIBUTE_DIRECTORY) || + (attr & FILE_ATTRIBUTE_READONLY) == 0) + return JNI_TRUE; + else + return JNI_FALSE; + default: + assert(0); + return JNI_FALSE; } - if (_waccess(pathbuf, mode) == 0) { - rv = JNI_TRUE; - } - free(pathbuf); - return rv; } JNIEXPORT jboolean JNICALL diff --git a/jdk/test/java/io/File/SetReadOnly.java b/jdk/test/java/io/File/SetReadOnly.java index ed89513f8bf..6bfedea9769 100644 --- a/jdk/test/java/io/File/SetReadOnly.java +++ b/jdk/test/java/io/File/SetReadOnly.java @@ -22,7 +22,7 @@ */ /* @test - @bug 4091757 + @bug 4091757 4939819 @summary Basic test for setReadOnly method */ @@ -59,8 +59,15 @@ public class SetReadOnly { throw new Exception(f + ": Cannot create directory"); if (!f.setReadOnly()) throw new Exception(f + ": Failed on directory"); - if (f.canWrite()) - throw new Exception(f + ": Directory is writeable"); + // The readonly attribute on Windows does not make a folder read-only + if (System.getProperty("os.name").startsWith("Windows")) { + if (!f.canWrite()) + throw new Exception(f + ": Directory is not writeable"); + } else { + if (f.canWrite()) + throw new Exception(f + ": Directory is writeable"); + } + if (!f.delete()) throw new Exception(f + ": Cannot delete directory"); From f46dc4e70baa6af76f991c204ff3c941450a6b68 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Thu, 5 Jun 2008 14:47:03 +0100 Subject: [PATCH 14/41] 6652379: File.setLastModified fails on large files (lnx only) Reviewed-by: iris --- .../native/java/io/UnixFileSystem_md.c | 168 +++--------------- jdk/test/java/io/File/SetLastModified.java | 29 ++- 2 files changed, 45 insertions(+), 152 deletions(-) diff --git a/jdk/src/solaris/native/java/io/UnixFileSystem_md.c b/jdk/src/solaris/native/java/io/UnixFileSystem_md.c index 300393a003a..63e6984e406 100644 --- a/jdk/src/solaris/native/java/io/UnixFileSystem_md.c +++ b/jdk/src/solaris/native/java/io/UnixFileSystem_md.c @@ -58,70 +58,6 @@ Java_java_io_UnixFileSystem_initIDs(JNIEnv *env, jclass cls) "path", "Ljava/lang/String;"); } - -/* -- Large-file support -- */ - -/* LINUX_FIXME: ifdef __solaris__ here is wrong. We need to move the - * definition of stat64 into a solaris_largefile.h and create a - * linux_largefile.h with a good stat64 structure to compile on - * glibc2.0 based systems. - */ -#if defined(__solaris__) && !defined(_LFS_LARGEFILE) || !_LFS_LARGEFILE - -/* The stat64 structure must be provided for systems without large-file support - (e.g., Solaris 2.5.1). These definitions are copied from the Solaris 2.6 - and files. - */ - -typedef longlong_t off64_t; /* offsets within files */ -typedef u_longlong_t ino64_t; /* expanded inode type */ -typedef longlong_t blkcnt64_t; /* count of file blocks */ - -struct stat64 { - dev_t st_dev; - long st_pad1[3]; - ino64_t st_ino; - mode_t st_mode; - nlink_t st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - long st_pad2[2]; - off64_t st_size; - timestruc_t st_atim; - timestruc_t st_mtim; - timestruc_t st_ctim; - long st_blksize; - blkcnt64_t st_blocks; - char st_fstype[_ST_FSTYPSZ]; - long st_pad4[8]; -}; - -#endif /* !_LFS_LARGEFILE */ - -typedef int (*STAT64)(const char *, struct stat64 *); - -#if defined(__linux__) && defined(_LARGEFILE64_SOURCE) -static STAT64 stat64_ptr = &stat64; -#else -static STAT64 stat64_ptr = NULL; -#endif - -#ifndef __linux__ -#ifdef __GNUC__ -static void init64IO(void) __attribute__((constructor)); -#else -#pragma init(init64IO) -#endif -#endif - -static void init64IO(void) { - void *handle = dlopen(0, RTLD_LAZY); - stat64_ptr = (STAT64) dlsym(handle, "_stat64"); - dlclose(handle); -} - - /* -- Path operations -- */ extern int canonicalize(char *path, const char *out, int len); @@ -151,18 +87,10 @@ Java_java_io_UnixFileSystem_canonicalize0(JNIEnv *env, jobject this, static jboolean statMode(const char *path, int *mode) { - if (stat64_ptr) { - struct stat64 sb; - if (((*stat64_ptr)(path, &sb)) == 0) { - *mode = sb.st_mode; - return JNI_TRUE; - } - } else { - struct stat sb; - if (stat(path, &sb) == 0) { - *mode = sb.st_mode; - return JNI_TRUE; - } + struct stat64 sb; + if (stat64(path, &sb) == 0) { + *mode = sb.st_mode; + return JNI_TRUE; } return JNI_FALSE; } @@ -266,16 +194,9 @@ Java_java_io_UnixFileSystem_getLastModifiedTime(JNIEnv *env, jobject this, jlong rv = 0; WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) { - if (stat64_ptr) { - struct stat64 sb; - if (((*stat64_ptr)(path, &sb)) == 0) { - rv = 1000 * (jlong)sb.st_mtime; - } - } else { - struct stat sb; - if (stat(path, &sb) == 0) { - rv = 1000 * (jlong)sb.st_mtime; - } + struct stat64 sb; + if (stat64(path, &sb) == 0) { + rv = 1000 * (jlong)sb.st_mtime; } } END_PLATFORM_STRING(env, path); return rv; @@ -289,16 +210,9 @@ Java_java_io_UnixFileSystem_getLength(JNIEnv *env, jobject this, jlong rv = 0; WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) { - if (stat64_ptr) { - struct stat64 sb; - if (((*stat64_ptr)(path, &sb)) == 0) { - rv = sb.st_size; - } - } else { - struct stat sb; - if (stat(path, &sb) == 0) { - rv = sb.st_size; - } + struct stat64 sb; + if (stat64(path, &sb) == 0) { + rv = sb.st_size; } } END_PLATFORM_STRING(env, path); return rv; @@ -447,15 +361,6 @@ Java_java_io_UnixFileSystem_rename0(JNIEnv *env, jobject this, return rv; } - -/* Bug in solaris /usr/include/sys/time.h? */ -#ifdef __solaris__ -extern int utimes(const char *, const struct timeval *); -#elif defined(__linux___) -extern int utimes(const char *, struct timeval *); -#endif - - JNIEXPORT jboolean JNICALL Java_java_io_UnixFileSystem_setLastModifiedTime(JNIEnv *env, jobject this, jobject file, jlong time) @@ -463,47 +368,22 @@ Java_java_io_UnixFileSystem_setLastModifiedTime(JNIEnv *env, jobject this, jboolean rv = JNI_FALSE; WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) { - struct timeval tv[2]; -#ifdef __solaris__ - timestruc_t ts; + struct stat64 sb; - if (stat64_ptr) { - struct stat64 sb; - if (((*stat64_ptr)(path, &sb)) == 0) - ts = sb.st_atim; - else - goto error; - } else { - struct stat sb; - if (stat(path, &sb) == 0) - ts = sb.st_atim; - else - goto error; + if (stat64(path, &sb) == 0) { + struct timeval tv[2]; + + /* Preserve access time */ + tv[0].tv_sec = sb.st_atime; + tv[0].tv_usec = 0; + + /* Change last-modified time */ + tv[1].tv_sec = time / 1000; + tv[1].tv_usec = (time % 1000) * 1000; + + if (utimes(path, tv) == 0) + rv = JNI_TRUE; } -#endif - - /* Preserve access time */ -#ifdef __linux__ - struct stat sb; - - if (stat(path, &sb) == 0) { - - tv[0].tv_sec = sb.st_atime; - tv[0].tv_usec = 0; - } -#else - tv[0].tv_sec = ts.tv_sec; - tv[0].tv_usec = ts.tv_nsec / 1000; -#endif - - /* Change last-modified time */ - tv[1].tv_sec = time / 1000; - tv[1].tv_usec = (time % 1000) * 1000; - - if (utimes(path, tv) >= 0) - rv = JNI_TRUE; - - error: ; } END_PLATFORM_STRING(env, path); return rv; diff --git a/jdk/test/java/io/File/SetLastModified.java b/jdk/test/java/io/File/SetLastModified.java index 22cb5326554..c97adf0ce65 100644 --- a/jdk/test/java/io/File/SetLastModified.java +++ b/jdk/test/java/io/File/SetLastModified.java @@ -22,11 +22,13 @@ */ /* @test - @bug 4091757 + @bug 4091757 6652379 @summary Basic test for setLastModified method */ import java.io.*; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; public class SetLastModified { @@ -95,13 +97,24 @@ public class SetLastModified { if (f.setLastModified(nt)) throw new Exception("Succeeded on non-existent file: " + f); - OutputStream o = new FileOutputStream(f); - o.write('x'); - o.close(); - ot = f.lastModified(); - if (!f.setLastModified(nt)) - throw new Exception("setLastModified failed on file: " + f); - ck(f, nt, f.lastModified()); + // set/check last modified on files of size 1, 1GB+1, 2GB+1, .. + // On Windows we only test with a tiny file as that platform doesn't + // support sparse files by default and so the test takes too long. + final long G = 1024L * 1024L * 1024L; + final long MAX_POSITION = + System.getProperty("os.name").startsWith("Windows") ? 0L : 3L*G; + long pos = 0L; + while (pos <= MAX_POSITION) { + FileChannel fc = new FileOutputStream(f).getChannel(); + fc.position(pos).write(ByteBuffer.wrap("x".getBytes())); + fc.close(); + ot = f.lastModified(); + System.out.format("check with file size: %d\n", f.length()); + if (!f.setLastModified(nt)) + throw new Exception("setLastModified failed on file: " + f); + ck(f, nt, f.lastModified()); + pos += G; + } if (!f.delete()) throw new Exception("Can't delete test file " + f); if (!d2.delete()) throw new Exception("Can't delete test directory " + d2); From 06e7bf1f8582c19bb4caeeb903956f8ae9aa3787 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Thu, 5 Jun 2008 14:50:28 +0100 Subject: [PATCH 15/41] 6596323: (fc) ClosedByInterruptException not thrown by the interrupt method (lnx) Reviewed-by: sherman --- jdk/src/share/classes/sun/nio/ch/NativeThreadSet.java | 2 +- jdk/src/solaris/classes/sun/nio/ch/NativeThread.java | 4 ++-- jdk/src/windows/classes/sun/nio/ch/NativeThread.java | 2 +- jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jdk/src/share/classes/sun/nio/ch/NativeThreadSet.java b/jdk/src/share/classes/sun/nio/ch/NativeThreadSet.java index ee3e393af48..7b9ba6b8b0d 100644 --- a/jdk/src/share/classes/sun/nio/ch/NativeThreadSet.java +++ b/jdk/src/share/classes/sun/nio/ch/NativeThreadSet.java @@ -43,7 +43,7 @@ class NativeThreadSet { // int add() { long th = NativeThread.current(); - if (th <= 0) + if (th == -1) return -1; synchronized (this) { int start = 0; diff --git a/jdk/src/solaris/classes/sun/nio/ch/NativeThread.java b/jdk/src/solaris/classes/sun/nio/ch/NativeThread.java index 3e947694598..f8dc8460238 100644 --- a/jdk/src/solaris/classes/sun/nio/ch/NativeThread.java +++ b/jdk/src/solaris/classes/sun/nio/ch/NativeThread.java @@ -34,14 +34,14 @@ package sun.nio.ch; // upon which Java threads are built, and defines a simple signal mechanism // that can be used to release a native thread from a blocking I/O operation. // On systems that do not require this type of signalling, the current() method -// always returns zero and the signal(long) method has no effect. +// always returns -1 and the signal(long) method has no effect. class NativeThread { // Returns an opaque token representing the native thread underlying the // invoking Java thread. On systems that do not require signalling, this - // method always returns zero. + // method always returns -1. // static native long current(); diff --git a/jdk/src/windows/classes/sun/nio/ch/NativeThread.java b/jdk/src/windows/classes/sun/nio/ch/NativeThread.java index a5653241ffe..52ade3c072c 100644 --- a/jdk/src/windows/classes/sun/nio/ch/NativeThread.java +++ b/jdk/src/windows/classes/sun/nio/ch/NativeThread.java @@ -31,7 +31,7 @@ package sun.nio.ch; class NativeThread { - static long current() { return 0; } + static long current() { return -1; } static void signal(long nt) { } diff --git a/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java b/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java index 8ec350cff01..d0b08694651 100644 --- a/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java +++ b/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java @@ -22,7 +22,7 @@ */ /* @test - * @bug 4460583 4470470 4840199 6419424 + * @bug 4460583 4470470 4840199 6419424 6596323 * @summary Comprehensive test of asynchronous closing and interruption * @author Mark Reinhold */ From 97bcf18b88586b878273c09ea4ab914c64e896a8 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Thu, 5 Jun 2008 14:57:15 +0100 Subject: [PATCH 16/41] 6710579: (ch) test/java/nio/channels/AsyncCloseAndInterrupt fails (lnx) Reviewed-by: chegar --- jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java b/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java index d0b08694651..5693288e1a9 100644 --- a/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java +++ b/jdk/test/java/nio/channels/AsyncCloseAndInterrupt.java @@ -22,7 +22,7 @@ */ /* @test - * @bug 4460583 4470470 4840199 6419424 6596323 + * @bug 4460583 4470470 4840199 6419424 6710579 6596323 * @summary Comprehensive test of asynchronous closing and interruption * @author Mark Reinhold */ @@ -582,7 +582,7 @@ public class AsyncCloseAndInterrupt { log.println("WARNING: transferFrom/close not tested"); return; } - if ((op == TRANSFER_TO) && TestUtil.onSolaris()) { + if ((op == TRANSFER_TO) && !TestUtil.onWindows()) { log.println("WARNING: transferTo/close not tested"); return; } From 12669e953fdc4519024da5882751ea0416f0c9a7 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Thu, 5 Jun 2008 16:19:27 -0700 Subject: [PATCH 17/41] 6710199: SJIS_0213 does not handle "unmappable" encoding operation correctly 6699038: sun/nio/cs/findencoderBugs.java fails SJIS_0213 charset updates Reviewed-by: okutsu --- .../classes/sun/nio/cs/CharsetMapping.java | 8 ++++--- .../classes/sun/nio/cs/ext/SJIS_0213.java | 24 +++++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/jdk/src/share/classes/sun/nio/cs/CharsetMapping.java b/jdk/src/share/classes/sun/nio/cs/CharsetMapping.java index c2449f0605d..45818649860 100644 --- a/jdk/src/share/classes/sun/nio/cs/CharsetMapping.java +++ b/jdk/src/share/classes/sun/nio/cs/CharsetMapping.java @@ -37,7 +37,7 @@ import java.security.*; public class CharsetMapping { public final static char UNMAPPABLE_DECODING = '\uFFFD'; - public final static int UNMAPPABLE_ENCODING = -1; + public final static int UNMAPPABLE_ENCODING = 0xFFFD; char[] b2cSB; //singlebyte b->c char[] b2cDB1; //dobulebyte b->c /db1 @@ -109,9 +109,11 @@ public class CharsetMapping { } public int encodeSurrogate(char hi, char lo) { - char c = (char)Character.toCodePoint(hi, lo); + int cp = Character.toCodePoint(hi, lo); + if (cp < 0x20000 || cp >= 0x30000) + return UNMAPPABLE_ENCODING; int end = c2bSupp.length / 2; - int i = Arrays.binarySearch(c2bSupp, 0, end, c); + int i = Arrays.binarySearch(c2bSupp, 0, end, (char)cp); if (i >= 0) return c2bSupp[end + i]; return UNMAPPABLE_ENCODING; diff --git a/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java b/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java index e1f1f50ccee..f186eb67c82 100644 --- a/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java +++ b/jdk/src/share/classes/sun/nio/cs/ext/SJIS_0213.java @@ -274,15 +274,15 @@ public class SJIS_0213 extends Charset { leftoverBase = c; } else { db = encodeChar(c); - if (db > MAX_SINGLEBYTE) { // DoubleByte + if (db <= MAX_SINGLEBYTE) { // SingleByte + if (dl <= dp) + return CoderResult.OVERFLOW; + da[dp++] = (byte)db; + } else if (db != UNMAPPABLE) { // DoubleByte if (dl - dp < 2) return CoderResult.OVERFLOW; da[dp++] = (byte)(db >> 8); da[dp++] = (byte)db; - } else if (db != UNMAPPABLE) { // SingleByte - if (dl <= dp) - return CoderResult.OVERFLOW; - da[dp++] = (byte)db; } else if (Character.isHighSurrogate(c)) { if ((sp + 1) == sl) return CoderResult.UNDERFLOW; @@ -297,6 +297,8 @@ public class SJIS_0213 extends Charset { da[dp++] = (byte)(db >> 8); da[dp++] = (byte)db; sp++; + } else if (Character.isLowSurrogate(c)) { + return CoderResult.malformedForLength(1); } else { return CoderResult.unmappableForLength(1); } @@ -337,15 +339,15 @@ public class SJIS_0213 extends Charset { leftoverBase = c; } else { db = encodeChar(c); - if (db > MAX_SINGLEBYTE) { // DoubleByte + if (db <= MAX_SINGLEBYTE) { // Single-byte + if (dst.remaining() < 1) + return CoderResult.OVERFLOW; + dst.put((byte)db); + } else if (db != UNMAPPABLE) { // DoubleByte if (dst.remaining() < 2) return CoderResult.OVERFLOW; dst.put((byte)(db >> 8)); dst.put((byte)(db)); - } else if (db != UNMAPPABLE) { // Single-byte - if (dst.remaining() < 1) - return CoderResult.OVERFLOW; - dst.put((byte)db); } else if (Character.isHighSurrogate(c)) { if (!src.hasRemaining()) // Surrogates return CoderResult.UNDERFLOW; @@ -360,6 +362,8 @@ public class SJIS_0213 extends Charset { dst.put((byte)(db >> 8)); dst.put((byte)(db)); mark++; + } else if (Character.isLowSurrogate(c)) { + return CoderResult.malformedForLength(1); } else { return CoderResult.unmappableForLength(1); } From 8f7aabf9558f176f9ebf765aabb3dfe22d7822e4 Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Fri, 6 Jun 2008 13:30:20 +0400 Subject: [PATCH 18/41] 5035693: "Open" button should be a default one in JFileChooser under Windows XP LAF The "Open" button was made default button of FileChooser dialog windows Reviewed-by: loneid, peterz --- .../sun/java/swing/plaf/motif/MotifLookAndFeel.java | 4 +--- .../java/swing/plaf/windows/WindowsLookAndFeel.java | 4 +--- jdk/src/share/classes/javax/swing/JFileChooser.java | 4 +++- .../classes/javax/swing/plaf/FileChooserUI.java | 13 ++++++++++++- .../javax/swing/plaf/basic/BasicFileChooserUI.java | 4 ++++ .../javax/swing/plaf/metal/MetalLookAndFeel.java | 4 +--- 6 files changed, 22 insertions(+), 11 deletions(-) diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java index e91dbb9e718..b758d50dcde 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java @@ -1222,9 +1222,7 @@ public class MotifLookAndFeel extends BasicLookAndFeel "FileChooser.enterFileNameLabelMnemonic", new Integer (KeyEvent.VK_N), // 'n' "FileChooser.ancestorInputMap", new UIDefaults.LazyInputMap(new Object[] { - "ESCAPE", "cancelSelection", - "ENTER", "approveSelection", - "ctrl ENTER", "approveSelection" + "ESCAPE", "cancelSelection" }), diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java index 9af41fc39c8..69ccdf720a6 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java @@ -825,9 +825,7 @@ public class WindowsLookAndFeel extends BasicLookAndFeel "ESCAPE", "cancelSelection", "F2", "editFileName", "F5", "refresh", - "BACK_SPACE", "Go Up", - "ENTER", "approveSelection", - "ctrl ENTER", "approveSelection" + "BACK_SPACE", "Go Up" }), "FileView.directoryIcon", SwingUtilities2.makeIcon(getClass(), diff --git a/jdk/src/share/classes/javax/swing/JFileChooser.java b/jdk/src/share/classes/javax/swing/JFileChooser.java index 8a2b2d5393f..344565a1f3f 100644 --- a/jdk/src/share/classes/javax/swing/JFileChooser.java +++ b/jdk/src/share/classes/javax/swing/JFileChooser.java @@ -770,7 +770,8 @@ public class JFileChooser extends JComponent implements Accessible { * @since 1.4 */ protected JDialog createDialog(Component parent) throws HeadlessException { - String title = getUI().getDialogTitle(this); + FileChooserUI ui = getUI(); + String title = ui.getDialogTitle(this); putClientProperty(AccessibleContext.ACCESSIBLE_DESCRIPTION_PROPERTY, title); @@ -794,6 +795,7 @@ public class JFileChooser extends JComponent implements Accessible { dialog.getRootPane().setWindowDecorationStyle(JRootPane.FILE_CHOOSER_DIALOG); } } + dialog.getRootPane().setDefaultButton(ui.getDefaultButton(this)); dialog.pack(); dialog.setLocationRelativeTo(parent); diff --git a/jdk/src/share/classes/javax/swing/plaf/FileChooserUI.java b/jdk/src/share/classes/javax/swing/plaf/FileChooserUI.java index 78064e08efc..aaab089cc81 100644 --- a/jdk/src/share/classes/javax/swing/plaf/FileChooserUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/FileChooserUI.java @@ -25,7 +25,7 @@ package javax.swing.plaf; -import javax.swing.JFileChooser; +import javax.swing.*; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileView; import java.io.File; @@ -46,4 +46,15 @@ public abstract class FileChooserUI extends ComponentUI public abstract void rescanCurrentDirectory(JFileChooser fc); public abstract void ensureFileIsVisible(JFileChooser fc, File f); + + /** + * Returns default button for current LookAndFeel. + * JFileChooser will use this button as default button + * for dialog windows. + * + * @since 1.7 + */ + public JButton getDefaultButton(JFileChooser fc) { + return null; + } } diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java index 5a9daae328d..e8728d807a4 100644 --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java @@ -384,6 +384,10 @@ public class BasicFileChooserUI extends FileChooserUI { return null; } + public JButton getDefaultButton(JFileChooser fc) { + return getApproveButton(fc); + } + public String getApproveButtonToolTipText(JFileChooser fc) { String tooltipText = fc.getApproveButtonToolTipText(); if(tooltipText != null) { diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java index d1f7c05935d..27279940966 100644 --- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java @@ -853,9 +853,7 @@ public class MetalLookAndFeel extends BasicLookAndFeel "ESCAPE", "cancelSelection", "F2", "editFileName", "F5", "refresh", - "BACK_SPACE", "Go Up", - "ENTER", "approveSelection", - "ctrl ENTER", "approveSelection" + "BACK_SPACE", "Go Up" }), From fa0719879c5f20a8eb00c0e508dc36fc76025391 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Fri, 6 Jun 2008 14:57:32 -0700 Subject: [PATCH 19/41] 6706299: System property java.class.version should be 51 for jdk7 System property java.class.version should be 51 for jdk7 Reviewed-by: alanb --- jdk/src/share/native/java/lang/System.c | 2 +- jdk/test/java/lang/System/Versions.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/share/native/java/lang/System.c b/jdk/src/share/native/java/lang/System.c index 2adc82f44b5..e04dfca8b39 100644 --- a/jdk/src/share/native/java/lang/System.c +++ b/jdk/src/share/native/java/lang/System.c @@ -84,7 +84,7 @@ Java_java_lang_System_identityHashCode(JNIEnv *env, jobject this, jobject x) #define VENDOR_URL_BUG "http://java.sun.com/cgi-bin/bugreport.cgi" #endif -#define JAVA_MAX_SUPPORTED_VERSION 50 +#define JAVA_MAX_SUPPORTED_VERSION 51 #define JAVA_MAX_SUPPORTED_MINOR_VERSION 0 JNIEXPORT jobject JNICALL diff --git a/jdk/test/java/lang/System/Versions.java b/jdk/test/java/lang/System/Versions.java index d94d3b451eb..158b5b490c1 100644 --- a/jdk/test/java/lang/System/Versions.java +++ b/jdk/test/java/lang/System/Versions.java @@ -23,7 +23,7 @@ /** * @test - * @bug 4989690 6259855 + * @bug 4989690 6259855 6706299 * @summary Check that version-related system property invariants hold. * @author Martin Buchholz */ From afdf0ae0a0d93041c19c4c888cdcec6ba01dc9be Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Tue, 10 Jun 2008 10:51:33 +0800 Subject: [PATCH 20/41] 6711509: PolicyTool is misspelling Runtime permission - 'setSecurityManager' entry in the policy file Reviewed-by: wetmore, mullan --- jdk/src/share/classes/sun/security/tools/PolicyTool.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/sun/security/tools/PolicyTool.java b/jdk/src/share/classes/sun/security/tools/PolicyTool.java index 8eb010cc356..6a71b9d6f18 100644 --- a/jdk/src/share/classes/sun/security/tools/PolicyTool.java +++ b/jdk/src/share/classes/sun/security/tools/PolicyTool.java @@ -4104,7 +4104,7 @@ class RuntimePerm extends Perm { "getClassLoader", "setContextClassLoader", "enableContextClassLoaderOverride", - "setSecurityManage", + "setSecurityManager", "createSecurityManager", "getenv.<" + PolicyTool.rb.getString("environment variable name") + ">", From b572eb5b2b49bb6e0d50ab58ee4ee489388b1f64 Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Tue, 10 Jun 2008 11:03:23 +0800 Subject: [PATCH 21/41] 6711435: console.sh uses incompatible == Reviewed-by: xuelei --- jdk/test/sun/security/tools/keytool/console.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jdk/test/sun/security/tools/keytool/console.sh b/jdk/test/sun/security/tools/keytool/console.sh index 46252de33c1..1975b37e643 100644 --- a/jdk/test/sun/security/tools/keytool/console.sh +++ b/jdk/test/sun/security/tools/keytool/console.sh @@ -30,7 +30,7 @@ # # @run shell/manual console.sh -if [ "$ALT_PASS" == "" ]; then +if [ "$ALT_PASS" = "" ]; then export PASS=äöäöäöäö else export PASS=$ALT_PASS @@ -54,7 +54,7 @@ echo "If you see both the prompts appear, say --" echo " Enter key password for " echo " (RETURN if same as keystore password): Enter keystore password:" echo "only response to the last prompt by typing $PASS and press ENTER" -echo +echo echo "Only if all the command run correctly without showing any error " echo "or warning, this test passes." echo @@ -87,3 +87,6 @@ echo $PASS| $J5/bin/keytool -keystore kkk -genkey -dname CN=olala $JM/bin/keytool -keystore kkk -list echo $PASS| $J5/bin/keytool -keystore kkk -list echo $PASS| $JM/bin/keytool -keystore kkk -list +rm kkk + +exit 0 From 0c259336ec0b70ead2eaed3ffcf11fdc1e9973ab Mon Sep 17 00:00:00 2001 From: Luis Miguel Alventosa Date: Tue, 10 Jun 2008 13:50:06 +0200 Subject: [PATCH 22/41] 6711106: REGRESSION: Bad usage of SnapshotMBeanServerConnection in MBeans tab and JConsole plugins Reviewed-by: jfdenise --- .../classes/sun/tools/jconsole/MBeansTab.java | 5 +++++ .../sun/tools/jconsole/ProxyClient.java | 16 ++++++++------ .../sun/tools/jconsole/inspector/XMBean.java | 9 ++++++-- .../jconsole/inspector/XMBeanAttributes.java | 21 ++++++++++++------- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/jdk/src/share/classes/sun/tools/jconsole/MBeansTab.java b/jdk/src/share/classes/sun/tools/jconsole/MBeansTab.java index 53260144e63..aa863f11b2d 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/MBeansTab.java +++ b/jdk/src/share/classes/sun/tools/jconsole/MBeansTab.java @@ -37,6 +37,7 @@ import javax.management.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; +import sun.tools.jconsole.ProxyClient.SnapshotMBeanServerConnection; import sun.tools.jconsole.inspector.*; import com.sun.tools.jconsole.JConsoleContext; @@ -154,6 +155,10 @@ public class MBeansTab extends Tab implements return vmPanel.getProxyClient().getMBeanServerConnection(); } + public SnapshotMBeanServerConnection getSnapshotMBeanServerConnection() { + return vmPanel.getProxyClient().getSnapshotMBeanServerConnection(); + } + @Override public void update() { // Ping the connection to see if it is still alive. At diff --git a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java index e4fe180af8a..1d46f74ec01 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java +++ b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java @@ -28,7 +28,6 @@ package sun.tools.jconsole; import com.sun.management.HotSpotDiagnosticMXBean; import com.sun.tools.jconsole.JConsoleContext; import com.sun.tools.jconsole.JConsoleContext.ConnectionState; -import java.awt.Component; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; import java.io.IOException; @@ -78,6 +77,7 @@ public class ProxyClient implements JConsoleContext { private String advancedUrl = null; private JMXServiceURL jmxUrl = null; + private MBeanServerConnection mbsc = null; private SnapshotMBeanServerConnection server = null; private JMXConnector jmxc = null; private RMIServer stub = null; @@ -103,7 +103,6 @@ public class ProxyClient implements JConsoleContext { private List memoryPoolProxies = null; private List garbageCollectorMBeans = null; - private String detectDeadlocksOperation = null; final static private String HOTSPOT_DIAGNOSTIC_MXBEAN_NAME = "com.sun.management:type=HotSpotDiagnostic"; @@ -326,8 +325,8 @@ public class ProxyClient implements JConsoleContext { if (jmxUrl == null && "localhost".equals(hostName) && port == 0) { // Monitor self this.jmxc = null; - this.server = Snapshot.newSnapshot( - ManagementFactory.getPlatformMBeanServer()); + this.mbsc = ManagementFactory.getPlatformMBeanServer(); + this.server = Snapshot.newSnapshot(mbsc); } else { // Monitor another process if (lvm != null) { @@ -369,7 +368,8 @@ public class ProxyClient implements JConsoleContext { this.jmxc = JMXConnectorFactory.connect(jmxUrl, env); } } - this.server = Snapshot.newSnapshot(jmxc.getMBeanServerConnection()); + this.mbsc = jmxc.getMBeanServerConnection(); + this.server = Snapshot.newSnapshot(mbsc); } this.isDead = false; @@ -518,7 +518,11 @@ public class ProxyClient implements JConsoleContext { } } - public MBeanServerConnection getMBeanServerConnection() { + public MBeanServerConnection getMBeanServerConnection() { + return mbsc; + } + + public SnapshotMBeanServerConnection getSnapshotMBeanServerConnection() { return server; } diff --git a/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBean.java b/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBean.java index 9999d7dbda1..dc8dedb8438 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBean.java +++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBean.java @@ -30,6 +30,7 @@ import javax.management.*; import javax.swing.Icon; import sun.tools.jconsole.JConsole; import sun.tools.jconsole.MBeansTab; +import sun.tools.jconsole.ProxyClient.SnapshotMBeanServerConnection; public class XMBean { @@ -60,6 +61,10 @@ public class XMBean { return mbeansTab.getMBeanServerConnection(); } + SnapshotMBeanServerConnection getSnapshotMBeanServerConnection() { + return mbeansTab.getSnapshotMBeanServerConnection(); + } + public Boolean isBroadcaster() { synchronized (broadcasterLock) { if (broadcaster == null) { @@ -103,14 +108,14 @@ public class XMBean { public Object getAttribute(String attributeName) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException, IOException { - return getMBeanServerConnection().getAttribute( + return getSnapshotMBeanServerConnection().getAttribute( getObjectName(), attributeName); } public AttributeList getAttributes(String attributeNames[]) throws AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException, IOException { - return getMBeanServerConnection().getAttributes( + return getSnapshotMBeanServerConnection().getAttributes( getObjectName(), attributeNames); } diff --git a/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java b/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java index 41a74580ddb..0b054a9cde2 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java +++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XMBeanAttributes.java @@ -349,7 +349,14 @@ public class XMBeanAttributes extends XTable { try { list = mbean.getAttributes(attributesInfo); - }catch(Exception e) { + } catch (Exception e) { + if (JConsole.isDebug()) { + System.err.println("Error calling getAttributes() on MBean \"" + + mbean.getObjectName() + "\". JConsole will " + + "try to get them individually calling " + + "getAttribute() instead. Exception:"); + e.printStackTrace(System.err); + } list = new AttributeList(); //Can't load all attributes, do it one after each other. for(int i = 0; i < attributesInfo.length; i++) { @@ -357,7 +364,7 @@ public class XMBeanAttributes extends XTable { try { name = attributesInfo[i].getName(); Object value = - mbean.getAttribute(name); + mbean.getMBeanServerConnection().getAttribute(mbean.getObjectName(), name); list.add(new Attribute(name, value)); }catch(Exception ex) { if(attributesInfo[i].isReadable()) { @@ -397,8 +404,8 @@ public class XMBeanAttributes extends XTable { // went wrong. try { Object v = - mbean.getAttribute(attributeInfo. - getName()); + mbean.getMBeanServerConnection().getAttribute( + mbean.getObjectName(), attributeInfo.getName()); //What happens if now it is ok? // Be pragmatic, add it to readable... attributes.put(attributeInfo.getName(), @@ -528,10 +535,8 @@ public class XMBeanAttributes extends XTable { } public void refreshAttributes() { - MBeanServerConnection mbsc = mbeansTab.getMBeanServerConnection(); - if (mbsc instanceof SnapshotMBeanServerConnection) { - ((SnapshotMBeanServerConnection) mbsc).flush(); - } + SnapshotMBeanServerConnection mbsc = mbeansTab.getSnapshotMBeanServerConnection(); + mbsc.flush(); stopCellEditing(); loadAttributes(mbean, mbeanInfo); } From f2e8ba353cdd69944828beca10f8da071df8a909 Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Thu, 12 Jun 2008 17:25:37 +0100 Subject: [PATCH 23/41] 6698625: InetAddress.getLocalHost() failed in returning chinese local host name Remove unnecessary and incorrect NewStringUTF Reviewed-by: michaelm --- jdk/src/solaris/native/java/net/Inet4AddressImpl.c | 9 +-------- jdk/src/solaris/native/java/net/Inet6AddressImpl.c | 10 ++-------- jdk/src/windows/native/java/net/Inet4AddressImpl.c | 7 +------ jdk/src/windows/native/java/net/Inet6AddressImpl.c | 11 ++--------- 4 files changed, 6 insertions(+), 31 deletions(-) diff --git a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c index 7821b0bda33..28b3a8ea897 100644 --- a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c +++ b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c @@ -138,7 +138,6 @@ JNIEXPORT jobjectArray JNICALL Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, jstring host) { const char *hostname; - jobject name; jobjectArray ret = 0; struct hostent res, *hp = 0; char buf[HENT_BUF_SIZE]; @@ -210,12 +209,6 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, addrp++; } - name = (*env)->NewStringUTF(env, hostname); - - if (IS_NULL(name)) { - goto cleanupAndReturn; - } - ret = (*env)->NewObjectArray(env, i, ni_iacls, NULL); if (IS_NULL(ret)) { /* we may have memory to free at the end of this */ @@ -231,7 +224,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, } (*env)->SetIntField(env, iaObj, ni_iaaddressID, ntohl((*addrp)->s_addr)); - (*env)->SetObjectField(env, iaObj, ni_iahostID, name); + (*env)->SetObjectField(env, iaObj, ni_iahostID, host); (*env)->SetObjectArrayElement(env, ret, i, iaObj); addrp++; i++; diff --git a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c index 827f00bad5d..672eaad2e70 100644 --- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c +++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c @@ -142,7 +142,6 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, jstring host) { const char *hostname; jobjectArray ret = 0; - jobject name; int retLen = 0; jclass byteArrayCls; jboolean preferIPv6Address; @@ -310,11 +309,6 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, inet6Index = inetCount; } - name = (*env)->NewStringUTF(env, hostname); - if (IS_NULL(name)) { - ret = NULL; - goto cleanupAndReturn; - } while (iterator != NULL) { if (iterator->ai_family == AF_INET) { jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID); @@ -324,7 +318,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, } (*env)->SetIntField(env, iaObj, ni_iaaddressID, ntohl(((struct sockaddr_in*)iterator->ai_addr)->sin_addr.s_addr)); - (*env)->SetObjectField(env, iaObj, ni_iahostID, name); + (*env)->SetObjectField(env, iaObj, ni_iahostID, host); (*env)->SetObjectArrayElement(env, ret, inetIndex, iaObj); inetIndex++; } else if (iterator->ai_family == AF_INET6) { @@ -355,7 +349,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, (*env)->SetBooleanField(env, iaObj, ia6_scopeidsetID, JNI_TRUE); } (*env)->SetObjectField(env, iaObj, ni_ia6ipaddressID, ipaddress); - (*env)->SetObjectField(env, iaObj, ni_iahostID, name); + (*env)->SetObjectField(env, iaObj, ni_iahostID, host); (*env)->SetObjectArrayElement(env, ret, inet6Index, iaObj); inet6Index++; } diff --git a/jdk/src/windows/native/java/net/Inet4AddressImpl.c b/jdk/src/windows/native/java/net/Inet4AddressImpl.c index 149827f59c5..53f44770800 100644 --- a/jdk/src/windows/native/java/net/Inet4AddressImpl.c +++ b/jdk/src/windows/native/java/net/Inet4AddressImpl.c @@ -137,7 +137,6 @@ JNIEXPORT jobjectArray JNICALL Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, jstring host) { const char *hostname; - jobject name; struct hostent *hp; unsigned int addr[4]; @@ -229,10 +228,6 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, addrp++; } - name = (*env)->NewStringUTF(env, hostname); - if (IS_NULL(name)) { - goto cleanupAndReturn; - } ret = (*env)->NewObjectArray(env, i, ni_iacls, NULL); if (IS_NULL(ret)) { @@ -249,7 +244,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, } (*env)->SetIntField(env, iaObj, ni_iaaddressID, ntohl((*addrp)->s_addr)); - (*env)->SetObjectField(env, iaObj, ni_iahostID, name); + (*env)->SetObjectField(env, iaObj, ni_iahostID, host); (*env)->SetObjectArrayElement(env, ret, i, iaObj); addrp++; i++; diff --git a/jdk/src/windows/native/java/net/Inet6AddressImpl.c b/jdk/src/windows/native/java/net/Inet6AddressImpl.c index 31bd3e68e88..8f34ea92d8a 100644 --- a/jdk/src/windows/native/java/net/Inet6AddressImpl.c +++ b/jdk/src/windows/native/java/net/Inet6AddressImpl.c @@ -86,7 +86,6 @@ JNIEXPORT jobjectArray JNICALL Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, jstring host) { const char *hostname; - jobject name; jobjectArray ret = 0; int retLen = 0; jboolean preferIPv6Address; @@ -237,12 +236,6 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, inet6Index = inetCount; } - name = (*env)->NewStringUTF(env, hostname); - if (IS_NULL(name)) { - ret = NULL; - goto cleanupAndReturn; - } - while (iterator != NULL) { if (iterator->ai_family == AF_INET) { jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID); @@ -252,7 +245,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, } (*env)->SetIntField(env, iaObj, ni_iaaddressID, ntohl(((struct sockaddr_in*)iterator->ai_addr)->sin_addr.s_addr)); - (*env)->SetObjectField(env, iaObj, ni_iahostID, name); + (*env)->SetObjectField(env, iaObj, ni_iahostID, host); (*env)->SetObjectArrayElement(env, ret, inetIndex, iaObj); inetIndex ++; } else if (iterator->ai_family == AF_INET6) { @@ -276,7 +269,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this, (*env)->SetBooleanField(env, iaObj, ia6_scopeidsetID, JNI_TRUE); } (*env)->SetObjectField(env, iaObj, ni_ia6ipaddressID, ipaddress); - (*env)->SetObjectField(env, iaObj, ni_iahostID, name); + (*env)->SetObjectField(env, iaObj, ni_iahostID, host); (*env)->SetObjectArrayElement(env, ret, inet6Index, iaObj); inet6Index ++; } From 278b5e83cef574e9b77ccc744c2d96830c1e7d4d Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Thu, 12 Jun 2008 17:26:47 +0100 Subject: [PATCH 24/41] 6630348: Invalid html tags (extra double quote) Remove extra quote Reviewed-by: michaelm --- jdk/src/share/classes/java/net/CookieHandler.java | 2 +- jdk/src/share/classes/java/net/ResponseCache.java | 2 +- jdk/src/share/classes/java/net/URI.java | 4 ++-- jdk/src/share/classes/java/net/URL.java | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/jdk/src/share/classes/java/net/CookieHandler.java b/jdk/src/share/classes/java/net/CookieHandler.java index 85bb813606a..e21087083d5 100644 --- a/jdk/src/share/classes/java/net/CookieHandler.java +++ b/jdk/src/share/classes/java/net/CookieHandler.java @@ -43,7 +43,7 @@ import sun.security.util.SecurityConstants; * CookieHandler.getDefault(). * * For more information on HTTP state management, see RFC 2965: HTTP + * href="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965: HTTP * State Management Mechanism * * @author Yingxian Wang diff --git a/jdk/src/share/classes/java/net/ResponseCache.java b/jdk/src/share/classes/java/net/ResponseCache.java index 87800dac59d..5b6c260fe32 100644 --- a/jdk/src/share/classes/java/net/ResponseCache.java +++ b/jdk/src/share/classes/java/net/ResponseCache.java @@ -52,7 +52,7 @@ import sun.security.util.SecurityConstants; * protocol is allowed to use a cached response. * * For more information on HTTP caching, see RFC 2616: Hypertext + * href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616: Hypertext * Transfer Protocol -- HTTP/1.1 * * @author Yingxian Wang diff --git a/jdk/src/share/classes/java/net/URI.java b/jdk/src/share/classes/java/net/URI.java index 1f8e4c033b3..39bf715a702 100644 --- a/jdk/src/share/classes/java/net/URI.java +++ b/jdk/src/share/classes/java/net/URI.java @@ -49,7 +49,7 @@ import java.lang.NullPointerException; // for javadoc * *

Aside from some minor deviations noted below, an instance of this * class represents a URI reference as defined by - * RFC 2396: Uniform + * RFC 2396: Uniform * Resource Identifiers (URI): Generic Syntax, amended by RFC 2732: Format for * Literal IPv6 Addresses in URLs. The Literal IPv6 address format @@ -461,7 +461,7 @@ import java.lang.NullPointerException; // for javadoc * transformation format of ISO 10646,
RFC 2373: IPv6 Addressing * Architecture,
RFC 2396: Uniform + * href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396: Uniform * Resource Identifiers (URI): Generic Syntax,
RFC 2732: Format for * Literal IPv6 Addresses in URLs,
*

* The syntax of URL is defined by RFC 2396: Uniform + * href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396: Uniform * Resource Identifiers (URI): Generic Syntax, amended by RFC 2732: Format for * Literal IPv6 Addresses in URLs. The Literal IPv6 address format From 840473c1e37e0e9fc5d3dcbe145785798daf9573 Mon Sep 17 00:00:00 2001 From: Chris Hegarty Date: Thu, 12 Jun 2008 17:28:08 +0100 Subject: [PATCH 25/41] 6628569: api/java_net/MulticastSocket/descriptions.html#setTTL fails is ipv6 configured Failover to IPv6 socket if IPv4 fails Reviewed-by: michaelm --- .../native/java/net/NetworkInterface.c | 45 +++++++++++++++++-- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/jdk/src/solaris/native/java/net/NetworkInterface.c b/jdk/src/solaris/native/java/net/NetworkInterface.c index f60e03fa24b..0560ce60286 100644 --- a/jdk/src/solaris/native/java/net/NetworkInterface.c +++ b/jdk/src/solaris/native/java/net/NetworkInterface.c @@ -1117,9 +1117,33 @@ static short getFlags(JNIEnv *env, jstring name) { if (ioctl(sock, SIOCGIFFLAGS, (char *)&if2) >= 0) { ret = if2.ifr_flags; } else { +#if defined(__solaris__) && defined(AF_INET6) + /* Try with an IPv6 socket in case the interface has only IPv6 addresses assigned to it */ + struct lifreq lifr; + + close(sock); + sock = JVM_Socket(AF_INET6, SOCK_DGRAM, 0); + + if (sock < 0) { + (*env)->ReleaseStringUTFChars(env, name, name_utf); + NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", + "Socket creation failed"); + return -1; + } + + memset((caddr_t)&lifr, 0, sizeof(lifr)); + strcpy((caddr_t)&(lifr.lifr_name), name_utf); + + if (ioctl(sock, SIOCGLIFFLAGS, (char *)&lifr) >= 0) { + ret = lifr.lifr_flags; + } else { + NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", + "IOCTL failed"); + } +#else NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "IOCTL failed"); - ret = -1; +#endif } close(sock); /* release the UTF string and interface list */ @@ -1484,8 +1508,23 @@ JNIEXPORT jint JNICALL Java_java_net_NetworkInterface_getMTU0(JNIEnv *env, jclas if (ioctl(sock, SIOCGLIFMTU, (caddr_t)&lifr) >= 0) { ret = lifr.lifr_mtu; } else { - NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", - "IOCTL failed"); + /* Try wIth an IPv6 socket in case the interface has only IPv6 addresses assigned to it */ + close(sock); + sock = JVM_Socket(AF_INET6, SOCK_DGRAM, 0); + + if (sock < 0) { + (*env)->ReleaseStringUTFChars(env, name, name_utf); + NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", + "Socket creation failed"); + return -1; + } + + if (ioctl(sock, SIOCGLIFMTU, (caddr_t)&lifr) >= 0) { + ret = lifr.lifr_mtu; + } else { + NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", + "IOCTL failed"); + } } #endif close(sock); From 0557c0b5005cb8ad4c7b0c0eec2a923d2394631e Mon Sep 17 00:00:00 2001 From: Luis Miguel Alventosa Date: Fri, 13 Jun 2008 10:45:51 +0200 Subject: [PATCH 26/41] 6714244: Plotters in MBeans tab should use SnapshotMBeanServerConnection too Reviewed-by: jfdenise --- .../classes/sun/tools/jconsole/inspector/XPlottingViewer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java b/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java index 5bcf72dd719..836f28d3021 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java +++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java @@ -157,7 +157,7 @@ public class XPlottingViewer extends PlotterPanel implements ActionListener { public void run() { try { Number n = - (Number) xmbean.getMBeanServerConnection().getAttribute(xmbean.getObjectName(), attributeName); + (Number) xmbean.getSnapshotMBeanServerConnection().getAttribute(xmbean.getObjectName(), attributeName); long v; if (n instanceof Float || n instanceof Double) { plotter.setDecimals(PLOTTER_DECIMALS); From 1c4114a2d3877a27737e7416fc213b28a8a627f2 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Collet Date: Fri, 13 Jun 2008 17:43:50 +0200 Subject: [PATCH 27/41] 6483406: new ServerSocket() sometimes takes more than 3 minutes on Suse Linux Switch to socketpair() call to create marker fd Reviewed-by: alanb --- .../solaris/native/java/net/PlainSocketImpl.c | 92 +++---------------- 1 file changed, 11 insertions(+), 81 deletions(-) diff --git a/jdk/src/solaris/native/java/net/PlainSocketImpl.c b/jdk/src/solaris/native/java/net/PlainSocketImpl.c index 3fcaa9ee5d0..d4bd5aed6e4 100644 --- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c +++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c @@ -95,94 +95,24 @@ static int marker_fd = -1; */ static int getMarkerFD() { - int server_fd, child_fd, connect_fd; - SOCKADDR him; - int type, len, port; + int sv[2]; - type = AF_INET; -#ifdef AF_INET6 - if (ipv6_available()) { - type = AF_INET6; +#ifdef AF_UNIX + if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv) == -1) { + return -1; } +#else + return -1; #endif /* - * Create listener on any port - */ - server_fd = JVM_Socket(type, SOCK_STREAM, 0); - if (server_fd < 0) { - return -1; - } - if (JVM_Listen(server_fd, 1) == -1) { - JVM_SocketClose(server_fd); - return -1; - } - len = SOCKADDR_LEN; - if (JVM_GetSockName(server_fd, (struct sockaddr *)&him, &len) == -1) { - JVM_SocketClose(server_fd); - return -1; - } - port = NET_GetPortFromSockaddr((struct sockaddr *)&him); - - /* - * Establish connection from client socket. - * Server is bound to 0.0.0.0/X or ::/X - * We connect to 127.0.0.1/X or ::1/X - */ -#ifdef AF_INET6 - if (ipv6_available()) { - struct sockaddr_in6 *him6 = (struct sockaddr_in6 *)&him; - jbyte caddr[16]; - memset((char *) caddr, 0, 16); - caddr[15] = 1; - memset((char *)him6, 0, sizeof(struct sockaddr_in6)); - memcpy((void *)&(him6->sin6_addr), caddr, sizeof(struct in6_addr) ); - him6->sin6_port = htons((short) port); - him6->sin6_family = AF_INET6; - len = sizeof(struct sockaddr_in6) ; - } else -#endif /* AF_INET6 */ - { - struct sockaddr_in *him4 = (struct sockaddr_in*)&him; - memset((char *) him4, 0, sizeof(struct sockaddr_in)); - him4->sin_port = htons((short) port); - him4->sin_addr.s_addr = (uint32_t) htonl(0x7f000001); - him4->sin_family = AF_INET; - len = sizeof(struct sockaddr_in); - } - connect_fd = JVM_Socket(type, SOCK_STREAM, 0); - if (connect_fd < 0) { - JVM_SocketClose(server_fd); - return -1; - } - if (JVM_Connect(connect_fd, (struct sockaddr *) &him, len) == -1) { - JVM_SocketClose(server_fd); - JVM_SocketClose(connect_fd); - return -1; - } - - /* - * Server accepts connection - do in in non-blocking mode to avoid - * hanging if there's an error (should never happen!!!) - */ - SET_NONBLOCKING(server_fd); - len = SOCKADDR_LEN; - child_fd = JVM_Accept(server_fd, (struct sockaddr *)&him, (jint *)&len); - if (child_fd == -1) { - JVM_SocketClose(server_fd); - JVM_SocketClose(connect_fd); - return -1; - } - - /* - * Finally shutdown connect_fd (any reads to this fd will get + * Finally shutdown sv[0] (any reads to this fd will get * EOF; any writes will get an error). */ - JVM_SocketShutdown(connect_fd, 2); - JVM_SocketClose(child_fd); - JVM_SocketClose(server_fd); + JVM_SocketShutdown(sv[0], 2); + JVM_SocketClose(sv[1]); - return connect_fd; + return sv[0]; } @@ -1087,7 +1017,7 @@ Java_java_net_PlainSocketImpl_socketGetOption(JNIEnv *env, jobject this, */ if (cmd == java_net_SocketOptions_SO_BINDADDR) { SOCKADDR him; - int len = 0; + socklen_t len = 0; int port; jobject iaObj; jclass iaCntrClass; From 2d15cd8fc69d3b7873f8b25c6ea1e0b107d8ed68 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Sat, 14 Jun 2008 09:30:20 -0700 Subject: [PATCH 28/41] 6501089: test/java/nio/channels/SocketChannel/AsyncCloseChannel.java failing (timeout) on Linux Test/java/nio/channels/SocketChannel/AsyncCloseChannel.java failing (timeout) on Linux Reviewed-by: alanb --- .../SocketChannel/AsyncCloseChannel.java | 76 ++++++++++++------- 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/jdk/test/java/nio/channels/SocketChannel/AsyncCloseChannel.java b/jdk/test/java/nio/channels/SocketChannel/AsyncCloseChannel.java index eca929576cd..ba66bbf5d21 100644 --- a/jdk/test/java/nio/channels/SocketChannel/AsyncCloseChannel.java +++ b/jdk/test/java/nio/channels/SocketChannel/AsyncCloseChannel.java @@ -22,7 +22,7 @@ */ /* @test - * @bug 6285901 + * @bug 6285901 6501089 * @summary Check no data is written to wrong socket channel during async closing. * @author Xueming Shen */ @@ -33,13 +33,13 @@ import java.nio.channels.*; import java.net.*; public class AsyncCloseChannel { - static boolean failed = false; - static boolean keepGoing = true; + static volatile boolean failed = false; + static volatile boolean keepGoing = true; + static int maxAcceptCount = 100; + static volatile int acceptCount = 0; static String host = "127.0.0.1"; - static int sensorPort = 3010; - static int targetPort = 3020; - static int maxAcceptCount = 1000; - static int acceptCount = 0; + static int sensorPort; + static int targetPort; public static void main(String args[]) throws Exception { if (System.getProperty("os.name").startsWith("Windows")) { @@ -48,11 +48,15 @@ public class AsyncCloseChannel { } Thread ss = new SensorServer(); ss.start(); Thread ts = new TargetServer(); ts.start(); + + sensorPort = ((ServerThread)ss).server.getLocalPort(); + targetPort = ((ServerThread)ts).server.getLocalPort(); + Thread sc = new SensorClient(); sc.start(); Thread tc = new TargetClient(); tc.start(); while(acceptCount < maxAcceptCount && !failed) { - Thread.yield(); + Thread.sleep(10); } keepGoing = false; try { @@ -66,11 +70,8 @@ public class AsyncCloseChannel { + acceptCount + "> times of accept!"); } - - static class SensorServer extends ThreadEx { + static class SensorServer extends ServerThread { public void runEx() throws Exception { - ServerSocket server; - server = new ServerSocket(sensorPort); while(keepGoing) { try { final Socket s = server.accept(); @@ -80,7 +81,7 @@ public class AsyncCloseChannel { int c = s.getInputStream().read(); if(c != -1) { // No data is ever written to the peer's socket! - System.out.println("Oops: read a character: " + System.err.println("Oops: read a character: " + (char) c); failed = true; } @@ -92,17 +93,14 @@ public class AsyncCloseChannel { } }.start(); } catch (IOException ex) { - //ex.printStackTrace(); + System.err.println("Exception on sensor server " + ex.getMessage()); } } } } - static class TargetServer extends ThreadEx { + static class TargetServer extends ServerThread { public void runEx() throws Exception { - - ServerSocket server; - server = new ServerSocket(targetPort); while (keepGoing) { try { final Socket s = server.accept(); @@ -127,7 +125,7 @@ public class AsyncCloseChannel { } }.start(); } catch (IOException ex) { - //ex.printStackTrace(); + System.err.println("Exception on target server " + ex.getMessage()); } } } @@ -142,19 +140,19 @@ public class AsyncCloseChannel { try { s = new Socket(); synchronized(this) { - while(!wake) { + while(!wake && keepGoing) { try { wait(); } catch (InterruptedException ex) { } } + wake = false; } - wake = false; s.connect(new InetSocketAddress(host, sensorPort)); try { Thread.sleep(10); } catch (InterruptedException ex) { } } catch (IOException ex) { - System.out.println("Exception on sensor client " + ex.getMessage()); + System.err.println("Exception on sensor client " + ex.getMessage()); } finally { if(s != null) { try { @@ -200,26 +198,49 @@ public class AsyncCloseChannel { } } catch (IOException ex) { if(!(ex instanceof ClosedChannelException)) - System.out.println("Exception in target client child " + System.err.println("Exception in target client child " + ex.toString()); } } }; t.start(); - while(!ready) - Thread.yield(); + while(!ready && keepGoing) { + try { + Thread.sleep(10); + } catch (InterruptedException ex) {} + } s.close(); SensorClient.wakeMe(); t.join(); } catch (IOException ex) { - System.out.println("Exception in target client parent " + System.err.println("Exception in target client parent " + ex.getMessage()); } catch (InterruptedException ex) {} } } } - static abstract class ThreadEx extends Thread { + static abstract class ServerThread extends Thread { + ServerSocket server; + public ServerThread() { + super(); + try { + server = new ServerSocket(0); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + + public void interrupt() { + super.interrupt(); + if (server != null) { + try { + server.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + } public void run() { try { runEx(); @@ -231,7 +252,6 @@ public class AsyncCloseChannel { abstract void runEx() throws Exception; } - public static void closeIt(Socket s) { try { if(s != null) From 3bdf3063261947928db4880fdef2f64c9041d4f2 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Wed, 18 Jun 2008 19:15:23 +0400 Subject: [PATCH 29/41] 6708550: LTP: XMLEncoder does not encode instances of the File class Reviewed-by: peterz, loneid --- jdk/src/share/classes/java/io/File.java | 2 + .../java/beans/XMLEncoder/java_io_File.java | 47 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 jdk/test/java/beans/XMLEncoder/java_io_File.java diff --git a/jdk/src/share/classes/java/io/File.java b/jdk/src/share/classes/java/io/File.java index e36ee120b62..7c58136a44d 100644 --- a/jdk/src/share/classes/java/io/File.java +++ b/jdk/src/share/classes/java/io/File.java @@ -25,6 +25,7 @@ package java.io; +import java.beans.ConstructorProperties; import java.net.URI; import java.net.URL; import java.net.MalformedURLException; @@ -234,6 +235,7 @@ public class File * @throws NullPointerException * If the pathname argument is null */ + @ConstructorProperties("path") public File(String pathname) { if (pathname == null) { throw new NullPointerException(); diff --git a/jdk/test/java/beans/XMLEncoder/java_io_File.java b/jdk/test/java/beans/XMLEncoder/java_io_File.java new file mode 100644 index 00000000000..282949b0151 --- /dev/null +++ b/jdk/test/java/beans/XMLEncoder/java_io_File.java @@ -0,0 +1,47 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code 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 + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/* + * @test + * @bug 6708550 + * @summary Tests File encoding + * @author Sergey Malenkov + */ + +import java.io.File; + +public final class java_io_File extends AbstractTest { + public static void main(String[] args) { + new java_io_File().test(true); + } + + @Override + protected File getObject() { + return new File("test.txt"); // NON-NLS: local file + } + + @Override + protected File getAnotherObject() { + return new File("/pub/demo/"); // NON-NLS: path + } +} From 0bad93b9d7e9e823664938d9d58706df3e4687c4 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Fri, 20 Jun 2008 08:44:54 -0700 Subject: [PATCH 30/41] Added tag jdk7-b29 for changeset c7154bfdcf4b --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index bbf97faa096..fe5a0b6f19d 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -3,3 +3,4 @@ cbc8ad9dd0e085a607427ea35411990982f19a36 jdk7-b25 9410f77cc30c604d1caf7c9fe3a57fa19e1acbe8 jdk7-b26 11b4dc9f2be3523ef989a0db8459eb56b3045c3a jdk7-b27 56652b46f328937f6b9b5130f1e4cd80f48868ef jdk7-b28 +31e08f70e88d77c2053f91c21b49a04296bdc59a jdk7-b29 From ec4388fe50c536bb2d6b9d9be601562b9e35258e Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Fri, 20 Jun 2008 08:44:55 -0700 Subject: [PATCH 31/41] Added tag jdk7-b29 for changeset 2adceccb860a --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 2942dede1fd..bf082285970 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -3,3 +3,4 @@ 0043eb3d4e628f049ff80a8c223b5657136085e7 jdk7-b26 e84e9018bebbf3e5bafc5706e7882a15cb1c7d99 jdk7-b27 27509b7d21ed783b3f6eb7b7612781c675a30c2f jdk7-b28 +8b71960f79ce0a6fb8ddfeec03f03d400a361747 jdk7-b29 From 915e0d1ee44ae83a4e5a016e9ce36901b9feb297 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Fri, 20 Jun 2008 08:44:58 -0700 Subject: [PATCH 32/41] Added tag jdk7-b29 for changeset 3c247f90db8c --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index f3f5a30f0fa..5d199e5d98c 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -3,3 +3,4 @@ a61af66fc99eb5ec9d50c05b0c599757b1289ceb jdk7-b24 ad0b851458ff9d1d490ed2d79bb84f75a9fdb753 jdk7-b26 e3d2692f8442e2d951166dc9bd9a330684754438 jdk7-b27 c14dab40ed9bf45ad21150bd70c9c80cdf655415 jdk7-b28 +4f91c08b3e4498213a9c5a24898f7d9c38cf86fb jdk7-b29 From 678dc33225c8f094ac2c2cfe6f1447f86bd66bda Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Fri, 20 Jun 2008 08:45:02 -0700 Subject: [PATCH 33/41] Added tag jdk7-b29 for changeset 0a9d30ac11e8 --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index f11ec4da38c..73dafe85d29 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -3,3 +3,4 @@ a3b3ba7d6034dc754b51ddc3d281399ac1cae5f1 jdk7-b25 da43cb85fac1646d6f97e4a35e510bbfdff97bdb jdk7-b26 bafed478d67c3acf7744aaad88b9404261ea6739 jdk7-b27 b996318955c0ad8e9fa0ffb56c74f626786e863f jdk7-b28 +617ee8607cfd5fd81f233f3c0b690f85084687a0 jdk7-b29 From 795c6f101237af909ccf40273acb506b2ac05466 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Fri, 20 Jun 2008 08:45:03 -0700 Subject: [PATCH 34/41] Added tag jdk7-b29 for changeset ffdeab0ba9fb --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index f1d947ecc41..7e2548c5fa5 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -3,3 +3,4 @@ debd37e1a422e580edb086c95d6e89199133a39c jdk7-b26 27d8f42862c11b4ddc4af2dd2d2a3cd86cda04c2 jdk7-b27 eefcd5204500a11d6aa802dca9f961cf10ab64c2 jdk7-b28 +836c55713abab186e4de0c6eabd06ff008c7b8d0 jdk7-b29 From fe4c7083aab3a6336eb012067f244d5b3fbed908 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Fri, 20 Jun 2008 08:45:07 -0700 Subject: [PATCH 35/41] Added tag jdk7-b29 for changeset 53d8346cf189 --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index 940e5c1079d..dc6a5d69623 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -3,3 +3,4 @@ fb57027902e04ecafceae31a605e69b436c23d57 jdk7-b26 3e599d98875ddf919c8ea11cff9b3a99ba631a9b jdk7-b27 02e4c5348592a8d7fc2cba28bc5f8e35c0e17277 jdk7-b28 +e21f4266466cd1306b176aaa08b2cd8337a9be3d jdk7-b29 From 47cc716f012c4d9aacec8c00a6489dffd6dc532c Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Wed, 2 Jul 2008 12:55:04 -0700 Subject: [PATCH 36/41] 6719955: Update copyright year Update copyright year for files that have been modified in 2008 Reviewed-by: ohair, tbell --- Makefile | 2 +- make/Defs-internal.gmk | 2 +- make/jdk-rules.gmk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index d5b3ebac73a..24cd12282e2 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1995-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/make/Defs-internal.gmk b/make/Defs-internal.gmk index 8656ffa1c20..bd0ecb7bb5b 100644 --- a/make/Defs-internal.gmk +++ b/make/Defs-internal.gmk @@ -1,5 +1,5 @@ # -# Copyright 1995-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1995-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/make/jdk-rules.gmk b/make/jdk-rules.gmk index f5e4533cd07..821f5d739c6 100644 --- a/make/jdk-rules.gmk +++ b/make/jdk-rules.gmk @@ -1,5 +1,5 @@ # -# Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it From c9dfb8b1bfeba1649745f5b39df39c1cfda9e18b Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Wed, 2 Jul 2008 12:55:05 -0700 Subject: [PATCH 37/41] 6719955: Update copyright year Update copyright year for files that have been modified in 2008 Reviewed-by: ohair, tbell --- corba/make/common/shared/Compiler-sun.gmk | 2 +- corba/make/common/shared/Defs.gmk | 2 +- corba/make/jprt.config | 2 +- corba/src/share/classes/org/omg/CORBA/ir.idl | 2 +- corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/corba/make/common/shared/Compiler-sun.gmk b/corba/make/common/shared/Compiler-sun.gmk index 579e17b4ac5..730310201c6 100644 --- a/corba/make/common/shared/Compiler-sun.gmk +++ b/corba/make/common/shared/Compiler-sun.gmk @@ -1,5 +1,5 @@ # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/corba/make/common/shared/Defs.gmk b/corba/make/common/shared/Defs.gmk index c7832863e34..5af64523ff7 100644 --- a/corba/make/common/shared/Defs.gmk +++ b/corba/make/common/shared/Defs.gmk @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/corba/make/jprt.config b/corba/make/jprt.config index 0e83e86d33d..86e6499a156 100644 --- a/corba/make/jprt.config +++ b/corba/make/jprt.config @@ -1,7 +1,7 @@ #!echo "This is not a shell script" ############################################################################# # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/corba/src/share/classes/org/omg/CORBA/ir.idl b/corba/src/share/classes/org/omg/CORBA/ir.idl index 5ea8a1979dd..d7312f993a1 100644 --- a/corba/src/share/classes/org/omg/CORBA/ir.idl +++ b/corba/src/share/classes/org/omg/CORBA/ir.idl @@ -1,5 +1,5 @@ /* - * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl b/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl index b0149c3e256..2d21393963e 100644 --- a/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl +++ b/corba/src/share/classes/org/omg/DynamicAny/DynamicAny.idl @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it From c96a95c4b8d1303780c3c9e4e664d233ccde5b19 Mon Sep 17 00:00:00 2001 From: Xiomara Jayasena Date: Wed, 2 Jul 2008 12:55:16 -0700 Subject: [PATCH 38/41] 6719955: Update copyright year Update copyright year for files that have been modified in 2008 Reviewed-by: ohair, tbell --- hotspot/agent/make/Makefile | 2 +- hotspot/agent/src/os/linux/ps_core.c | 2 +- hotspot/agent/src/os/linux/ps_proc.c | 2 +- .../src/share/classes/sun/jvm/hotspot/CommandProcessor.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java | 2 +- .../src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java | 2 +- .../src/share/classes/sun/jvm/hotspot/SALauncherLoader.java | 2 +- .../agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java | 2 +- .../src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java | 2 +- .../src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java | 2 +- .../share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java | 2 +- .../src/share/classes/sun/jvm/hotspot/debugger/Address.java | 2 +- .../src/share/classes/sun/jvm/hotspot/debugger/Debugger.java | 2 +- .../share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java | 2 +- .../src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java | 2 +- .../classes/sun/jvm/hotspot/debugger/MachineDescription.java | 2 +- .../sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java | 2 +- .../sun/jvm/hotspot/debugger/MachineDescriptionIA64.java | 2 +- .../sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java | 2 +- .../sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java | 2 +- .../sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java | 2 +- .../share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java | 2 +- .../share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java | 2 +- .../classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java | 2 +- .../classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java | 2 +- .../classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java | 2 +- .../classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java | 2 +- .../sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java | 2 +- .../classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java | 2 +- .../classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java | 2 +- .../sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java | 2 +- .../classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java | 2 +- .../classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java | 2 +- .../sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java | 2 +- .../sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java | 2 +- .../classes/sun/jvm/hotspot/debugger/win32/Win32Address.java | 2 +- .../classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java | 2 +- .../sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java | 2 +- .../classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java | 2 +- .../classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java | 2 +- .../sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java | 2 +- .../src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java | 2 +- .../classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java | 2 +- .../sun/jvm/hotspot/memory/CompactibleFreeListSpace.java | 2 +- .../share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java | 2 +- .../src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java | 2 +- .../src/share/classes/sun/jvm/hotspot/memory/FreeList.java | 2 +- .../share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java | 2 +- .../share/classes/sun/jvm/hotspot/memory/SystemDictionary.java | 2 +- .../src/share/classes/sun/jvm/hotspot/memory/Universe.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java | 2 +- .../share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java | 2 +- .../classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java | 2 +- .../share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java | 2 +- .../share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java | 2 +- .../agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Mark.java | 2 +- .../agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java | 2 +- .../classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java | 2 +- .../src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java | 2 +- .../share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java | 2 +- .../agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java | 2 +- .../agent/src/share/classes/sun/jvm/hotspot/types/Field.java | 2 +- hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Type.java | 2 +- .../share/classes/sun/jvm/hotspot/types/basic/BasicField.java | 2 +- .../classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java | 2 +- .../classes/sun/jvm/hotspot/types/basic/BasicOopField.java | 2 +- .../share/classes/sun/jvm/hotspot/types/basic/BasicType.java | 2 +- .../classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java | 2 +- .../share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java | 2 +- .../share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java | 2 +- .../share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java | 2 +- .../src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java | 2 +- .../classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java | 2 +- .../src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java | 2 +- .../classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java | 2 +- .../share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java | 2 +- .../sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java | 2 +- .../classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java | 2 +- .../classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java | 2 +- .../sun/jvm/hotspot/utilities/RobustOopDeterminator.java | 2 +- hotspot/make/Makefile | 2 +- hotspot/make/defs.make | 2 +- hotspot/make/hotspot_distro | 2 +- hotspot/make/hotspot_version | 2 +- hotspot/make/jprt.config | 2 +- hotspot/make/jprt.properties | 2 +- hotspot/make/linux/Makefile | 2 +- hotspot/make/linux/build.sh | 2 +- hotspot/make/linux/makefiles/adjust-mflags.sh | 2 +- hotspot/make/linux/makefiles/adlc.make | 2 +- hotspot/make/linux/makefiles/amd64.make | 2 +- hotspot/make/linux/makefiles/buildtree.make | 2 +- hotspot/make/linux/makefiles/compiler1.make | 2 +- hotspot/make/linux/makefiles/compiler2.make | 2 +- hotspot/make/linux/makefiles/core.make | 2 +- hotspot/make/linux/makefiles/cscope.make | 2 +- hotspot/make/linux/makefiles/debug.make | 2 +- hotspot/make/linux/makefiles/defs.make | 2 +- hotspot/make/linux/makefiles/dtrace.make | 2 +- hotspot/make/linux/makefiles/fastdebug.make | 2 +- hotspot/make/linux/makefiles/gcc.make | 2 +- hotspot/make/linux/makefiles/hp.make | 2 +- hotspot/make/linux/makefiles/hp1.make | 2 +- hotspot/make/linux/makefiles/i486.make | 2 +- hotspot/make/linux/makefiles/ia64.make | 2 +- hotspot/make/linux/makefiles/jsig.make | 2 +- hotspot/make/linux/makefiles/jvmg.make | 2 +- hotspot/make/linux/makefiles/jvmti.make | 2 +- hotspot/make/linux/makefiles/launcher.make | 2 +- hotspot/make/linux/makefiles/makedeps.make | 2 +- hotspot/make/linux/makefiles/mapfile-vers-debug | 2 +- hotspot/make/linux/makefiles/mapfile-vers-jsig | 2 +- hotspot/make/linux/makefiles/mapfile-vers-product | 2 +- hotspot/make/linux/makefiles/optimized.make | 2 +- hotspot/make/linux/makefiles/product.make | 2 +- hotspot/make/linux/makefiles/profiled.make | 2 +- hotspot/make/linux/makefiles/rules.make | 2 +- hotspot/make/linux/makefiles/sa.make | 2 +- hotspot/make/linux/makefiles/saproc.make | 2 +- hotspot/make/linux/makefiles/sparc.make | 2 +- hotspot/make/linux/makefiles/sparcWorks.make | 2 +- hotspot/make/linux/makefiles/sparcv9.make | 2 +- hotspot/make/linux/makefiles/tiered.make | 2 +- hotspot/make/linux/makefiles/top.make | 2 +- hotspot/make/linux/makefiles/vm.make | 2 +- hotspot/make/openjdk_distro | 2 +- hotspot/make/sa.files | 2 +- hotspot/make/solaris/Makefile | 2 +- hotspot/make/solaris/build.sh | 2 +- hotspot/make/solaris/makefiles/adjust-mflags.sh | 2 +- hotspot/make/solaris/makefiles/adlc.make | 2 +- hotspot/make/solaris/makefiles/amd64.make | 2 +- hotspot/make/solaris/makefiles/buildtree.make | 2 +- hotspot/make/solaris/makefiles/compiler1.make | 2 +- hotspot/make/solaris/makefiles/compiler2.make | 2 +- hotspot/make/solaris/makefiles/core.make | 2 +- hotspot/make/solaris/makefiles/cscope.make | 2 +- hotspot/make/solaris/makefiles/debug.make | 2 +- hotspot/make/solaris/makefiles/defs.make | 2 +- hotspot/make/solaris/makefiles/dtrace.make | 2 +- hotspot/make/solaris/makefiles/fastdebug.make | 2 +- hotspot/make/solaris/makefiles/gcc.make | 2 +- hotspot/make/solaris/makefiles/hp.make | 2 +- hotspot/make/solaris/makefiles/hp1.make | 2 +- hotspot/make/solaris/makefiles/i486.make | 2 +- hotspot/make/solaris/makefiles/jsig.make | 2 +- hotspot/make/solaris/makefiles/jvmg.make | 2 +- hotspot/make/solaris/makefiles/jvmti.make | 2 +- hotspot/make/solaris/makefiles/launcher.make | 2 +- hotspot/make/solaris/makefiles/makedeps.make | 2 +- hotspot/make/solaris/makefiles/mapfile-vers | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-COMPILER1 | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-COMPILER2 | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-CORE | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-TIERED | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-debug | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-jsig | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-jvm_db | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-jvm_dtrace | 2 +- hotspot/make/solaris/makefiles/mapfile-vers-nonproduct | 2 +- hotspot/make/solaris/makefiles/optimized.make | 2 +- hotspot/make/solaris/makefiles/product.make | 2 +- hotspot/make/solaris/makefiles/profiled.make | 2 +- hotspot/make/solaris/makefiles/rules.make | 2 +- hotspot/make/solaris/makefiles/sa.make | 2 +- hotspot/make/solaris/makefiles/saproc.make | 2 +- hotspot/make/solaris/makefiles/sparc.make | 2 +- hotspot/make/solaris/makefiles/sparcWorks.make | 2 +- hotspot/make/solaris/makefiles/sparcv9.make | 2 +- hotspot/make/solaris/makefiles/tiered.make | 2 +- hotspot/make/solaris/makefiles/top.make | 2 +- hotspot/make/solaris/makefiles/vm.make | 2 +- hotspot/make/solaris/reorder.sh | 2 +- hotspot/make/test/Queens.java | 2 +- hotspot/make/windows/build.bat | 2 +- hotspot/make/windows/build.make | 2 +- hotspot/make/windows/build_vm_def.sh | 2 +- hotspot/make/windows/create.bat | 2 +- hotspot/make/windows/cross_build.bat | 2 +- hotspot/make/windows/get_msc_ver.sh | 2 +- hotspot/make/windows/makefiles/adlc.make | 2 +- hotspot/make/windows/makefiles/compile.make | 2 +- hotspot/make/windows/makefiles/debug.make | 2 +- hotspot/make/windows/makefiles/defs.make | 2 +- hotspot/make/windows/makefiles/fastdebug.make | 2 +- hotspot/make/windows/makefiles/generated.make | 2 +- hotspot/make/windows/makefiles/jvmti.make | 2 +- hotspot/make/windows/makefiles/makedeps.make | 2 +- hotspot/make/windows/makefiles/product.make | 2 +- hotspot/make/windows/makefiles/rules.make | 2 +- hotspot/make/windows/makefiles/sa.make | 2 +- hotspot/make/windows/makefiles/sanity.make | 2 +- hotspot/make/windows/makefiles/shared.make | 2 +- hotspot/make/windows/makefiles/top.make | 2 +- hotspot/make/windows/makefiles/vm.make | 2 +- hotspot/make/windows/projectfiles/common/Makefile | 2 +- hotspot/make/windows/projectfiles/compiler1/Makefile | 2 +- hotspot/make/windows/projectfiles/compiler2/Makefile | 2 +- hotspot/make/windows/projectfiles/core/Makefile | 2 +- hotspot/make/windows/projectfiles/tiered/Makefile | 2 +- hotspot/src/cpu/sparc/vm/assembler_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/assembler_sparc.hpp | 2 +- hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp | 2 +- hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/copy_sparc.hpp | 2 +- hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/frame_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp | 2 +- hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp | 2 +- hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/sparc.ad | 2 +- hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp | 2 +- hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp | 2 +- hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp | 2 +- hotspot/src/cpu/x86/vm/assembler_x86_32.cpp | 2 +- hotspot/src/cpu/x86/vm/assembler_x86_32.hpp | 2 +- hotspot/src/cpu/x86/vm/assembler_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/assembler_x86_64.hpp | 2 +- hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/frame_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/frame_x86.inline.hpp | 2 +- hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/nativeInst_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/nativeInst_x86.hpp | 2 +- hotspot/src/cpu/x86/vm/register_definitions_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/relocInfo_x86.cpp | 2 +- hotspot/src/cpu/x86/vm/relocInfo_x86.hpp | 2 +- hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp | 2 +- hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp | 2 +- hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp | 2 +- hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp | 2 +- hotspot/src/cpu/x86/vm/x86_32.ad | 2 +- hotspot/src/cpu/x86/vm/x86_64.ad | 2 +- hotspot/src/os/linux/vm/attachListener_linux.cpp | 2 +- hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp | 2 +- hotspot/src/os/linux/vm/os_linux.cpp | 2 +- hotspot/src/os/linux/vm/os_linux.hpp | 2 +- hotspot/src/os/linux/vm/os_linux.inline.hpp | 2 +- hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp | 2 +- hotspot/src/os/solaris/dtrace/jhelper.d | 2 +- hotspot/src/os/solaris/dtrace/libjvm_db.c | 2 +- hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp | 2 +- hotspot/src/os/solaris/vm/os_solaris.cpp | 2 +- hotspot/src/os/solaris/vm/os_solaris.hpp | 2 +- hotspot/src/os/solaris/vm/os_solaris.inline.hpp | 2 +- hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp | 2 +- hotspot/src/os/windows/vm/os_windows.cpp | 2 +- hotspot/src/os/windows/vm/os_windows.inline.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.ad | 2 +- hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.s | 2 +- .../os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp | 2 +- .../src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp | 2 +- hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp | 2 +- hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp | 2 +- hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp | 2 +- hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp | 2 +- hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp | 2 +- hotspot/src/os_cpu/solaris_sparc/vm/solaris_sparc.s | 2 +- hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp | 2 +- hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_32.cpp | 2 +- hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp | 2 +- hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp | 2 +- hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp | 2 +- hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp | 2 +- hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_64.cpp | 2 +- hotspot/src/share/vm/adlc/archDesc.cpp | 2 +- hotspot/src/share/vm/adlc/forms.cpp | 2 +- hotspot/src/share/vm/adlc/forms.hpp | 2 +- hotspot/src/share/vm/adlc/formssel.cpp | 2 +- hotspot/src/share/vm/adlc/output_c.cpp | 2 +- hotspot/src/share/vm/adlc/output_h.cpp | 2 +- hotspot/src/share/vm/asm/codeBuffer.cpp | 2 +- hotspot/src/share/vm/asm/codeBuffer.hpp | 2 +- hotspot/src/share/vm/c1/c1_LIR.cpp | 2 +- hotspot/src/share/vm/c1/c1_Runtime1.cpp | 2 +- hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp | 2 +- hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp | 2 +- hotspot/src/share/vm/ci/ciField.hpp | 2 +- hotspot/src/share/vm/ci/ciInstanceKlass.cpp | 2 +- hotspot/src/share/vm/ci/ciInstanceKlass.hpp | 2 +- hotspot/src/share/vm/ci/ciMethod.cpp | 2 +- hotspot/src/share/vm/ci/ciMethodBlocks.cpp | 2 +- hotspot/src/share/vm/ci/ciMethodBlocks.hpp | 2 +- hotspot/src/share/vm/ci/ciMethodData.cpp | 2 +- hotspot/src/share/vm/ci/ciMethodData.hpp | 2 +- hotspot/src/share/vm/ci/ciObjectFactory.cpp | 2 +- hotspot/src/share/vm/classfile/classFileParser.cpp | 2 +- hotspot/src/share/vm/classfile/dictionary.cpp | 2 +- hotspot/src/share/vm/classfile/javaClasses.cpp | 2 +- hotspot/src/share/vm/classfile/javaClasses.hpp | 2 +- hotspot/src/share/vm/classfile/systemDictionary.cpp | 2 +- hotspot/src/share/vm/classfile/systemDictionary.hpp | 2 +- hotspot/src/share/vm/classfile/verifier.cpp | 2 +- hotspot/src/share/vm/classfile/vmSymbols.cpp | 2 +- hotspot/src/share/vm/classfile/vmSymbols.hpp | 2 +- hotspot/src/share/vm/code/codeCache.hpp | 2 +- hotspot/src/share/vm/code/debugInfo.cpp | 2 +- hotspot/src/share/vm/code/dependencies.cpp | 2 +- hotspot/src/share/vm/code/nmethod.cpp | 2 +- hotspot/src/share/vm/code/nmethod.hpp | 2 +- hotspot/src/share/vm/code/scopeDesc.cpp | 2 +- hotspot/src/share/vm/code/vmreg.cpp | 2 +- hotspot/src/share/vm/code/vmreg.hpp | 2 +- hotspot/src/share/vm/compiler/oopMap.cpp | 2 +- hotspot/src/share/vm/compiler/oopMap.hpp | 2 +- .../concurrentMarkSweep/binaryTreeDictionary.cpp | 2 +- .../concurrentMarkSweep/binaryTreeDictionary.hpp | 2 +- .../concurrentMarkSweep/compactibleFreeListSpace.cpp | 2 +- .../concurrentMarkSweep/compactibleFreeListSpace.hpp | 2 +- .../concurrentMarkSweep/concurrentMarkSweepGeneration.cpp | 2 +- .../concurrentMarkSweep/concurrentMarkSweepGeneration.hpp | 2 +- .../concurrentMarkSweepGeneration.inline.hpp | 2 +- .../concurrentMarkSweep/freeBlockDictionary.hpp | 2 +- .../vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp | 2 +- .../vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp | 2 +- .../share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp | 2 +- .../share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp | 2 +- .../share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep | 2 +- .../share/vm/gc_implementation/includeDB_gc_parallelScavenge | 2 +- hotspot/src/share/vm/gc_implementation/includeDB_gc_shared | 2 +- .../share/vm/gc_implementation/parNew/asParNewGeneration.cpp | 2 +- .../src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp | 2 +- .../src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp | 2 +- .../src/share/vm/gc_implementation/parNew/parNewGeneration.cpp | 2 +- .../src/share/vm/gc_implementation/parNew/parNewGeneration.hpp | 2 +- .../vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp | 2 +- .../gc_implementation/parallelScavenge/cardTableExtension.cpp | 2 +- .../gc_implementation/parallelScavenge/cardTableExtension.hpp | 2 +- .../vm/gc_implementation/parallelScavenge/generationSizer.hpp | 2 +- .../vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp | 2 +- .../gc_implementation/parallelScavenge/parallelScavengeHeap.cpp | 2 +- .../gc_implementation/parallelScavenge/parallelScavengeHeap.hpp | 2 +- .../src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp | 2 +- .../vm/gc_implementation/parallelScavenge/prefetchQueue.hpp | 2 +- .../gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp | 2 +- .../vm/gc_implementation/parallelScavenge/psParallelCompact.cpp | 2 +- .../vm/gc_implementation/parallelScavenge/psParallelCompact.hpp | 2 +- .../vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp | 2 +- .../vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp | 2 +- .../gc_implementation/parallelScavenge/psPromotionManager.cpp | 2 +- .../gc_implementation/parallelScavenge/psPromotionManager.hpp | 2 +- .../parallelScavenge/psPromotionManager.inline.hpp | 2 +- .../share/vm/gc_implementation/parallelScavenge/psScavenge.cpp | 2 +- .../share/vm/gc_implementation/parallelScavenge/psScavenge.hpp | 2 +- .../vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp | 2 +- .../src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp | 2 +- .../share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp | 2 +- .../src/share/vm/gc_implementation/shared/allocationStats.cpp | 2 +- .../src/share/vm/gc_implementation/shared/allocationStats.hpp | 2 +- .../src/share/vm/gc_implementation/shared/immutableSpace.cpp | 2 +- .../src/share/vm/gc_implementation/shared/immutableSpace.hpp | 2 +- hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp | 2 +- hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp | 2 +- .../src/share/vm/gc_implementation/shared/markSweep.inline.hpp | 2 +- .../src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp | 2 +- .../src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp | 2 +- hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp | 2 +- hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp | 2 +- .../src/share/vm/gc_implementation/shared/vmGCOperations.cpp | 2 +- .../src/share/vm/gc_implementation/shared/vmGCOperations.hpp | 2 +- hotspot/src/share/vm/gc_interface/collectedHeap.cpp | 2 +- hotspot/src/share/vm/gc_interface/collectedHeap.hpp | 2 +- hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp | 2 +- hotspot/src/share/vm/includeDB_compiler1 | 2 +- hotspot/src/share/vm/includeDB_compiler2 | 2 +- hotspot/src/share/vm/includeDB_core | 2 +- hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp | 2 +- .../src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml | 2 +- .../src/share/vm/interpreter/bytecodeInterpreterWithChecks.xsl | 2 +- hotspot/src/share/vm/interpreter/interpreterRuntime.hpp | 2 +- hotspot/src/share/vm/interpreter/oopMapCache.cpp | 2 +- hotspot/src/share/vm/memory/barrierSet.hpp | 2 +- hotspot/src/share/vm/memory/barrierSet.inline.hpp | 2 +- hotspot/src/share/vm/memory/cardTableModRefBS.cpp | 2 +- hotspot/src/share/vm/memory/cardTableModRefBS.hpp | 2 +- hotspot/src/share/vm/memory/cardTableRS.cpp | 2 +- hotspot/src/share/vm/memory/cardTableRS.hpp | 2 +- hotspot/src/share/vm/memory/collectorPolicy.cpp | 2 +- hotspot/src/share/vm/memory/collectorPolicy.hpp | 2 +- hotspot/src/share/vm/memory/compactingPermGenGen.cpp | 2 +- hotspot/src/share/vm/memory/defNewGeneration.cpp | 2 +- hotspot/src/share/vm/memory/defNewGeneration.hpp | 2 +- hotspot/src/share/vm/memory/defNewGeneration.inline.hpp | 2 +- hotspot/src/share/vm/memory/dump.cpp | 2 +- hotspot/src/share/vm/memory/gcLocker.cpp | 2 +- hotspot/src/share/vm/memory/gcLocker.hpp | 2 +- hotspot/src/share/vm/memory/genCollectedHeap.cpp | 2 +- hotspot/src/share/vm/memory/genCollectedHeap.hpp | 2 +- hotspot/src/share/vm/memory/genMarkSweep.cpp | 2 +- hotspot/src/share/vm/memory/genOopClosures.hpp | 2 +- hotspot/src/share/vm/memory/genOopClosures.inline.hpp | 2 +- hotspot/src/share/vm/memory/genRemSet.hpp | 2 +- hotspot/src/share/vm/memory/genRemSet.inline.hpp | 2 +- hotspot/src/share/vm/memory/generation.cpp | 2 +- hotspot/src/share/vm/memory/generation.hpp | 2 +- hotspot/src/share/vm/memory/heap.cpp | 2 +- hotspot/src/share/vm/memory/heapInspection.cpp | 2 +- hotspot/src/share/vm/memory/heapInspection.hpp | 2 +- hotspot/src/share/vm/memory/iterator.hpp | 2 +- hotspot/src/share/vm/memory/modRefBarrierSet.hpp | 2 +- hotspot/src/share/vm/memory/permGen.cpp | 2 +- hotspot/src/share/vm/memory/permGen.hpp | 2 +- hotspot/src/share/vm/memory/referenceProcessor.cpp | 2 +- hotspot/src/share/vm/memory/referenceProcessor.hpp | 2 +- hotspot/src/share/vm/memory/restore.cpp | 2 +- hotspot/src/share/vm/memory/serialize.cpp | 2 +- hotspot/src/share/vm/memory/sharedHeap.cpp | 2 +- hotspot/src/share/vm/memory/space.cpp | 2 +- hotspot/src/share/vm/memory/space.hpp | 2 +- hotspot/src/share/vm/memory/tenuredGeneration.cpp | 2 +- hotspot/src/share/vm/memory/universe.cpp | 2 +- hotspot/src/share/vm/memory/universe.hpp | 2 +- hotspot/src/share/vm/oops/arrayOop.hpp | 2 +- hotspot/src/share/vm/oops/constantPoolKlass.cpp | 2 +- hotspot/src/share/vm/oops/constantPoolKlass.hpp | 2 +- hotspot/src/share/vm/oops/constantPoolOop.hpp | 2 +- hotspot/src/share/vm/oops/cpCacheKlass.cpp | 2 +- hotspot/src/share/vm/oops/cpCacheKlass.hpp | 2 +- hotspot/src/share/vm/oops/cpCacheOop.cpp | 2 +- hotspot/src/share/vm/oops/cpCacheOop.hpp | 2 +- hotspot/src/share/vm/oops/instanceKlass.cpp | 2 +- hotspot/src/share/vm/oops/instanceKlass.hpp | 2 +- hotspot/src/share/vm/oops/instanceKlassKlass.cpp | 2 +- hotspot/src/share/vm/oops/instanceOop.hpp | 2 +- hotspot/src/share/vm/oops/instanceRefKlass.cpp | 2 +- hotspot/src/share/vm/oops/klass.cpp | 2 +- hotspot/src/share/vm/oops/klass.hpp | 2 +- hotspot/src/share/vm/oops/klassVtable.cpp | 2 +- hotspot/src/share/vm/oops/markOop.cpp | 2 +- hotspot/src/share/vm/oops/markOop.hpp | 2 +- hotspot/src/share/vm/oops/methodDataKlass.cpp | 2 +- hotspot/src/share/vm/oops/methodDataOop.cpp | 2 +- hotspot/src/share/vm/oops/methodDataOop.hpp | 2 +- hotspot/src/share/vm/oops/methodOop.cpp | 2 +- hotspot/src/share/vm/oops/methodOop.hpp | 2 +- hotspot/src/share/vm/oops/objArrayKlass.cpp | 2 +- hotspot/src/share/vm/oops/objArrayKlass.hpp | 2 +- hotspot/src/share/vm/oops/objArrayOop.cpp | 2 +- hotspot/src/share/vm/oops/objArrayOop.hpp | 2 +- hotspot/src/share/vm/oops/oop.cpp | 2 +- hotspot/src/share/vm/oops/oop.hpp | 2 +- hotspot/src/share/vm/oops/oop.inline.hpp | 2 +- hotspot/src/share/vm/oops/oop.pcgc.inline.hpp | 2 +- hotspot/src/share/vm/oops/oopsHierarchy.hpp | 2 +- hotspot/src/share/vm/opto/addnode.cpp | 2 +- hotspot/src/share/vm/opto/buildOopMap.cpp | 2 +- hotspot/src/share/vm/opto/bytecodeInfo.cpp | 2 +- hotspot/src/share/vm/opto/c2_globals.hpp | 2 +- hotspot/src/share/vm/opto/c2compiler.cpp | 2 +- hotspot/src/share/vm/opto/c2compiler.hpp | 2 +- hotspot/src/share/vm/opto/callnode.cpp | 2 +- hotspot/src/share/vm/opto/callnode.hpp | 2 +- hotspot/src/share/vm/opto/cfgnode.cpp | 2 +- hotspot/src/share/vm/opto/cfgnode.hpp | 2 +- hotspot/src/share/vm/opto/chaitin.cpp | 2 +- hotspot/src/share/vm/opto/chaitin.hpp | 2 +- hotspot/src/share/vm/opto/classes.hpp | 2 +- hotspot/src/share/vm/opto/compile.cpp | 2 +- hotspot/src/share/vm/opto/compile.hpp | 2 +- hotspot/src/share/vm/opto/connode.cpp | 2 +- hotspot/src/share/vm/opto/connode.hpp | 2 +- hotspot/src/share/vm/opto/divnode.cpp | 2 +- hotspot/src/share/vm/opto/doCall.cpp | 2 +- hotspot/src/share/vm/opto/escape.cpp | 2 +- hotspot/src/share/vm/opto/escape.hpp | 2 +- hotspot/src/share/vm/opto/gcm.cpp | 2 +- hotspot/src/share/vm/opto/graphKit.cpp | 2 +- hotspot/src/share/vm/opto/idealKit.cpp | 2 +- hotspot/src/share/vm/opto/lcm.cpp | 2 +- hotspot/src/share/vm/opto/library_call.cpp | 2 +- hotspot/src/share/vm/opto/locknode.cpp | 2 +- hotspot/src/share/vm/opto/locknode.hpp | 2 +- hotspot/src/share/vm/opto/loopTransform.cpp | 2 +- hotspot/src/share/vm/opto/loopUnswitch.cpp | 2 +- hotspot/src/share/vm/opto/loopnode.cpp | 2 +- hotspot/src/share/vm/opto/loopnode.hpp | 2 +- hotspot/src/share/vm/opto/loopopts.cpp | 2 +- hotspot/src/share/vm/opto/machnode.cpp | 2 +- hotspot/src/share/vm/opto/macro.cpp | 2 +- hotspot/src/share/vm/opto/macro.hpp | 2 +- hotspot/src/share/vm/opto/matcher.cpp | 2 +- hotspot/src/share/vm/opto/matcher.hpp | 2 +- hotspot/src/share/vm/opto/memnode.cpp | 2 +- hotspot/src/share/vm/opto/memnode.hpp | 2 +- hotspot/src/share/vm/opto/mulnode.cpp | 2 +- hotspot/src/share/vm/opto/mulnode.hpp | 2 +- hotspot/src/share/vm/opto/multnode.hpp | 2 +- hotspot/src/share/vm/opto/node.cpp | 2 +- hotspot/src/share/vm/opto/node.hpp | 2 +- hotspot/src/share/vm/opto/opcodes.cpp | 2 +- hotspot/src/share/vm/opto/opcodes.hpp | 2 +- hotspot/src/share/vm/opto/output.cpp | 2 +- hotspot/src/share/vm/opto/parse.hpp | 2 +- hotspot/src/share/vm/opto/parse1.cpp | 2 +- hotspot/src/share/vm/opto/parse2.cpp | 2 +- hotspot/src/share/vm/opto/parse3.cpp | 2 +- hotspot/src/share/vm/opto/parseHelper.cpp | 2 +- hotspot/src/share/vm/opto/phaseX.cpp | 2 +- hotspot/src/share/vm/opto/phaseX.hpp | 2 +- hotspot/src/share/vm/opto/postaloc.cpp | 2 +- hotspot/src/share/vm/opto/subnode.cpp | 2 +- hotspot/src/share/vm/opto/subnode.hpp | 2 +- hotspot/src/share/vm/opto/superword.cpp | 2 +- hotspot/src/share/vm/opto/type.cpp | 2 +- hotspot/src/share/vm/opto/type.hpp | 2 +- hotspot/src/share/vm/opto/vectornode.cpp | 2 +- hotspot/src/share/vm/opto/vectornode.hpp | 2 +- hotspot/src/share/vm/prims/forte.cpp | 2 +- hotspot/src/share/vm/prims/jni.cpp | 2 +- hotspot/src/share/vm/prims/jvm.cpp | 2 +- hotspot/src/share/vm/prims/jvm.h | 2 +- hotspot/src/share/vm/prims/jvmtiRedefineClassesTrace.hpp | 2 +- hotspot/src/share/vm/prims/jvmtiTagMap.cpp | 2 +- hotspot/src/share/vm/prims/unsafe.cpp | 2 +- hotspot/src/share/vm/runtime/arguments.cpp | 2 +- hotspot/src/share/vm/runtime/arguments.hpp | 2 +- hotspot/src/share/vm/runtime/atomic.cpp | 2 +- hotspot/src/share/vm/runtime/atomic.hpp | 2 +- hotspot/src/share/vm/runtime/biasedLocking.cpp | 2 +- hotspot/src/share/vm/runtime/deoptimization.cpp | 2 +- hotspot/src/share/vm/runtime/deoptimization.hpp | 2 +- hotspot/src/share/vm/runtime/dtraceJSDT.cpp | 2 +- hotspot/src/share/vm/runtime/dtraceJSDT.hpp | 2 +- hotspot/src/share/vm/runtime/fprofiler.cpp | 2 +- hotspot/src/share/vm/runtime/fprofiler.hpp | 2 +- hotspot/src/share/vm/runtime/frame.cpp | 2 +- hotspot/src/share/vm/runtime/frame.hpp | 2 +- hotspot/src/share/vm/runtime/globals.cpp | 2 +- hotspot/src/share/vm/runtime/globals.hpp | 2 +- hotspot/src/share/vm/runtime/globals_extension.hpp | 2 +- hotspot/src/share/vm/runtime/hpi.cpp | 2 +- hotspot/src/share/vm/runtime/init.cpp | 2 +- hotspot/src/share/vm/runtime/java.cpp | 2 +- hotspot/src/share/vm/runtime/java.hpp | 2 +- hotspot/src/share/vm/runtime/jniHandles.cpp | 2 +- hotspot/src/share/vm/runtime/mutex.cpp | 2 +- hotspot/src/share/vm/runtime/mutex.hpp | 2 +- hotspot/src/share/vm/runtime/mutexLocker.cpp | 2 +- hotspot/src/share/vm/runtime/mutexLocker.hpp | 2 +- hotspot/src/share/vm/runtime/os.cpp | 2 +- hotspot/src/share/vm/runtime/os.hpp | 2 +- hotspot/src/share/vm/runtime/reflection.cpp | 2 +- hotspot/src/share/vm/runtime/sharedRuntime.cpp | 2 +- hotspot/src/share/vm/runtime/sharedRuntime.hpp | 2 +- hotspot/src/share/vm/runtime/stubCodeGenerator.cpp | 2 +- hotspot/src/share/vm/runtime/task.cpp | 2 +- hotspot/src/share/vm/runtime/task.hpp | 2 +- hotspot/src/share/vm/runtime/thread.cpp | 2 +- hotspot/src/share/vm/runtime/vframe.cpp | 2 +- hotspot/src/share/vm/runtime/vframe.hpp | 2 +- hotspot/src/share/vm/runtime/vframe_hp.cpp | 2 +- hotspot/src/share/vm/runtime/vmStructs.cpp | 2 +- hotspot/src/share/vm/runtime/vm_operations.hpp | 2 +- hotspot/src/share/vm/runtime/vm_version.cpp | 2 +- hotspot/src/share/vm/runtime/vm_version.hpp | 2 +- hotspot/src/share/vm/services/heapDumper.cpp | 2 +- hotspot/src/share/vm/services/threadService.cpp | 2 +- hotspot/src/share/vm/utilities/copy.hpp | 2 +- hotspot/src/share/vm/utilities/debug.cpp | 2 +- hotspot/src/share/vm/utilities/globalDefinitions.cpp | 2 +- hotspot/src/share/vm/utilities/globalDefinitions.hpp | 2 +- hotspot/src/share/vm/utilities/globalDefinitions_sparcWorks.hpp | 2 +- hotspot/src/share/vm/utilities/ostream.cpp | 2 +- hotspot/src/share/vm/utilities/ostream.hpp | 2 +- hotspot/src/share/vm/utilities/taskqueue.hpp | 2 +- hotspot/src/share/vm/utilities/vmError.cpp | 2 +- hotspot/test/compiler/6659207/Test.java | 2 +- hotspot/test/compiler/6661247/Test.java | 2 +- hotspot/test/compiler/6663621/IVTest.java | 2 +- 606 files changed, 606 insertions(+), 606 deletions(-) diff --git a/hotspot/agent/make/Makefile b/hotspot/agent/make/Makefile index 3add90a8bfa..ae10cb3cb97 100644 --- a/hotspot/agent/make/Makefile +++ b/hotspot/agent/make/Makefile @@ -1,5 +1,5 @@ # -# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/os/linux/ps_core.c b/hotspot/agent/src/os/linux/ps_core.c index 0693ffce4bb..3562f2d31f6 100644 --- a/hotspot/agent/src/os/linux/ps_core.c +++ b/hotspot/agent/src/os/linux/ps_core.c @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/os/linux/ps_proc.c b/hotspot/agent/src/os/linux/ps_proc.c index 9b226eaf00b..d9c297e5fa3 100644 --- a/hotspot/agent/src/os/linux/ps_proc.c +++ b/hotspot/agent/src/os/linux/ps_proc.c @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java index 50e81f34789..bb3dba9ea33 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/CommandProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java index 14b2c66853b..8a2ef3c84c2 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HSDB.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java index 21bc43d77bf..5e56a0e3f36 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotTypeDataBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java index b703a6b1dea..9f462c67455 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/SALauncherLoader.java @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java index 2915cfbc2f5..e34c975f775 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/Main.java @@ -1,5 +1,5 @@ /* - * Copyright 2001-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java index 3d9c6bbe5d8..aa99e9a444e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java index 3b7e66b1777..ee382979626 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java index 612223667e4..98227008c58 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Address.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Address.java index 66996c4f9a7..1800dafc25c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Address.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Address.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Debugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Debugger.java index 3e85bb7635d..acbb90d4b66 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Debugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/Debugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java index 4bef7b0daae..7b4ca75f431 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/DebuggerBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2001-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java index c478d33d088..679036cdac0 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/JVMDebugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescription.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescription.java index 9498c2e25fb..87641775ac5 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescription.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescription.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java index 3dd6e513ead..3f16b1bb5d8 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAMD64.java @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java index 4099844799b..4f4322a1c6c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIA64.java @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java index e333b139fcd..25d786ab8f9 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionIntelX86.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java index 5e70d16d975..ab615fe7c7c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC32Bit.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java index 289f9ca8f2b..2eae1e0e77a 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionSPARC64Bit.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java index d0c039e41ba..e91e9240a96 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java index f73700c8e16..e34c1c12aa0 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java index 1501f2b07c5..13cda991a73 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dbx/DbxDebuggerLocal.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java index 5a3b4170859..0004b99d5d2 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/dummy/DummyAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java index 64577da7acd..34da90a4df2 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java index b3a062e82a8..f69c582db19 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java index 7f4159f4a47..fadd9ef1de4 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java index 17c75774dfe..843693a4822 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java index e17d2b422be..a792e9c6bc5 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java index 5b89e610595..662bbe35b41 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/proc/ProcDebuggerLocal.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java index 287f7cbbc2a..6575c2faf6d 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java index 6850195d4eb..179fc1e9d64 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java index 4be718ef6e2..c1464f3d98c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java index 922890fb9ea..cdc5c713619 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/remote/RemoteDebuggerServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java index 0afbcacfd63..d6400ebae7a 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Address.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java index 3c2558200bc..0b5d72c0709 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32Debugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java index 0380eb3b529..757ad00b350 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/win32/Win32DebuggerLocal.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java index 4a0d7f21cdb..89be5232e2f 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgAddress.java @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java index 03654377c6a..1ed40d26982 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebugger.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java index 687f45a4ebd..09a3685b382 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgDebuggerLocal.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java index 873b44406dd..02c1cff9a0e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/SAJDIClassLoader.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java index 167c5e57ecd..72f3006ea67 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java @@ -1,6 +1,6 @@ /* * @(#)BinaryTreeDictionary.java - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java index 5bc4cab190d..97ec593e187 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java index fe32060ca94..889833f0a9b 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/DefNewGeneration.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java index b4401a9f17f..42db3e3a856 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeChunk.java @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java index 8643840b74f..c982f2b5797 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java @@ -1,7 +1,7 @@ /* * @(#)FreeList.java * - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java index 2fe0ae35c74..d7742593b1f 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/LinearAllocBlock.java @@ -1,6 +1,6 @@ /* * @(#)BinaryTreeDictionary.java - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java index ce9aa9226fe..629d23c54bd 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/SystemDictionary.java @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java index 3b35ea6dbd0..d20dfae7445 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/Universe.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java index b04782d8eed..ddb1ceb00db 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Array.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java index 7d06c5cddde..236ab20822e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java index a7930e6466a..edb78eede11 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCache.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java index ce5d2bf4035..a476e5feb10 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolCacheKlass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java index a29285aa00f..7c9a630ed71 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPoolKlass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java index 0c5b933db9e..d66b0458858 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/DefaultOopVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java index 4d8bfbfc045..60f7670251d 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Instance.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java index ca95b6c56ed..d410818368c 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java index ec1313187ef..ea7bde624d8 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Klass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Mark.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Mark.java index 87737825b1b..1da069a9aa7 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Mark.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Mark.java @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java index 7ef6d8d820c..027c57ea5fe 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjArray.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java index 0aae96fcf42..cfd759a3902 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java index f263d49ffc3..58312c9c58e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogram.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java index 65117314f7e..d9518a3e788 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHistogramElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java index 2bdf7eab706..cfaed93567e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/Oop.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java index 0574343d207..d46c4dfe75e 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopPrinter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java index cbb432af59a..276753f7067 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopUtilities.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java index 9bb12a45701..7dc622b2d2b 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/OopVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java index f9c55318fb9..b8076837473 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/AddressVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java index ad07426313b..ec3077ae02d 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java index c6ab99073e7..e1ed4b97f2b 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Field.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Field.java index bfda1f18640..a4b98adaae2 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Field.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Field.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Type.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Type.java index b565d326d94..1e463987672 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Type.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/Type.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java index 10e2b7aa0aa..ecc46f1d3ff 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicField.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java index 77717bedcda..c4388c94297 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicFieldWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicOopField.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicOopField.java index 1886a4c5324..3b85996b472 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicOopField.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicOopField.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicType.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicType.java index 112ff722cb2..f72bb7ba635 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicType.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicType.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java index 5db97d60177..f50fb03c16f 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/types/basic/BasicTypeDataBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java index 6e7a088a753..c76fa142e93 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/AnnotatedMemoryPanel.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java index e3d7df94245..26167e67f9d 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/CommandProcessorPanel.java @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java index 47aea36121c..c037fc1bf38 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/DebuggerConsolePanel.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java index a3eae3bca8d..5dec6019ab0 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/FindInHeapPanel.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java index d62f0630bfb..7a8cfb6876b 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/HighPrecisionJScrollBar.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java index bc0da29a3e5..81d02573149 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/JFrameWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java index 6d66bb77d84..d9b8f5bbced 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java index dc8db25e684..1d3fff4abb2 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/ui/treetable/JTreeTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java index 0da5005f604..31880e8eab7 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java index 16226721865..bcd4f42ff94 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java index f5ca60a8e5c..3fde2fd3560 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/ReversePtrsAnalysis.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java index 2d6957f5812..255a98f6f08 100644 --- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java +++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/utilities/RobustOopDeterminator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/Makefile b/hotspot/make/Makefile index 2fc73534b4e..bd2744180ce 100644 --- a/hotspot/make/Makefile +++ b/hotspot/make/Makefile @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/defs.make b/hotspot/make/defs.make index 056d90c4846..5fe6b29dfe2 100644 --- a/hotspot/make/defs.make +++ b/hotspot/make/defs.make @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/hotspot_distro b/hotspot/make/hotspot_distro index 9b111a2b3ec..bae47300e58 100644 --- a/hotspot/make/hotspot_distro +++ b/hotspot/make/hotspot_distro @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All rights reserved. # SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. # diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index 9fab317c781..a31fa2587f3 100644 --- a/hotspot/make/hotspot_version +++ b/hotspot/make/hotspot_version @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/jprt.config b/hotspot/make/jprt.config index 4964914e062..dd9940763c2 100644 --- a/hotspot/make/jprt.config +++ b/hotspot/make/jprt.config @@ -1,6 +1,6 @@ #!echo "This is not a shell script" # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/jprt.properties b/hotspot/make/jprt.properties index e5c6856b255..459867eae08 100644 --- a/hotspot/make/jprt.properties +++ b/hotspot/make/jprt.properties @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/Makefile b/hotspot/make/linux/Makefile index 0e1ee65277a..21f2b3d7f5a 100644 --- a/hotspot/make/linux/Makefile +++ b/hotspot/make/linux/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/build.sh b/hotspot/make/linux/build.sh index 4239c6dcbe9..e317fddd4ae 100644 --- a/hotspot/make/linux/build.sh +++ b/hotspot/make/linux/build.sh @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright 1999-2001 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/adjust-mflags.sh b/hotspot/make/linux/makefiles/adjust-mflags.sh index 325e02d4fb1..169f86b6695 100644 --- a/hotspot/make/linux/makefiles/adjust-mflags.sh +++ b/hotspot/make/linux/makefiles/adjust-mflags.sh @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/adlc.make b/hotspot/make/linux/makefiles/adlc.make index 16e48c84ed5..5349f5bd323 100644 --- a/hotspot/make/linux/makefiles/adlc.make +++ b/hotspot/make/linux/makefiles/adlc.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/amd64.make b/hotspot/make/linux/makefiles/amd64.make index d69cce70b9a..fec7787ec64 100644 --- a/hotspot/make/linux/makefiles/amd64.make +++ b/hotspot/make/linux/makefiles/amd64.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/buildtree.make b/hotspot/make/linux/makefiles/buildtree.make index 54a30d2ad0a..100544ca14d 100644 --- a/hotspot/make/linux/makefiles/buildtree.make +++ b/hotspot/make/linux/makefiles/buildtree.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/compiler1.make b/hotspot/make/linux/makefiles/compiler1.make index 3573eccfac4..2fc8eb8a8e1 100644 --- a/hotspot/make/linux/makefiles/compiler1.make +++ b/hotspot/make/linux/makefiles/compiler1.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/compiler2.make b/hotspot/make/linux/makefiles/compiler2.make index 5ef2129ae5a..af1ec8476ca 100644 --- a/hotspot/make/linux/makefiles/compiler2.make +++ b/hotspot/make/linux/makefiles/compiler2.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/core.make b/hotspot/make/linux/makefiles/core.make index dbe2ee3a8e3..27b1aa7c36f 100644 --- a/hotspot/make/linux/makefiles/core.make +++ b/hotspot/make/linux/makefiles/core.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/cscope.make b/hotspot/make/linux/makefiles/cscope.make index 13ee5b65d0e..113d4f831af 100644 --- a/hotspot/make/linux/makefiles/cscope.make +++ b/hotspot/make/linux/makefiles/cscope.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/debug.make b/hotspot/make/linux/makefiles/debug.make index 75bb950891d..4743745228d 100644 --- a/hotspot/make/linux/makefiles/debug.make +++ b/hotspot/make/linux/makefiles/debug.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/defs.make b/hotspot/make/linux/makefiles/defs.make index 7a06eb51276..2925654e677 100644 --- a/hotspot/make/linux/makefiles/defs.make +++ b/hotspot/make/linux/makefiles/defs.make @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/dtrace.make b/hotspot/make/linux/makefiles/dtrace.make index ee02f7a7d7c..a46a6758598 100644 --- a/hotspot/make/linux/makefiles/dtrace.make +++ b/hotspot/make/linux/makefiles/dtrace.make @@ -1,5 +1,5 @@ # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/fastdebug.make b/hotspot/make/linux/makefiles/fastdebug.make index c7ae47ac966..740b7584364 100644 --- a/hotspot/make/linux/makefiles/fastdebug.make +++ b/hotspot/make/linux/makefiles/fastdebug.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/gcc.make b/hotspot/make/linux/makefiles/gcc.make index 66173061293..4134c1e34e1 100644 --- a/hotspot/make/linux/makefiles/gcc.make +++ b/hotspot/make/linux/makefiles/gcc.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/hp.make b/hotspot/make/linux/makefiles/hp.make index 5ead8272c16..c616d1a8dc8 100644 --- a/hotspot/make/linux/makefiles/hp.make +++ b/hotspot/make/linux/makefiles/hp.make @@ -1,5 +1,5 @@ # -# Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/hp1.make b/hotspot/make/linux/makefiles/hp1.make index 7d62469a7f9..36e0d322f0d 100644 --- a/hotspot/make/linux/makefiles/hp1.make +++ b/hotspot/make/linux/makefiles/hp1.make @@ -1,5 +1,5 @@ # -# Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/i486.make b/hotspot/make/linux/makefiles/i486.make index 63b67762f34..9dd0b4443fa 100644 --- a/hotspot/make/linux/makefiles/i486.make +++ b/hotspot/make/linux/makefiles/i486.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/ia64.make b/hotspot/make/linux/makefiles/ia64.make index b7c3aa27777..a647bc27e3a 100644 --- a/hotspot/make/linux/makefiles/ia64.make +++ b/hotspot/make/linux/makefiles/ia64.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/jsig.make b/hotspot/make/linux/makefiles/jsig.make index 32d3c2a18d6..0d254bfe8f3 100644 --- a/hotspot/make/linux/makefiles/jsig.make +++ b/hotspot/make/linux/makefiles/jsig.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/jvmg.make b/hotspot/make/linux/makefiles/jvmg.make index 9bf70b45e1b..4b09db64d21 100644 --- a/hotspot/make/linux/makefiles/jvmg.make +++ b/hotspot/make/linux/makefiles/jvmg.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/jvmti.make b/hotspot/make/linux/makefiles/jvmti.make index a73624857f8..70b33efef11 100644 --- a/hotspot/make/linux/makefiles/jvmti.make +++ b/hotspot/make/linux/makefiles/jvmti.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/launcher.make b/hotspot/make/linux/makefiles/launcher.make index 7284ce3a09e..e367409f00e 100644 --- a/hotspot/make/linux/makefiles/launcher.make +++ b/hotspot/make/linux/makefiles/launcher.make @@ -1,5 +1,5 @@ # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/makedeps.make b/hotspot/make/linux/makefiles/makedeps.make index 7bb452ace33..ae1fa179078 100644 --- a/hotspot/make/linux/makefiles/makedeps.make +++ b/hotspot/make/linux/makefiles/makedeps.make @@ -1,5 +1,5 @@ # -# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/mapfile-vers-debug b/hotspot/make/linux/makefiles/mapfile-vers-debug index da8e6798f28..58fb822e219 100644 --- a/hotspot/make/linux/makefiles/mapfile-vers-debug +++ b/hotspot/make/linux/makefiles/mapfile-vers-debug @@ -3,7 +3,7 @@ # # -# Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/mapfile-vers-jsig b/hotspot/make/linux/makefiles/mapfile-vers-jsig index f7ae7fb22b9..1880c82273d 100644 --- a/hotspot/make/linux/makefiles/mapfile-vers-jsig +++ b/hotspot/make/linux/makefiles/mapfile-vers-jsig @@ -1,7 +1,7 @@ # # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/mapfile-vers-product b/hotspot/make/linux/makefiles/mapfile-vers-product index 7f5407c1309..544bbf9081a 100644 --- a/hotspot/make/linux/makefiles/mapfile-vers-product +++ b/hotspot/make/linux/makefiles/mapfile-vers-product @@ -3,7 +3,7 @@ # # -# Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/optimized.make b/hotspot/make/linux/makefiles/optimized.make index 0d6aff8e91d..c391e29ef59 100644 --- a/hotspot/make/linux/makefiles/optimized.make +++ b/hotspot/make/linux/makefiles/optimized.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/product.make b/hotspot/make/linux/makefiles/product.make index a128c1101fa..43281abea99 100644 --- a/hotspot/make/linux/makefiles/product.make +++ b/hotspot/make/linux/makefiles/product.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/profiled.make b/hotspot/make/linux/makefiles/profiled.make index c73acc848f8..c5acf86329c 100644 --- a/hotspot/make/linux/makefiles/profiled.make +++ b/hotspot/make/linux/makefiles/profiled.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/rules.make b/hotspot/make/linux/makefiles/rules.make index a81633de34a..691aca3e2c5 100644 --- a/hotspot/make/linux/makefiles/rules.make +++ b/hotspot/make/linux/makefiles/rules.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/sa.make b/hotspot/make/linux/makefiles/sa.make index 41843c5887d..94463d6a049 100644 --- a/hotspot/make/linux/makefiles/sa.make +++ b/hotspot/make/linux/makefiles/sa.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/saproc.make b/hotspot/make/linux/makefiles/saproc.make index f0e5d90f382..052adb13413 100644 --- a/hotspot/make/linux/makefiles/saproc.make +++ b/hotspot/make/linux/makefiles/saproc.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/sparc.make b/hotspot/make/linux/makefiles/sparc.make index a86f9f7b6f5..6601c373347 100644 --- a/hotspot/make/linux/makefiles/sparc.make +++ b/hotspot/make/linux/makefiles/sparc.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/sparcWorks.make b/hotspot/make/linux/makefiles/sparcWorks.make index 53819743beb..0a9f75b349a 100644 --- a/hotspot/make/linux/makefiles/sparcWorks.make +++ b/hotspot/make/linux/makefiles/sparcWorks.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/sparcv9.make b/hotspot/make/linux/makefiles/sparcv9.make index 7aad864e51c..d18e73bd2da 100644 --- a/hotspot/make/linux/makefiles/sparcv9.make +++ b/hotspot/make/linux/makefiles/sparcv9.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/tiered.make b/hotspot/make/linux/makefiles/tiered.make index 220124e50e1..5ad7f223c1a 100644 --- a/hotspot/make/linux/makefiles/tiered.make +++ b/hotspot/make/linux/makefiles/tiered.make @@ -1,5 +1,5 @@ # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/top.make b/hotspot/make/linux/makefiles/top.make index f0aa13576d0..2a7579febd7 100644 --- a/hotspot/make/linux/makefiles/top.make +++ b/hotspot/make/linux/makefiles/top.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/linux/makefiles/vm.make b/hotspot/make/linux/makefiles/vm.make index 65b18ef9e87..73caaf9a534 100644 --- a/hotspot/make/linux/makefiles/vm.make +++ b/hotspot/make/linux/makefiles/vm.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/openjdk_distro b/hotspot/make/openjdk_distro index 5eb900d9fcb..b0301aab466 100644 --- a/hotspot/make/openjdk_distro +++ b/hotspot/make/openjdk_distro @@ -1,5 +1,5 @@ # -# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/sa.files b/hotspot/make/sa.files index 9b524940f3b..6f76f9d8faa 100644 --- a/hotspot/make/sa.files +++ b/hotspot/make/sa.files @@ -1,5 +1,5 @@ # -# Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/Makefile b/hotspot/make/solaris/Makefile index 0751fe9eb53..2e0882303bf 100644 --- a/hotspot/make/solaris/Makefile +++ b/hotspot/make/solaris/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/build.sh b/hotspot/make/solaris/build.sh index bb8d175758c..29bff2d4b8f 100644 --- a/hotspot/make/solaris/build.sh +++ b/hotspot/make/solaris/build.sh @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright 1998-2000 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/adjust-mflags.sh b/hotspot/make/solaris/makefiles/adjust-mflags.sh index 325e02d4fb1..169f86b6695 100644 --- a/hotspot/make/solaris/makefiles/adjust-mflags.sh +++ b/hotspot/make/solaris/makefiles/adjust-mflags.sh @@ -1,6 +1,6 @@ #! /bin/sh # -# Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/adlc.make b/hotspot/make/solaris/makefiles/adlc.make index b67ae554da0..f746d77494d 100644 --- a/hotspot/make/solaris/makefiles/adlc.make +++ b/hotspot/make/solaris/makefiles/adlc.make @@ -1,5 +1,5 @@ # -# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/amd64.make b/hotspot/make/solaris/makefiles/amd64.make index 34251bf5a4b..7ce14eae1db 100644 --- a/hotspot/make/solaris/makefiles/amd64.make +++ b/hotspot/make/solaris/makefiles/amd64.make @@ -1,5 +1,5 @@ # -# Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/buildtree.make b/hotspot/make/solaris/makefiles/buildtree.make index 1fb22360dca..93e0776a9e4 100644 --- a/hotspot/make/solaris/makefiles/buildtree.make +++ b/hotspot/make/solaris/makefiles/buildtree.make @@ -1,5 +1,5 @@ # -# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/compiler1.make b/hotspot/make/solaris/makefiles/compiler1.make index 3573eccfac4..2fc8eb8a8e1 100644 --- a/hotspot/make/solaris/makefiles/compiler1.make +++ b/hotspot/make/solaris/makefiles/compiler1.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/compiler2.make b/hotspot/make/solaris/makefiles/compiler2.make index 5ef2129ae5a..af1ec8476ca 100644 --- a/hotspot/make/solaris/makefiles/compiler2.make +++ b/hotspot/make/solaris/makefiles/compiler2.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/core.make b/hotspot/make/solaris/makefiles/core.make index e52d5b1ecca..e803bdb4ed0 100644 --- a/hotspot/make/solaris/makefiles/core.make +++ b/hotspot/make/solaris/makefiles/core.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/cscope.make b/hotspot/make/solaris/makefiles/cscope.make index 6fa197a56af..b5518555a50 100644 --- a/hotspot/make/solaris/makefiles/cscope.make +++ b/hotspot/make/solaris/makefiles/cscope.make @@ -1,5 +1,5 @@ # -# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/debug.make b/hotspot/make/solaris/makefiles/debug.make index 4474ec9d8e0..69eb236ada1 100644 --- a/hotspot/make/solaris/makefiles/debug.make +++ b/hotspot/make/solaris/makefiles/debug.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/defs.make b/hotspot/make/solaris/makefiles/defs.make index a56e01b65d4..625399a72b3 100644 --- a/hotspot/make/solaris/makefiles/defs.make +++ b/hotspot/make/solaris/makefiles/defs.make @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/dtrace.make b/hotspot/make/solaris/makefiles/dtrace.make index 0d3dce0fcce..bcc7819aa43 100644 --- a/hotspot/make/solaris/makefiles/dtrace.make +++ b/hotspot/make/solaris/makefiles/dtrace.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/fastdebug.make b/hotspot/make/solaris/makefiles/fastdebug.make index 4c5a4eee847..62eaeb8f968 100644 --- a/hotspot/make/solaris/makefiles/fastdebug.make +++ b/hotspot/make/solaris/makefiles/fastdebug.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/gcc.make b/hotspot/make/solaris/makefiles/gcc.make index d7314b97a85..8a88995f6de 100644 --- a/hotspot/make/solaris/makefiles/gcc.make +++ b/hotspot/make/solaris/makefiles/gcc.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/hp.make b/hotspot/make/solaris/makefiles/hp.make index ddf659bfe19..e2fc3a88b52 100644 --- a/hotspot/make/solaris/makefiles/hp.make +++ b/hotspot/make/solaris/makefiles/hp.make @@ -1,5 +1,5 @@ # -# Copyright 1998-1999 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/hp1.make b/hotspot/make/solaris/makefiles/hp1.make index 7d62469a7f9..36e0d322f0d 100644 --- a/hotspot/make/solaris/makefiles/hp1.make +++ b/hotspot/make/solaris/makefiles/hp1.make @@ -1,5 +1,5 @@ # -# Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/i486.make b/hotspot/make/solaris/makefiles/i486.make index 10b5949bacd..a8f92a361bb 100644 --- a/hotspot/make/solaris/makefiles/i486.make +++ b/hotspot/make/solaris/makefiles/i486.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/jsig.make b/hotspot/make/solaris/makefiles/jsig.make index 29e4c238a9a..e4a4aef771a 100644 --- a/hotspot/make/solaris/makefiles/jsig.make +++ b/hotspot/make/solaris/makefiles/jsig.make @@ -1,5 +1,5 @@ # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/jvmg.make b/hotspot/make/solaris/makefiles/jvmg.make index 3233025b031..02396f4268a 100644 --- a/hotspot/make/solaris/makefiles/jvmg.make +++ b/hotspot/make/solaris/makefiles/jvmg.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/jvmti.make b/hotspot/make/solaris/makefiles/jvmti.make index 876714eb55d..dc4efa1e9fc 100644 --- a/hotspot/make/solaris/makefiles/jvmti.make +++ b/hotspot/make/solaris/makefiles/jvmti.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/launcher.make b/hotspot/make/solaris/makefiles/launcher.make index 67693bb90b3..2224d58017d 100644 --- a/hotspot/make/solaris/makefiles/launcher.make +++ b/hotspot/make/solaris/makefiles/launcher.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/makedeps.make b/hotspot/make/solaris/makefiles/makedeps.make index 12b01a7da96..751d6ff3417 100644 --- a/hotspot/make/solaris/makefiles/makedeps.make +++ b/hotspot/make/solaris/makefiles/makedeps.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers b/hotspot/make/solaris/makefiles/mapfile-vers index f7ed56e5f10..c0d9a9c3c7d 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers +++ b/hotspot/make/solaris/makefiles/mapfile-vers @@ -3,7 +3,7 @@ # # -# Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER1 b/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER1 index b4b420867be..c77bda4d223 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER1 +++ b/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER1 @@ -1,7 +1,7 @@ # # -# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER2 b/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER2 index 9e2e5356f55..ee44bf266a9 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER2 +++ b/hotspot/make/solaris/makefiles/mapfile-vers-COMPILER2 @@ -1,7 +1,7 @@ # # -# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-CORE b/hotspot/make/solaris/makefiles/mapfile-vers-CORE index 25069d55c96..b62ad89fcb1 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-CORE +++ b/hotspot/make/solaris/makefiles/mapfile-vers-CORE @@ -1,7 +1,7 @@ # # -# Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-TIERED b/hotspot/make/solaris/makefiles/mapfile-vers-TIERED index 5149a01b598..ee62be5cd96 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-TIERED +++ b/hotspot/make/solaris/makefiles/mapfile-vers-TIERED @@ -1,7 +1,7 @@ # # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-debug b/hotspot/make/solaris/makefiles/mapfile-vers-debug index 98ce4887aa0..0a7c28078c2 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-debug +++ b/hotspot/make/solaris/makefiles/mapfile-vers-debug @@ -1,7 +1,7 @@ # # -# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-jsig b/hotspot/make/solaris/makefiles/mapfile-vers-jsig index f7ae7fb22b9..1880c82273d 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-jsig +++ b/hotspot/make/solaris/makefiles/mapfile-vers-jsig @@ -1,7 +1,7 @@ # # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-jvm_db b/hotspot/make/solaris/makefiles/mapfile-vers-jvm_db index 11ac2157b93..95ac685a4b6 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-jvm_db +++ b/hotspot/make/solaris/makefiles/mapfile-vers-jvm_db @@ -1,7 +1,7 @@ # # -# Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-jvm_dtrace b/hotspot/make/solaris/makefiles/mapfile-vers-jvm_dtrace index e10f098330a..2bde56933c2 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-jvm_dtrace +++ b/hotspot/make/solaris/makefiles/mapfile-vers-jvm_dtrace @@ -1,7 +1,7 @@ # # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/mapfile-vers-nonproduct b/hotspot/make/solaris/makefiles/mapfile-vers-nonproduct index b1544b8b6e1..911a3b7fc55 100644 --- a/hotspot/make/solaris/makefiles/mapfile-vers-nonproduct +++ b/hotspot/make/solaris/makefiles/mapfile-vers-nonproduct @@ -1,7 +1,7 @@ # # -# Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/optimized.make b/hotspot/make/solaris/makefiles/optimized.make index ed3d8e02c7e..1f91c3124f2 100644 --- a/hotspot/make/solaris/makefiles/optimized.make +++ b/hotspot/make/solaris/makefiles/optimized.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/product.make b/hotspot/make/solaris/makefiles/product.make index da8bab3da29..66e53536723 100644 --- a/hotspot/make/solaris/makefiles/product.make +++ b/hotspot/make/solaris/makefiles/product.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/profiled.make b/hotspot/make/solaris/makefiles/profiled.make index 297e6285183..5213aaad43b 100644 --- a/hotspot/make/solaris/makefiles/profiled.make +++ b/hotspot/make/solaris/makefiles/profiled.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/rules.make b/hotspot/make/solaris/makefiles/rules.make index 1329d2b1c42..69b8b5cd5d4 100644 --- a/hotspot/make/solaris/makefiles/rules.make +++ b/hotspot/make/solaris/makefiles/rules.make @@ -1,5 +1,5 @@ # -# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/sa.make b/hotspot/make/solaris/makefiles/sa.make index 1143688394e..6d700b23437 100644 --- a/hotspot/make/solaris/makefiles/sa.make +++ b/hotspot/make/solaris/makefiles/sa.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/saproc.make b/hotspot/make/solaris/makefiles/saproc.make index 83d9fce0e73..906cd9d998e 100644 --- a/hotspot/make/solaris/makefiles/saproc.make +++ b/hotspot/make/solaris/makefiles/saproc.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/sparc.make b/hotspot/make/solaris/makefiles/sparc.make index 46ce5ce79b9..6f332cf63bd 100644 --- a/hotspot/make/solaris/makefiles/sparc.make +++ b/hotspot/make/solaris/makefiles/sparc.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/sparcWorks.make b/hotspot/make/solaris/makefiles/sparcWorks.make index 942aeb4a4ae..83ef29612ee 100644 --- a/hotspot/make/solaris/makefiles/sparcWorks.make +++ b/hotspot/make/solaris/makefiles/sparcWorks.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/sparcv9.make b/hotspot/make/solaris/makefiles/sparcv9.make index 62711f07d34..c05d04bc18c 100644 --- a/hotspot/make/solaris/makefiles/sparcv9.make +++ b/hotspot/make/solaris/makefiles/sparcv9.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/tiered.make b/hotspot/make/solaris/makefiles/tiered.make index 220124e50e1..5ad7f223c1a 100644 --- a/hotspot/make/solaris/makefiles/tiered.make +++ b/hotspot/make/solaris/makefiles/tiered.make @@ -1,5 +1,5 @@ # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/top.make b/hotspot/make/solaris/makefiles/top.make index 5a883565ada..bd8a42238d1 100644 --- a/hotspot/make/solaris/makefiles/top.make +++ b/hotspot/make/solaris/makefiles/top.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/makefiles/vm.make b/hotspot/make/solaris/makefiles/vm.make index 43d31878e54..70a11975fbc 100644 --- a/hotspot/make/solaris/makefiles/vm.make +++ b/hotspot/make/solaris/makefiles/vm.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/solaris/reorder.sh b/hotspot/make/solaris/reorder.sh index 925b0a2407c..851140fed20 100644 --- a/hotspot/make/solaris/reorder.sh +++ b/hotspot/make/solaris/reorder.sh @@ -1,6 +1,6 @@ #!/bin/sh -x # -# Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/test/Queens.java b/hotspot/make/test/Queens.java index 075ca9b93ad..06064f7cc35 100644 --- a/hotspot/make/test/Queens.java +++ b/hotspot/make/test/Queens.java @@ -1,5 +1,5 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/build.bat b/hotspot/make/windows/build.bat index 36d4ec6b480..444f88a26d4 100644 --- a/hotspot/make/windows/build.bat +++ b/hotspot/make/windows/build.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. +REM Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. REM REM This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/build.make b/hotspot/make/windows/build.make index a871a849eb1..66ad19289e2 100644 --- a/hotspot/make/windows/build.make +++ b/hotspot/make/windows/build.make @@ -1,5 +1,5 @@ # -# Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/build_vm_def.sh b/hotspot/make/windows/build_vm_def.sh index 98e65150a65..6cc931963b2 100644 --- a/hotspot/make/windows/build_vm_def.sh +++ b/hotspot/make/windows/build_vm_def.sh @@ -1,5 +1,5 @@ # -# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/create.bat b/hotspot/make/windows/create.bat index a5a481ff7bd..21f97033669 100644 --- a/hotspot/make/windows/create.bat +++ b/hotspot/make/windows/create.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. +REM Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. REM REM This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/cross_build.bat b/hotspot/make/windows/cross_build.bat index 42e0fb147d7..7359061c54e 100644 --- a/hotspot/make/windows/cross_build.bat +++ b/hotspot/make/windows/cross_build.bat @@ -1,6 +1,6 @@ @echo off REM -REM Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +REM Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. REM DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. REM REM This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/get_msc_ver.sh b/hotspot/make/windows/get_msc_ver.sh index 1e4f6a02489..6bbbbef7859 100644 --- a/hotspot/make/windows/get_msc_ver.sh +++ b/hotspot/make/windows/get_msc_ver.sh @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/adlc.make b/hotspot/make/windows/makefiles/adlc.make index f7665667fb1..b2f8132c64d 100644 --- a/hotspot/make/windows/makefiles/adlc.make +++ b/hotspot/make/windows/makefiles/adlc.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/compile.make b/hotspot/make/windows/makefiles/compile.make index 7292774e1b5..bf6f3be9b2e 100644 --- a/hotspot/make/windows/makefiles/compile.make +++ b/hotspot/make/windows/makefiles/compile.make @@ -1,5 +1,5 @@ # -# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/debug.make b/hotspot/make/windows/makefiles/debug.make index 7ea4aae9486..afd987d9cd0 100644 --- a/hotspot/make/windows/makefiles/debug.make +++ b/hotspot/make/windows/makefiles/debug.make @@ -1,5 +1,5 @@ # -# Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/defs.make b/hotspot/make/windows/makefiles/defs.make index 19d49f17af6..bfabddff58e 100644 --- a/hotspot/make/windows/makefiles/defs.make +++ b/hotspot/make/windows/makefiles/defs.make @@ -1,5 +1,5 @@ # -# Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/fastdebug.make b/hotspot/make/windows/makefiles/fastdebug.make index cb6901bce2f..064592bffe4 100644 --- a/hotspot/make/windows/makefiles/fastdebug.make +++ b/hotspot/make/windows/makefiles/fastdebug.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/generated.make b/hotspot/make/windows/makefiles/generated.make index 7eff90d1681..3d2a0001d00 100644 --- a/hotspot/make/windows/makefiles/generated.make +++ b/hotspot/make/windows/makefiles/generated.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/jvmti.make b/hotspot/make/windows/makefiles/jvmti.make index 74600a11f77..e0b22c04d3a 100644 --- a/hotspot/make/windows/makefiles/jvmti.make +++ b/hotspot/make/windows/makefiles/jvmti.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/makedeps.make b/hotspot/make/windows/makefiles/makedeps.make index e3164313d7e..a64407bfa5f 100644 --- a/hotspot/make/windows/makefiles/makedeps.make +++ b/hotspot/make/windows/makefiles/makedeps.make @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/product.make b/hotspot/make/windows/makefiles/product.make index a2887cfcef3..a143d6c99b5 100644 --- a/hotspot/make/windows/makefiles/product.make +++ b/hotspot/make/windows/makefiles/product.make @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/rules.make b/hotspot/make/windows/makefiles/rules.make index 04ee8e399c5..f07f84aee1d 100644 --- a/hotspot/make/windows/makefiles/rules.make +++ b/hotspot/make/windows/makefiles/rules.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/sa.make b/hotspot/make/windows/makefiles/sa.make index 216c44fc870..481b5149d03 100644 --- a/hotspot/make/windows/makefiles/sa.make +++ b/hotspot/make/windows/makefiles/sa.make @@ -1,5 +1,5 @@ # -# Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/sanity.make b/hotspot/make/windows/makefiles/sanity.make index 9b7aa13ab69..5b4293d27f8 100644 --- a/hotspot/make/windows/makefiles/sanity.make +++ b/hotspot/make/windows/makefiles/sanity.make @@ -1,5 +1,5 @@ # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/shared.make b/hotspot/make/windows/makefiles/shared.make index a5055045e82..173450c83b9 100644 --- a/hotspot/make/windows/makefiles/shared.make +++ b/hotspot/make/windows/makefiles/shared.make @@ -1,5 +1,5 @@ # -# Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/top.make b/hotspot/make/windows/makefiles/top.make index 679e5692efc..0caabcdfd3f 100644 --- a/hotspot/make/windows/makefiles/top.make +++ b/hotspot/make/windows/makefiles/top.make @@ -1,5 +1,5 @@ # -# Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/makefiles/vm.make b/hotspot/make/windows/makefiles/vm.make index c911ab261f0..a8a5fb42a8e 100644 --- a/hotspot/make/windows/makefiles/vm.make +++ b/hotspot/make/windows/makefiles/vm.make @@ -1,5 +1,5 @@ # -# Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/projectfiles/common/Makefile b/hotspot/make/windows/projectfiles/common/Makefile index 1b4a5bf7343..c6793f96b31 100644 --- a/hotspot/make/windows/projectfiles/common/Makefile +++ b/hotspot/make/windows/projectfiles/common/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/projectfiles/compiler1/Makefile b/hotspot/make/windows/projectfiles/compiler1/Makefile index e189845fd58..f96091f39ec 100644 --- a/hotspot/make/windows/projectfiles/compiler1/Makefile +++ b/hotspot/make/windows/projectfiles/compiler1/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1999-2002 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/projectfiles/compiler2/Makefile b/hotspot/make/windows/projectfiles/compiler2/Makefile index 567f02030ee..7c26e15d1cc 100644 --- a/hotspot/make/windows/projectfiles/compiler2/Makefile +++ b/hotspot/make/windows/projectfiles/compiler2/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1998-2002 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/projectfiles/core/Makefile b/hotspot/make/windows/projectfiles/core/Makefile index e42986de410..fa8c3a12d20 100644 --- a/hotspot/make/windows/projectfiles/core/Makefile +++ b/hotspot/make/windows/projectfiles/core/Makefile @@ -1,5 +1,5 @@ # -# Copyright 1998-2002 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/make/windows/projectfiles/tiered/Makefile b/hotspot/make/windows/projectfiles/tiered/Makefile index 1aaae59680d..2c24068c2b9 100644 --- a/hotspot/make/windows/projectfiles/tiered/Makefile +++ b/hotspot/make/windows/projectfiles/tiered/Makefile @@ -1,5 +1,5 @@ # -# Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp index 3945f870229..c7dce335619 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp index 9dff8892e23..e1f7e0636b8 100644 --- a/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/assembler_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp index dafab4bdcfd..28321303b08 100644 --- a/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/bytecodeInterpreter_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp index 8436fb8561b..f1dc75f1ef4 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp index 74bc5ecf3b4..d5696d442f4 100644 --- a/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp index 523b0042a21..a002e2474aa 100644 --- a/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp index fc180cb43d3..9ddae97ef12 100644 --- a/hotspot/src/cpu/sparc/vm/copy_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/copy_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp index 8bd53e47a51..f2d6486f856 100644 --- a/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/cppInterpreter_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp index 1e8077d55d9..13626f0700e 100644 --- a/hotspot/src/cpu/sparc/vm/frame_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/frame_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp index aff31ce6c2f..5881dd69be4 100644 --- a/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/interp_masm_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp index 3deee97da75..16e3c6746fb 100644 --- a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp index 1e7263b41ef..2527e35b3e9 100644 --- a/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/nativeInst_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp b/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp index 4001805226b..d3e80557098 100644 --- a/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/register_definitions_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp index 5592bb7b52c..795e1831e52 100644 --- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp index 846503b7f14..69c6c889b7b 100644 --- a/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/relocInfo_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp index 16f3eca8ede..3812e2eaed9 100644 --- a/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/sharedRuntime_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/sparc.ad b/hotspot/src/cpu/sparc/vm/sparc.ad index 39e854ee586..c86d29ed5b0 100644 --- a/hotspot/src/cpu/sparc/vm/sparc.ad +++ b/hotspot/src/cpu/sparc/vm/sparc.ad @@ -1,5 +1,5 @@ // -// Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp index 73e092d620c..f21ed2f80ba 100644 --- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp index 63e2bdc3e59..090242c17e6 100644 --- a/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp index d8afb29c2d0..bd852da5636 100644 --- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp index 46b9e34e6a6..a870c7dc15b 100644 --- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp index d10845d0659..050e7e68fcc 100644 --- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp +++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp index 299ce53e31e..af2536b7c48 100644 --- a/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp +++ b/hotspot/src/cpu/sparc/vm/vtableStubs_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/assembler_x86_32.cpp b/hotspot/src/cpu/x86/vm/assembler_x86_32.cpp index e68bf489309..91c2e9ab193 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/assembler_x86_32.hpp b/hotspot/src/cpu/x86/vm/assembler_x86_32.hpp index b69c34a6a22..9588449955c 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86_32.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86_32.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/assembler_x86_64.cpp b/hotspot/src/cpu/x86/vm/assembler_x86_64.cpp index b66af4243dd..431c233df73 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/assembler_x86_64.hpp b/hotspot/src/cpu/x86/vm/assembler_x86_64.hpp index 2b90204891a..bf509e02b22 100644 --- a/hotspot/src/cpu/x86/vm/assembler_x86_64.hpp +++ b/hotspot/src/cpu/x86/vm/assembler_x86_64.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp index 7c632cbabcd..081f38c3bac 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp index 7c4861d614e..d2f9e2d35b7 100644 --- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp index b80a66ed87c..27024aa8a4b 100644 --- a/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp +++ b/hotspot/src/cpu/x86/vm/c1_MacroAssembler_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/frame_x86.cpp b/hotspot/src/cpu/x86/vm/frame_x86.cpp index 5019d16c367..9fe370e85de 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.cpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp index 153b1002bff..85a1944bd44 100644 --- a/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp +++ b/hotspot/src/cpu/x86/vm/frame_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp index 2cc8c8aa4ad..4756a2587be 100644 --- a/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interp_masm_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp index 251c32065a0..9636c5739e5 100644 --- a/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/interpreter_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp b/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp index 9133af54123..f8147a4cc64 100644 --- a/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp +++ b/hotspot/src/cpu/x86/vm/nativeInst_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp b/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp index f4115bcf985..255e8210f99 100644 --- a/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp +++ b/hotspot/src/cpu/x86/vm/nativeInst_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp b/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp index c5fee6815da..1be2c138211 100644 --- a/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp +++ b/hotspot/src/cpu/x86/vm/register_definitions_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp index f1441e83cdc..055c237149b 100644 --- a/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp +++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp b/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp index 3150c58fb0d..da2fe93dacc 100644 --- a/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp +++ b/hotspot/src/cpu/x86/vm/relocInfo_x86.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-1999 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp index b063ae5bace..85befcf4e78 100644 --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp index d371c176f5a..b2d4a6513ac 100644 --- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp index 5cfbc09fe74..68188361b50 100644 --- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp index 6134af3071a..3f7d4719b5f 100644 --- a/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp index 79bcd92f2e4..24e7e12fc85 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp index 1c0444ce2f8..c831b0cdc38 100644 --- a/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp b/hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp index ba4e3481cb7..26c50ce5ff3 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp b/hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp index ee8e2c69018..71be1f8a20e 100644 --- a/hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/vm_version_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp b/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp index 3a934d8d7f1..931b3aa900a 100644 --- a/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp +++ b/hotspot/src/cpu/x86/vm/vtableStubs_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/x86_32.ad b/hotspot/src/cpu/x86/vm/x86_32.ad index b7d5299ff22..9eae7309430 100644 --- a/hotspot/src/cpu/x86/vm/x86_32.ad +++ b/hotspot/src/cpu/x86/vm/x86_32.ad @@ -1,5 +1,5 @@ // -// Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/cpu/x86/vm/x86_64.ad b/hotspot/src/cpu/x86/vm/x86_64.ad index 41d1abfece6..f9e8e894e3f 100644 --- a/hotspot/src/cpu/x86/vm/x86_64.ad +++ b/hotspot/src/cpu/x86/vm/x86_64.ad @@ -1,5 +1,5 @@ // -// Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/attachListener_linux.cpp b/hotspot/src/os/linux/vm/attachListener_linux.cpp index 81ce1cc976b..f40ac8e8491 100644 --- a/hotspot/src/os/linux/vm/attachListener_linux.cpp +++ b/hotspot/src/os/linux/vm/attachListener_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp b/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp index ea0eab9b975..b7951d881b4 100644 --- a/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp +++ b/hotspot/src/os/linux/vm/dtraceJSDT_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp index d28700aab88..84322f39461 100644 --- a/hotspot/src/os/linux/vm/os_linux.cpp +++ b/hotspot/src/os/linux/vm/os_linux.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/os_linux.hpp b/hotspot/src/os/linux/vm/os_linux.hpp index 54fc117311f..367a1a7ac12 100644 --- a/hotspot/src/os/linux/vm/os_linux.hpp +++ b/hotspot/src/os/linux/vm/os_linux.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/linux/vm/os_linux.inline.hpp b/hotspot/src/os/linux/vm/os_linux.inline.hpp index 399fa0c4474..6f6d608ae2d 100644 --- a/hotspot/src/os/linux/vm/os_linux.inline.hpp +++ b/hotspot/src/os/linux/vm/os_linux.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp index 8e9be682488..feedb287ada 100644 --- a/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp +++ b/hotspot/src/os/solaris/dtrace/generateJvmOffsets.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/dtrace/jhelper.d b/hotspot/src/os/solaris/dtrace/jhelper.d index 19b4c08c2d3..6f2f6165c35 100644 --- a/hotspot/src/os/solaris/dtrace/jhelper.d +++ b/hotspot/src/os/solaris/dtrace/jhelper.d @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/dtrace/libjvm_db.c b/hotspot/src/os/solaris/dtrace/libjvm_db.c index 5c133663d4b..ad0031e4b92 100644 --- a/hotspot/src/os/solaris/dtrace/libjvm_db.c +++ b/hotspot/src/os/solaris/dtrace/libjvm_db.c @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp b/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp index 49f74216f16..5f05d7c1cd1 100644 --- a/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp +++ b/hotspot/src/os/solaris/vm/dtraceJSDT_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp index ce6765e8d50..952706c66b3 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.cpp +++ b/hotspot/src/os/solaris/vm/os_solaris.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/vm/os_solaris.hpp b/hotspot/src/os/solaris/vm/os_solaris.hpp index 545802ae158..cffe4ee80ac 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.hpp +++ b/hotspot/src/os/solaris/vm/os_solaris.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp index 3fe038dd6ce..0c640973e61 100644 --- a/hotspot/src/os/solaris/vm/os_solaris.inline.hpp +++ b/hotspot/src/os/solaris/vm/os_solaris.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp b/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp index 8f8986a98a2..9ef18dfdb59 100644 --- a/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp +++ b/hotspot/src/os/windows/vm/dtraceJSDT_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp index a114b894690..97b2d752a28 100644 --- a/hotspot/src/os/windows/vm/os_windows.cpp +++ b/hotspot/src/os/windows/vm/os_windows.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os/windows/vm/os_windows.inline.hpp b/hotspot/src/os/windows/vm/os_windows.inline.hpp index 26be952c03f..49dc4e75d5c 100644 --- a/hotspot/src/os/windows/vm/os_windows.inline.hpp +++ b/hotspot/src/os/windows/vm/os_windows.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp index 7ffae8d17ea..95488f108cc 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp index a932a1079bc..3dc9842c623 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/atomic_linux_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp index 4f2693db8ed..ccc884e8329 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/globals_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.ad b/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.ad index 33288c5df2c..1f768790289 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.ad +++ b/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.ad @@ -1,5 +1,5 @@ // -// Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.s b/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.s index dda3d05563e..ec5e2cd7139 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.s +++ b/hotspot/src/os_cpu/linux_sparc/vm/linux_sparc.s @@ -1,5 +1,5 @@ # -# Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp index 9b39f98fb22..44b0d2c83f2 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/orderAccess_linux_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp index cc209852554..2226285c0e7 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp index 0a88fef95e2..4c74a6af6ab 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp b/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp index 250704ff5d9..8a14e013c53 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/prefetch_linux_sparc.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp index a2c536cfc53..a3cfcb09666 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp index 5cfa7ee8647..a301a243106 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/threadLS_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp index 1c8a030d0d7..bcb8442b4d4 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp index 14ece634631..38779d09f0f 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/thread_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp b/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp index 5358d213c65..30036c490a4 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/vmStructs_linux_sparc.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp index 34bd7c82c99..9a15150502e 100644 --- a/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp +++ b/hotspot/src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp index 6d3a0193c80..6de7ee2811e 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp index 21fdc814e17..2a817f3adb0 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/assembler_linux_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp b/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp index f0e0d5c4775..fb36b9379f1 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp +++ b/hotspot/src/os_cpu/linux_x86/vm/bytes_linux_x86.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp index d598333157e..174c1df492e 100644 --- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/solaris_sparc.s b/hotspot/src/os_cpu/solaris_sparc/vm/solaris_sparc.s index 411fdcdabf0..4762af983f4 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/solaris_sparc.s +++ b/hotspot/src/os_cpu/solaris_sparc/vm/solaris_sparc.s @@ -1,5 +1,5 @@ !! -!! Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. +!! Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. !! DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. !! !! This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp index 1896130226f..2b6c743dc12 100644 --- a/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp +++ b/hotspot/src/os_cpu/solaris_sparc/vm/thread_solaris_sparc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_32.cpp b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_32.cpp index 4326ca80cc8..30a66f317c0 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_32.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp index 4ea40249281..1e84101e200 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/assembler_solaris_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2004-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp index 34365dfaee9..b21206dd227 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp index 06c9aed2e85..bc4b56b2d89 100644 --- a/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp +++ b/hotspot/src/os_cpu/solaris_x86/vm/thread_solaris_x86.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp b/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp index a4c82eb7ba8..52f307686ae 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_32.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_64.cpp b/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_64.cpp index 240cb9ab6b4..d0abc969080 100644 --- a/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_64.cpp +++ b/hotspot/src/os_cpu/windows_x86/vm/assembler_windows_x86_64.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/archDesc.cpp b/hotspot/src/share/vm/adlc/archDesc.cpp index 534c62a3311..0aa15064c5b 100644 --- a/hotspot/src/share/vm/adlc/archDesc.cpp +++ b/hotspot/src/share/vm/adlc/archDesc.cpp @@ -1,5 +1,5 @@ // -// Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/forms.cpp b/hotspot/src/share/vm/adlc/forms.cpp index 359f5c46b48..e9d7de211ea 100644 --- a/hotspot/src/share/vm/adlc/forms.cpp +++ b/hotspot/src/share/vm/adlc/forms.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/forms.hpp b/hotspot/src/share/vm/adlc/forms.hpp index dfa34454733..c510ac43aef 100644 --- a/hotspot/src/share/vm/adlc/forms.hpp +++ b/hotspot/src/share/vm/adlc/forms.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/formssel.cpp b/hotspot/src/share/vm/adlc/formssel.cpp index 6143d41070a..1be50b32101 100644 --- a/hotspot/src/share/vm/adlc/formssel.cpp +++ b/hotspot/src/share/vm/adlc/formssel.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/output_c.cpp b/hotspot/src/share/vm/adlc/output_c.cpp index 168b932179c..eb33e67b376 100644 --- a/hotspot/src/share/vm/adlc/output_c.cpp +++ b/hotspot/src/share/vm/adlc/output_c.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/adlc/output_h.cpp b/hotspot/src/share/vm/adlc/output_h.cpp index 0640f0a3250..78f16078381 100644 --- a/hotspot/src/share/vm/adlc/output_h.cpp +++ b/hotspot/src/share/vm/adlc/output_h.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/asm/codeBuffer.cpp b/hotspot/src/share/vm/asm/codeBuffer.cpp index cd88a2ab160..cbd16d3e8b3 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.cpp +++ b/hotspot/src/share/vm/asm/codeBuffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/asm/codeBuffer.hpp b/hotspot/src/share/vm/asm/codeBuffer.hpp index 87f02215d97..6880fc59d5f 100644 --- a/hotspot/src/share/vm/asm/codeBuffer.hpp +++ b/hotspot/src/share/vm/asm/codeBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/c1/c1_LIR.cpp b/hotspot/src/share/vm/c1/c1_LIR.cpp index 46e725b5a14..7335abb0731 100644 --- a/hotspot/src/share/vm/c1/c1_LIR.cpp +++ b/hotspot/src/share/vm/c1/c1_LIR.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/c1/c1_Runtime1.cpp b/hotspot/src/share/vm/c1/c1_Runtime1.cpp index 8f42fe14327..e7321ccc351 100644 --- a/hotspot/src/share/vm/c1/c1_Runtime1.cpp +++ b/hotspot/src/share/vm/c1/c1_Runtime1.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp index 70b0844daeb..4b3526df31b 100644 --- a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp +++ b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp index 3af67e1fd59..8c5122c1486 100644 --- a/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp +++ b/hotspot/src/share/vm/ci/bcEscapeAnalyzer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciField.hpp b/hotspot/src/share/vm/ci/ciField.hpp index 72a64c03a63..193d848d41c 100644 --- a/hotspot/src/share/vm/ci/ciField.hpp +++ b/hotspot/src/share/vm/ci/ciField.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp index e43459834fd..1053727a93f 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlass.cpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlass.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciInstanceKlass.hpp b/hotspot/src/share/vm/ci/ciInstanceKlass.hpp index a843a9251ea..a60020adc34 100644 --- a/hotspot/src/share/vm/ci/ciInstanceKlass.hpp +++ b/hotspot/src/share/vm/ci/ciInstanceKlass.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciMethod.cpp b/hotspot/src/share/vm/ci/ciMethod.cpp index ef890bd86a5..c23944d35c6 100644 --- a/hotspot/src/share/vm/ci/ciMethod.cpp +++ b/hotspot/src/share/vm/ci/ciMethod.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciMethodBlocks.cpp b/hotspot/src/share/vm/ci/ciMethodBlocks.cpp index 4c596bbc4fb..9bfba219b88 100644 --- a/hotspot/src/share/vm/ci/ciMethodBlocks.cpp +++ b/hotspot/src/share/vm/ci/ciMethodBlocks.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciMethodBlocks.hpp b/hotspot/src/share/vm/ci/ciMethodBlocks.hpp index b4398f39f4a..edfdf19b07e 100644 --- a/hotspot/src/share/vm/ci/ciMethodBlocks.hpp +++ b/hotspot/src/share/vm/ci/ciMethodBlocks.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciMethodData.cpp b/hotspot/src/share/vm/ci/ciMethodData.cpp index 68591961bce..adb854680d8 100644 --- a/hotspot/src/share/vm/ci/ciMethodData.cpp +++ b/hotspot/src/share/vm/ci/ciMethodData.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciMethodData.hpp b/hotspot/src/share/vm/ci/ciMethodData.hpp index 91ed83f61eb..cd7fa830e22 100644 --- a/hotspot/src/share/vm/ci/ciMethodData.hpp +++ b/hotspot/src/share/vm/ci/ciMethodData.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/ci/ciObjectFactory.cpp b/hotspot/src/share/vm/ci/ciObjectFactory.cpp index 649b7354315..1f862f85e12 100644 --- a/hotspot/src/share/vm/ci/ciObjectFactory.cpp +++ b/hotspot/src/share/vm/ci/ciObjectFactory.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp index 1fb0ed3ef83..7ee8ce98403 100644 --- a/hotspot/src/share/vm/classfile/classFileParser.cpp +++ b/hotspot/src/share/vm/classfile/classFileParser.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/dictionary.cpp b/hotspot/src/share/vm/classfile/dictionary.cpp index 43d1ab9030d..5ec717c5857 100644 --- a/hotspot/src/share/vm/classfile/dictionary.cpp +++ b/hotspot/src/share/vm/classfile/dictionary.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/javaClasses.cpp b/hotspot/src/share/vm/classfile/javaClasses.cpp index c84e9fac21d..65a07231a72 100644 --- a/hotspot/src/share/vm/classfile/javaClasses.cpp +++ b/hotspot/src/share/vm/classfile/javaClasses.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/javaClasses.hpp b/hotspot/src/share/vm/classfile/javaClasses.hpp index 7baf195ddaf..933d5b82d83 100644 --- a/hotspot/src/share/vm/classfile/javaClasses.hpp +++ b/hotspot/src/share/vm/classfile/javaClasses.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/systemDictionary.cpp b/hotspot/src/share/vm/classfile/systemDictionary.cpp index 8d06a8abe90..772716311a2 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.cpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/systemDictionary.hpp b/hotspot/src/share/vm/classfile/systemDictionary.hpp index 4b5bc16ff38..38d27d84841 100644 --- a/hotspot/src/share/vm/classfile/systemDictionary.hpp +++ b/hotspot/src/share/vm/classfile/systemDictionary.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/verifier.cpp b/hotspot/src/share/vm/classfile/verifier.cpp index 5ece3847b77..8373f9beaa0 100644 --- a/hotspot/src/share/vm/classfile/verifier.cpp +++ b/hotspot/src/share/vm/classfile/verifier.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/vmSymbols.cpp b/hotspot/src/share/vm/classfile/vmSymbols.cpp index 36bab9ae5ac..c805af344e7 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.cpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/classfile/vmSymbols.hpp b/hotspot/src/share/vm/classfile/vmSymbols.hpp index 6b126b5adfc..6a5a796d010 100644 --- a/hotspot/src/share/vm/classfile/vmSymbols.hpp +++ b/hotspot/src/share/vm/classfile/vmSymbols.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/codeCache.hpp b/hotspot/src/share/vm/code/codeCache.hpp index 3c027641ab3..6327bd11045 100644 --- a/hotspot/src/share/vm/code/codeCache.hpp +++ b/hotspot/src/share/vm/code/codeCache.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/debugInfo.cpp b/hotspot/src/share/vm/code/debugInfo.cpp index a84cee16fab..59ad7a6b771 100644 --- a/hotspot/src/share/vm/code/debugInfo.cpp +++ b/hotspot/src/share/vm/code/debugInfo.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/dependencies.cpp b/hotspot/src/share/vm/code/dependencies.cpp index 5660b84b7e9..8af296fd489 100644 --- a/hotspot/src/share/vm/code/dependencies.cpp +++ b/hotspot/src/share/vm/code/dependencies.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/nmethod.cpp b/hotspot/src/share/vm/code/nmethod.cpp index 14b10ea410c..282a4876262 100644 --- a/hotspot/src/share/vm/code/nmethod.cpp +++ b/hotspot/src/share/vm/code/nmethod.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/nmethod.hpp b/hotspot/src/share/vm/code/nmethod.hpp index 4cfb4b9c3f5..d2c4af89501 100644 --- a/hotspot/src/share/vm/code/nmethod.hpp +++ b/hotspot/src/share/vm/code/nmethod.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/scopeDesc.cpp b/hotspot/src/share/vm/code/scopeDesc.cpp index 96942b2ec59..7aed17f76a3 100644 --- a/hotspot/src/share/vm/code/scopeDesc.cpp +++ b/hotspot/src/share/vm/code/scopeDesc.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/vmreg.cpp b/hotspot/src/share/vm/code/vmreg.cpp index 3d2aa69274d..bd11f3ca57d 100644 --- a/hotspot/src/share/vm/code/vmreg.cpp +++ b/hotspot/src/share/vm/code/vmreg.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/code/vmreg.hpp b/hotspot/src/share/vm/code/vmreg.hpp index 399cba3497b..af3942b196a 100644 --- a/hotspot/src/share/vm/code/vmreg.hpp +++ b/hotspot/src/share/vm/code/vmreg.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/compiler/oopMap.cpp b/hotspot/src/share/vm/compiler/oopMap.cpp index 2984d647ea8..ccad14450d4 100644 --- a/hotspot/src/share/vm/compiler/oopMap.cpp +++ b/hotspot/src/share/vm/compiler/oopMap.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/compiler/oopMap.hpp b/hotspot/src/share/vm/compiler/oopMap.hpp index ac05d570c04..5dc1046cd15 100644 --- a/hotspot/src/share/vm/compiler/oopMap.hpp +++ b/hotspot/src/share/vm/compiler/oopMap.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp index 91d381d5501..2bef9fe5a1f 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp index 882fcf789f3..d45193be9fb 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/binaryTreeDictionary.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp index 245807e7319..6bddefce163 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp index 729556baecf..9ac7b03d40d 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp index aa05d434da6..83854fe202c 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp index 6d5546eeb95..dd8956cfd0b 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp index 8dd2ca4abe4..208bafd86b6 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp index b238c023674..309bc7a19c6 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp index 76f1fb2f0fb..494c090c6fb 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp index be2479475a8..10112108386 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeChunk.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp index e7b1b3aae8d..79503deb81d 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp index 5640d46cf9b..581317643c7 100644 --- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/freeList.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep b/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep index d3e253edc7b..580a83167fa 100644 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep +++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep @@ -1,5 +1,5 @@ // -// Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge b/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge index 8a2a7a6127b..98ce44ea95d 100644 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge +++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_parallelScavenge @@ -1,5 +1,5 @@ // -// Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared b/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared index 367fccf4807..f1d70f8bbba 100644 --- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared +++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_shared @@ -1,5 +1,5 @@ // -// Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp index fa4a554b976..203bd7ddc70 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/asParNewGeneration.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp index 4a3bf249229..94377a3beb4 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp index d8caac661e2..89331a81bd3 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp index 8beea55ee97..ed990a463a1 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp index 19564e7b670..a9e2d199f6c 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp index 7ef34bb89bd..c8555fdfcaa 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/asPSYoungGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp index 2b2c6f87c51..c0a4d5857bc 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp index 8722e0f3b28..df1e6e2aeae 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp index 4f284a5d572..b3322db384f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp index 7281b10f7db..c6723714344 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp index 6fd50b39fc5..59542f94bfe 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp index d26eec48882..75c6830cdc1 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp index 994e627ed9d..2237542f523 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/prefetchQueue.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/prefetchQueue.hpp index 53775a79de6..5266d67319b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/prefetchQueue.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/prefetchQueue.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp index cec3a48db1a..8c8bff54dff 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp index 98b347cf6e1..80fee1a856f 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp index 9566821169b..e680a000919 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp index 8a1893f2132..fc35aa33f60 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp index ee8c2d78338..f5af16546e7 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionLAB.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp index 92a5002d80e..dd74617ebb3 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp index b18674ea819..674a951bfcc 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp index 73cc15f32ae..f1a9e64fe93 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp index 5f960dc9ece..cd5652de3f1 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp index 1f8ad940713..1ca050823a4 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp index 08b576c775e..40b14d4b88d 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp index dd5d1045fc1..52913e07518 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp index b7088556bdc..26452649c6b 100644 --- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp index 2145394123b..fc8518f1ac3 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp index a60fc2bc164..4772f7c45bc 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/allocationStats.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp index 912322ab5b0..35af5fcf60f 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp index 18dc2ddcbf8..3f28ec710e4 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/immutableSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp b/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp index ee77a7f52df..c18d6e877bd 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.cpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp b/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp index d0ede4efba7..b2e8d22d153 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.hpp @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp b/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp index c4045ee988e..fdcf48db842 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/markSweep.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp index ff58cc3a43f..48bfea8b6ff 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp @@ -1,6 +1,6 @@ /* - * Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp index 6b5dcbbe214..2cde6413eda 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp index a91247a80d9..26621da944e 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp index f21930123b9..91586c5068f 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableSpace.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp index 7cab57dd727..eee135f67df 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp +++ b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp index 7777dc71c84..fcce0cc3b51 100644 --- a/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp +++ b/hotspot/src/share/vm/gc_implementation/shared/vmGCOperations.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp index ecfab9ed6cd..8ddf46a48e2 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.cpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp index ef55f14676e..492801e983e 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp index 59950df65a2..c2f3caeb507 100644 --- a/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp +++ b/hotspot/src/share/vm/gc_interface/collectedHeap.inline.hpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/includeDB_compiler1 b/hotspot/src/share/vm/includeDB_compiler1 index ae500d2f6d7..3509507f10b 100644 --- a/hotspot/src/share/vm/includeDB_compiler1 +++ b/hotspot/src/share/vm/includeDB_compiler1 @@ -1,5 +1,5 @@ // -// Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/includeDB_compiler2 b/hotspot/src/share/vm/includeDB_compiler2 index 43233ad41dd..306281cbec9 100644 --- a/hotspot/src/share/vm/includeDB_compiler2 +++ b/hotspot/src/share/vm/includeDB_compiler2 @@ -1,5 +1,5 @@ // -// Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/includeDB_core b/hotspot/src/share/vm/includeDB_core index 2af8fd826f1..0c53185fd0e 100644 --- a/hotspot/src/share/vm/includeDB_core +++ b/hotspot/src/share/vm/includeDB_core @@ -1,5 +1,5 @@ // -// Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp index c3602489d23..b4204414a94 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml b/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml index e7ecdda0f95..a5696213db9 100644 --- a/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml +++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreterWithChecks.xml @@ -1,6 +1,6 @@