Author Topic: Slickedit Mac Crash - While force quitting during file tagging  (Read 3391 times)

Johnco3

  • Community Member
  • Posts: 35
  • Hero Points: 1
Slickedit Mac Crash - While force quitting during file tagging
« on: November 11, 2014, 12:59:17 pm »
Slickedit Refused to close while I had a visual studio project open on the mac platform - Still cannot open files - although I can see the structure of the 6 sub-projects and the associated files.  Double clicking on any of the files results in still leaving the main editor window blank - again I suspect that the file separators is the issue. did a clean install by removing the contents of
rm -fR ./Library/Application\ Support/SlickEdit/
prior to installation

WHen I exited the application it just hung leaving a dialog indicating that background tagging was in progress

John

Process:               vs [7039]
Path:                  /Applications/SlickEdit2014.app/Contents/MacOS/vs
Identifier:            com.slickedit.SlickEdit
Version:               19.0.0 (19.0.0.14)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           vs [7039]
User ID:               501

Date/Time:             2014-11-11 07:53:00.036 -0500
OS Version:            Mac OS X 10.10 (14A389)
Report Version:        11
Anonymous UUID:        988899B0-6D3B-5369-0F92-19153225B283

Sleep/Wake UUID:       D8DD9863-BBA5-46C8-8477-88110885EFDD

Time Awake Since Boot: 100000 seconds
Time Since Wake:       2300 seconds

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000068

VM Regions Near 0x68:
-->
    __TEXT                 0000000100000000-00000001018ae000 [ 24.7M] r-x/rwx SM=COW  /Applications/SlickEdit2014.app/Contents/MacOS/vs

