我有一个应用程序,它不时在日志中有这个堆栈跟踪:
java.lang.ArrayIndexOutOfBoundsException: 514
at sun.util.calendar.BaseCalendar.getCalendarDateFromFixedDate(BaseCalendar.java:436)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:2081)
at java.util.GregorianCalendar.computeFields(GregorianCalendar.java:1996)
at java.util.Calendar.complete(Calendar.java:1312)
at java.util.Calendar.get(Calendar.java:1093)
at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:917)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:824)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:796)
at java.text.DateFormat.format(DateFormat.java:314)
at me.myself.i.Message.toString(Message.java:203)
at java.lang.String.valueOf(String.java:2615)
at java.lang.StringBuilder.append(StringBuilder.java:116)
Run Code Online (Sandbox Code Playgroud)
我认为这个问题可能存在于某些方面:
public class Message{
private transient DateFormat logDateFormat;
@Override
public String toString() {
final StringBuilder result = new StringBuilder(getClass().getSimpleName());
result.append("Time=").append(logDateFormat.format(new Date(getExpireTime())));
return result.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为多个线程同时调用toString(),但我在本地机器上重现这个问题:
@Before
public void setUp() {
message = new Message();
pool = Executors.newFixedThreadPool(numOfThreads);
}
@Test
public void multiThreadTest() {
for (int i=0; i<numOfThreads; i++) {
TestJob j = …
Run Code Online (Sandbox Code Playgroud) 我有一个方法register(),需要很多时间才能完成.所以我把它放在了swingworker的doInBackGround()中.与此同时,我希望显示模态对话框并在其上具有不确定的进度条.
private void registerPopupItemActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
WaitDialog dialog = new WaitDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
});
dialog.setVisible(true);
SwingWorker worker = new SwingWorker() {
@Override
protected Object doInBackground() throws Exception {
register();
return 0;
}
};
dialog.dispose();
}
Run Code Online (Sandbox Code Playgroud)
但是一切都冻结了.在调试器中,我看到没有调用regester().我搞砸了哪里?任何帮助都会受到欢迎!谢谢 !
A User
是1比1 Car
.但User
并非总是如此Car
.
query = session.createQuery("select u from User as u join fetch u.car");
Run Code Online (Sandbox Code Playgroud)
我只获得汽车用户.如何修改此查询以获取所有用户?
我正在使用fetch因为我在会话之外需要user.car,我这样做了吗?
谢谢.
我需要我的组合框才能拥有组织的简称.问题是我可以在下拉列表中看到组织名称,但实际上无法选择它.我的错误在哪里?
public class ToComboBoxModel extends AbstractListModel implements ComboBoxModel {
private String selectedItem;
private List<Organization> orgs;
public ToComboBoxModel(List orgs) {
this.orgs = orgs;
}
@Override
public String getSelectedItem() {
return selectedItem;
}
@Override
public void setSelectedItem(Object newValue) {
for (Organization o: orgs){
if (newValue==o){
selectedItem=o.getShortName();
break;
}
}
}
@Override
public int getSize() {
return orgs.size();
}
@Override
public String getElementAt(int i) {
return orgs.get(i).getShortName();
}
}
Run Code Online (Sandbox Code Playgroud)
设定型号:
query =session.createQuery("from Organization where isMain = 0");
List orgs=query.list(); …
Run Code Online (Sandbox Code Playgroud) 我得到这个例外:
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at java.util.AbstractMap.toString(AbstractMap.java:493)
at org.hibernate.pretty.Printer.toString(Printer.java:59)
at org.hibernate.pretty.Printer.toString(Printer.java:90)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:97)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
Run Code Online (Sandbox Code Playgroud)
在此代码:
Query query = null;
Transaction tx= session.beginTransaction();
if (allRadio.isSelected()) {
query = session.createQuery("select d from Document as d, d.msg as m, m.senderreceivers as s where m.isDraft=0 and d.isMain=1 and s.organization.shortName like '" + search + "' and s.role=0");
} else if (periodRadio.isSelected()) {
query = session.createQuery("select …
Run Code Online (Sandbox Code Playgroud) 我有一个电子邮件客户端,它收到新消息,带有传入消息的按钮开始做某事,直到用户点击它看到最新消息.
我试图通过选择,等待然后取消选择使按钮吸引注意力,但这没有任何作用!
do{
button.setSelected(true);
Thread oThread = new Thread() {
@Override
public void run() {
synchronized (this) {
try {
wait(1000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
button.setSelected(false);
}
};
oThread.start();
}while(true);
Run Code Online (Sandbox Code Playgroud) java ×6
swing ×3
hibernate ×2
combobox ×1
concurrency ×1
jbutton ×1
junit ×1
memory ×1
selection ×1
swingworker ×1