質問するログイン新規登録

質問編集履歴

2

追記:気づいたこと

2016/07/10 12:24

投稿

dttornado
dttornado

スコア20

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,9 @@
15
15
  at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227)
16
16
  at java.util.ArrayList.add(ArrayList.java:458)
17
17
  at GetMsgThread.run(NChat.java:176)
18
+
19
+ 追記:原因は不明のままですが、対処法については判明しました。SrcThreadのwhileループの1つ下のブロック、つまりforループの前にSystem.out.println()などのなんらかのメソッドを呼び出すと正常に作動することが分かりました。
20
+ しかし原因については一切の見当が付きません
18
21
  ###該当のソースコード
19
22
  Java
20
23
  ```

1

依頼を受け一部追記しました

2016/07/10 12:24

投稿

dttornado
dttornado

スコア20

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,15 @@
6
6
  クライアントアプリごとにメッセージを貯めるスレッドのオブジェクトを生成するが、スレッドのrunメソッドのwhileループでメッセージを取得しようとするところでOutOfMemoryError:Java heap spaceがでてしまう、また、オブジェクトのコレクションにためたメッセージを他のスレッドから処理できなくなってしまう
7
7
  原因と対策を教えてください
8
8
  よろしくお願いします
9
+ 追記:スタックトレース
10
+ Exception in thread "Thread-4" java.lang.OutOfMemoryError: Java heap space
11
+ at java.util.Arrays.copyOf(Arrays.java:3210)
12
+ at java.util.Arrays.copyOf(Arrays.java:3181)
13
+ at java.util.ArrayList.grow(ArrayList.java:261)
14
+ at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235)
15
+ at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227)
16
+ at java.util.ArrayList.add(ArrayList.java:458)
17
+ at GetMsgThread.run(NChat.java:176)
9
18
  ###該当のソースコード
10
19
  Java
11
20
  ```
@@ -67,6 +76,34 @@
67
76
  InputStreamをバッファにためて
68
77
  inp()メソッドで返す
69
78
  }
79
+ //Inpクラスの内容追記
80
+ class Inp{
81
+ String str=null;
82
+ BufferedReader br;
83
+ Inp(InputStream ist){
84
+ try{
85
+ InputStreamReader isp = new InputStreamReader(ist);
86
+ br = new BufferedReader(isp);
87
+ }catch(Exception e){
88
+ System.err.print(e);
89
+ }
90
+ }
91
+ String inp(){
92
+ try{
93
+ str = br.readLine();
94
+ }catch(Exception e){
95
+ System.err.print(e);
96
+ }
97
+ return str;
98
+ }
99
+ void inpcls(){
100
+ try{
101
+ br.close();
102
+ }catch(Exception e){
103
+ System.err.println(e);
104
+ }
105
+ }
106
+ }
70
107
  ```
71
108
 
72
109
  ###試したこと