Xi'An, China
CIPAC Meeting 2027

MT 178.3 Attrition resistance

Content Handbook Q


Outline of method

Fine particles and dust from storage and transport of the sample are removed by sieving before the sample is attrited with or without glass beads depending on the type of formulation.

The test involves rolling a cylinder filled with granules/tablets, which results in a cascading wave-like motion. The relative speed between adjacent granules/tablets produces friction and causes surface attrition. In the presence of glass beads, friction and resulting surface attrition can be higher. Using glass beads allows to distinguish products with more attrition resistant surfaces.

Generated fine particles and dust are separated and the percentage larger than 125 μm is reported.


Scope

The method is intended for measuring the resistance to attrition during normal transport, storage and handling of loosely packed granules or tablets. The method is applicable to granular formulations including ready baits and tablets which are packed in bulk and have a characteristic length of less than 1 cm (Note 1).

 

Reason for the revision

The objective of this revision was to combine MT 178 and MT 178.2 into a single method for granular products and to include loosely packed tablets. The procedure was simplified, editorial changes have been made and obsolete references have been removed. 


Important note

Where same conditions are used, results obtained with MT 178 and MT 178.2 are equivalent to those obtained with MT 178.3. 

MT 178.3 supersedes MT 178 and MT 178.2.

Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377. (500 Whoops, looks like something went wrong.)

RuntimeException RuntimeException

HTTP 500 Whoops, looks like something went wrong.

Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

Exceptions 2

