Changeset 10055 in josm


Ignore:
Timestamp:
2016-03-27T04:01:39+02:00 (4 years ago)
Author:
Don-vip
Message:

fix #12652 - Do not ...snip... bug report messages after 6000 characters (patch by michael2402, modified)

Location:
trunk
Files:
4 added
15 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/AboutAction.java

    r9019 r10055  
    3131import org.openstreetmap.josm.gui.widgets.UrlLabel;
    3232import org.openstreetmap.josm.plugins.PluginHandler;
    33 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    3433import org.openstreetmap.josm.tools.GBC;
    3534import org.openstreetmap.josm.tools.ImageProvider;
    3635import org.openstreetmap.josm.tools.Shortcut;
    3736import org.openstreetmap.josm.tools.Utils;
     37import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    3838
    3939/**
  • trunk/src/org/openstreetmap/josm/actions/ReportBugAction.java

    r8061 r10055  
    77import java.awt.event.KeyEvent;
    88
    9 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    10 import org.openstreetmap.josm.tools.OpenBrowser;
    119import org.openstreetmap.josm.tools.Shortcut;
    12 import org.openstreetmap.josm.tools.Utils;
     10import org.openstreetmap.josm.tools.bugreport.BugReportSender;
    1311
    1412/**
     
    1816public class ReportBugAction extends JosmAction {
    1917
     18    private final String text;
     19
    2020    /**
    21      * Constructs a new {@code ReportBugAction}.
     21     * Constructs a new {@code ReportBugAction} that reports the normal status report.
    2222     */
    2323    public ReportBugAction() {
     24        this(ShowStatusReportAction.getReportHeader());
     25    }
     26
     27    /**
     28     * Constructs a new {@link ReportBugAction} for the given debug text.
     29     * @param text The text to send
     30     */
     31    public ReportBugAction(String text) {
    2432        super(tr("Report bug"), "bug", tr("Report a ticket to JOSM bugtracker"),
    2533                Shortcut.registerShortcut("reportbug", tr("Report a ticket to JOSM bugtracker"),
    2634                        KeyEvent.CHAR_UNDEFINED, Shortcut.NONE), true);
     35        this.text = text;
    2736    }
    2837
    2938    @Override
    3039    public void actionPerformed(ActionEvent e) {
    31         reportBug();
    32     }
    33 
    34     /**
    35      * Reports a ticket to JOSM bugtracker.
    36      */
    37     public static void reportBug() {
    38         reportBug(ShowStatusReportAction.getReportHeader());
    39     }
    40 
    41     /**
    42      * Reports a ticket to JOSM bugtracker with given status report.
    43      * @param report Status report header containing technical, non-personal information
    44      */
    45     public static void reportBug(String report) {
    46         OpenBrowser.displayUrl(BugReportExceptionHandler.getBugReportUrl(
    47                 Utils.strip(report)).toExternalForm());
     40        BugReportSender.reportBug(text);
    4841    }
    4942}
  • trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java

    r9759 r10055  
    2020import java.util.Set;
    2121
    22 import javax.swing.JScrollPane;
    23 
    2422import org.openstreetmap.josm.Main;
    2523import org.openstreetmap.josm.data.Version;
     
    2826import org.openstreetmap.josm.data.preferences.Setting;
    2927import org.openstreetmap.josm.gui.ExtendedDialog;
    30 import org.openstreetmap.josm.gui.widgets.JosmTextArea;
    3128import org.openstreetmap.josm.plugins.PluginHandler;
    3229import org.openstreetmap.josm.tools.PlatformHookUnixoid;
    3330import org.openstreetmap.josm.tools.Shortcut;
    34 import org.openstreetmap.josm.tools.Utils;
     31import org.openstreetmap.josm.tools.bugreport.BugReportSender;
     32import org.openstreetmap.josm.tools.bugreport.DebugTextDisplay;
    3533
    3634/**
     
    184182        }
    185183
    186         JosmTextArea ta = new JosmTextArea(text.toString());
    187         ta.setWrapStyleWord(true);
    188         ta.setLineWrap(true);
    189         ta.setEditable(false);
    190         JScrollPane sp = new JScrollPane(ta);
     184        DebugTextDisplay ta = new DebugTextDisplay(text.toString());
    191185
    192186        ExtendedDialog ed = new ExtendedDialog(Main.parent,
     
    194188                new String[] {tr("Copy to clipboard and close"), tr("Report bug"), tr("Close") });
    195189        ed.setButtonIcons(new String[] {"copy", "bug", "cancel" });
    196         ed.setContent(sp, false);
     190        ed.setContent(ta, false);
    197191        ed.setMinimumSize(new Dimension(380, 200));
    198192        ed.setPreferredSize(new Dimension(700, Main.parent.getHeight()-50));
    199193
    200194        switch (ed.showDialog().getValue()) {
    201             case 1: Utils.copyToClipboard(text.toString()); break;
    202             case 2: ReportBugAction.reportBug(reportHeader); break;
     195            case 1: ta.copyToClippboard(); break;
     196            case 2: BugReportSender.reportBug(reportHeader); break;
    203197        }
    204198    }
  • trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java

    r9474 r10055  
    2525import org.openstreetmap.josm.io.OsmApiInitializationException;
    2626import org.openstreetmap.josm.io.OsmTransferException;
    27 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    2827import org.openstreetmap.josm.tools.ExceptionUtil;
     28import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    2929
    3030/**
  • trunk/src/org/openstreetmap/josm/gui/MainApplication.java

    r10043 r10055  
    6565import org.openstreetmap.josm.plugins.PluginHandler;
    6666import org.openstreetmap.josm.plugins.PluginInformation;
    67 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    6867import org.openstreetmap.josm.tools.FontsManager;
    6968import org.openstreetmap.josm.tools.HttpClient;
     
    7372import org.openstreetmap.josm.tools.PlatformHookWindows;
    7473import org.openstreetmap.josm.tools.Utils;
     74import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    7575
    7676import gnu.getopt.Getopt;
  • trunk/src/org/openstreetmap/josm/gui/MapView.java

    r10041 r10055  
    7070import org.openstreetmap.josm.gui.util.GuiHelper;
    7171import org.openstreetmap.josm.tools.AudioPlayer;
    72 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    7372import org.openstreetmap.josm.tools.Shortcut;
    7473import org.openstreetmap.josm.tools.Utils;
     74import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    7575
    7676/**
  • trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java

    r8840 r10055  
    1313import org.openstreetmap.josm.gui.progress.ProgressTaskId;
    1414import org.openstreetmap.josm.io.OsmTransferException;
    15 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    1615import org.openstreetmap.josm.tools.CheckParameterUtil;
     16import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    1717import org.xml.sax.SAXException;
    1818
  • trunk/src/org/openstreetmap/josm/gui/dialogs/ChangesetDialog.java

    r9059 r10055  
    5656import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    5757import org.openstreetmap.josm.io.OnlineResource;
    58 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    5958import org.openstreetmap.josm.tools.ImageProvider;
    6059import org.openstreetmap.josm.tools.OpenBrowser;
     60import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    6161
    6262/**
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java

    r9521 r10055  
    5151import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    5252import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    53 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    5453import org.openstreetmap.josm.tools.ImageProvider;
    5554import org.openstreetmap.josm.tools.Utils;
     55import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    5656
    5757/**
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetHeaderDownloadTask.java

    r9059 r10055  
    2121import org.openstreetmap.josm.io.OsmServerChangesetReader;
    2222import org.openstreetmap.josm.io.OsmTransferException;
    23 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    2423import org.openstreetmap.josm.tools.CheckParameterUtil;
    2524import org.openstreetmap.josm.tools.ExceptionUtil;
     25import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    2626import org.xml.sax.SAXException;
    2727
  • trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryTask.java

    r9059 r10055  
    2626import org.openstreetmap.josm.io.OsmTransferCanceledException;
    2727import org.openstreetmap.josm.io.OsmTransferException;
    28 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    2928import org.openstreetmap.josm.tools.CheckParameterUtil;
    3029import org.openstreetmap.josm.tools.ExceptionUtil;
     30import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    3131import org.xml.sax.SAXException;
    3232
  • trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java

    r10053 r10055  
    282282
    283283        /**
    284          * Constrcuts a new {@code LatLonViewer}.
     284         * Constructs a new {@code LatLonViewer}.
    285285         * @param model a model
    286286         * @param role the role for this viewer.
  • trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java

    r9078 r10055  
    2424import org.openstreetmap.josm.gui.MapView;
    2525import org.openstreetmap.josm.gui.layer.Layer;
    26 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    2726import org.openstreetmap.josm.tools.Predicate;
    2827import org.openstreetmap.josm.tools.Utils;
    2928import org.openstreetmap.josm.tools.WindowGeometry;
     29import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    3030
    3131/**
  • trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java

    r9624 r10055  
    6363import org.openstreetmap.josm.plugins.PluginInformation;
    6464import org.openstreetmap.josm.plugins.PluginProxy;
    65 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
    6665import org.openstreetmap.josm.tools.CheckParameterUtil;
    6766import org.openstreetmap.josm.tools.GBC;
    6867import org.openstreetmap.josm.tools.ImageProvider;
     68import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    6969
    7070/**
  • trunk/src/org/openstreetmap/josm/plugins/PluginProxy.java

    r8953 r10055  
    88import org.openstreetmap.josm.gui.download.DownloadSelection;
    99import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    10 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
     10import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    1111
    1212/**
  • trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java

    r10049 r10055  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.tools;
     2package org.openstreetmap.josm.tools.bugreport;
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
     
    1616import java.util.zip.GZIPOutputStream;
    1717
     18import javax.swing.JButton;
    1819import javax.swing.JCheckBox;
    1920import javax.swing.JLabel;
    2021import javax.swing.JOptionPane;
    2122import javax.swing.JPanel;
    22 import javax.swing.JScrollPane;
    2323import javax.swing.SwingUtilities;
    2424
    2525import org.openstreetmap.josm.Main;
     26import org.openstreetmap.josm.actions.ReportBugAction;
    2627import org.openstreetmap.josm.actions.ShowStatusReportAction;
    2728import org.openstreetmap.josm.data.Version;
     
    2930import org.openstreetmap.josm.gui.preferences.plugin.PluginPreference;
    3031import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    31 import org.openstreetmap.josm.gui.widgets.JosmTextArea;
    3232import org.openstreetmap.josm.gui.widgets.UrlLabel;
    3333import org.openstreetmap.josm.plugins.PluginDownloadTask;
    3434import org.openstreetmap.josm.plugins.PluginHandler;
     35import org.openstreetmap.josm.tools.Base64;
     36import org.openstreetmap.josm.tools.GBC;
     37import org.openstreetmap.josm.tools.WikiReader;
    3538
    3639/**
     
    194197    private static void askForBugReport(final Throwable e) {
    195198        try {
    196             final int maxlen = 6000;
    197199            StringWriter stack = new StringWriter();
    198200            e.printStackTrace(new PrintWriter(stack));
    199201
    200202            String text = ShowStatusReportAction.getReportHeader() + stack.getBuffer().toString();
    201             String urltext = text.replaceAll("\r", "");
    202             if (urltext.length() > maxlen) {
    203                 urltext = urltext.substring(0, maxlen);
    204                 int idx = urltext.lastIndexOf('\n');
    205                 // cut whole line when not loosing too much
    206                 if (maxlen-idx < 200) {
    207                     urltext = urltext.substring(0, idx+1);
    208                 }
    209                 urltext += "...<snip>...\n";
    210             }
     203            text = text.replaceAll("\r", "");
    211204
    212205            JPanel p = new JPanel(new GridBagLayout());
     
    220213                            "file a bug report in our bugtracker using this link:")),
    221214                            GBC.eol().fill(GridBagConstraints.HORIZONTAL));
    222             p.add(getBugReportUrlLabel(urltext), GBC.eop().insets(8, 0, 0, 0));
     215            p.add(new JButton(new ReportBugAction(text)), GBC.eop().insets(8, 0, 0, 0));
    223216            p.add(new JMultilineLabel(
    224217                    tr("There the error information provided below should already be " +
     
    232225
    233226            // Wiki formatting for manual copy-paste
    234             text = "{{{\n"+text+"}}}";
    235 
    236             if (Utils.copyToClipboard(text)) {
     227            DebugTextDisplay textarea = new DebugTextDisplay(text);
     228
     229            if (textarea.copyToClippboard()) {
    237230                p.add(new JLabel(tr("(The text has already been copied to your clipboard.)")),
    238231                        GBC.eop().fill(GridBagConstraints.HORIZONTAL));
    239232            }
    240233
    241             JosmTextArea info = new JosmTextArea(text, 18, 60);
    242             info.setCaretPosition(0);
    243             info.setEditable(false);
    244             p.add(new JScrollPane(info), GBC.eop().fill());
     234            p.add(textarea, GBC.eop().fill());
    245235
    246236            for (Component c: p.getComponents()) {
     
    265255
    266256    /**
    267      * Replies the URL to create a JOSM bug report with the given debug text
     257     * Replies the URL to create a JOSM bug report with the given debug text. GZip is used to reduce the length of the parameter.
    268258     * @param debugText The debug text to provide us
    269259     * @return The URL to create a JOSM bug report with the given debug text
     260     * @see BugReportSender#reportBug(String) if you want to send long debug texts along.
    270261     * @since 5849
    271262     */
  • trunk/test/unit/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandlerTest.java

    r10049 r10055  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.tools;
     2package org.openstreetmap.josm.tools.bugreport;
    33
    44import static org.junit.Assert.assertEquals;
     
    3232
    3333    /**
    34      * Test method for {@link org.openstreetmap.josm.tools.BugReportExceptionHandler#getBugReportUrl(java.lang.String)}.
     34     * Test method for {@link org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler#getBugReportUrl(java.lang.String)}.
    3535     * @throws IOException if any I/O error occurs
    3636     */
Note: See TracChangeset for help on using the changeset viewer.