Changeset a1baf85 for apps


Ignore:
Timestamp:
Nov 18, 2018 4:13:47 PM (20 months ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
af9ce6d
Parents:
13d80e6
Message:

Wizard: Fix cancel test button

Location:
apps/routerconsole
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • apps/routerconsole/java/src/com/vuze/plugins/mlab/MLabRunner.java

    r13d80e6 ra1baf85  
    172172                        long start = System.currentTimeMillis();
    173173                        final Tcpbw100 test = Tcpbw100.mainSupport(args);
     174                        final AtomicBoolean cancelled = new AtomicBoolean();
    174175                       
    175176                        run.addListener(
     
    177178                            {
    178179                                public void cancelled() {
     180                                    cancelled.set(true);
     181                                    _log.warn("TRL cancelling test");
    179182                                    test.killIt();
     183                                    _log.warn("TRL cancelled test");
    180184                                }
    181185
     
    189193                        try { Thread.sleep(2000); } catch (InterruptedException ie) { return; }
    190194                        for (int i = 0; i < 180; i++) {
    191                             if (!test.isTestInProgress())
     195                            if (cancelled.get() || !test.isTestInProgress())
    192196                                break;
    193197                            try { Thread.sleep(1000); } catch (InterruptedException ie) { break; }
     
    207211                       
    208212                        String result_str;
    209                         if (up_bps == 0 || down_bps == 0) {
     213                        if (cancelled.get()) {
     214                            result_str = "Test cancelled";
     215                        } else if (up_bps == 0 || down_bps == 0) {
    210216                            result_str = "No results were received. Either the test server is unavailable or network problems are preventing the test from running correctly. Please try again.";
    211217                        } else {
  • apps/routerconsole/java/src/edu/internet2/ndt/StatusPanel.java

    r13d80e6 ra1baf85  
    9797         * @return boolean indicating intention to stop or not
    9898         * */
    99         public boolean wantToStop() {
     99        public synchronized boolean wantToStop() {
    100100                return _bStop;
    101101        }
     
    103103        /**
    104104         * End the currently running test
     105         * Cannot be restarted.
    105106         * */
    106         public void endTest() {
    107 /****
    108                 _progressBarObj.setValue(_iTestsCompleted);
    109                 _iTestsCompleted++;
    110                 setTestNoLabelText();
    111 ****/
     107        public synchronized void endTest() {
     108                _bStop = true;
    112109        }
    113110
  • apps/routerconsole/java/src/edu/internet2/ndt/Tcpbw100.java

    r13d80e6 ra1baf85  
    302302        private final boolean _useSSL;
    303303        private final I2PSSLSocketFactory _sslFactory;
     304        private StatusPanel _sPanel;
    304305
    305306        public Tcpbw100(boolean useSSL) {
     
    653654
    654655                                StatusPanel sPanel = new StatusPanel(testsNum, sTempEnable);
     656                                synchronized (Tcpbw100.this) {
     657                                        _sPanel = sPanel;
     658                                }
    655659                                getContentPane().add(BorderLayout.NORTH, sPanel);
    656660                                getContentPane().validate();
     
    660664                                        while (true) {
    661665                                                if (sPanel.wantToStop()) {
     666                                                        _log.warn("cancelled");
    662667                                                        break;
    663668                                                }
     
    682687                                                // If user stops the test, quit
    683688                                                if (sPanel.wantToStop()) {
     689                                                        _log.warn("cancelled");
    684690                                                        break;
    685691                                                }
     
    28472853                                                + "\n";
    28482854                                _bFailed = true;
     2855                                _log.warn(_sErrMsg);
    28492856                                return;
    28502857                        }
     
    29162923                        _sErrMsg = _resBundDisplayMsgs.getString("stopped") + "\n";
    29172924                        _bFailed = true;
     2925                        _log.warn(_sErrMsg);
    29182926                        return;
    29192927                }
     
    45064514
    45074515        /** bigly */
    4508         private ThreadGroup thread_group;
     4516        private ThreadGroup _thread_group;
    45094517       
    4510         /** bigly */
     4518        /**
     4519         * bigly -- must have been started with main() or runIt()
     4520         */
     4521        @SuppressWarnings("deprecation")
    45114522        public void
    45124523        killIt()
    45134524        {
    4514                 while( !thread_group.isDestroyed()){
     4525                final ThreadGroup thread_group;
     4526                synchronized(this) {
     4527                        thread_group = _thread_group;
     4528                        if (thread_group == null) {
     4529                                _log.warn("No thread group to kill");
     4530                                return;
     4531                        }
     4532                        // so wantToStop() returns true
     4533                        if (_sPanel != null)
     4534                                _sPanel.endTest();
     4535                }
     4536                _log.warn("killIt()");
     4537                boolean destroyed = false;
     4538                for (int j = 0; j < 10 && !thread_group.isDestroyed(); j++) {
    45154539                        Thread[] threads = new Thread[thread_group.activeCount()];
    45164540                        thread_group.enumerate( threads );
    45174541                        int     done = 0;
    45184542                        for ( int i=0;i<threads.length;i++){
    4519                                 if ( threads[i] != null ){
     4543                                Thread t = threads[i];
     4544                                if (t != null) {
     4545                                        if (_log.shouldWarn())
     4546                                                _log.warn("Interrupting TG thread " + t);
    45204547                                        done++;
    4521                                         //SESecurityManager.stopThread( threads[i] );
     4548                                        try {
     4549                                                t.interrupt();
     4550                                        } catch (RuntimeException re) {
     4551                                                _log.warn("TG", re);
     4552                                        }
     4553                                        try {
     4554                                                Thread.sleep(20);
     4555                                        } catch (InterruptedException ie) {}
     4556                                        if (t.isAlive()) {
     4557                                                if (_log.shouldWarn())
     4558                                                        _log.warn("Killing TG thread " + t);
     4559                                                try {
     4560                                                        t.stop();
     4561                                                } catch (RuntimeException re) {
     4562                                                        _log.warn("TG", re);
     4563                                                }
     4564                                        }
    45224565                                }
    45234566                        }
    45244567                       
    45254568                        if ( done == 0 ){
     4569                                _log.warn("TG destroy");
    45264570                                try{
    45274571                                        thread_group.destroy();
     
    45334577                       
    45344578                        try{
    4535                                 Thread.sleep(250);
    4536                         }catch( Throwable e ){ 
    4537                         }
     4579                                Thread.sleep(50);
     4580                        } catch (InterruptedException ie) {}
    45384581                }
    45394582        }
    45404583       
    45414584        /** bigly */
    4542         public void
     4585        public synchronized void
    45434586        runIt()
    45444587        {
    45454588                //final AESemaphore sem = new AESemaphore( "waiter" );
    45464589               
    4547                 thread_group = new
     4590                _thread_group = new
    45484591                        ThreadGroup( "NDT" )
    45494592                        {
     
    45584601                        };
    45594602               
    4560                 thread_group.setDaemon( true );
     4603                _thread_group.setDaemon( true );
    45614604               
    45624605                Thread t =
    45634606                        new I2PAppThread(
    4564                                 thread_group,
     4607                                _thread_group,
    45654608                                new Runnable()
    45664609                                {
  • apps/routerconsole/java/src/net/i2p/router/web/helpers/WizardHandler.java

    r13d80e6 ra1baf85  
    3333        if (getJettyString("cancelbw") != null) {
    3434            cancelNDT();
     35            for (int i = 0; i < 20 && !_helper.isNDTComplete(); i++) {
     36                try { Thread.sleep(100); } catch (InterruptedException ie) {}
     37            }
    3538            return;
    3639        }
     
    139142            addFormError("Bad state for test");
    140143        } else if (_helper.startNDT()) {
    141             addFormNotice(_t("Started bandwidth test"));
     144            addFormNotice(_t("Bandwidth test started"));
    142145        } else {
    143146            addFormError(_t("Bandwidth test is already running"));
     
    150153            addFormError("Bad state for test");
    151154        } else if (_helper.cancelNDT()) {
    152             addFormNotice(_t("Cancelled bandwidth test"));
     155            addFormError(_t("Bandwidth test cancelled"));
    153156        } else {
    154157            addFormError(_t("Bandwidth test was not running"));
  • apps/routerconsole/jsp/welcome.jsp

    r13d80e6 ra1baf85  
    175175<tr><td><%=intl._t("Completion status")%></td><td><%=wizhelper.getCompletionStatus()%></td></tr>
    176176<tr><td><%=intl._t("Details")%></td><td><%=wizhelper.getDetailStatus()%></td></tr>
     177<%
     178            if (wizhelper.isNDTSuccessful()) {
     179                // don't display this if test failed
     180%>
    177181<tr><td><%=intl._t("Downstream Bandwidth")%></td><td><%=net.i2p.data.DataHelper.formatSize2Decimal(wizhelper.getDownBandwidth())%>Bps</td></tr>
    178182<tr><td><%=intl._t("Upstream Bandwidth")%></td><td><%=net.i2p.data.DataHelper.formatSize2Decimal(wizhelper.getUpBandwidth())%>Bps</td></tr>
    179183<tr><td><%=intl._t("Share of Bandwidth for I2P")%></td><td><%=Math.round(net.i2p.router.web.helpers.WizardHelper.BW_SCALE * 100)%>%</td></tr>
     184<%
     185            } // sucessful
     186%>
    180187</table>
    181188<%
Note: See TracChangeset for help on using the changeset viewer.