use*_*075 5 java applet swing jtree illegalstateexception
不确定这是否是正确的问题,但我遇到了Java问题.我有一些Java代码在Java 6中工作但在Java 7中没有,错误是:
java.lang.IllegalStateException: This function should be called while holding treeLock
Run Code Online (Sandbox Code Playgroud)
使用Java6可以工作,但我们的一些外部用户正在运行Java 7.我发现错误是由调用引起的validateTree()
,它在java6中工作但在Java7中我们需要调用validate()
.当我在本地测试时,它可以工作.
这里是我的问题,我开始在一家大公司工作,他们不会让我们对代码做任何修改,直到其被非常throughly看了看(我的工作变化,将采取在2013年4月影响),但在那之前我们的用户生气了.我不是最好的Java,并想知道是否有一种方法可以传递运行时参数来改变它?或者有什么我可以做而不触及代码库?
我很不好意思问这个问题,因为它可以通过实施修复来轻松解决,但任何想法或方向都会非常有用.
更新:我理想地寻找可以获得支持的东西,以放入java运行时参数,该参数将更改对validate()的所有validateTree()引用.
我可以使用运行时参数来修复Java中的错误API调用吗?
作为一般规则,没有.
在特定情况下,您可以查看类库的相关类Java 7版本的源代码,以查看是否存在向后兼容性属性.
假设你找不到修复方法,你就会陷入困境.我建议:
如果这些都不起作用,那么真正的问题在于您的客户和您的管理层之间.你做得尽可能多.把它留给"高层"处理它.
您可能对我对相关SO问题的回答感兴趣,该问题涉及他们为何进行这种"破坏性"更改的问题.我的看法是,改变是强迫人们修复一类隐藏的,难以重现的应用程序错误,这些错误会导致奇怪的UI行为.从长远来看,这是一件好事.
基于此,您可以为发布带外修复提供更强有力的案例.validateTree()
使用validate()
调用替换调用的修复实际上是所有 Java平台的必要修复,而不仅仅是Java 7.
归档时间: |
|
查看次数: |
1090 次 |
最近记录: |