This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 136472 - Validation tests failed
Summary: Validation tests failed
Status: VERIFIED FIXED
Alias: None
Product: www
Classification: Unclassified
Component: Builds & Repositories (show other bugs)
Version: 6.x
Hardware: All All
: P1 blocker (vote)
Assignee: Jaroslav Tulach
URL: http://deadlock.netbeans.org/hudson/j...
Keywords: TEST
Depends on:
Blocks:
 
Reported: 2008-06-04 15:06 UTC by Ivan Sidorkin
Modified: 2008-06-05 21:50 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
The final diff of TreeFeatures class (1.57 KB, text/plain)
2008-06-05 09:56 UTC, Martin Entlicher
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Sidorkin 2008-06-04 15:06:10 UTC
APIChangeTest Report

Base version:   1.13
Tested version: 1.15

Missing Classes
---------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             class public static final
org.netbeans.spi.viewmodel.Models$TreeFeatures

Missing Superclasses or Superinterfaces
---------------------------------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             superclass java.lang.Object

Missing Methods
---------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             method protected native java.lang.Object
java.lang.Object.clone() throws java.lang.CloneNotSupportedException
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public boolean java.lang.Object.equals(java.lang.Object)
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method protected void java.lang.Object.finalize() throws
java.lang.Throwable
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public native final java.lang.Class
java.lang.Object.getClass()
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public native int java.lang.Object.hashCode()
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public native final void java.lang.Object.notify()
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public native final void java.lang.Object.notifyAll()
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public java.lang.String java.lang.Object.toString()
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public final void java.lang.Object.wait() throws
java.lang.InterruptedException
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public native final void java.lang.Object.wait(long)
throws java.lang.InterruptedException
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public final void java.lang.Object.wait(long,int)
throws java.lang.InterruptedException

Incompatible change: Class is not protected in the new implementation
---------------------------------------------------------------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             class public static final
org.netbeans.spi.viewmodel.Models$TreeFeatures
org.netbeans.spi.viewmodel.Models$TreeFeatures:             class public static abstract interface
org.netbeans.spi.viewmodel.Models$TreeFeatures

Incompatible change: Class is interface in the new implementation
-----------------------------------------------------------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public void
org.netbeans.spi.viewmodel.Models$TreeFeatures.collapseNode(java.lang.Object)
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public void
org.netbeans.spi.viewmodel.Models$TreeFeatures.expandNode(java.lang.Object)
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public boolean
org.netbeans.spi.viewmodel.Models$TreeFeatures.isExpanded(java.lang.Object)
Comment 1 Martin Entlicher 2008-06-04 15:36:48 UTC
I'll change the TreeFeatures back to class.
This change was source compatible, but it looks like we need binary compatibility....
Comment 2 Martin Entlicher 2008-06-04 15:47:08 UTC
changeset:   82719:82ce0635a2aa
http://hg.netbeans.org/main/rev/82ce0635a2aa

Hopefully the test will be O.K. now.
Comment 3 Jesse Glick 2008-06-04 16:42:59 UTC
Yarda, a success for your infrastructure?

http://deadlock.netbeans.org/hudson/job/trunk/2151/testReport/org.netbeans.spi/viewmodel/check/

Note that there was also a failure in

http://deadlock.netbeans.org/hudson/job/trunk/2151/testReport/org.netbeans.test.ide/IDEValidation/testDebugging/

java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location
	at java.awt.Component.getLocationOnScreen_NoTreeLock(Component.java:1680)
	at java.awt.Component.getLocationOnScreen(Component.java:1654)
	at javax.swing.JPopupMenu.show(JPopupMenu.java:945)
	at org.openide.explorer.view.TreeView.createPopup(TreeView.java:894)
Comment 4 Martin Entlicher 2008-06-04 17:10:03 UTC
The IllegalComponentStateException should have been already fixed before the API change.
I'm waiting for the result of this continuous build...
Comment 5 Martin Entlicher 2008-06-04 17:39:48 UTC
The new error does not make much sense to me.

IMHO the change is O.K. now from the compatibility point of view.


APIChangeTest Report

Base version:   1.13
Tested version: 1.15

Missing Classes
---------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             class public static final
org.netbeans.spi.viewmodel.Models$TreeFeatures

Incompatible change: Class is not protected in the new implementation
---------------------------------------------------------------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             class public static final
org.netbeans.spi.viewmodel.Models$TreeFeatures
org.netbeans.spi.viewmodel.Models$TreeFeatures:             class public static abstract
org.netbeans.spi.viewmodel.Models$TreeFeatures

Incompatible change: Class is interface in the new implementation
-----------------------------------------------------------------

org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public void
org.netbeans.spi.viewmodel.Models$TreeFeatures.collapseNode(java.lang.Object)
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public void
org.netbeans.spi.viewmodel.Models$TreeFeatures.expandNode(java.lang.Object)
org.netbeans.spi.viewmodel.Models$TreeFeatures:             method public boolean
org.netbeans.spi.viewmodel.Models$TreeFeatures.isExpanded(java.lang.Object)
Comment 6 Jesse Glick 2008-06-04 18:43:13 UTC
I would suggest you assign a P1 bug to jtulach (nbbuild component) and describe the exact signature change you made in
the class. It looks to me like you went from

public static final class TreeFeatures {
  private TreeFeatures(...) {...}
  public boolean isExpanded(Object) {...}
  // ...
}

to (Apr 15)

public interface TreeFeatures {
  boolean isExpanded(Object);
  // ...
}

to (2 hours ago)

public static abstract class TreeFeatures {
  /*implicit*/public TreeFeatures() {}
  public abstract boolean isExpanded(Object);
  // ...
}
Comment 7 Quality Engineering 2008-06-05 03:55:23 UTC
Integrated into 'main-golden', available in NB_Trunk_Production #238 build
Changeset: http://hg.netbeans.org/main/rev/82ce0635a2aa
User: mentlicher@netbeans.org
Log: #136472 - TreeFeatures is changed back to class to keep binary compatibility.
Comment 8 Ivan Sidorkin 2008-06-05 09:16:24 UTC
test still failed
Comment 9 Martin Entlicher 2008-06-05 09:56:59 UTC
Created attachment 62401 [details]
The final diff of TreeFeatures class
Comment 10 Martin Entlicher 2008-06-05 10:02:58 UTC
Yarda, can you please evaluate the test failure? I've attached the diff of TreeFeatures.
Comment 11 Jesse Glick 2008-06-05 14:06:32 UTC
Probably sigtest is too dumb to realize that making a method abstract is compatible so long as there were no accessible
constructors before.

A short-term workaround might be

public static /*abstract*/ class TreeFeatures {
  public /*abstract*/ boolean isExpanded(Object) {
    throw new IllegalStateException("must be implemented!");
  }
  // ...
}
Comment 12 Jaroslav Tulach 2008-06-05 15:43:48 UTC
f7a652ab9c88: Allowing changing final class to abstract with abstract methods. Thanks for spotting this error in the 
api check infrastructure and sorry for the amount of failed builds. It took me a while to realize that the error is 
not the class to interface change, but real failure in the infrastructure.
Comment 13 Ivan Sidorkin 2008-06-05 21:50:02 UTC
verified