RuntimeException

  1. if ($this->isActive()) {
  2. throw new \RuntimeException('Failed to start the session: already started by PHP.');
  3. }
  4. if (ini_get('session.use_cookies') && headers_sent($file, $line)) {
  5. throw new \RuntimeException(
  6. sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)
  7. );
  8. }
  9. if (!session_start()) {
  1. $this->setId($session_clean);
  2. $cookie->set($session_name, '', ['expires' => time() - 3600 ]);
  3. }
  4. }
  5. parent::start();
  6. // Try loading data from the session
  7. if (!empty($_SESSION['joomla'])) {
  8. $this->data = unserialize(base64_decode($_SESSION['joomla']));
  9. }
  1. {
  2. if ($this->isStarted()) {
  3. return;
  4. }
  5. $this->store->start();
  6. $this->setState(SessionState::ACTIVE);
  7. // Initialise the session
  8. $this->setCounter();
  1. * @since 1.0
  2. */
  3. public function has($name)
  4. {
  5. if (!$this->isActive()) {
  6. $this->start();
  7. }
  8. return $this->store->has($name);
  9. }
  1. $name = $args[2] . '.' . $name;
  2. }
  3. }
  4. if (parent::has($name)) {
  5. // Parent is used because of b/c, can be changed in Joomla 6
  6. return parent::get($name, $default);
  7. }
  8. /*
Session->get() in D:\www\www83\libraries\src\Factory.php (line 372)
  1. __CLASS__
  2. ),
  3. E_USER_DEPRECATED
  4. );
  5. $instance = self::getApplication()->getSession()->get('user');
  6. if (\is_null($id)) {
  7. if (!($instance instanceof User)) {
  8. $instance = User::getInstance();
  9. }
  1. {
  2. $renderer = $this->_doc->loadRenderer('module');
  3. $buffer = '';
  4. $app = Factory::getApplication();
  5. $user = Factory::getUser();
  6. $frontediting = ($app->isClient('site') && $app->get('frontediting', 1) && !$user->guest);
  7. $menusEditing = ($app->get('frontediting', 1) == 2) && $user->authorise('core.edit', 'com_menus');
  8. foreach (ModuleHelper::getModules($position) as $mod) {
  9. $moduleHtml = $renderer->render($mod, $params, $content);
ModulesRenderer->render() in D:\www\www83\libraries\src\Document\HtmlDocument.php (line 578)
  1. $cbuffer[$hash] = $tmpdata;
  2. $cache->store($cbuffer, 'cbuffer_' . $type);
  3. } else {
  4. $this->setBuffer($renderer->render($name, $attribs, null), $type, $name, $title);
  5. }
  6. return parent::$_buffer[$type][$name][$title];
  7. }
HtmlDocument->getBuffer() in D:\www\www83\libraries\src\Document\HtmlDocument.php (line 897)
  1. $replace = [];
  2. $with = [];
  3. foreach ($this->_template_tags as $jdoc => $args) {
  4. $replace[] = $jdoc;
  5. $with[] = $this->getBuffer($args['type'], $args['name'], $args['attribs']);
  6. }
  7. return str_replace($replace, $with, $this->_template);
  8. }
  9. }
HtmlDocument->_renderTemplate() in D:\www\www83\libraries\src\Document\HtmlDocument.php (line 650)
  1. if (\array_key_exists('csp_nonce', $params) && $params['csp_nonce'] !== null) {
  2. $this->cspNonce = $params['csp_nonce'];
  3. }
  4. $data = $this->_renderTemplate();
  5. parent::render($caching, $params);
  6. return $data;
  7. }
HtmlDocument->render() in D:\www\www83\libraries\src\Document\ErrorDocument.php (line 139)
  1. $this->debug = $params['debug'] ?? false;
  2. $this->error = $this->_error;
  3. $params['file'] = 'error.php';
  4. return parent::render($cache, $params);
  5. }
  6. /**
  7. * Render the backtrace
  8. *
  1. ob_end_clean();
  2. }
  3. $this->getDocument()->setTitle(Text::_('Error') . ': ' . $error->getCode());
  4. return $this->getDocument()->render(
  5. false,
  6. [
  7. 'template' => $template->template,
  8. 'directory' => JPATH_THEMES,
  9. 'debug' => JDEBUG,
  1. 'subject' => $app,
  2. 'document' => $renderer->getDocument(),
  3. ])
  4. );
  5. $data = $renderer->render($error);
  6. // If nothing was rendered, just use the message from the Exception
  7. if (empty($data)) {
  8. $data = $error->getMessage();
  9. }
ExceptionHandler::render() in D:\www\www83\libraries\src\Exception\ExceptionHandler.php (line 76)
  1. * @since 3.10.0
  2. */
  3. public static function handleException(\Throwable $error)
  4. {
  5. static::logException($error);
  6. static::render($error);
  7. }
  8. /**
  9. * Render the error page based on an exception.
  10. *
ExceptionHandler::handleException() in D:\www\www83\libraries\src\Application\CMSApplication.php (line 334)
  1. );
  2. // Trigger the onError event.
  3. $this->dispatchEvent('onError', $event);
  4. ExceptionHandler::handleException($event->getError());
  5. }
  6. // Trigger the onBeforeRespond event.
  7. $this->dispatchEvent(
  8. 'onBeforeRespond',
CMSApplication->execute() in D:\www\www83\index.php (line 35)
  1. // Run the application - All executable code should be triggered through this file
  2. require_once dirname(__FILE__) . '/includes/app.php';
  3. $app = JFactory::getApplication('site');
  4. $app->execute();

RuntimeException

Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

  1. if ($this->isActive()) {
  2. throw new \RuntimeException('Failed to start the session: already started by PHP.');
  3. }
  4. if (ini_get('session.use_cookies') && headers_sent($file, $line)) {
  5. throw new \RuntimeException(
  6. sprintf('Failed to start the session because headers have already been sent by "%s" at line %d.', $file, $line)
  7. );
  8. }
  9. if (!session_start()) {
  1. $this->setId($session_clean);
  2. $cookie->set($session_name, '', ['expires' => time() - 3600 ]);
  3. }
  4. }
  5. parent::start();
  6. // Try loading data from the session
  7. if (!empty($_SESSION['joomla'])) {
  8. $this->data = unserialize(base64_decode($_SESSION['joomla']));
  9. }
  1. {
  2. if ($this->isStarted()) {
  3. return;
  4. }
  5. $this->store->start();
  6. $this->setState(SessionState::ACTIVE);
  7. // Initialise the session
  8. $this->setCounter();
  1. * @since 1.0
  2. */
  3. public function has($name)
  4. {
  5. if (!$this->isActive()) {
  6. $this->start();
  7. }
  8. return $this->store->has($name);
  9. }
  1. $name = $args[2] . '.' . $name;
  2. }
  3. }
  4. if (parent::has($name)) {
  5. // Parent is used because of b/c, can be changed in Joomla 6
  6. return parent::get($name, $default);
  7. }
  8. /*
Session->get() in D:\www\www83\libraries\src\Factory.php (line 372)
  1. __CLASS__
  2. ),
  3. E_USER_DEPRECATED
  4. );
  5. $instance = self::getApplication()->getSession()->get('user');
  6. if (\is_null($id)) {
  7. if (!($instance instanceof User)) {
  8. $instance = User::getInstance();
  9. }
  1. *
  2. * @since 3.2
  3. */
  4. protected function initialiseApp($options = [])
  5. {
  6. $user = Factory::getUser();
  7. // If the user is a guest we populate it with the guest user group.
  8. if ($user->guest) {
  9. $guestUsergroup = ComponentHelper::getParams('com_users')->get('guest_usergroup', 1);
  10. $user->groups = [$guestUsergroup];
SiteApplication->initialiseApp() in D:\www\www83\libraries\src\Application\SiteApplication.php (line 237)
  1. * @since 3.2
  2. */
  3. protected function doExecute()
  4. {
  5. // Initialise the application
  6. $this->initialiseApp();
  7. // Mark afterInitialise in the profiler.
  8. JDEBUG ? $this->profiler->mark('afterInitialise') : null;
  9. // Route the application
SiteApplication->doExecute() in D:\www\www83\libraries\src\Application\CMSApplication.php (line 304)
  1. $this->sanityCheckSystemVariables();
  2. $this->setupLogging();
  3. $this->createExtensionNamespaceMap();
  4. // Perform application routines.
  5. $this->doExecute();
  6. // If we have an application document object, render it.
  7. if ($this->document instanceof \Joomla\CMS\Document\Document) {
  8. // Render the application output.
  9. $this->render();
CMSApplication->execute() in D:\www\www83\index.php (line 35)
  1. // Run the application - All executable code should be triggered through this file
  2. require_once dirname(__FILE__) . '/includes/app.php';
  3. $app = JFactory::getApplication('site');
  4. $app->execute();

Stack Traces 2

[2/2] RuntimeException
RuntimeException:
Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

  at D:\www\www83\libraries\vendor\joomla\session\src\Storage\NativeStorage.php:453
  at Joomla\Session\Storage\NativeStorage->start()
     (D:\www\www83\libraries\src\Session\Storage\JoomlaStorage.php:313)
  at Joomla\CMS\Session\Storage\JoomlaStorage->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:396)
  at Joomla\Session\Session->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:327)
  at Joomla\Session\Session->has()
     (D:\www\www83\libraries\src\Session\Session.php:194)
  at Joomla\CMS\Session\Session->get()
     (D:\www\www83\libraries\src\Factory.php:372)
  at Joomla\CMS\Factory::getUser()
     (D:\www\www83\libraries\src\Document\Renderer\Html\ModulesRenderer.php:46)
  at Joomla\CMS\Document\Renderer\Html\ModulesRenderer->render()
     (D:\www\www83\libraries\src\Document\HtmlDocument.php:578)
  at Joomla\CMS\Document\HtmlDocument->getBuffer()
     (D:\www\www83\libraries\src\Document\HtmlDocument.php:897)
  at Joomla\CMS\Document\HtmlDocument->_renderTemplate()
     (D:\www\www83\libraries\src\Document\HtmlDocument.php:650)
  at Joomla\CMS\Document\HtmlDocument->render()
     (D:\www\www83\libraries\src\Document\ErrorDocument.php:139)
  at Joomla\CMS\Document\ErrorDocument->render()
     (D:\www\www83\libraries\src\Error\Renderer\HtmlRenderer.php:70)
  at Joomla\CMS\Error\Renderer\HtmlRenderer->render()
     (D:\www\www83\libraries\src\Exception\ExceptionHandler.php:142)
  at Joomla\CMS\Exception\ExceptionHandler::render()
     (D:\www\www83\libraries\src\Exception\ExceptionHandler.php:76)
  at Joomla\CMS\Exception\ExceptionHandler::handleException()
     (D:\www\www83\libraries\src\Application\CMSApplication.php:334)
  at Joomla\CMS\Application\CMSApplication->execute()
     (D:\www\www83\index.php:35)                
[1/2] RuntimeException
RuntimeException:
Failed to start the session because headers have already been sent by "D:\www\www83\plugins\system\debug\src\Extension\Debug.php" at line 377.

  at D:\www\www83\libraries\vendor\joomla\session\src\Storage\NativeStorage.php:453
  at Joomla\Session\Storage\NativeStorage->start()
     (D:\www\www83\libraries\src\Session\Storage\JoomlaStorage.php:313)
  at Joomla\CMS\Session\Storage\JoomlaStorage->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:396)
  at Joomla\Session\Session->start()
     (D:\www\www83\libraries\vendor\joomla\session\src\Session.php:327)
  at Joomla\Session\Session->has()
     (D:\www\www83\libraries\src\Session\Session.php:194)
  at Joomla\CMS\Session\Session->get()
     (D:\www\www83\libraries\src\Factory.php:372)
  at Joomla\CMS\Factory::getUser()
     (D:\www\www83\libraries\src\Application\SiteApplication.php:565)
  at Joomla\CMS\Application\SiteApplication->initialiseApp()
     (D:\www\www83\libraries\src\Application\SiteApplication.php:237)
  at Joomla\CMS\Application\SiteApplication->doExecute()
     (D:\www\www83\libraries\src\Application\CMSApplication.php:304)
  at Joomla\CMS\Application\CMSApplication->execute()
     (D:\www\www83\index.php:35)