Application Specific Information:
Performing @selector(terminate:) from sender NSMenuItem 0x105024f20

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.slickedit.SlickEdit          0x0000000100f5c788 vshow_window(QWidget*, int) + 40
1   com.slickedit.SlickEdit          0x0000000100026c92 mdiCallbackExit(int) + 50
2   libsystem_platform.dylib         0x00007fff99a50f1a _sigtramp + 26
3   libsystem_kernel.dylib           0x00007fff8b971486 __semwait_signal + 10
4   com.slickedit.SlickEdit          0x000000010102ca2a cmThread::sleep(int) + 122
5   com.slickedit.SlickEdit          0x0000000100cb82a0 slickedit::SEListTagsThread::shutdownTarget() + 80
6   com.slickedit.SlickEdit          0x0000000100ca91c2 slickedit::SEListTagsManager::doShutdownThreads() + 482
7   com.slickedit.SlickEdit          0x00000001001c1c82 vsTerminate + 194
8   com.slickedit.SlickEdit          0x0000000100026ca0 mdiCallbackExit(int) + 64
9   com.slickedit.SlickEdit          0x000000010008e13f pexit_op() + 63
10  com.slickedit.SlickEdit          0x000000010006e7f1 run_proc(int) + 481
11  com.slickedit.SlickEdit          0x0000000100090df1 run_proc_immediate2(m_s*, int, int, VSARGTYPE*, int, int) + 321
12  com.slickedit.SlickEdit          0x0000000100090c9b run_proc_immediate(int, int, VSARGTYPE*, int, int) + 219
13  com.slickedit.SlickEdit          0x00000001002b8ecc execute_command(VSLSTR*, int, int*, slickedit::SEString const&) + 2444
14  com.slickedit.SlickEdit          0x000000010025060c vsaexecutelstr(unsigned char*, int, VSLSTR*) + 972
15  com.slickedit.SlickEdit          0x00000001002501aa vsExecute + 202
16  com.apple.CoreFoundation         0x00007fff997d3cbc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
17  com.apple.CoreFoundation         0x00007fff996c51b4 _CFXNotificationPost + 3140
18  com.apple.Foundation             0x00007fff8cbfeea1 -[NSNotificationCenter postNotificationName:object:userInfo:] + 66
19  com.apple.AppKit                 0x00007fff9286d39f -[NSApplication terminate:] + 1759
20  libsystem_trace.dylib            0x00007fff8e367cd7 _os_activity_initiate + 75
21  com.apple.AppKit                 0x00007fff9281c5e7 -[NSApplication sendAction:to:from:] + 410
22  com.apple.AppKit                 0x00007fff9283672a -[NSMenuItem _corePerformAction] + 382
23  com.apple.AppKit                 0x00007fff92836447 -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 114
24  libsystem_trace.dylib            0x00007fff8e367cd7 _os_activity_initiate + 75
25  com.apple.AppKit                 0x00007fff92883ce6 -[NSMenu performActionForItemAtIndex:] + 131
26  com.apple.AppKit                 0x00007fff92883c56 -[NSMenu _internalPerformActionForItemAtIndex:] + 35
27  com.apple.AppKit                 0x00007fff92883aa2 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 107
28  com.apple.AppKit                 0x00007fff9282c03b NSSLMMenuEventHandler + 724
29  com.apple.HIToolbox              0x00007fff8bfa532c DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1260
30  com.apple.HIToolbox              0x00007fff8bfa476e SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 386
31  com.apple.HIToolbox              0x00007fff8bfb9286 SendEventToEventTarget + 40
32  com.apple.HIToolbox              0x00007fff8bfee795 SendHICommandEvent(unsigned int, HICommand const*, unsigned int, unsigned int, unsigned char, void const*, OpaqueEventTargetRef*, OpaqueEventTargetRef*, OpaqueEventRef**) + 428
33  com.apple.HIToolbox              0x00007fff8c021e8d SendMenuCommandWithContextAndModifiers + 59
34  com.apple.HIToolbox              0x00007fff8c021e34 SendMenuItemSelectedEvent + 188
35  com.apple.HIToolbox              0x00007fff8c021d06 FinishMenuSelection(SelectionData*, MenuResult*, MenuResult*) + 96
36  com.apple.HIToolbox              0x00007fff8c0298b1 MenuSelectCore(MenuData*, Point, double, unsigned int, OpaqueMenuRef**, unsigned short*) + 702
37  com.apple.HIToolbox              0x00007fff8c02949e _HandleMenuSelection2 + 446
38  com.apple.AppKit                 0x00007fff927b1e6e _NSHandleCarbonMenuEvent + 277
39  com.apple.AppKit                 0x00007fff9264db90 _DPSNextEvent + 1843
40  com.apple.AppKit                 0x00007fff9264cfd0 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 194
41  com.apple.AppKit                 0x00007fff92640f73 -[NSApplication run] + 594
42  QtGui                            0x00000001028dc640 QDesktopWidget::resizeEvent(QResizeEvent*) + 13040
43  QtCore                           0x000000010268e5a4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
44  QtCore                           0x000000010268e954 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 324
45  QtCore                           0x00000001026911cc QCoreApplication::exec() + 188
46  com.slickedit.SlickEdit          0x0000000100025c88 vmain(int, char**) + 2584
47  com.slickedit.SlickEdit          0x0000000100f64b94 xmain + 68
48  com.slickedit.SlickEdit          0x00000001000440f9 main + 9
49  com.slickedit.SlickEdit          0x0000000100005c74 start + 52

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib           0x00007fff8b97222e kevent64 + 10
1   libdispatch.dylib                0x00007fff95dbda6a _dispatch_mgr_thread + 52

Thread 2:
0   libsystem_kernel.dylib           0x00007fff8b96c52e mach_msg_trap + 10
1   libsystem_kernel.dylib           0x00007fff8b96b69f mach_msg + 55
2   com.apple.CoreFoundation         0x00007fff99727b14 __CFRunLoopServiceMachPort + 212
3   com.apple.CoreFoundation         0x00007fff99726fdb __CFRunLoopRun + 1371
4   com.apple.CoreFoundation         0x00007fff99726838 CFRunLoopRunSpecific + 296
5   com.apple.AppKit                 0x00007fff927b08f7 _NSEventThread + 137
6   libsystem_pthread.dylib          0x00007fff9316e2fc _pthread_body + 131
7   libsystem_pthread.dylib          0x00007fff9316e279 _pthread_start + 176
8   libsystem_pthread.dylib          0x00007fff9316c4b1 thread_start + 13

