EagleFiler freezing when importing from MailMate

Hi,

I’m trying to file some individual emails in EagleFiler from MailMate. Using the MailMate bundle works well and is fast, but I want the option to drop an email directly to a folder in EF. I’ve noticed that either drag-and-dropping a file into the Drop Pad or into the EF window make EF beachball.

After reading the manual it seems like drag-and-dropping is a possible way to import mail from MailMate, and I prefer it because the MailMate bundle doesn’t allow for import options or selecting a specific library if several are open, so it isn’t ideal.

Any ideas?

I would not expect a hang when dragging and dropping. Please record a sample log when this happens so that we can see what’s causing it.

Thanks @Michael_Tsai, I sent you some process samples.

Thanks. It looks like macOS is hanging when EagleFiler asks it what you dragged. It seems to be waiting on another process. It may help to restart your Mac or to drag and drop to a Finder window for one of EagleFiler’s folders.

Hi @Michael_Tsai

Rebooting didn’t help. Dragging to a EagleFiler Finder folder window does work to import, but it continues to freeze if I drag the same message directly to EF.

Thanks.

Which version of macOS are you using? Dragging from MailMate to EagleFiler used to work fine for me, but when I just tried it on 13.5, MailMate immediately reported an internal error. Then EagleFiler hung. After I dismissed the error, I waited a minute or so, and EagleFiler unfroze and completed the import.

There is a newer drag API that EagleFiler could use, which would likely prevent the temporary freeze, but EagleFiler doesn’t currently use that because it doesn’t work properly when receiving drags from Apple Mail.

I’m on 13.5 as well. I don’t see a report of an internal error from MailMate (I’m running 1.14 - 5937, which is a beta release), just EagleFiler hanging.

That’s the same MailMate I’m using. But for me it reports this error:

Exception Name: NSInternalInconsistencyException
Description: Bad use of IPI
User Info: {
    NSAssertFile = "NSFilePromiseProvider.m";
    NSAssertLine = 439;
}

0   CoreFoundation                      0x000000018a40b154 __exceptionPreprocess + 176
1   libobjc.A.dylib                     0x0000000189f2a4d4 objc_exception_throw + 60
2   Foundation                          0x000000018b3bea88 -[NSCalendarDate initWithCoder:] + 0
3   AppKit                              0x000000018de0ad54 -[NSFilePromiseProvider _setDestinationURL:] + 124
4   AppKit                              0x000000018de0b158 -[NSLegacyFilePromiseProvider pasteboard:provideDataForType:] + 320
5   AppKit                              0x000000018db98e74 __68-[NSPasteboard _setOwner:forTypes:atIndex:selector:usesPboardTypes:]_block_invoke + 256
6   CoreFoundation                      0x000000018a45cf64 -[_CFPasteboardEntry resolveLocalPromisedData] + 96
7   CoreFoundation                      0x000000018a45f0d4 ___CFPasteboardHandleFulfillMessage_block_invoke_2 + 80
8   CoreFoundation                      0x000000018a3921d4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28
9   CoreFoundation                      0x000000018a3920e8 __CFRunLoopDoBlocks + 364
10  CoreFoundation                      0x000000018a39158c __CFRunLoopRun + 2432
11  CoreFoundation                      0x000000018a3904b8 CFRunLoopRunSpecific + 612
12  CoreFoundation                      0x000000018a3fc1d4 CFMessagePortSendRequest + 996
13  HIServices                          0x000000018fb1df58 SendDragIPCMessage + 428
14  HIServices                          0x000000018fb179dc SendDropMessage + 80
15  HIServices                          0x000000018fb1653c DragInApplication + 824
16  HIServices                          0x000000018fb1513c CoreDragStartDragging + 900
17  AppKit                              0x000000018d848014 -[NSCoreDragManager _dragUntilMouseUp:accepted:] + 900
18  AppKit                              0x000000018da64430 _handleBeginDraggingSession + 96
19  CoreFoundation                      0x000000018a3919f0 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 36
20  CoreFoundation                      0x000000018a3918dc __CFRunLoopDoObservers + 532
21  CoreFoundation                      0x000000018a390454 CFRunLoopRunSpecific + 512
22  HIToolbox                           0x0000000193be2df0 RunCurrentEventLoopInMode + 292
23  HIToolbox                           0x0000000193be2a80 ReceiveNextEventCommon + 220
24  HIToolbox                           0x0000000193be2984 _BlockUntilNextEventMatchingListInModeWithFilter + 76
25  AppKit                              0x000000018d5b797c _DPSNextEvent + 636
26  AppKit                              0x000000018d5b6b18 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 716
27  AppKit                              0x000000018d5aaf7c -[NSApplication run] + 464
28  AppKit                              0x000000018d5823cc NSApplicationMain + 880
29  MailMate                            0x00000001023dd864 main + 824
30  dyld                                0x0000000189f5bf28 start + 2236

Aside from the other workarounds that I mentioned, you could possibly adapt the script in the MailMate bundle so that it brings up the EagleFiler options window.

I will try to find a better workaround, e.g. a way to tell EagleFiler to use a different code path when receiving drags from MailMate.

Yeah, I was thinking playing with the bundle to get the options window would help here. Thanks, Michael.