Why this doesn't work?

Hi,
Is there anyone who could help me debug this piece?
I only get '1' in the print statement -
instead of an expected 'ab1'
Thanks.
int RESULT;
String testOut = new String();
String testIn1 = new String ("a");
String testIn2 = new String ("b");
RESULT = testingInOut(testOut, testIn1, testIn2);
System.out.println("TESTOUT = "+ testOut +RESULT);
     public static int testingInOut(String OUT,
                    String IN1,
                    String IN2)
     OUT = IN1+IN2;
     return(1);
     }               -----------------------------------

Hi,
Is there anyone who could help me debug this piece?
I only get '1' in the print statement -
instead of an expected 'ab1'Java only passes by value. You are passing a reference called 'testOut'. That reference is copied (pass by value) when the method is called.
In your method you create a new string and then assign it to the copy of the reference. And then you return. The copy is discarded. And you still use the original.

Similar Messages

  • Confused as to why this doesn't work...

    I wrote this code correctly, but it doesn't seem to work. I'm not sure if I'm leaving something out or not using something correctly. If anyone can tell me why this doesn't work, it would be greatly appreciated!
    P.S. in the actionPerformed method, I want to put the window to close once someone clicks an "ok" button. How is this done? I've tried using setDefaultCloseOperation(3), but it doesn't seem to work.
    peace,
    Mark
    //?2002 Copyright. MJA Technologies.  All Rights Reserved.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class About extends JFrame implements ActionListener
        JTextArea textarea;
        JPanel panel1;
        JButton okbutton;
        String output;
        public About()
            super("Pages");
            Container container = getContentPane();
            textarea = new JTextArea();
            textarea.setText("Pages 1.0 beta 0\n?2002 MJA Technologies.\nAll Rights Reserved.");
            container.add(textarea);
            setDefaultCloseOperation( 3);
            setVisible(true);
            setSize(400, 300);
        public void actionPerformed(ActionEvent event)
            if(event.getSource() == okbutton)

    Oh see, you said this:
    "P.S. in the actionPerformed method, I want to put the window to close once someone clicks an "ok" button. How is this done? I've tried using setDefaultCloseOperation(3), but it doesn't seem to work."
    so I said this:
    "setVisible(false)"
    NOOOOOOOOOOOW you say the TextArea doesn't show up...that's a whole other problem.
    Jeeeeeeeeeeeeeeeez.
    So what layout manager are you using in the container? (hint hint)

  • SELECT for update + WAIT: why this doesn't work?

    here is sample data:
    create table t1 (x number, y number);
    create table t2 (x number, y number);
    insert into t1 values(1,1);
    insert into t1 values(2,2);
    insert into t1 values(3,3);
    insert into t2 values(2,2);
    commit;
    session 1:
    update t1 set y = 20 where x = 2; -- do not commit here
    session 2:
    declare
      cursor c is ( select t1.rowid as t1rid, t2.x, t2.y
      from t1, t2
      where t1.x = t2.x ) for update wait 300;
      type c_t is table of c%rowtype;
      c_v c_t;
    begin
      open c;
      loop
        fetch c bulk collect into c_v;
        exit when c%notfound;
        forall i in 1..c_v.count
          update t1 set y = 40 where rowid = c_v(i).t1rid;
      end loop;
      close c;       
    end;now session 2 waits because the row is locked in session 1. do a rollback in session 1. session 2 continues but doesn't update a row. why?
    thank you

    943276 wrote:
    thanks!
    I followed your remarks and found this interesting article:
    http://www.oracle.com/technetwork/issue-archive/2008/08-mar/o28plsql-095155.html
    I have to re-read it again and give it a second thought but I grasped the idea. so, if there is no LIMIT clause this code should be OK, right?
    open c;
    fetch c bulk collect into c_v;
    forall i in 1..c_v.count
    update t1 set y = 40 where rowid = c_v(i).t1rid;
    close c; 
    You are absolutely right, now..
    while when I decide to process in "batches" this one should stay, right?
    open c;
    loop
    fetch c bulk collect into c_v limit 1000;
    exit when c_v.count = 0;
    forall i in 1..c_v.count
    update t1 set y = 40 where rowid = c_v(i).t1rid;
    end loop;
    close c; 
    This also looks fine.. (Hopefully, you are just learning..the samething can be done with a single UPDATE
    my concern is that I don't understand the way WAIT works when incorporated in above scenario. is it:
    a) delaying opening a cursor for declared time (max) or untill the lock can be placed on all rows? ORThis is what is happening..
    b) cursor opens anyway, it is bulk update which is waiting OR
    c) something else?
    could you please in a few words describe what is happening within the scenario above with two sessions?
    thank you

  • Anyone know why this doesn't work?

    Hi,
    I am trying to work with layeredPane's, and I am having a bit trouble, Here is my modified code of a java tutorial:
    package org;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    * LayeredPaneDemo.java is a 1.4 application that requires
    * images/dukeWaveRed.gif.
    public class LayeredPaneDemo extends JPanel {
        private String[] layerStrings = { "Yellow (0)", "Magenta (1)",
                                          "Cyan (2)",   "Red (3)",
                                          "Green (4)" };
        private Color[] layerColors = { Color.yellow, Color.magenta,
                                        Color.cyan,   Color.red,
                                        Color.green };
         private Label[] layeredLabels = new Label[5];
        private JLayeredPane layeredPane;
        public LayeredPaneDemo()    {
            setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
            //Create and set up the layered pane.
            layeredPane = new JLayeredPane();
            layeredPane.setPreferredSize(new Dimension(300, 310));
              for (int i = 0; i < layerStrings.length; i++) {
                layeredLabels[i] = createColoredLabel(layerStrings, layerColors[i] );
         layeredLabels[i].addMouseListener(mouseListener);
         setupLayers();
    add(layeredPane);
         private MouseListener mouseListener = new MouseAdapter() {
              public void MouseClicked(MouseEvent e) {     System.err.println("clicked");
                   Label label = (Label) e.getSource();
                   label.setUp();
                   setupLayers();
                   layeredPane.validate();
                   layeredPane.repaint();
         private void setupLayers() {
    //This is the origin of the first label added.
    Point origin = new Point(10, 20);
    //This is the offset for computing the origin for the next label.
    int offset = 35;
              //Add several overlapping, colored labels to the layered pane
    //using absolute positioning/sizing.
              for(int x=0; x< layeredLabels.length; x++) {
                   Label label = layeredLabels[x];
         if(label.up) {
    origin.y += offset;
    label.setBounds(origin.x, origin.y, 100, 100);
    layeredPane.add(label, new Integer(x));
    origin.x += offset;
                   if(label.up) {
    origin.y -= offset;
    //Create and set up a colored label.
    private Label createColoredLabel(String text, Color color) {
    Label label = new Label(text);
    label.setVerticalAlignment(JLabel.TOP);
    label.setHorizontalAlignment(JLabel.CENTER);
    label.setOpaque(true);
    label.setBackground(color);
    label.setForeground(Color.black);
    label.setBorder(BorderFactory.createLineBorder(Color.black));
    return label;
    * Create the GUI and show it. For thread safety,
    * this method should be invoked from the
    * event-dispatching thread.
    private static void createAndShowGUI() {
    //Make sure we have nice window decorations.
    JFrame.setDefaultLookAndFeelDecorated(true);
    //Create and set up the window.
    JFrame frame = new JFrame("LayeredPaneDemo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //Create and set up the content pane.
    JComponent newContentPane = new LayeredPaneDemo();
    newContentPane.setOpaque(true); //content panes must be opaque
    frame.setContentPane(newContentPane);
    //Display the window.
    frame.pack();
    frame.setVisible(true);
    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
         class Label extends JLabel {
              public boolean up = false;
              public Label(String text) {
                   super(text);
              public void setUp() { up = !up; }
    for some reason the mouse listener isn't responding, and i don't know why..
    Thats only part of my problem. When the mouse listener does respond, I want to only move one of the labels in the Y direction, and then re-paint everything...
    any ideas?

    public void MouseClicked(MouseEvent e) {     System.err.println("clicked");should be small m
    public void mouseClicked(MouseEvent e) {     System.err.println("clicked");                                                                                                                                                                                                                                                                                                                                                       

  • How do I save a photo after I have zoomed in on it?  I want to save the zoom-in as a new photo and can't work out why this doesn't work the same way saving a cropped image, or adjusted image does.  Thank you.

    How do I save an image after I have zoomed in on it?  I can't work out why I can't save a zoom-in the same way
    I can save a cropped image or an adjusted image. Thanks, Lily A.

    Hi Matt, thanks for your reply.  Have realised that Zoom in Iphoto is just  a viewing tool and not an editing tool.
    Was creating beautiful abstractions by zooming in and wanted to create a new image of the result.   Have since discovered that cropping after zooming takes me a little way to where I want to go but it isn't the same effect.  Will perhaps have to try to create it when actually shooting.  Am doing a photoshop course in February and maybe will learn a bit more then, too.  Am pretty much an amateur just finding my way.
    Thanks again,
    Best, Lily

  • Scrollbars with painting - why this doesn't work properly ?

    Hello I written such a small program:
    /* Test.java */
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test extends JFrame {
         private JPanel mainPanel;
         private InnerPanel innerPanel; // Panel w/ JScrollPane
         private JScrollPane scroll;
         private JButton addItem;
         public static final int WINDOW_WIDTH = 200;
         public static final int WINDOW_HEIGHT = 200;
         public Test () {
              buildPanel();
              add(mainPanel);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
              setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
              setVisible(true);
         public void buildPanel() {
              mainPanel = new JPanel(new BorderLayout());
              innerPanel = new InnerPanel();
              scroll = new JScrollPane(innerPanel);
              scroll.setPreferredSize(new Dimension(100, 100));
              addItem = new JButton("Add an item to JPanel");
              addItem.addActionListener(new ButtonListener());
              mainPanel.add(scroll, BorderLayout.CENTER);
              mainPanel.add(addItem, BorderLayout.PAGE_START);
         private class ButtonListener implements ActionListener {
              public void actionPerformed(ActionEvent e) {
                   innerPanel.increase();
                   innerPanel.revalidate();
                   scroll.revalidate();
                   scroll.getVerticalScrollBar().setValue(
                        (scroll.getVerticalScrollBar()).getMaximum());
         public static void main(String[] args) {
              Test test = new Test();
    class InnerPanel extends JPanel {
         int x0 = 50, y0 = 50, x1 = 100, y1 = 50;
         public void paintComponent(Graphics g) {
              g.drawLine(x0,y0,x1,y1);
         public void increase() {
              x1 += 50;
              setPreferredSize(new Dimension(x1 + 100, y0));
              repaint();
    }I click for example 5 times on the button and then move the scroll max to the right.
    The end of the line should be already visible, but it's not. However it will be,
    when you resize the frame just a bit.
    Now when I try to move scroll max to the left but the beginning of the line doesn't show up. However it will , when you resize the frame just a bit.
    Can anybody point where I made a mistake ?

    Not sure I understand the description of the problem. I didn't notice any change in painting when I resized the frame, but anyway I made the following changes to help with the painting:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class Test6 extends JFrame {
         private JPanel mainPanel;
         private InnerPanel innerPanel; // Panel w/ JScrollPane
         private JScrollPane scroll;
         private JButton addItem;
         public static final int WINDOW_WIDTH = 200;
         public static final int WINDOW_HEIGHT = 200;
         public Test6 () {
              buildPanel();
              getContentPane().add(mainPanel);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
              setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
              setVisible(true);
         public void buildPanel() {
              mainPanel = new JPanel(new BorderLayout());
              innerPanel = new InnerPanel();
              scroll = new JScrollPane(innerPanel);
              scroll.setPreferredSize(new Dimension(100, 100));
              addItem = new JButton("Add an item to JPanel");
              addItem.addActionListener(new ButtonListener());
              mainPanel.add(scroll, BorderLayout.CENTER);
              mainPanel.add(addItem, BorderLayout.PAGE_START);
         private class ButtonListener implements ActionListener {
              public void actionPerformed(ActionEvent e) {
                   innerPanel.increase();
    //               innerPanel.revalidate();
    //               scroll.revalidate();
                   scroll.getVerticalScrollBar().setValue(
                        (scroll.getVerticalScrollBar()).getMaximum());
         public static void main(String[] args) {
              Test6 test = new Test6();
    class InnerPanel extends JPanel {
         int x0 = 50, y0 = 50, x1 = 100, y1 = 50;
         public void paintComponent(Graphics g) {
              super.paintComponent(g); // added
              g.drawLine(x0,y0,x1,y1);
         public void increase() {
              x1 += 50;
              setPreferredSize(new Dimension(x1 + 100, y0));
              revalidate();  // added
    //          repaint();
    }

  • Both Google and Yahoo accounts have a box which says "Stay Signed In", but this doesn't work. Why

    Both Google and Yahoo accounts have a box which says "Stay Signed In", but this doesn't work. Why?
    When I try to go to these accounts, they continue to ask me to provide Username and Password, but I've checked the "Stay Signed In" box each time.

    Websites remembering you and automatically log you in is stored in a cookie.
    * Create an allow cookie exception (Tools > Options > Privacy > Cookies: Exceptions) to keep such a cookie, especially for secure websites and if cookies expire when Firefox is closed.
    * In [[Private Browsing]] mode all cookies are session cookies that expire if that session is ended, so websites won't remember you.
    * Do not use [[Clear Recent History]] to clear the "Cookies" and the "Site Preferences"
    Clearing "Site Preferences" clears all exceptions for cookies, images, pop-up windows, software installation, and passwords.
    * http://kb.mozillazine.org/Cookies

  • TS1702 Can anyone help? For no reason, I cannot open any of my apps.  I can open everything else, just not apps.  I have turned the ipad on and off several times, this doesn't work.  Does anyone know what to do and why this has happened?

    Hello, for some strange reason I cannot open any of the apps I have.  I have tried turning the ipad on and off and this doesn't work.  I can open everything else (videos, camera, etc) just no apps.  Can anyone help please?

    If it's the apps that you've downloaded from the App Store, but not the Apple built-in ones, then try downloading any free app from the store (as that appears to reset something) and then re-try them - the free app can then be deleted.
    If it's all apps including Apple's then try closing them all completely and then see if they work when you re-open them : from the home screen (i.e. not with any app 'open' on-screen) double-click the home button to bring up the taskbar, then press and hold any of the apps on the taskbar for a couple of seconds or so until they start shaking, then press the '-' in the top left of each app to close them, and touch any part of the screen above the taskbar so as to stop the shaking and close the taskbar.
    If that doesn't work then you could try a reset : press and hold both the sleep and home buttons for about 10 to 15 seconds (ignore the red slider), after which the Apple logo should appear - you won't lose any content, it's the iPad equivalent of a reboot.

  • Why FaceTime doesn't work in Saudi Arabia ?

    why FaceTime doesn't work in Saudi Arabia ?

    we have stores sell apple products some of them sell with faetime at a high rate,
    and some other sell apple products without facetime at a normal price.
    finaly we need apple stores in Saudi Arabia to prevent this fraud.
    thank you
    what you're saying here is that some people parallel import apple products around the normal channels and they are from other countries so they havent got facetime blocked
    and others normally import apple products and they are blocked
    and then you go on believing that if apple had a store in saudi things would be better rest asured that if they did they would sell products with facetime blocked

  • 'this' doesn't work with static main declaration

    Hi!
    Is it normal that the class instance accessor 'this' doesn't work when using the public static void main method? When yes, can somebody explain why?
    Marc
    example:
    public class JavaTest
    static String hello = "Hello world";
    public static void main(String args[])
    System.out.println("hello before modifying:" + hello);
    changeData(hello);
    System.out.println("hello afterwards:" + hello);
    public static void changeData(String hello)
    // here comes the error
    this.hello = "Hello Luxembourg";

    Can you tell me why 'this' does not work here, Dmitri
    S.?According to "The Java Language Specification",
    "keyword this may be used only in the body of an instance method, instance
    initializer or constructor, or in the initializer of an instance variable of a class. If it
    appears anywhere else, a compile-time error occurs."
    You've tried to use it in static method which may be executed when there is no instances of that class (as it happens in your code) and does not correspond to any particular instance of the class while "this" means "this class instance".

  • I Try to open an Indesign document. The message: it is made in a newer version. Go tot CC: Help/Give your Adobe id/Start Indesign again and try to open the document. This doesn't work. How to solve this problem?

    I Try to open an Indesign document. The message: it is made in a newer version. Go tot CC: Help/Give your Adobe id/Start Indesign again and try to open the document. This doesn’t work. How to solve this problem?

    What version are you running?
    What version was it made with?

  • One reason why commandLink doesn't work in dataTable

    Ok, so I think I've got an explanation why commandLink doesn't work in dataTable when the model bean is request scoped. Maybe somebody can tell me if I'm wrong.
    I have a model bean that generates table rows based on some input criteria (request parameters).
    So, we validate the inputs, apply them to the bean and render the page. Once the inputs have been applied to the bean, a request for table rows returns rows, no problem.
    However, we put a commandLink in each row, so we can expand the details. Maybe we even get smart and repeat the input row-generating criteria as a hidden field in the page.
    Unfortunately, when the user hits the commandLink, the list page simply refreshes, maybe even w/out table rows. The user doesn't get the details page as expected.
    Why not?
    Because: in the DECODE phase (even before validation and before "immediate" values have had their valueChangeListeners called), we ask the model bean for the table rows, so we can decode the commandLinks. Unfortunately, in "decode" phase, the request-scoped model bean has not had its row-generating criteria updated (that happens in the "update model" normally, or at the END of the decode phase if we got cute by (1) setting the "immediate" attribute on the row-generating criteria to "true" AND (2) set a valueChangeListener to allow us to update the model bean early. The END of the decode phase isn't good enough -- in the middle of that phase, when we're attempting to deocde commandLinks, the model bean has no citeria, so there's no row data. No row data means no iteration over commandLinks to decode them and queue ActionEvents. So, we march through the rest of the phases, process no events, and return to the screen of origin (the list screen) with no errors.
    So, what's the solution?
    One solution is to make the model bean session-scoped. Fine, maybe we can store a tiny bit of data in it (the search criteria), so it's not such a memory drag to have it live in the session forever. How do we get that data in? A managed property in faces-config.xml with value #{param.PARENT_KEY} won't work because it's assigning request-scoped data to a session-scoped holder. JBoss balks, and rightly so. Do we write code in the model bean that pulls the request parameter out of thin air? (FacesContext.getExternalContext()....) I don't really like to code the name of a specific http request parameter into the bean, I think it's the job of the JSP or faces-config.xml to achieve that binding (request parameter to model propery). Plus, I'd be sad to introduce a dependency on Faces in what was previously just a bean.
    Is there a better way?
    In my particular situation, we're grafting some Faces pages onto an already-existing non-Faces application. I don't get the luxury of presenting the user an input field and binding it to a bean. All I've got to work with is a request parameter.
    Hmm, I guess I just answered my own question. if all I've got to work with is a request parameter, some ugliness is inevitable, I guess.
    I guess the best fix is to cheat and have the bean constructor look for a request parameter. If it finds it, it initializes the criteria field (which, in my case, is the key of an object that has a bunch of associated objects (the rows data), but could be more-general d/b search criteria).
    (I looked at the "repeater" example code in the RI, but it basically statically-generates its data and then uses 100% Faces (of course) to manage the paging (where "page number" is essentially the "criteria").
    Comments? Did I miss something obvious?
    John.

    ...or I could just break down and do the thing I was hoping to avoid (outputLink instead of commandLink):
    <h:outputLink value="/faces/Detail.jsp">
      <f:param name="PARENT_KEY" value="#{bean.parentKey}"/>
      <h:outputText value="#{bean.label}"/>
    </h:outputLink>It's still a "hardcoded" parameter name, but at least the binding is in the JSP and faces-config.xml, not the bean Java code.

  • My Ipad2 won't turn off.  I've tried the reset method,  holding both buttons down for at least 10 seconds, but this doesn't work. I'm on version 5.1.1 and all other functions work except that I cannot get onto the internet via wi-fi either.  Help ??

    My Ipad2 won't turn off.  I have tried the reset method by holding both buttons down for at least 10 seconds, but this doesn't work.  I can't get onto the internet via wi-fi either (don't have a 3G card fitted).  All other functions seem to be working OK including charging. Not had this problem before, but I recently upgraded software to 5.1.1 so is there a bug in there somewhere?

    Look at last link.
    Look at iOS Troubleshooting Wi-Fi networks and connections  http://support.apple.com/kb/TS1398
    iPad: Issues connecting to Wi-Fi networks  http://support.apple.com/kb/ts3304
    iOS: Recommended settings for Wi-Fi routers and access points  http://support.apple.com/kb/HT4199
    Additional things to try.
    Try this first. Turn Off your iPad. Then turn Off (disconnect power cord) the wireless router & then back On. Now boot your iPad. Hopefully it will see the WiFi.
    Go to Settings>Wi-Fi and turn Off. Then while at Settings>Wi-Fi, turn back On and chose a Network.
    Change the channel on your wireless router. Instructions at http://macintoshhowto.com/advanced/how-to-get-a-good-range-on-your-wireless-netw ork.html
    Another thing to try - Go into your router security settings and change from WEP to WPA with AES.
    How to Quickly Fix iPad 3 Wi-Fi Reception Problems
    http://osxdaily.com/2012/03/21/fix-new-ipad-3-wi-fi-reception-problems/
    If none of the above suggestions work, look at this link.
    iPad Wi-Fi Problems: Comprehensive List of Fixes
    http://appletoolbox.com/2010/04/ipad-wi-fi-problems-comprehensive-list-of-fixes/
    Fix iPad Wifi Connection and Signal Issues  http://www.youtube.com/watch?v=uwWtIG5jUxE
    Unable to Connect After iOS Update - saw this solution on another post.
    https://discussions.apple.com/thread/4010130?tstart=60
    Note - When troubleshooting wifi connection problems, don't hold your iPad by hand. There have been a few reports that holding the iPad by hand, seems to attenuate the wifi signal.
    ~~~~~~~~~~~~~~~
    If any of the above solutions work, please post back what solved your problem. It will help others with the same problem.
     Cheers, Tom

  • I get an "install failed" message. "Recovery system can't be created-click restart to return to previous version of OS X." This doesn't work. My Mac continues to try to install Mountain Lion. What is the elegant way to get my system back?

    I get an "install failed" message. "Recovery system can't be created—click restart to return to previous version of OS X." This doesn't work. My Mac continues to try to install Mountain Lion. What is the elegant way to get my system back?

    The first time I attempted to install ML was on a late 2011 MBP.  It ran for three minutes then gave me the error message: Could not install OSX due to an unexpected error.  I was using the original ML install app, not a USB or other drive.  
    After a couple of restarts wiht the same result I saw a message to the effect that the install was trying to close open apps.  I closed apps  manually a few times to no avail.  I shut down instead of restarting then booted into Safe mode (hold down the shift key when starting) and that did it.  The install went smoothly after that. 
    I since installed ML in two iMacs using a cloned copy of the install app on a USB drive.  This time I shut down the computers and booted into Safe Mode first and there were no problems. 
    I don't know if this issue is the one causing you these problems but it is a simple enough solution to try.
    Jay

  • I transfered my iWork '09 to my new Mac Air. Now my Keynote won't open. I get message, "An unexpected error has occurred, please quit and reopen Keynote." This doesn't work.

    I transfered my iWork '09 to my new Mac Air. Now my Keynote won't open. I get message, "An unexpected error has occurred, please quit and reopen Keynote." This doesn't work.

    so Keynote still isnt working after installing, I thought you had it sorted from your last post.
    If you have not done so remove any files relating to iWork and Keynote and reinstall iWork
    files that must go are:
    the iWork ’09 folder from the main HD > Applications;
    the iWork ’09 folder in HD > Library > Application Support
    the individual iWork application plist files found in HD > Users > (your account) > Library >
    There are a number of free application removal tools  that will do this for you:
    trashme       webpage
    apptrap        webpage
    appcleaner   webpage

Maybe you are looking for