Thread 3:
0   com.slickedit.SlickEdit          0x0000000100cb529e slickedit::SEListTagsTarget::isTargetCancelled() const + 14
1   com.slickedit.SlickEdit          0x000000010033dd1e CPPParser::skipUntilSemicolon(bool, slickedit::SEString*, bool, bool) + 62
2   com.slickedit.SlickEdit          0x000000010037b680 CPPParser::parseClassMembers(int, slickedit::SEString const&, slickedit::SEString const&, int, CPPTagInterface*) + 13856
3   com.slickedit.SlickEdit          0x000000010036dc31 CPPParser::parseObjectiveCClassDefinition(int, int, slickedit::SEString const&, slickedit::SEString const&, int, int) + 5025
4   com.slickedit.SlickEdit          0x000000010033138c CPPParser::parseGlobalDeclarations(slickedit::SEString const&) + 26476
5   com.slickedit.SlickEdit          0x000000010032abd4 CPPParser::parseProgram() + 116
6   com.slickedit.SlickEdit          0x0000000100306c4e cpp_list_tags_callback(slickedit::SEListTagsTarget&) + 350
7   com.slickedit.SlickEdit          0x0000000100caf9cd slickedit::SEPrivateListTagsTarget::parseFileForTags(slickedit::SEListTagsTarget&) + 621
8   com.slickedit.SlickEdit          0x0000000100cb9408 slickedit::SEListTagsThread::runAsTagger() + 440
9   com.slickedit.SlickEdit          0x000000010102c683 cmThread::ThreadStartRoutine(void*) + 19
10  libsystem_pthread.dylib          0x00007fff9316e2fc _pthread_body + 131
11  libsystem_pthread.dylib          0x00007fff9316e279 _pthread_start + 176
12  libsystem_pthread.dylib          0x00007fff9316c4b1 thread_start + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x000000010354aee0  rcx: 0x0000000100f5c7f4  rdx: 0x00007fff5fbfb280
  rdi: 0x000000010354aee0  rsi: 0x0000000000000000  rbp: 0x00007fff5fbfadc0  rsp: 0x00007fff5fbfadb0
   r8: 0x00007fff5fbfb280   r9: 0x0000000002faf080  r10: 0x0000000000000001  r11: 0x0000000000000246
  r12: 0x0000000101918dcc  r13: 0x0000000000000002  r14: 0x000000010354aee0  r15: 0x00007fff5fbfb388
  rip: 0x0000000100f5c788  rfl: 0x0000000000010246  cr2: 0x0000000000000068
 
Logical CPU:     4
Error Code:      0x00000004
Trap Number:     14


Binary Images:
       0x100000000 -        0x1018adfdf +com.slickedit.SlickEdit (19.0.0 - 19.0.0.14) <AE16CC09-9979-333E-98D6-E75E9CEF5F3B> /Applications/SlickEdit2014.app/Contents/MacOS/vs
       0x10254d000 -        0x102827ff7 +QtCore (4.8 - 4.8) <1F9B18AC-D00D-DF75-21A2-73D7486626D5> /Applications/SlickEdit2014.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore
 

Clark

  • Moderator
  • Senior Community Member
  • *
  • Posts: 4558
  • Hero Points: 352
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #1 on: November 11, 2014, 02:49:36 pm »
Did you try the load (Macro>Load Module...) the new wkspace.e I posted here http://community.slickedit.com/index.php/topic,10843.0.html. That should fix the open file problem (at least it did for me).

Johnco3

  • Community Member
  • Posts: 35
  • Hero Points: 1
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #2 on: November 11, 2014, 03:28:07 pm »
Sorry Clark, yes, finally I got it to work, I'm not that familiar with the mac platform and initially I was looking for the existing macro folders to reload it - then I loaded the one attached from the previous post and poof! the files appeared, nice one.  Now if only the Add Java java doc comments would not obliterate my current comments I would be ready to move foward from 2013 - I reported this before

