BC online shoping strings

Hi everyone,
I am trying to make custum  alert messages in Portuguese on a BC website using this code from : Customizing Online Shop Alert Message Strings
and also customize the online shop layout strings like "Shoping cart is empty! continue shooping " and  "1 item(s), Total: €12,00 VIEW CART" 
to "Carrinho de compras vazio! continuar as compras." and "1 item(s), Total:€ 12,00 VER CARRINHO DE COMPRAS"using this piece of code i found somewere here on the forum too:
" <script type="text/javascript">
var ele = GetElementsByClass('cartLink');
if(ele[0])   ele[0].innerHTML = 'O CARRINHO DE COMPRAS EST&Agrave; VAZIO!';// replace with your own message!
  function UpdateProductExtras(c, p, res) {
  document.getElementById('catCartDetails').innerHTML = 'O carrinho de compras est&aacute; vazio! <a href="/catalogos">VOLTAR</a>'; // replace with your own message!
var ele = GetElementsByClass('cartSummaryItem');
if(ele[0])   ele[0].innerHTML = 'Carrinho de compras vazio.';// replace with your own message!
  function UpdateProductExtras(c, p, res) {
  document.getElementById('cartSummaryItem').innerHTML = 'Carrinho de compras vazio.'; // replace with your own message!
var ele = GetElementsByClass('cartSummaryLink');
if(ele[0])   ele[0].innerHTML = 'Ver carrinho de compras >';// replace with your own message!
  function UpdateProductExtras(c, p, res) {
  document.getElementById('cartSummaryLink').innerHTML = 'Ver carrinho de compras >'; // replace with your own message!
</script>"
The piece of code works, but everytime BC fires a pop up window, like wen we add a new product to the shoping cart or wen we hit the empty shoping cart button, they go back to the original strings in English, and only when we refresh the browser or move to another catalog and continue shoping, the messages go back to Portuguese.
How can i Fix this?
The same happens to the pop up window messages from the js file from Customizing Online Shop Alert Message Strings, only change to Portuguese if we refresh the browser.

P.S.:I forgot to mention that on a android Tablet or phone they do appear in Portuguese,the pop up alert messages not the online shop strings, althoug sometimes I also have to refresh the browser because they appear in English.

Similar Messages

  • Adobe Business Catalyst online shoping strings

    I am trying to make custum alert messages in Portuguese on a Adobe Business Catalyst website using this code from : Customizing Online Shop Alert Message Strings
    and also customize the online shop layout strings like "Shoping cart is empty! continue shooping " and "1 item(s), Total: €12,00 VIEW CART" to "Carrinho de compras vazio! continuar as compras." and "1 item(s), Total:€ 12,00 VER CARRINHO DE COMPRAS"using this piece of code i found somewere on the Adobe forum too:
    <script type="text/javascript">
       var ele = GetElementsByClass('cartLink');
       if(ele[0])  ele[0].innerHTML = 'O CARRINHO DE COMPRAS EST&Agrave; `enter code here`VAZIO!';// replace with your own message!
       function UpdateProductExtras(c, p, res) {
      document.getElementById('catCartDetails').innerHTML = 'O carrinho de compras est&aacute; vazio! <a href="/catalogos">VOLTAR</a>'; // replace with your own message!
      var ele = GetElementsByClass('cartSummaryItem');
      if(ele[0]) ele[0].innerHTML = 'Carrinho de compras vazio.';// replace with your own message!
      function UpdateProductExtras(c, p, res) {
      document.getElementById('cartSummaryItem').innerHTML = 'Carrinho de compras vazio.'; // replace with your own message!
      }*/This one works but if we click to buy something then this doesn't show: "1 item(s), Total: €12,00 VIEW CART"
       var ele = GetElementsByClass('cartSummaryLink');
       if(ele[0])  ele[0].innerHTML = 'Ver carrinho de compras >';// replace with your own message!
       function UpdateProductExtras(c, p, res) {
      document.getElementById('cartSummaryLink').innerHTML = 'Ver carrinho de compras >'; // replace with your own message!
       </script>
    The piece of code seems to work, but everytime BC fires a pop up window, like wen we add a new product to the shoping cart or wen we hit the empty shoping cart button, they go back to the original strings in English, and only when we refresh the browser or move to another catalog and continue shoping, the messages go back to Portuguese. Can anyone give me a hand on how to Fix this?
    The same happens to the pop up window messages from the js file from Customizing Online Shop Alert Message Strings, they only change to Portuguese if we refresh the browser,every time we make a new action, the pop up window messages go back to english.
    This is the link to the template i am working on.

    Hi Machinette,
    I am trying to do the same as i did on the shopping cart sumary from the example you showed me with a tpl template {tag_cataloguelist template="/subcatalogos.tpl"}
    at
    AZUL E BRANCO
    for the subcatalogs
    This is the teplate:
    <ul class="catalogueList">
        <li class="catalogueItemNotFound">Este catálogo não tem sub-catalogos.</li>
        <li class="catalogueItem">
      <div class="shop-catalogue clear">
         <h5>{tag_name}</h5>
         <div class="image">{tag_image}</div>
      </div>
    </li>
    </ul>
    it shows the subcatalogs but on other product pages were there are no subcatalogs it still shows the message in English.
    why is it not working? why is it still showing :"This catalog has no sub-catalogs."
    I also did the same to the tagremove product from the shopping cart with a tpl
    <td>{tag_productremovelink template="remover.tpl"}</td>
    tpl
    <div class="productitemcell">
        <a href="#" onclick="UpdateItemQuantity(0,239333,302814,9135038,227051,'','PT');return false;">Remover</a>
    </div>
    and nothing,  what am i missing here?

  • Adobe Business Catalyst shoping strings

    I am trying to make custum alert messages in Portuguese on a Adobe Business Catalyst website using this code from : Customizing Online Shop Alert Message Strings
    and also customize the online shop layout strings like "Shoping cart is empty! continue shooping " and "1 item(s), Total: €12,00 VIEW CART" to "Carrinho de compras vazio! continuar as compras." and "1 item(s), Total:€ 12,00 VER CARRINHO DE COMPRAS"using this piece of code i found somewere on the Adobe forum too:
    <script type="text/javascript">
       var ele = GetElementsByClass('cartLink');
       if(ele[0])  ele[0].innerHTML = 'O CARRINHO DE COMPRAS EST&Agrave; `enter code here`VAZIO!';// replace with your own message!
       function UpdateProductExtras(c, p, res) {
      document.getElementById('catCartDetails').innerHTML = 'O carrinho de compras est&aacute; vazio! <a href="/catalogos">VOLTAR</a>'; // replace with your own message!
      var ele = GetElementsByClass('cartSummaryItem');
      if(ele[0]) ele[0].innerHTML = 'Carrinho de compras vazio.';// replace with your own message!
      function UpdateProductExtras(c, p, res) {
      document.getElementById('cartSummaryItem').innerHTML = 'Carrinho de compras vazio.'; // replace with your own message!
      }*/This one works but if we click to buy something then this doesn't show: "1 item(s), Total: €12,00 VIEW CART"
       var ele = GetElementsByClass('cartSummaryLink');
       if(ele[0])  ele[0].innerHTML = 'Ver carrinho de compras >';// replace with your own message!
       function UpdateProductExtras(c, p, res) {
      document.getElementById('cartSummaryLink').innerHTML = 'Ver carrinho de compras >'; // replace with your own message!
       </script>
    The piece of code seems to work, but everytime BC fires a pop up window, like wen we add a new product to the shoping cart or wen we hit the empty shoping cart button, they go back to the original strings in English, and only when we refresh the browser or move to another catalog and continue shoping, the messages go back to Portuguese. Can anyone give me a hand on how to Fix this?
    The same happens to the pop up window messages from the js file from Customizing Online Shop Alert Message Strings, they only change to Portuguese if we refresh the browser,every time we make a new action, the pop up window messages go back to english.
    This is the link to the template i am working on.

    There is an AJAX refresh of the DIV when you click certain items, you need to rebind your javascript on the refresh of the content.

  • UIImage to Base64 Encoded String does not matched with PHP Encoded String

    Hi, I have converted an image to base64 string using the following
    UIImage* pic = [UIImage imageNamed:@"closeBtn.png"];
        NSData* pictureData = UIImagePNGRepresentation(pic);
        [Base64 initialize];
        NSString * encodedString = [Base64 encode:pictureData];
    The result obtained by this method and by converting the same image to base64 string in PHP or ASP is different. I am comparing the base64 string (testData) with online generated string from URL http://www.dailycoding.com/Utils/Converter/ImageToBase64.aspx
    Please help ASAP

    Keith:
    I am converting the PNG Image.Actually i want to post a image to PHP server via JSON. for that i am converting the image into base64 string and then sending JSON via HTTP. but when server receives a image data , it cannot convert and save it properl (blank image with 0x0 dimensions). I have compared the Base64 String created from xCode with some online conversion tools. and results are different. I have even tried with JPG images as well.
    How can I get the Same Encoded String as PHP or ASP code can have?

  • JTree - node text doesn't fit when shown with icon

    When I start off my JTree with a long string text for the node (without any icon...used setLeafIcon( null )... it displays fine. But during the execution of hte program an icon may appear next to a particular node - but when this happens, the icon displays fine and the text of the node is cut off (you just see a couple letters followed by the usual "...").
    Any ideas?

    Thanks for the reply. I am not sure how to use that for what I'm doing...basically I am writing an AIM clone. And when a user sets an away message, I want an icon to appear next to their name, otherwise the icon is set to null. Here is the code I have right now for my tree cell renderer class (the tree class is a basic tree):
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.tree.*;
    import javax.swing.text.*;
    import java.util.*;
    import java.io.*;
    class MyTreeCellRenderer extends DefaultTreeCellRenderer {
         * Handle to the ClientTree.
        ClientTree clientTreeObj;
         * Constructor.
        public MyTreeCellRenderer( ClientTree ct ) {
            clientTreeObj = ct;
         * Gets the cell renderer for the current object
         * in the tree.
        public Component getTreeCellRendererComponent(
            JTree tree,
            Object value,
            boolean sel,
            boolean expanded,
            boolean leaf,
            int row,
            boolean hasFocus) {
        super.getTreeCellRendererComponent(
            tree, value, sel,
            expanded, leaf, row,
            hasFocus);
        // if we are at the root, take away the icons and set
        // the appropriate font.
        if (!leaf) {
            setClosedIcon( null );
            setOpenIcon( null );
            setToolTipText( null );
            setFont( new Font( "SansSerif", Font.BOLD, 14 ) );
        // we are at a leaf, so set the tooltip to be the username and
        // set the appropriate font.
        else {
            // make sure we are not at the "Users" node
            if ( !value.toString().equals( "Users" ) ) {
                // if the client has an away message, set the icon to a note icon
                if ( clientTreeObj.getJCC().getClientAwayMessage( value.toString() ).length() > 0 ) {
                    System.out.println( value.toString() + ": has a message..." );
                    setLeafIcon( new ImageIcon( "C:/JavaChat/JavaClient/images/message.jpg" ) );
                    ((DefaultTreeModel)tree.getModel()).nodeChanged((DefaultMutableTreeNode)tree.getPathForRow(row).getLastPathComponent() );
                    //tree.fireTreeExpanded( tree.getPathForRow( row ) );
                else {
                    setLeafIcon( null );
                    //tree.fireTreeExpanded( tree.getPathForRow( row ) );
                // get the connection time for the selected user
                // I TOOK OUT THE CODE TO CALCULATE THE TIME BECAUSE IT IS UNIMPORTANT AND LONG :)
                // set the tooltiptext to include the username and the online time
                String tooltip = " " + value.toString() + '\n' + "   Online time:" + '\t';
                    // days
                    if ( days > 0 ) {
                        if ( days == 1 )
                            tooltip += days + " day, ";
                        else
                            tooltip += days + " days, ";
                    // hours
                    if ( hours > 0 ) {
                        if ( hours == 1 )
                            tooltip += hours + " hour, ";
                        else
                            tooltip += hours + " hours, ";
                    // minutes (we always print at least 1)
                    if ( minutes > 1 )
                        tooltip += minutes + " minutes ";
                    else
                        tooltip += minutes + " minute ";
                    setToolTipText( tooltip );
                    setFont( new Font( "SansSerif", Font.PLAIN, 14 ) );
            return this;
        } // end getTreeCellRendererComponent
    } // end class MyRenderer

  • JDeveloper 11g Using jsp to display images

    I am converting a 10.1.3.3 application to 11.1.1.3
    It has 2 web modules. One is an ADF administrator module and the other is a public web that displays information including images stored as blobs.
    This public module has a simple technology scope, only html, java, jsp and servlets. It is a hand me down from a few technologies ago and ran well on 10.1.3.3
    To display images it uses a jsp acting as a servlet which is referenced inside other jsps. Since moving to 11g the images no longer display. If I use a java class servlet it works
    however I have to use the full url, e.g. http://mydomain:myport/web/Sevlet?.... which means I have to update the details for each deployment.
    I can use <h:graphicImage but this means I have to include JSF and use expression language to fill in the servlet parameters.
    I don't know what has changed to cause it to fail. Weblogic?
    The Libraries and Classpath include
    JSP Runtime
    Servlet Runtime
    JSTL 1.2
    The servlet jsp is as follows remembering it works in 10.1.3.3
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ page import="javax.naming.Context" %>
    <%@ page import="java.io.*" %>
    <%@ page import="userinterface.util.ByteArray" %>
    <%@ page import="userinterface.online.ImageUIHelper" %>
    <%@ page import="userinterface.online.ImageUIHelperValue" %>
    <%
         String dataObjectId = "";
         String regionId = "";
         boolean getObjectImage=false;
         boolean getRegionImage=false;
         // determine which type of image to retrieve
         if (request.getParameter("dataObjectId") != null)
              dataObjectId = request.getParameter("dataObjectId").toString();
              getObjectImage=true;
         } else if (request.getParameter("regionId") != null)
              regionId = request.getParameter("regionId").toString();
              getRegionImage=true;
         if (getObjectImage==true || getRegionImage == true)
              try
                   ImageUIHelper imageHelper = new ImageUIHelper();
                   ImageUIHelperValue vo = null;
                   if (getObjectImage)
                        vo = imageHelper.doReadObjectImage(new Integer(dataObjectId));
                   } else if (getRegionImage)
                        vo = imageHelper.doReadRegionImage(new Integer(regionId));
                   if (vo != null && vo.getImage() != null)
                        // determine the mimetype
                        String mimeType="image/png";
                        if (vo.getFilename().toLowerCase().endsWith(".gif"))
                             mimeType = "image/gif";
                        else if (vo.getFilename().toLowerCase().endsWith(".jpg"))
                             mimeType = "image/jpg; charset=windows-1252";
                        else if (vo.getFilename().toLowerCase().endsWith(".png"))
                             mimeType = "image/png";
                        else if (vo.getFilename().toLowerCase().endsWith(".bmp"))
                             mimeType = "image/bmp";
                        response.setContentType(mimeType);
                        response.setHeader("pragma", "no-cache");
                        ServletOutputStream os = response.getOutputStream();
    os.write(vo.getImage().getBytes());
                        os.flush();
                        os.close();
              } catch (Exception ex)
    A simple test harness follows. The actual pages substitute the java values using <%= uri %> as below
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%
    String uri = "http://localhost:7101/publicweb/img/ImageServlet?imageType=dataObject&dataObjectId=822";
    String uri2 = "ImageServlet.jsp?dataObjectId=822";
    String uri3 = "ImageServlet.jsp?dataObjectId=694";
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
    <title>testServlet</title>
    </head>
    <body>
    <table cellspacing="2" cellpadding="3" border="1" width="100%">
    <tr>
    <td width="20%">Checking Servlet</td>
    <td width="80%"><img src=<%= uri %>
    id="imge"
    width="400px" alt="Image" />
    </td>
    </tr>
    </table>
    </body>
    </html>

    i responded to your duplicate message 4 days ago:
    is it possible to insert and retrieve images from sql server using actionscript.
    you'll need server-side script to query your database and you can use the flash urlloader class to call your script.
    also  is it possible to create a flash scrolling gallery based on images  stored in a database and everytime an image is added it is displayed in  the gallery.
    load the data using the urlloader class and  then load the images.  periodically query the database for new images if  there's no direct way for flash to know a new image was added.

  • Oracle 10g Database startup problem Please help

    i am trying to start database but getting error;
    SQL> startup
    ORACLE instance started.
    Total System Global Area 281018368 bytes
    Fixed Size 788776 bytes
    Variable Size 229373656 bytes
    Database Buffers 50331648 bytes
    Redo Buffers 524288 bytes
    Database mounted.
    ORA-16038: log 2 sequence# 44103 cannot be archived
    ORA-19809: limit exceeded for recovery files
    ORA-00312: online log 2 thread 1: 'D:\ORADATA\ASDB\REDO02.LOG'
    Please guide and help
    Thanks,
    Waheed.

    The error stack is interpreted as follows:
    ORA-16038:     log string sequence# string cannot be archived
    Cause:     An attempt was made to archive the named file, but the file could not be archived. Examine the secondary error messages to determine the cause of the error.
    Action:     No action is required
    ORA-19809:     limit exceeded for recovery files
    Cause:     The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.
    Action:     The error is accompanied by 19804. See message 19804 for further details.
    ORA-19804:     cannot reclaim string bytes disk space from string limit
    Cause:     Oracle cannot reclaim disk space of specified bytes from the DB_RECOVERY_FILE_DEST_SIZE limit.
    Action:     There are five possible solutions: 1) Take frequent backup of recovery area using RMAN. 2) Consider changing RMAN retention policy. 3) Consider changing RMAN archivelog deletion policy. 4) Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE. 5) Delete files from recovery area using RMAN.
    ORA-00312:     online log string thread string: 'string'
    Cause:     This message reports the filename for details of another message.
    Action:     Other messages will accompany this message. See the associated messages for the appropriate action to take.
    DB_RECOVERY_FILE_DEST_SIZE specifies (in bytes) the hard limit on the total space to be used by target database recovery files created in the flash recovery area. You should increase this value.
    On the other hand, out from the context I guessed it is a 10gRx database, but you should specify this on your thread, as well as specify os details.
    ~ Madrid

  • Error opening database, Plz help!

    Dear Oracle Gurus,
    I have been getting this error message today, and I dont know what steps to be taken.
    SQL> alter database open;
    alter database open
    ERROR at line 1:
    ORA-16068: redo log file activation identifier mismatch
    ORA-00312: online log 1 thread 1: 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG'
    I am not able to log in with any of the users except a sysdba like sys.
    In other words, I am only able to log into the database thru sys but cannot perform any operations on tables or objects.
    I am running Oracle 9i R2
    Please help how to get rid of this problem.

    ORA-00312 online log string thread string: 'string'
    Cause: This message reports the file name for details of another message.
    Action: Other messages will accompany this message. See the associated messages for the appropriate action to take.
    ORA-00313 open failed for members of log group string of thread string
    Cause: The online log cannot be opened. The file may not be in the expected location.
    Action: Specify the correct redo log file or make the log available, if necessary. Also, see the accompanying messages.
    ORA-00314 log string of thread string, expected sequence# string doesn't match string
    Cause: The online log is corrupted or is an old version.
    Action: Find and install the correct version of the log or reset the logs. Refer to the Oracle9i Database Administrator's Guide for recovery procedures.

  • TreeCellRenderer class problem...

    I am building an AIM-like chat program. When a user sets an away message, I want to display the leaf icon for the user's node. The current code somewhat works, but there are 2 problems:
    1) I have to manually click on the users name or collapse/expand the tree to have the icon show up.
    2) the icon shows up, but the name is run off (only the ... is shown for the name) - the node length seems to be very shrot when an icon is displayed. Without the icon, the node can have text as long as it wants and go the width of the tree.
    Here is the current code I have (unimportant stuff taken out to shorten it up):
          * Gets the cell renderer for the current object
          * in the tree.
         public Component getTreeCellRendererComponent(
                                  JTree tree,
                                  Object value,
                                  boolean sel,
                                  boolean expanded,
                                  boolean leaf,
                                  int row,
                                  boolean hasFocus) {
              super.getTreeCellRendererComponent(tree, value, sel,
                                     expanded, leaf, row,
                                     hasFocus);
              // if we are at the root, take away the icons and set
              // the appropriate font.
              if (!leaf) {
                   setClosedIcon( null );
                   setOpenIcon( null );
                   setToolTipText( null );
                   setFont( new Font( "SansSerif", Font.BOLD, 14 ) );
              // we are at a leaf, so set the tooltip to be the username and
              // set the appropriate font.
              else {
                   // make sure we are not at the root
                   if ( !value.toString().equals( "Users" ) ) {
                        // if the client has an away message, set the icon to a note icon
                        if ( clientTreeObj.getJCC().getClientAwayMessage( value.toString() ).length() > 0 ) {
                             setIcon( getLeafIcon() );
                                            // this next line causes a mass of errors...                    
                                            //((DefaultTreeModel)tree.getModel()).nodeChanged((DefaultMutableTreeNode)tree.getPathForRow(row).getPathComponent(row) );
                                            // this next line causes flickering
                             //tree.fireTreeExpanded( tree.getPathForRow( row ) );
                        else {
                             setIcon( null );
                             //tree.fireTreeExpanded( tree.getPathForRow( row ) );
                        // set the tooltiptext to include the username and the online time
                        String tooltip = " " + value.toString() + '\n' + "   Online time:" + '\t';
                        setToolTipText( tooltip );
                        setFont( new Font( "SansSerif", Font.PLAIN, 14 ) );
              return this;
         } // end getTreeCellRendererComponent

    I have been playing around with this... it seems that the setIcon and setLeafIcon are giving different results. Sometimes the setIcon will allow the text+icon to fully appear, othertimes it won't, but setLeafIcon seems to always have problems showing hte name. the way the code is now, it "kinda" works, but has these undesirable effects. Any idea?

  • Ascii - char conversion

    What is the easiest way to convert from an ascii value to its corresponding char? I want to make a table of the unicode character set from values 32 to 126 with simple for loop. The only thing I could find online was String.fromCharCode() which didn't work since it's javascript.

    What is the easiest way to convert from an ascii value
    to its corresponding char? I want to make a table of
    the unicode character set from values 32 to 126 with
    simple for loop. The only thing I could find online
    was String.fromCharCode() which didn't work since it's
    javascript.The first 128 characters of all unicode character sets corresponds exactly to ASCII.
    For UTF-8....
    x00 => x00
    x01 => x01
    x7f => x7f
    For a 16 bit unicode charset it would be...
    x00 => x0000
    x01 => x0001
    x7f => x007f

  • Problem updating JTree via RMI

    I'm programming an Instant Messenger application in Java using RMI extensively. Much like most IM applications, my IM clients display a "buddy list" window upon successful authentication with the server. I have reached a huge stumbling block at this point. My Buddylist JFrame contains a JTree that is used to display the status of the user's buddies (i.e. online, offline). I am able to populate the JTree without any problems BEFORE the JFrame is displayed by using the DefaultTreeModel's insertNodeInto() method. But the problem I'm having is that, once the Buddylist is displayed to the user, I can't successfully update the JTree to reflect changing user status. For example, let's say a user with the screename "qwerty" logs in to the server. Now "qwerty" sees his Buddylist pop up on screen. His Buddylist contains 1 user (for simplicity's sake) with screename "foo". "foo" is currently not logged into the system so "foo" is shown in the Buddylist as a child of node Offline. But right now, let's say that "foo" logs into the system. "qwerty's" Buddylist should be updated to reflect the fact that "foo" just signed in by removing "foo" as a child node of Offline and adding a new node to Online called "foo".
    I currently have this functionality implemented as an RMI callback method on the server side. When "foo" logs in, the server calls the method fireBuddyLoggedOnEvent() with "foo" as the argument. Because "qwerty" is already logged in, and both users are each other's buddy, the statement
         c.getCallback().buddySignedOn(screenname);
    will be executed on the client side. Unfortunately, even though this code is successfully executed remotely, "qwerty's" Buddylist's JTree does not update to show that "foo" is now online. My only suspicion is that this is due to the fact that the Buddylist is already visible and this somehow affects its ability to be updated (remember that I have no problem populating the tree BEFORE it's visible). However, I've weeded out this possibility by creating a test frame in which its JTree is successfully updated, but in response to an ActionEvent in response to a button click. Of course, this test case was not an RMI application and does not come with the complexities of RMI. Please help me resolve this issue as it's preventing me from proceeding with my project.
    ~BTW, sorry for the poor code formatting. I added all the code in wordpad and pasted it in here, which stripped the formatting.
    * Frame that allows the user to enter information to
    * be used to login to the server.
    public class LoginFrame extends JFrame {
         signonButton.addActionListener(new java.awt.event.ActionListener() {
              public void actionPerformed(java.awt.event.ActionEvent e) {
                   if (!screenameTextField.getText().equals("") &&
                   !passwordTextField.getPassword().equals("")) {
                        try {
                             serverInter = (ServerInter) Naming.lookup(serverName);
                             String username = screenameTextField.getText();
                             String password = String.valueOf(passwordTextField.getPassword());
                             int connectionID = serverInter.connect(username, password);
                             System.out.println("authenticate successful");
                             dispose();
                             Buddylist buddyList = new Buddylist(username, connectionID);
                             // Registers the buddylist with the server so that
                             // the server can remotely call methods on the
                             // Buddylist.
                             serverInter.registerCallback(buddyList, connectionID);
                             return;
                             } catch (Exception e1) {
                                  JOptionPane.showMessageDialog(LoginFrame.this, e1.getMessage(),
                                            "Connection Error", JOptionPane.ERROR_MESSAGE);
                                  passwordTextField.setText("");
                                  signonButton.setEnabled(false);
                                  e1.printStackTrace();
         public static void main(String[] args) {
              new LoginFrame();
    public class Buddylist extends JFrame implements BuddylistInter {
         public Buddylist(String username, int connectionID) {
              try {
                   serverInter = (ServerInter) Naming.lookup(serverName);
                   this.username = username;
                   this.connectionID = connectionID;
                   this.setTitle(username + "'s BuddyList");
                   initialize();
                   } catch (Exception e) {
                        e.printStackTrace();
         * Method of interest. Note that this method uses a DynamicTree
         * object as included in the Sun tutorial on JTree's
         * (located at http://www.iam.ubc.ca/guides/javatut99/uiswing/components/tree.html#dynamic).
         * Don't worry too much about where the node is getting added
         * but rather, that i wish to verify that an arbitrary node
         * can successfully be inserted into the tree during this
         * remote method call
         public void buddySignedOn(String screenname) throws RemoteException {
              // should add screename at some location in the tree
              // but doesn't!
              treePanel.addObject(screename);
    * Oversimplified interface for the Buddylist that is intended
    * to be used to allow callbacks to the clientside.
    public interface BuddylistInter extends Remote {
         public void buddySignedOn(String screenname) throws RemoteException;
    * Another oversimplified interface that is to be
    * implemented by the server so that the client can
    * call remote server methods.
    public interface ServerInter extends java.rmi.Remote {
         // "Registers" the given Buddylist with this server to allow
         // remote callbacks on the Buddylist.
         public void registerCallback(Buddylist buddylist, int connectionID)
                             throws RemoteException;
    public class Server extends UnicastRemoteObject implements ServerInter {
         private Vector loggedInUsers = new Vector();
         // Note that this method assumes that a Connection object
         // representing the Buddylist with connectionID was added
         // to the loggedInUsers list during authentication.
         public void registerCallback(Buddylist buddylist, int connectionID) throws RemoteException {          
              int index = loggedInUsers.indexOf(new Connection(connectionID));
              Connection c = (Connection) loggedInUsers.get(index);
              c.setCallback(buddylist);
         // Method that's called whenever a client successfully
         // connects to this server object.
         // screename is the name of the user that successfully
         // logged in.
         private void fireBuddyLoggedOnEvent(String screenname) {
              // Examines each logged in client to determine whether
              // or not that client should be notified of screename's
              // newly logged in status.
              for (int i = 0; i < loggedInUsers.size(); i++) {
                   Connection c = (Connection) loggedInUsers.get(i);
                   if (database1.areBuddies(screenname, c.getUsername())) {
                        try {
                             // getCallback() returns a reference to
                             // the Buddylist that was registered
                             // with this server. At this point,
                             // the server attempts to notify the
                             // client that one of his "buddies" has
                             // just logged into the server.
                             c.getCallback().buddySignedOn(screenname);
                        } catch (RemoteException e) {
                             e.printStackTrace();
    }

    Ok, I deleted all .class files, recomplied, and rmic'd, and I still get the IllegalArgumentException. So I've decided to just post all the code here because I don't want to make an assumption that all the code is correct. Thanks for helping me out with this very stressful problem.
    * Created on Nov 13, 2006
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.rmi.Naming;
    import java.rmi.NotBoundException;
    import java.rmi.RemoteException;
    import java.rmi.server.UnicastRemoteObject;
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JPanel;
    import javax.swing.JSeparator;
    import javax.swing.SwingUtilities;
    import javax.swing.tree.DefaultMutableTreeNode;
    public class Buddylist extends JFrame implements BuddylistInter {
         private String serverName = "//Broom:" + "5001" + "/IMServer";
         private DynamicTree treePanel = null;
         private String onlineString = "Online";
         private String offlineString = "Offline";
         private DefaultMutableTreeNode onlineNode = null;
         private DefaultMutableTreeNode offlineNode = null;
         private ImageUpdater imageUpdater = null;
         private javax.swing.JPanel jContentPane = null;
         private ServerInter serverInter = null;
         private String username = null;
         // A connectionID of -1 indicates that this Buddylist
         // has not yet received a valid id from the server.
         private int connectionID = -1;
         private JMenuBar jJMenuBar = null;
         private JMenu jMenu = null;
         private JMenu jMenu1 = null;
         private JMenu jMenu2 = null;
         private JPanel imagePanel = null;
         private JSeparator jSeparator1 = null;
         public Buddylist(String username, int connectionID) {
             try {
                   serverInter = (ServerInter) Naming.lookup(serverName);
                   this.username = username;
                   this.connectionID = connectionID;
                   this.setTitle(username + "'s BuddyList");
                   imageUpdater = new ImageChooser(this);
                   initialize();
                    * This statement is causing an IllegalArgumentException
                    * to be thrown! I've tried inserting it at the beginning
                    * of the constructor and that doesn't help.
                   UnicastRemoteObject.exportObject(this);
              } catch (MalformedURLException e) {
                   e.printStackTrace();
              } catch (RemoteException e) {
                   e.printStackTrace();
              } catch (NotBoundException e) {
                   e.printStackTrace();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
              this.setJMenuBar(getJJMenuBar());
              this.setPreferredSize(new java.awt.Dimension(196,466));
              this.setMinimumSize(new java.awt.Dimension(150,439));
              this.setSize(196, 466);
              this.setContentPane(getJContentPane());
              this.setLocationRelativeTo(null);
              this.setVisible(true);
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private javax.swing.JPanel getJContentPane() {
              if(jContentPane == null) {
                   jContentPane = new javax.swing.JPanel();
                   jContentPane.setLayout(null);
                   jContentPane.add(getImagePanel(), null);
                   jContentPane.add(getJSeparator1(), null);
                   jContentPane.add(getTreePanel(), null);
              return jContentPane;
         private DynamicTree getTreePanel() {
              if (treePanel == null) {
                   treePanel = new DynamicTree();
                   onlineNode = treePanel.addObject(null, onlineString);
                   offlineNode = treePanel.addObject(null, offlineString);
                   treePanel.setBounds(6, 138, 177, 196);
                   populateTree();
                   return treePanel;
              return null;
         private void populateTree() {
              try {
                   String [] buddies = serverInter.getBuddyList(this.username);
                   for (int i = 0; i < buddies.length; i++) {
                        try {
                             if (serverInter.isBuddyOnline(buddies)) {
                                  treePanel.addObject(onlineNode, buddies[i]);
                             else {
                                  treePanel.addObject(offlineNode, buddies[i]);
                        } catch (RemoteException e1) {
                             e1.printStackTrace();
              } catch (RemoteException e) {
                   e.printStackTrace();
         * This method initializes jJMenuBar     
         * @return javax.swing.JMenuBar     
         private JMenuBar getJJMenuBar() {
              if (jJMenuBar == null) {
                   jJMenuBar = new JMenuBar();
                   jJMenuBar.add(getJMenu());
                   jJMenuBar.add(getJMenu1());
                   jJMenuBar.add(getJMenu2());
              return jJMenuBar;
         * This method initializes jMenu     
         * @return javax.swing.JMenu     
         private JMenu getJMenu() {
              if (jMenu == null) {
                   jMenu = new JMenu();
                   jMenu.setText("My IM");
              return jMenu;
         * This method initializes jMenu1     
         * @return javax.swing.JMenu     
         private JMenu getJMenu1() {
              if (jMenu1 == null) {
                   jMenu1 = new JMenu();
                   jMenu1.setText("People");
              return jMenu1;
         * This method initializes jMenu2     
         * @return javax.swing.JMenu     
         private JMenu getJMenu2() {
              if (jMenu2 == null) {
                   jMenu2 = new JMenu();
                   jMenu2.setText("Help");
              return jMenu2;
         * This method initializes imagePanel     
         * @return javax.swing.JPanel     
         private JPanel getImagePanel() {
              if (imagePanel == null) {
                   imagePanel = new JPanel();
                   imagePanel.setBounds(6, 2, 176, 125);
                   try {
                        BufferedImage bi =
                             ImageIO.read(
                                       getClass().getClassLoader().getResourceAsStream("images/cute_dog.jpg"));
                        Image scaled = bi.getScaledInstance(
                                  imagePanel.getWidth(), imagePanel.getHeight(), BufferedImage.SCALE_FAST);
                        final JLabel imageLabel = new JLabel(new ImageIcon(scaled));
                        imageLabel.setToolTipText("Double click to change image");
                        imagePanel.add(imageLabel, imageLabel.getName());
                        imageLabel.addMouseListener(new java.awt.event.MouseAdapter() {
                             public void mouseClicked(java.awt.event.MouseEvent e) {
                                  if (e.getClickCount() == 2) {
                                       Image selected = imageUpdater.getSelectedImage();
                                       if (selected != null) {
                                            BufferedImage bi = (BufferedImage) selected;
                                            Image scaled = bi.getScaledInstance(
                                                      imageLabel.getWidth(), imageLabel.getHeight(), BufferedImage.SCALE_DEFAULT);
                                            imageLabel.setIcon(new ImageIcon(scaled));
                   } catch (IOException e) {
                        e.printStackTrace();
              return imagePanel;
         * This method initializes jSeparator1     
         * @return javax.swing.JSeparator     
         private JSeparator getJSeparator1() {
              if (jSeparator1 == null) {
                   jSeparator1 = new JSeparator();
                   jSeparator1.setBounds(6, 132, 176, 1);
              return jSeparator1;
         public void buddySignedOn(String screenname) throws RemoteException {
              final String temp = screenname;
              Runnable addBuddy = new Runnable() {
                   public void run() {
                        treePanel.addObject(onlineNode, temp);
              SwingUtilities.invokeLater(addBuddy);
         public void buddySignedOff(String screenname) throws RemoteException {
              // TODO Auto-generated method stub
         public boolean equals(Object o) {
              Buddylist buddylist = (Buddylist) o;
              return connectionID == buddylist.connectionID;
         public int hashCode() {
              return connectionID;
    } // @jve:decl-index=0:visual-constraint="10,11"
    * Created on Nov 4, 2006
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface BuddylistInter extends Remote {
         public void buddySignedOn(String screenname) throws RemoteException;
         public void buddySignedOff(String screenname) throws RemoteException;
    * Created on Oct 14, 2006
    * Models a single endpoint of a connection between machines.
    * @author Josh Feldman
    public class Connection {
         private String username;
         private final int connectionID;
         private Buddylist callback = null;
         public Connection(String username, int connectionID) {
              this.username = username;
              this.connectionID = connectionID;
         public Connection(int connectionID) {
              this.connectionID = connectionID;
         public String getUsername() {
              return username;
         public int getConnectionID() {
              return connectionID;
         public void setCallback(Buddylist buddylist) {
              this.callback = buddylist;
         public Buddylist getCallback() {
              return callback;
         public boolean equals(Object o) {     
              Connection otherConnection = (Connection) o;
              if (otherConnection.getConnectionID() == this.connectionID) {
                   return true;
              else {
                   return false;
         public int hashCode() {
              return connectionID;
    * Created on Nov 4, 2006
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.Serializable;
    import java.util.Properties;
    public class Database implements Serializable{
         private final String regex = ";";
         private Properties db = null;
         private String dbPath = "buddies.txt";
         public Database() throws IOException {
              db = new Properties();
              File buddiesFile = new File(dbPath);
              if (!buddiesFile.canRead()) {
                   throw new IOException("Can't read database!");
              try {
                   FileInputStream fis = new FileInputStream(buddiesFile);
                   db.load(fis);
                   System.out.println("database loaded from file");
              } catch (IOException e) {
                   e.printStackTrace();
                   System.err.println("Can't load the database! Exiting program...");
                   System.exit(0);
          * called when a user adds/deletes a user from the buddylist
         public void changeBuddyList() {
              //TODO
         public boolean doesUserExist(String username) {
              System.out.println(db.getProperty(username));
              return db.getProperty(username) != null;
         public String getPassword(String username) {
              String temp = db.getProperty(username);
              String [] split = temp.split(regex);
              if (split.length == 2)
                   return split[0];
              else {
                   return null;
         public String getBuddies(String username) {
              String temp = db.getProperty(username);
              if (temp == null)
                   return null;
              String [] split = temp.split(regex);
              if (split.length != 2)
                   return null;
              else {
                   return split[1];
          * Determines whether screename1 is a buddy of screename2
          * @return
         public boolean areBuddies(String screename1, String screename2) {
              String [] buddies = getUserBuddies(screename2);
              if (buddies == null) {
                   return false;
              else {
                   for (int i = 0; i < buddies.length; i++) {
                        if (buddies.equals(screename1)) {
                             return true;
              return false;
         public String [] getUserBuddies(String username) {
              System.out.println("in db getUserBuddies: username = " + username);
              String temp = db.getProperty(username);
              if (temp == null)
                   return null;
              String [] split = temp.split(regex);
              if (split.length != 2)
                   return null;
              else {
                   return split[1].split(",");
    import java.awt.GridLayout;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.event.TreeModelEvent;
    import javax.swing.event.TreeModelListener;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeModel;
    import javax.swing.tree.MutableTreeNode;
    import javax.swing.tree.TreePath;
    import javax.swing.tree.TreeSelectionModel;
    // Note that this is not my code but rather code taken
    // from java Sun tutorial
    public class DynamicTree extends JPanel {
        protected DefaultMutableTreeNode rootNode;
        protected DefaultTreeModel treeModel;
        protected JTree tree;
        public DynamicTree() {
            rootNode = new DefaultMutableTreeNode("Root Node");
            treeModel = new DefaultTreeModel(rootNode);
            treeModel.addTreeModelListener(new MyTreeModelListener());
            tree = new JTree(treeModel);
            tree.setRootVisible(false);
            tree.setEditable(false);
            tree.getSelectionModel().setSelectionMode
                    (TreeSelectionModel.SINGLE_TREE_SELECTION);
            tree.setShowsRootHandles(false);
            JScrollPane scrollPane = new JScrollPane(tree);
            setLayout(new GridLayout(1,0));
            add(scrollPane);
        /** Remove all nodes except the root node. */
        public void clear() {
            rootNode.removeAllChildren();
            treeModel.reload();
        /** Remove the currently selected node. */
        public void removeCurrentNode() {
            TreePath currentSelection = tree.getSelectionPath();
            if (currentSelection != null) {
                DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)
                             (currentSelection.getLastPathComponent());
                MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent());
                if (parent != null) {
                    treeModel.removeNodeFromParent(currentNode);
                    return;
        public void removeObject(DefaultMutableTreeNode child) {
             treeModel.removeNodeFromParent(child);
    //         treeModel.reload();
        /** Add child to the currently selected node. */
        public DefaultMutableTreeNode addObject(Object child) {
            DefaultMutableTreeNode parentNode = null;
            TreePath parentPath = tree.getSelectionPath();
            if (parentPath == null) {
                parentNode = rootNode;
            } else {
                parentNode = (DefaultMutableTreeNode)
                             (parentPath.getLastPathComponent());
            return addObject(parentNode, child, true);
        public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
                                                Object child) {
            return addObject(parent, child, false);
        public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,
                                                Object child,
                                                boolean shouldBeVisible) {
            DefaultMutableTreeNode childNode =
                    new DefaultMutableTreeNode(child);
            if (parent == null) {
                parent = rootNode;
            treeModel.insertNodeInto(childNode, parent,
                                     parent.getChildCount());
            // Make sure the user can see the lovely new node.
            if (shouldBeVisible) {
                tree.scrollPathToVisible(new TreePath(childNode.getPath()));
            return childNode;
        class MyTreeModelListener implements TreeModelListener {
            public void treeNodesChanged(TreeModelEvent e) {
                DefaultMutableTreeNode node;
                node = (DefaultMutableTreeNode)
                         (e.getTreePath().getLastPathComponent());
                 * If the event lists children, then the changed
                 * node is the child of the node we've already
                 * gotten.  Otherwise, the changed node and the
                 * specified node are the same.
                try {
                    int index = e.getChildIndices()[0];
                    node = (DefaultMutableTreeNode)
                           (node.getChildAt(index));
                } catch (NullPointerException exc) {}
                System.out.println("The user has finished editing the node.");
                System.out.println("New value: " + node.getUserObject());
            public void treeNodesInserted(TreeModelEvent e) {
            public void treeNodesRemoved(TreeModelEvent e) {
            public void treeStructureChanged(TreeModelEvent e) {
        public DefaultTreeModel getModel() {
             return treeModel;
    * Created on Sep 24, 2006
    import java.awt.Frame;
    import java.awt.Image;
    import javax.swing.JComponent;
    * Generic Dialog for allowing a user to browse
    * his filesystem for an image file. Dialog
    * displays a preview of the image (if it is in fact
    * displayable).
    * @author Josh Feldman
    public class ImageChooser extends JComponent implements ImageUpdater{
         private Frame parent = null;
         public ImageChooser(Frame parent) {
              super();
              this.parent = parent;
         public Image getSelectedImage() {
              ImageChooserDialog dialog = new ImageChooserDialog(parent);
              if (dialog.showDialog() == ImageChooserDialog.OK_OPTION) {
                   return dialog.getSelectedImage();
              return null;
    }  //  @jve:decl-index=0:visual-constraint="10,10"
    * Created on Sep 24, 2006
    import java.awt.Frame;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    import javax.swing.JDialog;
    import javax.swing.ImageIcon;
    import javax.swing.JFileChooser;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    * Class that displays a dialog that allows a user
    * to browse his/her filesystem for an image file
    * for selection.
    * @author Josh Feldman
    public class ImageChooserDialog extends JDialog {
         private Frame parent = null;
         private JFileChooser fileChooser = new JFileChooser();
         private int option;
         public final static int OK_OPTION = 1;
         public final static int CANCEL_OPTION = 2;
         private Image selectedImage = null;
         private javax.swing.JPanel jContentPane = null;
         private JPanel previewPanel = null;
         private JLabel jLabel = null;
         private JTextField filenameTextField = null;
         private JButton browseButton = null;
         private JButton cancelButton = null;
         private JButton okButton = null;
         private JLabel previewLabel = null;
          * This is the default constructor
         public ImageChooserDialog(Frame parent) {
              super();
              this.parent = parent;
              this.setTitle("Select Image");
              initialize();
         public ImageChooserDialog(Frame parent, String title) {
              super();
              this.parent = parent;
              this.setTitle(title);
              initialize();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setModal(true);
              this.setSize(377, 246);
              this.setContentPane(getJContentPane());
              this.setVisible(false);
              this.setLocationRelativeTo(parent);
              this.addWindowListener(new java.awt.event.WindowAdapter() {
                   public void windowClosing(java.awt.event.WindowEvent e) {
                        selectedImage = null;
                        option = CANCEL_OPTION;
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private javax.swing.JPanel getJContentPane() {
              if(jContentPane == null) {
                   jLabel = new JLabel();
                   jContentPane = new javax.swing.JPanel();
                   jContentPane.setLayout(null);
                   jLabel.setBounds(87, 192, 58, 10);
                   jLabel.setText("Preview");
                   jContentPane.add(getPreviewPanel(), null);
                   jContentPane.add(jLabel, null);
                   jContentPane.add(getFilenameTextField(), null);
                   jContentPane.add(getBrowseButton(), null);
                   jContentPane.add(getCancelButton(), null);
                   jContentPane.add(getOkButton(), null);
              return jContentPane;
          * This method initializes previewPanel     
          * @return javax.swing.JPanel     
         private JPanel getPreviewPanel() {
              if (previewPanel == null) {
                   previewPanel = new JPanel();
                   previewLabel = new JLabel();
                   previewPanel.setLayout(null);
                   previewPanel.setLocation(25, 62);
                   previewPanel.setSize(172, 125);
                   previewPanel.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.LOWERED));
                   previewLabel.setText("");
                   previewLabel.setLocation(2, 2);
                   previewLabel.setSize(172, 125);
                   previewPanel.add(previewLabel, null);
              return previewPanel;
          * This method initializes jTextField     
          * @return javax.swing.JTextField
         private JTextField getFilenameTextField() {
              if (filenameTextField == null) {
                   filenameTextField = new JTextField();
                   filenameTextField.setBounds(26, 17, 212, 23);
                   filenameTextField.setEditable(false);
              return filenameTextField;
          * This method initializes jButton     
          * @return javax.swing.JButton     
         private JButton getBrowseButton() {
              if (browseButton == null) {
                   browseButton = new JButton();
                   browseButton.setBounds(254, 18, 102, 21);
                   browseButton.setText("Browse");
                   browseButton.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) { 
                             ImageFilter imageFilter = new ImageFilter();
                             fileChooser.setFileFilter(imageFilter);
                             int value = fileChooser.showOpenDialog(ImageChooserDialog.this);
                             if (value == JFileChooser.APPROVE_OPTION) {
                                  File selected = fileChooser.getSelectedFile();
                                  if (selected.canRead()) {
                                       try {
                                            BufferedImage bi = ImageIO.read(selected);
                                            selectedImage = bi;
                                            Image scaled = bi.getScaledInstance(
                                                      previewPanel.getWidth(), previewPanel.getHeight(), BufferedImage.SCALE_FAST);
                                            ImageIcon imageIcon = new ImageIcon(scaled);
                                            previewLabel.setIcon(imageIcon);
                                            filenameTextField.setText(selected.getAbsolutePath());
                                       } catch (IOException e1) {
                                            previewLabel.setText("Preview unavailable...");
                                            selectedImage = null;
                                            e1.printStackTrace();
              return browseButton;
          * This method initializes jButton1     
          * @return javax.swing.JButton     
         private JButton getCancelButton() {
              if (cancelButton == null) {
                   cancelButton = new JButton();
                   cancelButton.setBounds(254, 122, 100, 24);
                   cancelButton.setText("Cancel");
                   cancelButton.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                             selectedImage = null;
                             option = CANCEL_OPTION;
                             ImageChooserDialog.this.dispose();
              return cancelButton;
          * This method initializes jButton2     
          * @return javax.swing.JButton     
         private JButton getOkButton() {
              if (okButton == null) {
                   okButton = new JButton();
                   okButton.setBounds(256, 159, 97, 24);
                   okButton.setText("OK");
                   okButton.addActionListener(new java.awt.event.ActionListener() {
                        public void actionPerformed(java.awt.event.ActionEvent e) {
                             option = OK_OPTION;
                             ImageChooserDialog.this.dispose();
              return okButton;
          * Displays this chooser dialog.
          * @return - The user selected option
          *                (i.e. OK_OPTION, CANCEL_OPTION)
         public int showDialog() {
              this.setVisible(true);
              return option;
          * Returns the image chosen by the user.
          * @return
         public Image getSelectedImage() {
              return selectedImage;
    import java.io.File;
    import javax.swing.filechooser.FileFilter;
    public class ImageFilter extends FileFilter {
        //Accept all directories and all gif, jpg, tiff, or png files.
        public boolean accept(File f) {
            if (f.isDirectory()) {
                return true;
            String extension = Utils.getExtension(f);
            if (extension != null) {
                if (extension.equals(Utils.tiff) ||
                    extension.equals(Utils.tif) ||
                    extension.equals(Utils.gif) ||
                    extension.equals(Utils.jpeg) ||
                    extension.equals(Utils.jpg) ||
                    extension.equals(Utils.png)) {
                        return true;
                } else {
                    return false;
            return false;
        //The description of this filter
        public String getDescription() {
            return "Just Images";
    * Created on Sep 24, 2006
    import java.awt.Image;
    * Contract that specifies how a class can update
    * the view in its graphical display.
    * @author Josh Feldman
    public interface ImageUpdater {
         public Image getSelectedImage();
    * Created on Nov 4, 2006
    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.event.KeyEvent;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.rmi.Naming;
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    public class LoginFrame extends JFrame {
         private String serverName = "//Broom:5001/IMServer";
         private ServerInter serverInter = null;
         // The icon to be used when this frame is minimized
         private Image icon;
         // The main image to be displayed on this frame
         private Image robotImage;
         private javax.swing.JPanel jContentPane = null;
         private JPanel imagePanel = null;
         private JLabel screenameLabel = null;
         private JTextField screenameTextField = null;
         private JPanel jPanel1 = null;
         private JLabel passwordLabel = null;
         private JPasswordField passwordTextField = null;
         private JButton signonButton = null;
         private JButton helpButton = null;
          * This is the default constructor
         public LoginFrame() {
              initialize();
          * This method initializes this
          * @return void
         private void initialize() {
              this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
              this.setResizable(false);
              this.setSize(210, 368);
              this.setContentPane(getJContentPane());
              this.setTitle("Sign On");
              try {
                   this.setIconImage(ImageIO.read(new File("images/robby3.jpg")));
              } catch (IOException e) {
                   e.printStackTrace();
              this.setLocationRelativeTo(null);
              this.setVisible(true);
          * This method initializes jPanel     
          * @return javax.swing.JPanel     
         private JPanel getImagePanel() {
              if (imagePanel == null) {
                   imagePanel = new JPanel();
                   imagePanel.setBounds(7, 7, 190, 159);
                   imagePanel.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,0));
                   try {
                        BufferedImage bi =
                             ImageIO.read(
                                       getClass().getClassLoader().getResourceAsStream("images/robby_big.bmp"));
                        Image scaled = bi.getScaledInstance(190, 169, BufferedImage.SCALE_FAST);
                        JLabel robotLabel = new JLabel(
                                  new ImageIcon(scaled));
                        imagePanel.add(robotLabel);
                   } catch (IOException e) {
                        e.printStackTrace();
              return imagePanel;
          * This method initializes jTextField     
          * @return javax.swing.JTextField     
         private JTextField getScreenameTextField() {
              if (screenameTextField == null) {
                   screenameTextField = new JTextField();
                   screenameTextField.setBounds(22, 208, 168, 20);
                   screenameTextField.addKeyListener(new java.awt.event.KeyAdapter() {  
                        public void keyTyped(java.awt.event.KeyEvent e) {
                             if (!isAllowedCharacter(e.getKeyChar())) {
                                  e.consume();
                                  Toolkit.getDefaultToolkit().beep();
                        public void keyPressed(java.awt.event.KeyEvent e) {
                             int keycode = e.getKeyCode();
                             if(keycode == KeyEvent.VK_ENTER && signonButton.isEnabled()) {
                                  signonButton.doClick();
                                  passwordTextField.setText("");
                             else if (keycode == KeyEvent.VK_ESCAPE) {
                                  dispose();
                                  System.exit(0);
                        public void keyReleased(java.awt.event.KeyEvent e) {
                             String screename = screenameTextField.getText();
                             char [] password = passwordTextField.getPassword();
                             if (screename.equals("") ||
                                       password.length <= 0) {
                                  signonButton.setEnabled(false);
                             else if (!screename.equals("") &&
                                       password.length > 0) {
                                  signonButton.setEnabled(true);
                             clearPasswordArray(password);
              return screenameTextField;
          * This method initializes jPanel1     
          * @return javax.swing.JPanel     
         private JPanel getJPanel1() {
              if (jPanel1 == null) {
                   jPanel1 = new JPanel();
                   jPanel1.setBounds(8, 173, 188, 1);
                   jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray,5));
              return jPanel1;
          * This method initializes jPasswordField     
          * @return javax.swing.JPasswordField     
         private JPasswordField getPasswordTextField() {
              if (passwordTextField == null) {
                   passwordTextField = new JPasswordField();
                   passwordTextField.setBounds(20, 259, 170, 20);
                   passwordTextField.addKeyListener(new java.awt.event.KeyAdapter() {
                        public void keyTyped(java.awt.event.KeyEvent e) {
                             if (!isAllowedCharacter(e.getKeyChar())) {
                                  e.consume();
                                  Toolkit.getDefaultToolkit().beep();
                        public void keyPressed(java.awt.event.KeyEvent e) {
                             int keycode = e.getKeyCode();
                             if(keycode == KeyEvent.VK_ENTER && signonButton.isEnabled()) {
                                  signonButton.doClick();
                                  passwordTextField.setText("");
                             else if (keycode == KeyEvent.VK_ESCAPE) {
                                  dispose();
                                  System.exit(0);
                        public void keyReleased(java.awt.event.KeyEvent e) {
                             String screename = screenameTextField.getText();
                             char [] password = passwordTextField.getPassword();
                             if (screename.equals("") ||
                                       password.length <= 0) {
                                  signonButton.setEnabled(false);
                             else if (!screename.equals("") &&
                                       password.length > 0) {
                                  signonButton.setEnabled(true);
                             clearPasswordArray(password);
              return passwordTextField;
          * This method initializes jContentPane
          * @return javax.swing.JPanel
         private javax.swing.JPanel getJContentPane() {
              if(jContentPane == null) {
                   passwordLabel = new JLabel();
                   screenameLabel = new JLabel();
                   jContentPane = new javax.swing.JPanel();
                   jContentPane.setLayout(null);
                   screenameLabel.setBounds(22, 182, 132, 20);
                   screenameLabel.setText("Screename");
                   screenameLabel.setEnabled(true);
                   screenameLabel.setFont(new java.awt.Font("Century Gothic", java.awt.Font.BOLD, 12));
                   passwordLabel.setBounds(21, 238, 135, 17);
                   passwordLabel.setText("Password");
                   jContentPane.add(getImagePanel(), null);
                   jContentPane.add(screenameLabel, null);
                   jContentPane.add(getScreenameTextField(), null);
                   jContentPane.add(getJPanel1(), null);
                   jCon                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             

  • Project in jsp

    I am doing a Online Shopee project.I want to make a project in Jsp.So Please give me a step by step guidline how can i make a project.

    That depends on what tool you're goin to use to develop your project. If you use IBM Websphere/RAD, lot of things are easy when developing. If you use Tomcat, you would need to lot of steps manually. First decide the tool then think about writing code.

  • Server socket programming issue

    Hi there and thanks for visiting my post,
    I'm writing a instant message application. I've written a multi-threaded server that constant listens for socket connections on port 4001. When a connection is received by the server, it adds the thread (client) connection to an array (of fixed size, I allow a max of 100 connections or so) and starts the thread. Here's the code:
    import java.io.*;
    import java.util.*;
    import java.net.*;
    * @author Stephen
    public class Main {
        static ServerSocket         sock = null;
        static pmClientHandler      conn;
        static Socket               client = null;  
        static int                  port = 4001;
        static int                  MAX_CONNECTIONS = 100;
        static pmClientHandler      t[] = new pmClientHandler[MAX_CONNECTIONS]; // array that holds threads holds a max of 100 now
        /** Creates a new instance of Main */
        public Main() { }
         * Instantiate server listener
         * @param args the command line arguments
        public static void main(String[] args) {
            // TODO code application logic here
            try {
                sock = new ServerSocket(port);  // listen on port
            } catch (IOException e) {
                System.out.println("Cannot create server on port "+port+".");
                System.exit(1);
            System.out.println("Pita messenger server ready on port  "+port+". Listening for connections...\n\n");
            while (true) {    // infinite loop to listingen for many connections
                try {
                client = sock.accept();  // accept connection
                for (int i =0; i < MAX_CONNECTIONS; i++) {
                    if (t[i] == null) {
                       (t[i] = new pmClientHandler(client,t,MAX_CONNECTIONS)).start();
                       break;      
                } catch (IOException e) {  // ERROR ACCEPTING CONNECTION 
            } // end infini. loop listening for remote socket connections
    }Again, each instance thread object of pmClientHandler constantly listens for incoming messages from the client application. Here's the code for that class.
    import java.util.*;
    import java.net.*;
    import java.io.*;
    public class pmClientHandler extends Thread {
    public String       username = "";
    private boolean     userValidated = false;
    public boolean      userAway = false;
    public boolean      userInvisible = false;
    public boolean      userBusy = false;
    private ArrayList   currentBuddyList;
    public Socket      connection;
    public pmClientHandler t[];
    private Scanner     reciever;
    public PrintStream  sender = null;
    private int         MAX_CONNECTIONS;
    private boolean     isConnected = false;
        /** Creates a new instance of pmClientHandler */
        public pmClientHandler(Socket s, pmClientHandler[] newThread, int maxc) {
            connection = s; // hand over socket
            MAX_CONNECTIONS = maxc;
            t = newThread; // hand over thread. We now have new populate array of clients in t[]
            isConnected = true;  // user connected
            try {  // create IO streams for this particular client
                reciever = new Scanner(connection.getInputStream()); 
                sender = new PrintStream(connection.getOutputStream(), true);  //auto flush true
            } catch (IOException e) { close(); }
         * Required method by threads. Method is called when thread is executed.
         public void run() {
          String clientMessage;
          pmServerMessenger resource = new pmServerMessenger();
          while(isConnected) { 
            // Determine username and password request
            clientMessage = reciever.nextLine().trim();
            ///////////////////////  HANDLE PROTOCOL / MESSAGES  /////////////////////////////////
            // So we know user has established a connection to the server but has not yet logged in yet.
            if (clientMessage.toUpperCase().startsWith("ECHO")) { sender.println("ECHO BACK, HELLO CLIENT"); }
            if (clientMessage.startsWith("LOGIN")) {  // client wishes to log in
                clientMessage = clientMessage.substring(5).trim();
                if (clientMessage.indexOf(" ") != -1) {
                    String suppliedUsername, suppliedPassword;
                    suppliedUsername = clientMessage.substring(0, clientMessage.indexOf(" ")).trim();
                    suppliedPassword = clientMessage.substring(clientMessage.indexOf(" ")).trim();
                    // Valid user
                    if (resource.validateUser(suppliedUsername, suppliedPassword)) {    
                        sender.println("ACDFG324323DSSDGTRR54745345DFGDFSE3423423DHDFHER4565DFGDFGERT");  // send key to client
                        userValidated = true;   // set flag to allow user to access server resources.
                        this.username = suppliedUsername;
                    } else {
                        sender.println("INVALIDLOGIN");
                } else {
                    sender.println("INVALIDLOGIN");
                    this.close();
            } // end user login routine //////////////////////////////////////////////
            if (clientMessage.toUpperCase().startsWith("LOADBUDDYLIST")) {
                if (isConnected && userValidated) {
                    ArrayList thisUsersBuddyList = resource.getBuddyList(this.username);
                    for (int i = 0; i < thisUsersBuddyList.size(); i++) {
                        String currBuddy = (String) thisUsersBuddyList.get(i);
                        if (currBuddy != "" && currBuddy != null) {
                            sender.println(currBuddy);
                    sender.println("ENDBUDDYLIST");  // let client know we're done sending client buddy list
            if (clientMessage.toUpperCase().startsWith("ISONLINE")) {
                String usrToCheck = clientMessage.substring(8).trim();
                if (isOnline(usrToCheck)) {
                    sender.println("YES "+usrToCheck);
                } else {
                    sender.println("NO "+usrToCheck);
            if (clientMessage.toUpperCase().startsWith("ISAWAY")) {
                String usrToCheck = clientMessage.substring(6).trim();
                if (isUserAway(usrToCheck)) {
                    sender.println("Z "+usrToCheck);  // is away
                } else {
                    sender.println("X "+usrToCheck);  // not away
            if (clientMessage.toUpperCase().startsWith("CLIENTAWAY")) {
                String usrToCheck = clientMessage.substring(10).trim();
                if (!usrToCheck.trim().equals("")) {
                    setClientAsAway(usrToCheck);
            if (clientMessage.toUpperCase().startsWith("CLIENTBACK")) {
                String usrToCheck = clientMessage.substring(10).trim();
                if (!usrToCheck.trim().equals("")) {
                    setClientAsBack(usrToCheck);
            // Exit the clients connection to the server.
            if (clientMessage.toUpperCase().startsWith("EXIT")) {
                sender.println("GOODBYE");
                this.close();
            if (clientMessage.toUpperCase().startsWith("WHOISONLINE")) {
                whoisOnline();
            if (clientMessage.toUpperCase().startsWith("DISPATCHIM")) {
                String imStr = clientMessage.substring(1).trim();
                String to = imStr.substring(0,imStr.indexOf(" ")).trim();
                String imMsg = imStr.substring(imStr.indexOf(" ")).trim();
                dispatchIM(to,imMsg);  
          }  // end while is connected
        } // End run method
         public synchronized void addIMToQueue(String from, String msg) {
             instantMessage im = new instantMessage(from,msg);
             imQueue.addLast(im);
         private synchronized void getInstantMessages() {
             while (!imQueue.isEmpty()) {
                 instantMessage tmpMsg = imQueue.remove();
                 String tmpHandle = tmpMsg.getHandle();
                 String tmpImMsg = tmpMsg.getMsg();
                 sender.println("L "+tmpHandle+" "+tmpImMsg);
             sender.println("IMPOPDONE");
         private void dispatchIM(String to, String m) {
            for (int i = 0; i < MAX_CONNECTIONS; i++) {
                if (t[i] != null) {
                    if (t.username.trim().equals(to)) {
    pmClientHandler x = t[i];
    PrintStream ps = x.sender;
    ps.println("IMMSG "+this.username+" "+m);
    * Method will relay back to client a list of who's online. When it's finished
    * the command DONELISTING is dispatched.
    private void whoisOnline() {
    for(int i=0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null && t[i].username.trim() != "")
    sender.println(t[i].username);
    sender.println("DONELISTING"); // so client knows we're done
    } // END whoisOnline METHOD
    private boolean isOnline(String user) {
    boolean isOn = false;
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null && t[i].username.trim().equals(user.trim())) {
    isOn = true; break;
    return isOn;
    private boolean isUserAway(String user) {
    boolean tmpIsAway = false;
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null) {
    if (t[i].username.trim().equals(user)) {
    if (t[i].userAway) {
    tmpIsAway = true;
    break;
    } else {
    break;
    return tmpIsAway;
    private void setClientAsAway(String user) {
    //this.userAway = true;
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null) {
    if (t[i].username.trim().equals(user)) {
    t[i].userAway = true;
    private void setClientAsBack(String user) {
    //this.userAway = false;
    //this.userBusy = false;
    //this.userInvisible = false;
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null) {
    if (t[i].username.trim().equals(user)) {
    t[i].userAway = false;
    t[i].userBusy = false;
    t[i].userInvisible = false;
    private boolean isUserBusy(String user) {
    boolean tmpIsBusy = false;
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null) {
    if (t[i].username.trim().equals(user)) {
    if (t[i].userBusy) {
    tmpIsBusy = true;
    break;
    } else {
    break;
    return tmpIsBusy;
    private boolean isUserInvisible(String user) {
    boolean tmpIsInvisible = false;
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null) {
    if (t[i].username.trim().equals(user)) {
    if (t[i].userInvisible) {
    tmpIsInvisible = true;
    break;
    } else {
    break;
    return tmpIsInvisible;
    * Method will close the connection to the server.
    * It will also free up array location for any new connections
    private void close() {
    if (isConnected) {
    try {
    connection.close();
    isConnected = false;
    userValidated = false;
    System.out.println("User " + username + " has disconnected from the Pita Messenger server.");
    for(int i=0; i < MAX_CONNECTIONS; i++)
    if (t[i]==this) t[i]=null; // set array element to null so we can accept another
    // connection had we been maxed out
    } catch (IOException e) { }
    } // end pmClientHandler class
    Now finally for my problem...this all works EXACTLY as expected when I telnet to the server. My client GUI application has an issue though. When I want to send an IM to a particular user...the thread code above that listens for *DISPATCHIM* get's who the IM is to and what the message is in the following protocol format *DISPATCHIM to msg* and call the following private method:private void dispatchIM(String to, String m) {
    for (int i = 0; i < MAX_CONNECTIONS; i++) {
    if (t[i] != null) {
    if (t[i].username.trim().equals(to)) {
    pmClientHandler x = t[i];
    PrintStream ps = x.sender;
    ps.println("IMMSG "+this.username+" "+m);
    Basically, if not obvious, what I'm doing here is iterating through the array of client connection threads and finding the client thread that belongs who this message is to, and accessing the sender object and dispatching to the IM to that client. Again, all works perfectly in telnet. However, my client GUI is not recieving any data. With all my testing, it seems that I am only able to access and modify strings and boolean variables, however it's like I've lost the sender object (only in my GUI app). This is really bugging the hell out of me and I've spent days trying to figure this out. Something is just not right. My client app has a dispatcher thread that constantly listens for incoming connects (if a buddy is online, or an instant message). This is the run method of that class:public void run() {
    String data;
    while(true) {
    try {
    try {
    data = reciever.nextLine();
    if (!data.trim().toUpperCase().startsWith("YES") && !data.trim().toUpperCase().startsWith("NO") && !data.trim().toUpperCase().startsWith("X") && !data.trim().toUpperCase().startsWith("Z")) {
    System.out.println("Foreign command: "+data);
    } catch (Exception e) { System.out.println("ERR: "+e); break; }
    // pass any data returned at any time during to the serverListener method
    serverListener(data);
    } catch (Exception e) { }
    * Method is used to handle all incoming messages from the server.
    private void serverListener(String data) {
    if (data.trim().toUpperCase().startsWith("IMMSG")) {   // Handle incoming im
    String imStr = data.substring(1).trim();
    String imFrom = imStr.substring(0,imStr.indexOf(" ")).trim();
    String imMsg = imStr.substring(imStr.indexOf(" ")).trim();
    // Check to see if we have any IM sessions open already
    if (isChatWithBuddyOpen(imFrom)) {
    imWindow thisIMSession = getIMSession(imFrom);
    thisIMSession.appendBuddyMessage(imMsg);
    thisIMSession.setVisible(true);
    } else {
    newIMSession(imFrom);
    imWindow thisIMSession = getIMSession(imFrom);
    thisIMSession.appendBuddyMessage(imMsg);
    thisIMSession.setVisible(true);
    // Garbage collection for old IM sessions
    if (!imSessions.isEmpty()) {
    for (int i = 0; i < imSessions.size(); i++) {
    imWindow isGarbageIM = imSessions.get(i);
    if (isGarbageIM == null || isGarbageIM.chatBuddy.trim().equals("")) {
    imSessions.remove(i);
    } else if (data.trim().toUpperCase().startsWith("Z")) {  // Handle user is away response
    String userResponse = data.substring(1).trim();
    clientGUI.handleUserAwayMsg(userResponse, true);
    } else if (data.trim().toUpperCase().startsWith("X")) {  // Handle user is online response
    String userResponse = data.substring(1).trim();
    clientGUI.handleUserAwayMsg(userResponse, false);
    } else if (data.trim().toUpperCase().startsWith("ISBUSY")) { // Handle user is busy response
    } else if (data.trim().toUpperCase().startsWith("NOTBUSY")) { // Handle user is not busy
    } else if (data.trim().toUpperCase().startsWith("ISINVISIBLE")) { // Handle user is invisible
    } else if (data.trim().toUpperCase().startsWith("NOTINVISIBLE")) { // Handle user is  not invisible
    } else if (data.trim().toUpperCase().startsWith("YES")) {  // Handle user is online
    String userResponse = data.substring(3).trim();
    clientGUI.handleUserOnlineMsg(true,userResponse);
    } else if (data.trim().toUpperCase().startsWith("NO")) {  // Handle user is offline
    String userResponse = data.substring(3).trim();
    clientGUI.handleUserOnlineMsg(false,userResponse);
    } // end serverListener method
    It's like my receiver object gets NOTHING. Again, this only occurs with my GUI app, in telnet. Can anyone PLEASE advise as to what might be occuring. Thanks very much. If you might really be able to help I could post the entire app and server zipped up so that you can poke through. If you help me figure this out and I understand why it's not working, I'll buy you a case of your favorite beer ;) Thanks!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

    A couple of things.
    In future Networking related questions should be posted into the Networking forum.
    There is too much code here and too much page width. It's a bit overwhelming. You'll need to narrow this down a bit. From looking so far I see some potential
    portocol related issues. Like the readLine. Are you sure you are always writing line breaks on the other side? And then there's the substring bits which are
    going to be brittle.
    My suiggestion would be to trace things through and be able to point out exactly where the code is getting stuck/failing. Even getting it narrowed down to a method
    would be very helpful.

  • How to get First Occurnece of SubString from any string using SharePoint Designer Workflow in SharePoint Online 2013(Office 365)

    Hello All,
    I am facing Problem in SharePoint Designer Workflow. The Problem is that while replacing some subtstring with Space from a string which contains item like {Test, Test, Test, Test}, It replaces all items.
    Below two line we are using in Workflow.
    Can any body suggest some soultion for Finding first ouucrence of ", " so that we can replace only first value from string not all. When String values are different then getting proper values but if String values are same with comma
    seperated then it replace all values.
    Please some body help and your help will be heighly appriciable.
    Thanks in Advance.
    Thanks,
    Vivek Kumar Pandey   

    Have you tried to use Regular Expressions instead of Replace?
    This post is my own opinion and does not necessarily reflect the opinion or view of Slalom.

  • I cannot log in to which online .when i try to log in my username shows [ljava.lang.string@ and some numbers. I can log in using i.e but not FIREFOX .

    I cannot log in on which web page .I am a member and contacted them ,they said it could be temporary folder issue and to delete them,i have done this and cleared my recent history .I also disabled all plug ins and extensions,finally i restored my laptop to an aerlier time.Apreciate any help.Thanks.

    "Clear the Cache": Tools > Options > Advanced > Network > Offline Storage (Cache): "Clear Now"<br />
    "Remove the Cookies" from sites that cause problems: Tools > Options > Privacy > Cookies: "Show Cookies"<br />
    Start Firefox in [[Safe Mode]] to check if one of your add-ons is causing your problem (switch to the DEFAULT theme: Tools > Add-ons > Themes).
    See [[Troubleshooting extensions and themes]] and [[Troubleshooting plugins]]

Maybe you are looking for

  • New development - need new roads added and 33 lot address locations corrected

    Hello, I am in the new homes and residential development business. I just developed a new residential development and I need to get Bing to update their roads and addresses. The addresses and roads have been in existence since about August 2014. I wo

  • Signing with digital id in Acrobat Reader DC

    We have been using Acrobat Digital Signatures for long time. I have just installed Reader DC and I am trying to find out how it can be done in this new version. In the Edit / Preferences I am able to create digital ID and setup it's appearance but I

  • Connect to S-Video

    OK, been looking everywhere and can't seem to find a definitive answer. Can I hook up the Apple TV via S-Video? We have an older Sony TV (wife's not rteady to upgrade that yet...) and some screwy Kenwood receiver. Right now I have our Dish Network/DV

  • No Audio in K7N2G-ILSR

     ;( I am initializing a new board, and I can't get the audio to work. I already read the audio thread on how to install the realtek drivers, but that does not seem to work for me. I always get the following error: "Cannot install this hardware. The d

  • SSRS Drillthrough Reports functionality not working in exported Excel format

    Hi All, Recently I have made a drillthrough report in SSRS 2008R2,Its working fine only in MSBI run mode and preview mode of report designer.Going from main report to sub report and any other report through drillthrough report its work fine. When I e