<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to bugs</title><link>https://sourceforge.net/p/beepcore-java/bugs/</link><description>Recent changes to bugs</description><atom:link href="https://sourceforge.net/p/beepcore-java/bugs/feed.rss" rel="self"/><language>en</language><lastBuildDate>Thu, 01 Jun 2006 19:34:32 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/beepcore-java/bugs/feed.rss" rel="self" type="application/rss+xml"/><item><title>PiggyBack reply</title><link>https://sourceforge.net/p/beepcore-java/bugs/42/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;It was shown that channel.getStartData() was deprecated.&lt;br /&gt;
However, it seems to me that beepcore-java do not have&lt;br /&gt;
other&lt;br /&gt;
method to get the PiggyBackReply from the server.&lt;br /&gt;
Why it was deprecated while there is not alternative?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">J-B</dc:creator><pubDate>Thu, 01 Jun 2006 19:34:32 -0000</pubDate><guid>https://sourceforge.net32e46b45ac2c5e4752f45228c22ee9052f7a49db</guid></item><item><title>SessionListener.greetingReceived is never called.</title><link>https://sourceforge.net/p/beepcore-java/bugs/41/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The root cause is that the method&lt;br /&gt;
SessionImpl.fireGreetingReceived() is never called.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Warren Janssens</dc:creator><pubDate>Sat, 18 Feb 2006 00:29:41 -0000</pubDate><guid>https://sourceforge.net489cc90dfaa44a934755856a8be53230b5140174</guid></item><item><title>removeSessionListener, get NullPointerExce</title><link>https://sourceforge.net/p/beepcore-java/bugs/40/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;If you&lt;/p&gt;
&lt;p&gt;1. open a session&lt;br /&gt;
2. add a sessionlistener&lt;br /&gt;
3. remove the sessionListener&lt;br /&gt;
4. close the session&lt;/p&gt;
&lt;p&gt;...you'll get a NullPointerException.&lt;/p&gt;
&lt;p&gt;The problem is in SessionImpl.java, and affects both&lt;br /&gt;
sessions and channels, which use similar code to&lt;br /&gt;
maintain lists of listeners.  For some reason, a&lt;br /&gt;
list is maintained and an array is maintained&lt;br /&gt;
containing the same information.  The problem comes&lt;br /&gt;
from this odd implementation (why not use just a&lt;br /&gt;
List?).&lt;br /&gt;
In removeSessionListener, the object is removed from&lt;br /&gt;
the list, and then the list is converted to the array,&lt;br /&gt;
but a zero-length List doesn't get converted to an&lt;br /&gt;
empty array.  From the docs for toArray():&lt;/p&gt;
&lt;p&gt;If the list fits in the specified array with room&lt;br /&gt;
to spare (i.e., the array has more elements than&lt;br /&gt;
the list), the element in the array immediately&lt;br /&gt;
following the end of the collection is set to null.&lt;/p&gt;
&lt;p&gt;The above is always true in removeSessionListener,&lt;br /&gt;
so the array gets one more element than the writer&lt;br /&gt;
intended.  Later, when, say, fireSessionTerminated&lt;br /&gt;
is called, it tests for an array length of zero.&lt;br /&gt;
The array has one (null) element, the test fails,&lt;br /&gt;
the null is accessed, and a NullPointerException&lt;br /&gt;
happens.&lt;/p&gt;
&lt;p&gt;I fixed this by changing the tests in the six fireXXX&lt;br /&gt;
methods to make them check for a list size of zero&lt;br /&gt;
instead of an array length of zero.  It seems that&lt;br /&gt;
this code and the corresponding add/remove methods&lt;br /&gt;
would be better if Lists were used and the arrays&lt;br /&gt;
were dropped.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Pete Siemsen</dc:creator><pubDate>Wed, 23 Nov 2005 23:25:14 -0000</pubDate><guid>https://sourceforge.net892f9d639d369da1c5eb0c76a38bdf2cb8cf76f2</guid></item><item><title>Updated patches</title><link>https://sourceforge.net/p/beepcore-java/bugs/39/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;We found a better way to fix the bugs in previous reports:&lt;br /&gt;
1116373 &lt;br /&gt;
1054893 &lt;br /&gt;
1023951 &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dong Xin</dc:creator><pubDate>Mon, 21 Mar 2005 20:34:40 -0000</pubDate><guid>https://sourceforge.net27d02800df3a4b51bdbccd34c072ce3113c4ea8a</guid></item><item><title>Reply.getNextReply locks up the thread</title><link>https://sourceforge.net/p/beepcore-java/bugs/38/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;After experimenting with the Bing profile, in a test&lt;br /&gt;
scenario charting the post-failure behaviour of the the&lt;br /&gt;
most recent Java BeepCore implementation, a thread&lt;br /&gt;
could be locked in a wait state without any opportunity&lt;br /&gt;
for other threads to notify it to continue.&lt;/p&gt;
&lt;p&gt;The thread cannot be notified because it's the only&lt;br /&gt;
thread left 'running' inside the VM. &lt;/p&gt;
&lt;p&gt;The problem occurs when during the EchoProfile session,&lt;br /&gt;
one of the peer's cables become unplugged. &lt;/p&gt;
&lt;p&gt;The blocking wait is invoked inside the reply object in&lt;br /&gt;
the method getNextReply.&lt;/p&gt;
&lt;p&gt;As this is a connection-oriented protocol, the Reply&lt;br /&gt;
object should be kept informed about the life-cycle of&lt;br /&gt;
the associated channel. Currently, it would appear it&lt;br /&gt;
doesn't.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">beep@tomoton</dc:creator><pubDate>Tue, 15 Feb 2005 16:25:51 -0000</pubDate><guid>https://sourceforge.net52b8563b558a49a8818caec097f015e96f72c721</guid></item><item><title>TuningProfile</title><link>https://sourceforge.net/p/beepcore-java/bugs/37/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;We were trying to implement saslsrp in beepcore. The&lt;br /&gt;
problem&lt;br /&gt;
we found in the current implementation are:&lt;/p&gt;
&lt;p&gt;1. The SEQ message are always sent out before the message &lt;br /&gt;
is processed in non-tuning mode, since we want to&lt;br /&gt;
switch the&lt;br /&gt;
ordinary socket to an SRPsocket, the SEQ message introduces&lt;br /&gt;
difficulties to synchronize a point where both peers&lt;br /&gt;
can safely &lt;br /&gt;
switch the underlying socket.&lt;/p&gt;
&lt;p&gt;2. If we use the tuning mode, both server and client&lt;br /&gt;
side will&lt;br /&gt;
communicate via raw socket layer. Since we have to follow &lt;br /&gt;
the SASLProfile to implement SASLSRP, this TLS like&lt;br /&gt;
approach&lt;br /&gt;
is not desirable.&lt;/p&gt;
&lt;p&gt;We made two patch files for ChannelImpl and Channel to fix &lt;br /&gt;
the above problems. More specifically, we add more&lt;br /&gt;
state variables&lt;br /&gt;
which help us still use the beepcore framework while in&lt;br /&gt;
tuning.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dong Xin</dc:creator><pubDate>Fri, 04 Feb 2005 18:32:19 -0000</pubDate><guid>https://sourceforge.netc5247fa566e6246c71c010bf4651d5725af27999</guid></item><item><title>channel.getStartData()</title><link>https://sourceforge.net/p/beepcore-java/bugs/36/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;It was shown that channel.getStartData() was deprecated.&lt;br /&gt;
However, it seems to me that beepcore-java do not have&lt;br /&gt;
other&lt;br /&gt;
method to get the PiggyBackReply from the server.&lt;br /&gt;
Why it was deprecated while there is not alternative?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dong Xin</dc:creator><pubDate>Tue, 26 Oct 2004 22:06:38 -0000</pubDate><guid>https://sourceforge.net08a6455161be813fc1db1ab9db06f4d17a85e747</guid></item><item><title>issue with startChannel on a shared Session</title><link>https://sourceforge.net/p/beepcore-java/bugs/35/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I've 2 peers trying to start their own channel on the &lt;br /&gt;
each other's Profile on a shared&lt;br /&gt;
Session.&lt;br /&gt;
Peer A to Peer B communication is fine. When Peer B &lt;br /&gt;
tries to reuse the&lt;br /&gt;
received Session object to start the Channel using &lt;br /&gt;
session.startChannel(ProfileA),&lt;br /&gt;
I get this exception of Unsupported profile.&lt;/p&gt;
&lt;p&gt;Here's the code on PeerA:&lt;br /&gt;
public class Client  implements&lt;br /&gt;
Profile,StartChannelListener,org.beepcore.beep.core.Requ&lt;br /&gt;
estHandler&lt;br /&gt;
{&lt;br /&gt;
....register profileA&lt;br /&gt;
reg.addStartChannelListener(uri,&lt;br /&gt;
p.init(uri, profileConfig),&lt;br /&gt;
tuning);&lt;br /&gt;
...&lt;br /&gt;
//initiate session&lt;br /&gt;
session = TCPSessionCreator.initiate(host, port);&lt;br /&gt;
channel = session.startChanne(ProfileB);&lt;br /&gt;
Now send the message here.. Works fine&lt;/p&gt;
&lt;p&gt;//Has other callbacks implemented similar to &lt;br /&gt;
EchoProfile&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;Code on PeerB:&lt;br /&gt;
public class Server  implements&lt;br /&gt;
Profile,StartChannelListener,org.beepcore.beep.core.Requ&lt;br /&gt;
estHandler&lt;br /&gt;
{&lt;br /&gt;
....register profileB&lt;br /&gt;
reg.addStartChannelListener(uri,&lt;br /&gt;
p.init(uri, profileConfig),&lt;br /&gt;
tuning);&lt;br /&gt;
...&lt;/p&gt;
&lt;p&gt;public void startChannel(Channel channel, String &lt;br /&gt;
encoding, String data)&lt;br /&gt;
throws StartChannelException&lt;br /&gt;
{&lt;br /&gt;
channel.setRequestHandler(this);&lt;br /&gt;
//STORE THE SESSION here.. is this a problem??&lt;br /&gt;
peerSession = channel.getSession();&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;//Has other callbacks implemented similar to &lt;br /&gt;
EchoProfile&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;On the PeerB side, in a different Java class I try to &lt;br /&gt;
use the peerSession object above to startChanel that's &lt;br /&gt;
when I get the exception:&lt;br /&gt;
org.beepcore.beep.core.SessionImpl$StartReplyListener &lt;br /&gt;
receiveERR&lt;br /&gt;
&amp;gt; SEVERE: Received an error in response to a start. &lt;br /&gt;
code=550&lt;br /&gt;
&amp;gt; diagnostic=all requested profiles are unsupported&lt;/p&gt;
&lt;p&gt;This is how I call startChannel:&lt;br /&gt;
Channel channel;&lt;br /&gt;
try {&lt;/p&gt;
&lt;p&gt;//session object being used here &lt;br /&gt;
is stored after this peer received the message from the &lt;br /&gt;
other Peer. Can I use this stored session to start a &lt;br /&gt;
Channel on the other peers' profile?? This where I get &lt;br /&gt;
the exception.&lt;br /&gt;
channel =&lt;br /&gt;
session.startChannel(ProfileA);&lt;br /&gt;
} catch (BEEPError e) {&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;I checked the profile info on both sides and are OK.&lt;/p&gt;
&lt;p&gt;In summary, PeerA to PeerB communication is OK&lt;br /&gt;
PeerB also receives the Reply from PeerA. But PeerB &lt;br /&gt;
can't startChannel() on peerA.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">ceek63</dc:creator><pubDate>Tue, 26 Oct 2004 01:49:25 -0000</pubDate><guid>https://sourceforge.net7814055222234b30588276be7d454abc58bea822</guid></item><item><title>PiggyBack</title><link>https://sourceforge.net/p/beepcore-java/bugs/34/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I am not sure where it is my misusage or a bug in beepcore.&lt;/p&gt;
&lt;p&gt;Here is what we traced when piggyback is used.&lt;br /&gt;
Client:&lt;br /&gt;
StartChannelRequest with a piggybacked data&lt;/p&gt;
&lt;p&gt;Server:&lt;br /&gt;
1. ProcessStartChannelRequest&lt;br /&gt;
2. detect the piggybacked MSG and put in the recvMSGQueue&lt;br /&gt;
of a new channel (say channel 1)&lt;br /&gt;
3. Channel 1 is invoked to process the piggybacked MSG&lt;br /&gt;
4. In PiggybackMSG.sendRPY, the reply data is given to&lt;br /&gt;
channel 0&lt;br /&gt;
5. Channel 0 send the piggybacked reply to client,&lt;br /&gt;
remove msg from&lt;br /&gt;
the head of recvMSGQueue of channle 0, while leaviing a&lt;br /&gt;
msg at the head of recvMSGQueue of channel 1&lt;/p&gt;
&lt;p&gt;Next time, when client send another request, there are&lt;br /&gt;
two msgs in &lt;br /&gt;
the recvMSGQueue in channel 1, the channel 1 will not&lt;br /&gt;
process any&lt;br /&gt;
message at all, because the condition to process&lt;br /&gt;
message is &lt;br /&gt;
to check whether the size of recvMSGQueue is 1.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dong Xin</dc:creator><pubDate>Tue, 07 Sep 2004 20:08:30 -0000</pubDate><guid>https://sourceforge.nete83d963f569e44cf29a56a2c7fe93e0b812fa9d6</guid></item><item><title>InputDataStreamAdapter doesn't handle msgs w/o a MIME header</title><link>https://sourceforge.net/p/beepcore-java/bugs/33/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;This class expects a message that explicitly declares a &lt;br /&gt;
MIME header (ContentType). If that is not the case, the &lt;br /&gt;
result is sometimes an empty stream. That depends on &lt;br /&gt;
the message content itself.&lt;br /&gt;
Per spec, when a MIME header is not specified, it must &lt;br /&gt;
assume a default (application/octet-stream).&lt;br /&gt;
The problem is that the class searches for a ':'. It &lt;br /&gt;
should, instead, do a proper MIME parsing.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Wladimir Araujo</dc:creator><pubDate>Mon, 19 Jan 2004 23:48:04 -0000</pubDate><guid>https://sourceforge.net52da4b2c8959f54470821a2b732f2f0dbb0dd8db</guid></item></channel></rss>