Code: [Select]
/**
 * Search rModuleLoadLists for all associated channels.<p>
 *
 * Each ModuleLoadList has a priority field that contains the a
 * channel number specified in the szPriority field.  This
 * method searches each ModuleLoadList for the channel number
 * and also determines the sync status of the ModuleLoadList.
 *  Finally, depending on the value of the
 * <code>rSyncStatus</code> parameter, the method returns a list
 * of channels and their associated NIC addresses that match the
 * sync status
 *
 * Prior to loading, this method is called with the
 * <code>rSyncStatus</code> set to true so that each of  the
 * returned channels can have the 'channel setup' command sent
 * to it.
 *
 * @param rSyncStatus
 *               [in] return a list of all channels that their
 *               sync status across all module list lists set to
 *               this value.
 * @param rModuleLoadListInfo
 *               [in] vector of ModuleLoadList smart pointers,
 *               each of these also contains the ModuleName,
 *               Module IP, NIC address and PriorityLevel.
 * @param rLogMessage
 *               [out] log message to display the channel sync
 *               info
 *
 * @return list of channels and their corresponding NIC
 *         addresses to be used for channel setup or cleanup
 *         commands.
 */
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
    const ModuleLoadList::SyncStatus& rSyncStatus,
    const ModuleLoadListInfo& rModuleLoadListInfo,
    std::string& rLogMessage) const
{)

typing and accepting via Ctrl+Shift+D the above code converts it into the following where it looses the association between my previous @param comments and the news ones - althought clearly the names have not changed.  That reminds me, if I did change the names, all my previous @param oldname comments would disappear.  I think it is important to never loose existing comments - and if the parameter happened to change at least flag it in the commented area so that the user can fix it afterwards.

Looking forward to the official release, I presume the loadmodule workaround will not be required for the final release for the mac.

John


Code: [Select]
/**
 * Search rModuleLoadLists for all associated channels.<p>
 *
 * Each ModuleLoadList has a priority field that contains the a
 * channel number specified in the szPriority field.  This
 * method searches each ModuleLoadList for the channel number
 * and also determines the sync status of the ModuleLoadList.
 *  Finally, depending on the value of the
 * <code>rSyncStatus</code> parameter, the method returns a list
 * of channels and their associated NIC addresses that match the
 * sync status
 *
 * Prior to loading, this method is called with the
 * <code>rSyncStatus</code> set to true so that each of  the
 * returned channels can have the 'channel setup' command sent
 * to it.
 *
 * @param rSyncStatus
 *               [in] return a list of all channels that their
 *               sync status across all module list lists set to
 *               this value.
 * @param rModuleLoadListInfo
 *               [in] vector of ModuleLoadList smart pointers,
 *               each of these also contains the ModuleName,
 *               Module IP, NIC address and PriorityLevel.
 * @param rLogMessage
 *               [out] log message to display the channel sync
 *               info
 *
 * @return list of channels and their corresponding NIC
 *         addresses to be used for channel setup or cleanup
 *         commands.
 *
 * mapping of channel to in-sync flag
 * @param rSyncStatus
 * @param rModuleLoadListInfo
 * @param rLogMessage
 *
 * @return
 */
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
    const ModuleLoadList::SyncStatus& rSyncStatus,
    const ModuleLoadListInfo& rModuleLoadListInfo,
    std::string& rLogMessage) const

Clark

  • Moderator
  • Senior Community Member
  • *
  • Posts: 4558
  • Hero Points: 352
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #3 on: November 11, 2014, 03:53:31 pm »
RC5 is most likely the final release. This fix will likely go into the first set of hot fixes.

Johnco3

  • Community Member
  • Posts: 35
  • Hero Points: 1
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #4 on: November 11, 2014, 04:11:37 pm »
Thanks, but it is a shame that the JavaDoc is so badly regressed since 2013 (which I presume will be addressed in the first update). I will have to wait for the first update to use it as that is the reason I generally use the product these days.

