jdk1.5 problem Duplicate LocalVariableTable with older JFreeChart jar

J

Jochen Riekhof

Hi...

our app requires an older version of the JFreeChart library. It works fine
under all Java versions 1.4.2_xx.
With jdk1.5beta1, however, we get an error on startup saying:
java.lang.ClassFormatError: Duplicated LocalVariableTable attribute in class
file com/jrefinery/chart/JFreeChart

The jar is jfreechartM1-0.9.2.jar. I also do not believe there really is a
duplicate LocalVariableTable in the mentioned class as javap of both
j2sdk1.4.2._xx and j2sdk1.5.0beta1 do not show any sign of this (output of
1.5 version attached).

Any idea if this is a bug in jdk1.5beta1?

Ciao

....Jochen



-----------------------------------------------------
C:\java\jfreechart\lib>c:\java\j2sdk1.5.0\bin\javap -l -private -classpath
jfreechartM1-0.9.2.jar com.jrefinery.chart.JFreeChart
Compiled from "JFreeChart.java"
public class com.jrefinery.chart.JFreeChart extends java.lang.Object
implements
com.jrefinery.chart.JFreeChartConstants,com.jrefinery.ui.Drawable,com.jrefin
ery.
chart.event.TitleChangeListener,com.jrefinery.chart.event.LegendChangeListen
er,c
om.jrefinery.chart.event.PlotChangeListener{
public static final com.jrefinery.ui.about.ProjectInfo INFO;

protected java.util.List titles;

protected com.jrefinery.chart.Legend legend;

protected com.jrefinery.chart.Plot plot;

protected boolean antialias;

protected java.awt.Paint backgroundPaint;

protected java.awt.Image backgroundImage;

protected float backgroundImageAlpha;

protected java.util.List listeners;

private java.awt.geom.Rectangle2D titleArea;

private java.awt.geom.Rectangle2D nonTitleArea;

public com.jrefinery.chart.JFreeChart(com.jrefinery.chart.Plot);
LineNumberTable:
line 153: 0
line 159: 8
LocalVariableTable:
Start Length Slot Name Signature
0 9 1 plot Lcom/jrefinery/chart/Plot;
0 9 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.JFreeChart(java.lang.String, java.awt.Font,
com.jrefi
nery.chart.Plot, boolean);
LineNumberTable:
line 171: 0
line 139: 4
line 447: 10
line 450: 25
line 176: 40
line 178: 51
line 181: 56
line 183: 61
line 186: 72
line 187: 77
line 188: 85
line 191: 93
line 192: 98
line 195: 105
line 196: 109
line 197: 113
line 199: 117
line 200: 128
line 201: 134
line 204: 146
LocalVariableTable:
Start Length Slot Name Signature
0 147 2 titleFont Ljava/awt/Font;
0 147 3 plot Lcom/jrefinery/chart/Plot;
0 147 4 createLegend Z
0 147 0 this Lcom/jrefinery/chart/JFreeChart;
0 147 1 title Ljava/lang/String;
128 18 5 textTitle Lcom/jrefinery/chart/TextTitle;

public java.util.List getTitles();
LineNumberTable:
line 212: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setTitles(java.util.List);
LineNumberTable:
line 221: 0
line 222: 5
line 223: 9
LocalVariableTable:
Start Length Slot Name Signature
0 10 1 titles Ljava/util/List;
0 10 0 this Lcom/jrefinery/chart/JFreeChart;

public int getTitleCount();
LineNumberTable:
line 231: 0
LocalVariableTable:
Start Length Slot Name Signature
0 10 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.AbstractTitle getTitle(int);
LineNumberTable:
line 243: 0
line 244: 12
line 247: 22
LocalVariableTable:
Start Length Slot Name Signature
0 36 1 index I
0 36 0 this Lcom/jrefinery/chart/JFreeChart;

public void addTitle(com.jrefinery.chart.AbstractTitle);
LineNumberTable:
line 258: 0
line 259: 4
line 260: 15
line 261: 20
line 264: 24
LocalVariableTable:
Start Length Slot Name Signature
0 25 1 title Lcom/jrefinery/chart/AbstractTitle;
0 25 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.Legend getLegend();
LineNumberTable:
line 272: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setLegend(com.jrefinery.chart.Legend);
LineNumberTable:
line 283: 0
line 284: 5
line 285: 9
line 289: 14
line 290: 19
line 291: 23
line 295: 28
line 297: 32
LocalVariableTable:
Start Length Slot Name Signature
0 33 1 legend Lcom/jrefinery/chart/Legend;
0 33 0 this Lcom/jrefinery/chart/JFreeChart;
5 28 2 existing Lcom/jrefinery/chart/Legend;

public com.jrefinery.chart.Plot getPlot();
LineNumberTable:
line 306: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.CategoryPlot getCategoryPlot();
LineNumberTable:
line 316: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.XYPlot getXYPlot();
LineNumberTable:
line 326: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public boolean getAntiAlias();
LineNumberTable:
line 335: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setAntiAlias(boolean);
LineNumberTable:
line 347: 0
line 348: 8
line 349: 13
line 352: 17
LocalVariableTable:
Start Length Slot Name Signature
0 18 1 flag Z
0 18 0 this Lcom/jrefinery/chart/JFreeChart;

public java.awt.Paint getBackgroundPaint();
LineNumberTable:
line 360: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setBackgroundPaint(java.awt.Paint);
LineNumberTable:
line 371: 0
line 372: 7
line 373: 18
line 374: 23
line 378: 30
line 379: 34
line 380: 39
line 384: 43
LocalVariableTable:
Start Length Slot Name Signature
0 44 1 paint Ljava/awt/Paint;
0 44 0 this Lcom/jrefinery/chart/JFreeChart;

public java.awt.Image getBackgroundImage();
LineNumberTable:
line 393: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setBackgroundImage(java.awt.Image);
LineNumberTable:
line 405: 0
line 406: 7
line 407: 18
line 408: 23
line 412: 30
line 413: 34
line 414: 39
line 418: 43
LocalVariableTable:
Start Length Slot Name Signature
0 44 1 image Ljava/awt/Image;
0 44 0 this Lcom/jrefinery/chart/JFreeChart;

public float getBackgroundImageAlpha();
LineNumberTable:
line 427: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setBackgroundImageAlpha(float);
LineNumberTable:
line 439: 0
line 440: 9
line 441: 14
line 444: 18
LocalVariableTable:
Start Length Slot Name Signature
0 19 1 alpha F
0 19 0 this Lcom/jrefinery/chart/JFreeChart;

public void draw(java.awt.Graphics2D, java.awt.geom.Rectangle2D);
LineNumberTable:
line 461: 0
line 462: 7
LocalVariableTable:
Start Length Slot Name Signature
0 8 2 area Ljava/awt/geom/Rectangle2D;
0 8 1 g2 Ljava/awt/Graphics2D;
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public void draw(java.awt.Graphics2D, java.awt.geom.Rectangle2D,
com.jrefinery.c
hart.ChartRenderingInfo);
LineNumberTable:
line 475: 0
line 476: 4
line 477: 8
line 481: 13
line 482: 19
line 485: 24
line 486: 31
line 490: 44
line 495: 54
line 496: 61
line 497: 69
line 500: 74
line 501: 81
line 502: 87
line 504: 99
line 507: 129
line 511: 135
line 513: 143
line 514: 154
line 515: 164
line 516: 176
line 519: 212
line 521: 230
line 522: 239
line 524: 264
line 525: 274
line 530: 324
line 534: 327
line 536: 345
line 537: 354
line 539: 382
line 540: 392
line 542: 425
line 546: 428
line 547: 437
line 549: 455
line 551: 483
line 552: 493
line 554: 526
line 558: 529
line 559: 538
line 561: 556
line 563: 581
line 564: 591
line 566: 627
line 570: 630
line 576: 640
line 577: 646
line 578: 653
line 582: 670
line 584: 681
line 586: 687
LocalVariableTable:
Start Length Slot Name Signature
0 688 1 g2 Ljava/awt/Graphics2D;
0 688 0 this Lcom/jrefinery/chart/JFreeChart;
0 688 3 info Lcom/jrefinery/chart/ChartRenderingInfo;
0 688 2 chartArea Ljava/awt/geom/Rectangle2D;
19 669 4 savedClip Ljava/awt/Shape;
87 48 5 originalComposite Ljava/awt/Composite;
154 534 5 iterator Ljava/util/Iterator;
176 464 6 currentTitle
Lcom/jrefinery/chart/AbstractTitle;

230 97 7 availableHeight D
239 88 9 availableWidth D
345 83 7 availableHeight D
354 74 9 availableWidth D
437 92 7 availableHeight D
455 74 9 availableWidth D
538 92 7 availableHeight D
556 74 9 availableWidth D
640 48 9 availableWidth D
640 48 7 availableHeight D
640 48 9 availableWidth D
640 48 7 availableHeight D
640 48 9 availableWidth D
640 48 7 availableHeight D
646 42 6 plotArea Ljava/awt/geom/Rectangle2D;

public java.awt.image.BufferedImage createBufferedImage(int, int);
LineNumberTable:
line 596: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 2 height I
0 8 1 width I
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public java.awt.image.BufferedImage createBufferedImage(int, int,
com.jrefinery.
chart.ChartRenderingInfo);
LineNumberTable:
line 609: 0
line 610: 12
line 611: 19
line 612: 39
line 613: 44
LocalVariableTable:
Start Length Slot Name Signature
0 47 2 height I
0 47 3 info Lcom/jrefinery/chart/ChartRenderingInfo;
0 47 0 this Lcom/jrefinery/chart/JFreeChart;
0 47 1 width I
12 35 4 image Ljava/awt/image/BufferedImage;
19 28 5 g2 Ljava/awt/Graphics2D;

public void handleClick(int, int, com.jrefinery.chart.ChartRenderingInfo);
LineNumberTable:
line 629: 0
line 631: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 2 y I
0 11 3 info Lcom/jrefinery/chart/ChartRenderingInfo;
0 11 0 this Lcom/jrefinery/chart/JFreeChart;
0 11 1 x I

public void
addChangeListener(com.jrefinery.chart.event.ChartChangeListener);
LineNumberTable:
line 639: 0
line 640: 11
LocalVariableTable:
Start Length Slot Name Signature
0 12 1 listener
Lcom/jrefinery/chart/event/ChartChangeList
ener;
0 12 0 this Lcom/jrefinery/chart/JFreeChart;

public void
removeChangeListener(com.jrefinery.chart.event.ChartChangeListener);

LineNumberTable:
line 648: 0
line 649: 11
LocalVariableTable:
Start Length Slot Name Signature
0 12 1 listener
Lcom/jrefinery/chart/event/ChartChangeList
ener;
0 12 0 this Lcom/jrefinery/chart/JFreeChart;

protected void fireChartChanged();
LineNumberTable:
line 657: 0
line 658: 9
line 659: 14
LocalVariableTable:
Start Length Slot Name Signature
0 15 0 this Lcom/jrefinery/chart/JFreeChart;
9 6 1 event
Lcom/jrefinery/chart/event/ChartChangeEvent;

protected void notifyListeners(com.jrefinery.chart.event.ChartChangeEvent);
LineNumberTable:
line 667: 0
line 668: 10
line 669: 19
line 670: 29
line 668: 36
line 672: 39
LocalVariableTable:
Start Length Slot Name Signature
0 40 1 event
Lcom/jrefinery/chart/event/ChartChangeEvent;
0 40 0 this Lcom/jrefinery/chart/JFreeChart;
10 30 2 iterator Ljava/util/Iterator;
29 7 3 listener
Lcom/jrefinery/chart/event/ChartChangeList
ener;

public void titleChanged(com.jrefinery.chart.event.TitleChangeEvent);
LineNumberTable:
line 681: 0
line 682: 5
line 683: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 1 event
Lcom/jrefinery/chart/event/TitleChangeEvent;
0 11 0 this Lcom/jrefinery/chart/JFreeChart;

public void legendChanged(com.jrefinery.chart.event.LegendChangeEvent);
LineNumberTable:
line 692: 0
line 693: 5
line 694: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 1 event
Lcom/jrefinery/chart/event/LegendChangeEvent;

0 11 0 this Lcom/jrefinery/chart/JFreeChart;

public void plotChanged(com.jrefinery.chart.event.PlotChangeEvent);
LineNumberTable:
line 703: 0
line 704: 5
line 705: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 1 event
Lcom/jrefinery/chart/event/PlotChangeEvent;
0 11 0 this Lcom/jrefinery/chart/JFreeChart;

public static void main(java.lang.String[]);
LineNumberTable:
line 742: 0
line 744: 12
LocalVariableTable:
Start Length Slot Name Signature
0 13 0 args [Ljava/lang/String;

static {};
LineNumberTable:
line 118: 0

}
 
D

dar7yl

I have seen this same error while trying to get Borland JBuilderX to work
with jdk1.5beta1.

It seems that there is some inconsistancies in the bytecode generated in
some of the borland libraries.

This is not necessarily a bug, because 1.5 has made alterations in the
bytecode definition. However, Sun et al should be aware that a lot of
legacy code is broken under 1.5.

regards,
Dar7yl (the 7 is silent)

Jochen Riekhof said:
Hi...

our app requires an older version of the JFreeChart library. It works fine
under all Java versions 1.4.2_xx.
With jdk1.5beta1, however, we get an error on startup saying:
java.lang.ClassFormatError: Duplicated LocalVariableTable attribute in class
file com/jrefinery/chart/JFreeChart

The jar is jfreechartM1-0.9.2.jar. I also do not believe there really is a
duplicate LocalVariableTable in the mentioned class as javap of both
j2sdk1.4.2._xx and j2sdk1.5.0beta1 do not show any sign of this (output of
1.5 version attached).

Any idea if this is a bug in jdk1.5beta1?

Ciao

...Jochen



-----------------------------------------------------
C:\java\jfreechart\lib>c:\java\j2sdk1.5.0\bin\javap -l -private -classpath
jfreechartM1-0.9.2.jar com.jrefinery.chart.JFreeChart
Compiled from "JFreeChart.java"
public class com.jrefinery.chart.JFreeChart extends java.lang.Object
implements
com.jrefinery.chart.JFreeChartConstants,com.jrefinery.ui.Drawable,com.jrefin
chart.event.TitleChangeListener,com.jrefinery.chart.event.LegendChangeListen
er,c
om.jrefinery.chart.event.PlotChangeListener{
public static final com.jrefinery.ui.about.ProjectInfo INFO;

protected java.util.List titles;

protected com.jrefinery.chart.Legend legend;

protected com.jrefinery.chart.Plot plot;

protected boolean antialias;

protected java.awt.Paint backgroundPaint;

protected java.awt.Image backgroundImage;

protected float backgroundImageAlpha;

protected java.util.List listeners;

private java.awt.geom.Rectangle2D titleArea;

private java.awt.geom.Rectangle2D nonTitleArea;

public com.jrefinery.chart.JFreeChart(com.jrefinery.chart.Plot);
LineNumberTable:
line 153: 0
line 159: 8
LocalVariableTable:
Start Length Slot Name Signature
0 9 1 plot Lcom/jrefinery/chart/Plot;
0 9 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.JFreeChart(java.lang.String, java.awt.Font,
com.jrefi
nery.chart.Plot, boolean);
LineNumberTable:
line 171: 0
line 139: 4
line 447: 10
line 450: 25
line 176: 40
line 178: 51
line 181: 56
line 183: 61
line 186: 72
line 187: 77
line 188: 85
line 191: 93
line 192: 98
line 195: 105
line 196: 109
line 197: 113
line 199: 117
line 200: 128
line 201: 134
line 204: 146
LocalVariableTable:
Start Length Slot Name Signature
0 147 2 titleFont Ljava/awt/Font;
0 147 3 plot Lcom/jrefinery/chart/Plot;
0 147 4 createLegend Z
0 147 0 this Lcom/jrefinery/chart/JFreeChart;
0 147 1 title Ljava/lang/String;
128 18 5 textTitle Lcom/jrefinery/chart/TextTitle;

public java.util.List getTitles();
LineNumberTable:
line 212: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setTitles(java.util.List);
LineNumberTable:
line 221: 0
line 222: 5
line 223: 9
LocalVariableTable:
Start Length Slot Name Signature
0 10 1 titles Ljava/util/List;
0 10 0 this Lcom/jrefinery/chart/JFreeChart;

public int getTitleCount();
LineNumberTable:
line 231: 0
LocalVariableTable:
Start Length Slot Name Signature
0 10 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.AbstractTitle getTitle(int);
LineNumberTable:
line 243: 0
line 244: 12
line 247: 22
LocalVariableTable:
Start Length Slot Name Signature
0 36 1 index I
0 36 0 this Lcom/jrefinery/chart/JFreeChart;

public void addTitle(com.jrefinery.chart.AbstractTitle);
LineNumberTable:
line 258: 0
line 259: 4
line 260: 15
line 261: 20
line 264: 24
LocalVariableTable:
Start Length Slot Name Signature
0 25 1 title Lcom/jrefinery/chart/AbstractTitle;
0 25 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.Legend getLegend();
LineNumberTable:
line 272: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setLegend(com.jrefinery.chart.Legend);
LineNumberTable:
line 283: 0
line 284: 5
line 285: 9
line 289: 14
line 290: 19
line 291: 23
line 295: 28
line 297: 32
LocalVariableTable:
Start Length Slot Name Signature
0 33 1 legend Lcom/jrefinery/chart/Legend;
0 33 0 this Lcom/jrefinery/chart/JFreeChart;
5 28 2 existing Lcom/jrefinery/chart/Legend;

public com.jrefinery.chart.Plot getPlot();
LineNumberTable:
line 306: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.CategoryPlot getCategoryPlot();
LineNumberTable:
line 316: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public com.jrefinery.chart.XYPlot getXYPlot();
LineNumberTable:
line 326: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public boolean getAntiAlias();
LineNumberTable:
line 335: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setAntiAlias(boolean);
LineNumberTable:
line 347: 0
line 348: 8
line 349: 13
line 352: 17
LocalVariableTable:
Start Length Slot Name Signature
0 18 1 flag Z
0 18 0 this Lcom/jrefinery/chart/JFreeChart;

public java.awt.Paint getBackgroundPaint();
LineNumberTable:
line 360: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setBackgroundPaint(java.awt.Paint);
LineNumberTable:
line 371: 0
line 372: 7
line 373: 18
line 374: 23
line 378: 30
line 379: 34
line 380: 39
line 384: 43
LocalVariableTable:
Start Length Slot Name Signature
0 44 1 paint Ljava/awt/Paint;
0 44 0 this Lcom/jrefinery/chart/JFreeChart;

public java.awt.Image getBackgroundImage();
LineNumberTable:
line 393: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setBackgroundImage(java.awt.Image);
LineNumberTable:
line 405: 0
line 406: 7
line 407: 18
line 408: 23
line 412: 30
line 413: 34
line 414: 39
line 418: 43
LocalVariableTable:
Start Length Slot Name Signature
0 44 1 image Ljava/awt/Image;
0 44 0 this Lcom/jrefinery/chart/JFreeChart;

public float getBackgroundImageAlpha();
LineNumberTable:
line 427: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this Lcom/jrefinery/chart/JFreeChart;

public void setBackgroundImageAlpha(float);
LineNumberTable:
line 439: 0
line 440: 9
line 441: 14
line 444: 18
LocalVariableTable:
Start Length Slot Name Signature
0 19 1 alpha F
0 19 0 this Lcom/jrefinery/chart/JFreeChart;

public void draw(java.awt.Graphics2D, java.awt.geom.Rectangle2D);
LineNumberTable:
line 461: 0
line 462: 7
LocalVariableTable:
Start Length Slot Name Signature
0 8 2 area Ljava/awt/geom/Rectangle2D;
0 8 1 g2 Ljava/awt/Graphics2D;
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public void draw(java.awt.Graphics2D, java.awt.geom.Rectangle2D,
com.jrefinery.c
hart.ChartRenderingInfo);
LineNumberTable:
line 475: 0
line 476: 4
line 477: 8
line 481: 13
line 482: 19
line 485: 24
line 486: 31
line 490: 44
line 495: 54
line 496: 61
line 497: 69
line 500: 74
line 501: 81
line 502: 87
line 504: 99
line 507: 129
line 511: 135
line 513: 143
line 514: 154
line 515: 164
line 516: 176
line 519: 212
line 521: 230
line 522: 239
line 524: 264
line 525: 274
line 530: 324
line 534: 327
line 536: 345
line 537: 354
line 539: 382
line 540: 392
line 542: 425
line 546: 428
line 547: 437
line 549: 455
line 551: 483
line 552: 493
line 554: 526
line 558: 529
line 559: 538
line 561: 556
line 563: 581
line 564: 591
line 566: 627
line 570: 630
line 576: 640
line 577: 646
line 578: 653
line 582: 670
line 584: 681
line 586: 687
LocalVariableTable:
Start Length Slot Name Signature
0 688 1 g2 Ljava/awt/Graphics2D;
0 688 0 this Lcom/jrefinery/chart/JFreeChart;
0 688 3 info Lcom/jrefinery/chart/ChartRenderingInfo;
0 688 2 chartArea Ljava/awt/geom/Rectangle2D;
19 669 4 savedClip Ljava/awt/Shape;
87 48 5 originalComposite Ljava/awt/Composite;
154 534 5 iterator Ljava/util/Iterator;
176 464 6 currentTitle
Lcom/jrefinery/chart/AbstractTitle;

230 97 7 availableHeight D
239 88 9 availableWidth D
345 83 7 availableHeight D
354 74 9 availableWidth D
437 92 7 availableHeight D
455 74 9 availableWidth D
538 92 7 availableHeight D
556 74 9 availableWidth D
640 48 9 availableWidth D
640 48 7 availableHeight D
640 48 9 availableWidth D
640 48 7 availableHeight D
640 48 9 availableWidth D
640 48 7 availableHeight D
646 42 6 plotArea Ljava/awt/geom/Rectangle2D;

public java.awt.image.BufferedImage createBufferedImage(int, int);
LineNumberTable:
line 596: 0
LocalVariableTable:
Start Length Slot Name Signature
0 8 2 height I
0 8 1 width I
0 8 0 this Lcom/jrefinery/chart/JFreeChart;

public java.awt.image.BufferedImage createBufferedImage(int, int,
com.jrefinery.
chart.ChartRenderingInfo);
LineNumberTable:
line 609: 0
line 610: 12
line 611: 19
line 612: 39
line 613: 44
LocalVariableTable:
Start Length Slot Name Signature
0 47 2 height I
0 47 3 info Lcom/jrefinery/chart/ChartRenderingInfo;
0 47 0 this Lcom/jrefinery/chart/JFreeChart;
0 47 1 width I
12 35 4 image Ljava/awt/image/BufferedImage;
19 28 5 g2 Ljava/awt/Graphics2D;

public void handleClick(int, int, com.jrefinery.chart.ChartRenderingInfo);
LineNumberTable:
line 629: 0
line 631: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 2 y I
0 11 3 info Lcom/jrefinery/chart/ChartRenderingInfo;
0 11 0 this Lcom/jrefinery/chart/JFreeChart;
0 11 1 x I

public void
addChangeListener(com.jrefinery.chart.event.ChartChangeListener);
LineNumberTable:
line 639: 0
line 640: 11
LocalVariableTable:
Start Length Slot Name Signature
0 12 1 listener
Lcom/jrefinery/chart/event/ChartChangeList
ener;
0 12 0 this Lcom/jrefinery/chart/JFreeChart;

public void
removeChangeListener(com.jrefinery.chart.event.ChartChangeListener);

LineNumberTable:
line 648: 0
line 649: 11
LocalVariableTable:
Start Length Slot Name Signature
0 12 1 listener
Lcom/jrefinery/chart/event/ChartChangeList
ener;
0 12 0 this Lcom/jrefinery/chart/JFreeChart;

protected void fireChartChanged();
LineNumberTable:
line 657: 0
line 658: 9
line 659: 14
LocalVariableTable:
Start Length Slot Name Signature
0 15 0 this Lcom/jrefinery/chart/JFreeChart;
9 6 1 event
Lcom/jrefinery/chart/event/ChartChangeEvent;

protected void notifyListeners(com.jrefinery.chart.event.ChartChangeEvent);
LineNumberTable:
line 667: 0
line 668: 10
line 669: 19
line 670: 29
line 668: 36
line 672: 39
LocalVariableTable:
Start Length Slot Name Signature
0 40 1 event
Lcom/jrefinery/chart/event/ChartChangeEvent;
0 40 0 this Lcom/jrefinery/chart/JFreeChart;
10 30 2 iterator Ljava/util/Iterator;
29 7 3 listener
Lcom/jrefinery/chart/event/ChartChangeList
ener;

public void titleChanged(com.jrefinery.chart.event.TitleChangeEvent);
LineNumberTable:
line 681: 0
line 682: 5
line 683: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 1 event
Lcom/jrefinery/chart/event/TitleChangeEvent;
0 11 0 this Lcom/jrefinery/chart/JFreeChart;

public void legendChanged(com.jrefinery.chart.event.LegendChangeEvent);
LineNumberTable:
line 692: 0
line 693: 5
line 694: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 1 event
Lcom/jrefinery/chart/event/LegendChangeEvent;

0 11 0 this Lcom/jrefinery/chart/JFreeChart;

public void plotChanged(com.jrefinery.chart.event.PlotChangeEvent);
LineNumberTable:
line 703: 0
line 704: 5
line 705: 10
LocalVariableTable:
Start Length Slot Name Signature
0 11 1 event
Lcom/jrefinery/chart/event/PlotChangeEvent;
0 11 0 this Lcom/jrefinery/chart/JFreeChart;

public static void main(java.lang.String[]);
LineNumberTable:
line 742: 0
line 744: 12
LocalVariableTable:
Start Length Slot Name Signature
0 13 0 args [Ljava/lang/String;

static {};
LineNumberTable:
line 118: 0

}
 
L

Larry Barowski

Jochen Riekhof said:
Hi...

our app requires an older version of the JFreeChart library. It works fine
under all Java versions 1.4.2_xx.
With jdk1.5beta1, however, we get an error on startup saying:
java.lang.ClassFormatError: Duplicated LocalVariableTable attribute in class
file com/jrefinery/chart/JFreeChart

The jar is jfreechartM1-0.9.2.jar. I also do not believe there really is a
duplicate LocalVariableTable in the mentioned class as javap of both
j2sdk1.4.2._xx and j2sdk1.5.0beta1 do not show any sign of this (output of
1.5 version attached).

If you have the source or can get the source to that old version
of JFreeChart, try rebuilding it.

Otherwise: LocalVariableTable is optional. You could unpack the
jar, use a binary editor to change "LocalVariableTable" in
JFreeChart.class to "XocalVariableTable" or something (don't
change the number of characters), then jar it back up. The only
difference will be that local variables in JFreeChart won't be
available when debugging.

Also, if you zip up JFreeChart.class and email it to me I can
check to see if there is more than one LocalVariableTable
in any method.
 
N

Neal Gafter

Jochen said:
our app requires an older version of the JFreeChart library. It works fine
under all Java versions 1.4.2_xx.
With jdk1.5beta1, however, we get an error on startup saying:
java.lang.ClassFormatError: Duplicated LocalVariableTable attribute in class
file com/jrefinery/chart/JFreeChart

The jar is jfreechartM1-0.9.2.jar. I also do not believe there really is a
duplicate LocalVariableTable in the mentioned class as javap of both
j2sdk1.4.2._xx and j2sdk1.5.0beta1 do not show any sign of this (output of
1.5 version attached).

Any idea if this is a bug in jdk1.5beta1?

Don't depend on javap to output duplicate LocalVariableTable entries.

We have strengthened the class format checker in 1.5.0, but I'm afraid the
library you're using shows that this change will break existing applications.
That's not good. I've filed 5052891 to track this issue. It is too late to fix
this for tiger-beta2, but we'll look at it for tiger-rc.

Thanks for calling this to our attention.

Regards,
Neal
 
N

Neal Gafter

Jochen said:
our app requires an older version of the JFreeChart library. It works fine
under all Java versions 1.4.2_xx.
With jdk1.5beta1, however, we get an error on startup saying:
java.lang.ClassFormatError: Duplicated LocalVariableTable attribute in class
file com/jrefinery/chart/JFreeChart

The jar is jfreechartM1-0.9.2.jar. I also do not believe there really is a
duplicate LocalVariableTable in the mentioned class as javap of both
j2sdk1.4.2._xx and j2sdk1.5.0beta1 do not show any sign of this (output of
1.5 version attached).

Any idea if this is a bug in jdk1.5beta1?

We can't reproduce the problem without the jar files you are using. Where can I
find jfreechartM1-0.9.2.jar?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,900
Latest member
Nell636132

Latest Threads

Top