这是困难的一个.客户通过崩溃报告向我发送了此堆栈跟踪信息.它没有提到我的应用程序的类,所以我很困惑,从哪里开始寻找.
我的应用是商业桌面应用.崩溃报告是匿名的,因此我无法轻易获得有关崩溃的更多信息.
编辑:一些谷歌搜索和线程跟踪使我得出结论,它是Java 1.7中的零星问题.寻找解决方案......
我该如何进行调试呢?
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeCollapse(TimSort.java:410)
at java.util.TimSort.sort(TimSort.java:214)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at java.util.Collections.sort(Collections.java:217)
at javax.swing.SortingFocusTraversalPolicy.enumerateAndSortCycle(SortingFocusTraversalPolicy.java:136)
at javax.swing.SortingFocusTraversalPolicy.getFocusTraversalCycle(SortingFocusTraversalPolicy.java:110)
at javax.swing.SortingFocusTraversalPolicy.getFirstComponent(SortingFocusTraversalPolicy.java:435)
at javax.swing.LayoutFocusTraversalPolicy.getFirstComponent(LayoutFocusTraversalPolicy.java:166)
at javax.swing.DefaultFocusManager.getFirstComponent(DefaultFocusManager.java:120)
at javax.swing.LegacyGlueFocusTraversalPolicy.getFirstComponent(LegacyGlueFocusTraversalPolicy.java:132)
at javax.swing.LegacyGlueFocusTraversalPolicy.getDefaultComponent(LegacyGlueFocusTraversalPolicy.java:150)
at java.awt.FocusTraversalPolicy.getInitialComponent(FocusTraversalPolicy.java:169)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:380)
at java.awt.Component.dispatchEventImpl(Component.java:4731)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) …Run Code Online (Sandbox Code Playgroud) 有人可以推荐一个简单的(如非常容易理解的)Java图表库吗?
我只想在我的程序中添加一个简单的图表,并想通过学习库可以节省一些时间.
我目前将Subversion用于我的一人软件公司.是否值得搬到Hg(Mercurial)?或者只有多人团队才能实现这些好处?
我有一堆文本文件,我想与grep一起使用.它们都来自外部源,并采用UTF-16编码,并以字节顺序标记开头.
像grep这样的Unix工具对我来说不起作用.有什么解决方法吗?
在Objective-C类中,我想只将文本文件的内容加载到NSString中,以便该类的所有实例都可以使用它.
在Java世界中,我多年来了解到,如果你不使用经过验证的成语,就很容易在线程安全方面出现这种错误.所以我想确保使用正确的习语.
你能告诉我一个Objective-C类的例子吗?
这是我开始时的空课......
@interface TestClass : NSObject
- (NSString *)doSomething:(NSUInteger)aParam;
@end
@implementation TestClass {
}
- (id)init {
self = [super init];
if (self) {
}
return self;
}
- (NSString *)doSomething:(NSUInteger)aParam {
// something with shared NSString loaded from text file,
// depending on the value of aParam
return @"";
}
@end
Run Code Online (Sandbox Code Playgroud) 鉴于以下XML代码段,我需要获取DataElements下每个子项的名称/值对列表.XPath或XML解析器不能用于我无法控制的原因,因此我正在使用正则表达式.
<?xml version="1.0"?>
<StandardDataObject xmlns="myns">
<DataElements>
<EmpStatus>2.0</EmpStatus>
<Expenditure>95465.00</Expenditure>
<StaffType>11.A</StaffType>
<Industry>13</Industry>
</DataElements>
<InteractionElements>
<TargetCenter>92f4-MPA</TargetCenter>
<Trace>7.19879</Trace>
</InteractionElements>
</StandardDataObject>
Run Code Online (Sandbox Code Playgroud)
我需要的输出是:[{EmpStatus:2.0},{支出:95465.00},{StaffType:11.A},{Industry:13}]
DataElements下的标记名称是动态的,因此无法在正则表达式中按字面表示.标签名称TargetCenter和Trace是静态的,可以在正则表达式中,但如果有办法避免硬编码,那将是更好的选择.
"<([A-Za-z0-9]+?)>([A-Za-z0-9.]*?)</"
Run Code Online (Sandbox Code Playgroud)
这是我构造的正则表达式,它的问题是它在结果中错误地包含{Trace:719879}.依赖于XML中的换行或任何其他明显的格式不是一种选择.
下面是我正在使用的Java代码的近似值:
private static final Pattern PATTERN_1 = Pattern.compile(..REGEX..);
private List<DataElement> listDataElements(CharSequence cs) {
List<DataElement> list = new ArrayList<DataElement>();
Matcher matcher = PATTERN_1.matcher(cs);
while (matcher.find()) {
list.add(new DataElement(matcher.group(1), matcher.group(2)));
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
如何将我的正则表达式更改为仅包含数据元素并忽略其余部分?
我可以做Twitter和许多其他网站在网址显示用户页面的地方.
www.mysite.com/the_user_name
在PHP ...或者如何做到这一点?
我想制作一个如下所示的下拉列表:
替代文字http://i44.tinypic.com/v80z81.png
JComboBox提供了我需要的功能,因此我不需要编写自定义组件.但我无法找到一种方法来自定义JComboBox的整个外观来实现这一目标.有什么建议?
更新:我不希望所有JComboBox都像这样.我只想用这个自定义外观创建一个.据我所知,创建自定义L&F不是解决方案.
我很确定正则表达式是要走的路,但每当我尝试计算出特定的正则表达式时,我的头都会受伤.
如果Java String(包含文本"ERROR"或文本"WARNING")AND(包含文本"parsing"),我需要找到什么正则表达式,其中所有匹配都不区分大小写?
编辑:我提出了一个具体案例,但我的问题更为笼统.可能还有其他条款,但它们都涉及匹配特定单词,忽略大小写.可能有1,2,3或更多条款.
我使用此代码段来获取文件作为输入流.文件version.txt打包在我应用程序的jar中,位于最上面的文件夹中.
InputStream resource = getClass().getClassLoader().getResourceAsStream("version.txt");
Run Code Online (Sandbox Code Playgroud)
这几乎在所有时间都有效.但是对于一个用户来说,它正在拾取另一个版本.txt,这不在我的jar中.如何确保加载我jar中的特定version.txt文件?