All the best

John

Johnco3

  • Community Member
  • Posts: 35
  • Hero Points: 1
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #5 on: November 12, 2014, 02:50:38 am »
Being naturally stubborn and loving Visual Slick-edit's java doc feature I think I isolated the problem to the content of the method that is being javadoc'd.  In a nutshell, the first line of code cannot be "//" style C++ a comment in a method - that should be easy to fix right?

John

with the following code:

Code: [Select]
/**
 * Search rModuleLoadLists for all associated channels.<p>
 *
 * Each ModuleLoadList has a priority field that contains the a
 * channel number specified in the szPriority field.  This
 * method searches each ModuleLoadList for the channel number
 * and also determines the sync status of the ModuleLoadList.
 *  Finally, depending on the value of the
 * <code>rSyncStatus</code> parameter, the method returns a list
 * of channels and their associated NIC addresses that match the
 * sync status
 *
 * Prior to loading, this method is called with the
 * <code>rSyncStatus</code> set to true so that each of  the
 * returned channels can have the 'channel setup' command sent
 * to it.
 *
 * @param rSyncStatus
 *               [in] return a list of all channels that their
 *               sync status across all module list lists set to
 *               this value.
 * @param rModuleLoadListInfo
 *               [in] vector of ModuleLoadList smart pointers,
 *               each of these also contains the ModuleName,
 *               Module IP, NIC address and PriorityLevel.
 * @param rLogMessage
 *               [out] log message to display the channel sync
 *               info
 *
 * @return list of channels and their corresponding NIC
 *         addresses to be used for channel setup or cleanup
 *         commands.
 *
 */
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
    const ModuleLoadList::SyncStatus& rSyncStatus,
    const ModuleLoadListInfo& rModuleLoadListInfo,
    std::string& rLogMessage) const
{
    // mapping of channel to in-sync flag
    std::map<int32_t, ModuleLoadList::SyncStatus> channelSyncInfo;
    for (const auto& next : rModuleLoadListInfo) {
        auto channel = next->getPriorityLevel().getChannel();
        auto syncStatus = next->getSyncStatus();
        auto res = channelSyncInfo.insert(
            std::make_pair(channel, syncStatus));
        // test if this is a new key value pair
        if (!res.second) {
            // key value pair already present - selectively update
            if ((res.first->second == ModuleLoadList::SyncStatus::EMPTY) &&
                (syncStatus != ModuleLoadList::SyncStatus::EMPTY)) {
                // channel no longer empty - either INSYNC or PENDING
                channelSyncInfo[channel] = syncStatus;
            }
        }
    }

    std::vector<ChannelNICPair> channelNICInfo;
    // update the channels with either bSyncdChannels or channels
    // with at least 1 module out of sync (containing a pending syncStatus).
    std::for_each(channelSyncInfo.cbegin(), channelSyncInfo.cend(),
        [&](const std::map<int32_t, ModuleLoadList::SyncStatus>::value_type& next) {
            const auto& iter = std::find_if(
                rModuleLoadListInfo.cbegin(), rModuleLoadListInfo.cend(),
                [&](const ModuleLoadListInfo::value_type& rNext){
                    return rNext->getPriorityLevel().getChannel() == next.first;
                });
            if (iter != rModuleLoadListInfo.cend()) {
                const auto& nicAddress = (*iter)->getModuleNICAddr();
                // handle the dmu case where we have an empty NIC address
                if (!nicAddress.empty()) {
                    switch (rSyncStatus) {
                    // All MLLists in this channel must be EMPTY
                    case ModuleLoadList::SyncStatus::EMPTY:
                        break;
                    // All MLLists in this channel must be INSYNC or EMPTY
                    case ModuleLoadList::SyncStatus::INSYNC:
                        break;
                    // search for at least 1 MLList with PENDING sync status
                    case ModuleLoadList::SyncStatus::PENDING:
                    default:
                        break;
                    }
                    if (rSyncStatus == ModuleLoadList::SyncStatus::INSYNC) {
                    } else { // update channels regardless of sync status
                        channelNICInfo.push_back(std::make_pair(next.first, nicAddress));
                    }
                }
            }
        });
    // format the rLogMessage
    std::stringstream temp;
    temp << std::string(bSyncdChannels? "in-sync" : "out-of-sync") << " channel(s): [";
    for (auto iter = channelNICInfo.cbegin();
        iter != channelNICInfo.cend();) {
        if (iter != channelNICInfo.cend() - 1) {
            temp << iter->first << ", ";
        } else {
            temp << iter->first;
        }
        ++iter;
    }
    temp << "]";
    rLogMessage = temp.str();
    return channelNICInfo;
}

The parameters in the JavaDoc editor are always empty,

however with an empty body the parameters are correct, in the end I isolated the problem down to the following works (use of C type /*   */ comments in the first line of the body:

Code: [Select]
/**
 * Search rModuleLoadLists for all associated channels.<p>
 *
 * Each ModuleLoadList has a priority field that contains the a
 * channel number specified in the szPriority field.  This
 * method searches each ModuleLoadList for the channel number
 * and also determines the sync status of the ModuleLoadList.
 *  Finally, depending on the value of the
 * <code>rSyncStatus</code> parameter, the method returns a list
 * of channels and their associated NIC addresses that match the
 * sync status
 *
 * Prior to loading, this method is called with the
 * <code>rSyncStatus</code> set to true so that each of  the
 * returned channels can have the 'channel setup' command sent
 * to it.
 *
 * @param rSyncStatus
 *               [in] return a list of all channels that their
 *               sync status across all module list lists set to
 *               this value.
 * @param rModuleLoadListInfo
 *               [in] vector of ModuleLoadList smart pointers,
 *               each of these also contains the ModuleName,
 *               Module IP, NIC address and PriorityLevel.
 * @param rLogMessage
 *               [out] log message to display the channel sync
 *               info
 *
 * @return list of channels and their corresponding NIC
 *         addresses to be used for channel setup or cleanup
 *         commands.
 *
 */
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
    const ModuleLoadList::SyncStatus& rSyncStatus,
    const ModuleLoadListInfo& rModuleLoadListInfo,
    std::string& rLogMessage) const
{
    /* mapping of channel to in-sync flag */
}

and the following c++ // comment style fails

Code: [Select]
/**
 * Search rModuleLoadLists for all associated channels.<p>
 *
 * Each ModuleLoadList has a priority field that contains the a
 * channel number specified in the szPriority field.  This
 * method searches each ModuleLoadList for the channel number
 * and also determines the sync status of the ModuleLoadList.
 *  Finally, depending on the value of the
 * <code>rSyncStatus</code> parameter, the method returns a list
 * of channels and their associated NIC addresses that match the
 * sync status
 *
 * Prior to loading, this method is called with the
 * <code>rSyncStatus</code> set to true so that each of  the
 * returned channels can have the 'channel setup' command sent
 * to it.
 *
 * @param rSyncStatus
 *               [in] return a list of all channels that their
 *               sync status across all module list lists set to
 *               this value.
 * @param rModuleLoadListInfo
 *               [in] vector of ModuleLoadList smart pointers,
 *               each of these also contains the ModuleName,
 *               Module IP, NIC address and PriorityLevel.
 * @param rLogMessage
 *               [out] log message to display the channel sync
 *               info
 *
 * @return list of channels and their corresponding NIC
 *         addresses to be used for channel setup or cleanup
 *         commands.
 *
 */
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
    const ModuleLoadList::SyncStatus& rSyncStatus,
    const ModuleLoadListInfo& rModuleLoadListInfo,
    std::string& rLogMessage) const
{
    // mapping of channel to in-sync flag
}

Clark

  • Moderator
  • Senior Community Member
  • *
  • Posts: 4558
  • Hero Points: 352
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #6 on: November 12, 2014, 02:53:08 am »
Thanks for narrowing that down. I wasn't able to reproduce the problem with your original example.

Johnco3

  • Community Member
  • Posts: 35
  • Hero Points: 1
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #7 on: November 12, 2014, 03:22:58 am »
It is quite subtle  ;) Another annoyance )and this might be user error, is when I do successfully javadoc the block of code it ends up as the JavaDoc editor inserts double paragraph marks where it tries to pull together 2 paragraphs. 
Code: [Select]
/**
 * Search rModuleLoadLists for all associated channels.<p><p>
 * Each ModuleLoadList has a priority field that contains the a
 * channel number specified in the szPriority field.  This
 * method searches each ModuleLoadList for the channel number
 * and also determines the sync status of the ModuleLoadList.
 *  Finally, depending on the value of the
 * <code>rSyncStatus</code> parameter, the method returns a list
 * of channels and their associated NIC addresses that match the
 * sync status<p>
 * Prior to loading, this method is called with the
 * <code>rSyncStatus</code> set to true so that each of  the
 * returned channels can have the 'channel setup' command sent
 * to it.
 *
 * @param rSyncStatus
 *               [in] return a list of all channels that their
 *               sync status across all module list lists set to
 *               this value.
 * @param rModuleLoadListInfo
 *               [in] vector of ModuleLoadList smart pointers,
 *               each of these also contains the ModuleName,
 *               Module IP, NIC address and PriorityLevel.
 * @param rLogMessage
 *               [out] log message to display the channel sync
 *               info
 *
 * @return list of channels and their corresponding NIC
 *         addresses to be used for channel setup or cleanup
 *         commands.
 */
std::vector<ChannelNICPair>
SLDBManager::getMLListInfoChannels(
    const ModuleLoadList::SyncStatus& rSyncStatus,
    const ModuleLoadListInfo& rModuleLoadListInfo,
    std::string& rLogMessage) const
{
}

Not that now is the time, but one really nice feature would be the ability to put <code></code> blocks around recognized parameter or exception fields - or however JavaDoc is supposed insert references to parameters within the comments.  This could either be done via a popup when a word is selected while directly editing the comments or within the Java Doc editor (more likely).  Also note that the exception is not captured in the parameters field (I know it is not a parameter but it would be nice to be able to edit it within the java doc editor.  Also the column that the @exception comments wrap at is different to the parameters - this behaves differently to return values that seem to wrap at the same indented column as the parameters.

John

Code: [Select]
/**
 * Runs the channel setup or cleanup commands for the modules
 * specified in <code>rChannelParams</code><p>.
 *
 * @param rOperation
 *                [in] ChannelReset or ChannelSetup.
 * @param rChannelParams
 *                [in] channel setup/cleanup parameters.
 *                This includes a pointer to the MLF and a
 *                vector of tuples containing the module name,
 *                module IP address, NIC address and priority
 *                field.
 * @throws SLDBCommandException
 *                thrown if any of the channel setup or cleanup
 *                commands fail.  Note that all channel setup and
 *                cleanup commands are attempted first and error
 *                information is accumulated
 */
/*static*/
void
SLDBProtocol::handleChannelCommands(
    const ChannelOperation& rOperation,
    const SLDBChannelParams& rChannelParams)
{

patrick

  • SlickEdit Team Member
  • Senior Community Member
  • *
  • Posts: 985
  • Hero Points: 78
Re: Slickedit Mac Crash - While force quitting during file tagging
« Reply #8 on: November 12, 2014, 03:53:47 pm »
The problems with the duplicated <p> and the extra empty parameters being added to the comment have been fixed for the next build or the first hotfix.  Thanks for the examples that reproduced it.

One thing I couldn't reproduce is losing the parameter comments if I rename the parameters.  Whenever I change the parameter names, the comments for the old params are still there, and marked as 'obsolete'.  So you can copy and paste them to the new parameter names.  If there's a case where you can get that to happen with a particular comment, send it along.

Marking up references to parameters automatically with <code> sounds like a good feature.